Browse Source

完善给任务添加分解任务接口

recovery
ma 4 years ago
parent
commit
4d8747a843
  1. 4
      tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java
  2. 118
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  3. 2
      util/src/main/java/com/ccsens/util/WebConstant.java
  4. 17
      util/src/test/java/com/ccsens/util/TallTest.java

4
tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java

@ -51,7 +51,7 @@ public class TaskDto {
private TaskRemindByAdd taskRemind;
@ApiModelProperty("上级任务详情id")
private Long lastTaskDetailId;
@ApiModelProperty("上级提醒类型(0不提醒 1开始前,2开始时,3开始后,4结束前,5结束时,6结束后,7自定义时间)")
@ApiModelProperty("上级提醒类型(0开始前,1开始时,2开始后,3结束前,4结束时,5结束后,6自定义时间)")
private Byte lastType;
@ApiModelProperty("两个任务时间差")
private Long timeDifference;
@ -237,7 +237,7 @@ public class TaskDto {
private Long projectId;
@ApiModelProperty("上级任务详情id")
private Long lastTaskDetailId;
@ApiModelProperty("上级提醒类型(0不提醒 1开始前,2开始时,3开始后,4结束前,5结束时,6结束后,7自定义时间)")
@ApiModelProperty("上级提醒类型(0开始前,1开始时,2开始后,3结束前,4结束时,5结束后,6自定义时间)")
private Byte lastType;
@ApiModelProperty("两个任务时间差")
private Long timeDifference;

118
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -1971,58 +1971,94 @@ public class ProTaskDetailService implements IProTaskDetailService {
throw new BaseException(CodeEnum.NOT_TASK);
}
ProTaskSubTime taskSubTime = new ProTaskSubTime();
taskSubTime.setId(snowflake.nextId());
taskSubTime.setTaskDetailId(param.getTaskDetailId());
taskSubTime.setBeginTime(param.getStartTime());
taskSubTime.setEndTime(param.getStartTime()+param.getDurationTime());
taskSubTimeDao.insertSelective(taskSubTime);
//查找任务的下一道工序
Long lastTaskDetailId = param.getTaskDetailId();
findLastTask(lastTaskDetailId,taskSubTime);
}
/**
* 新增和修改交付物
* @param jiaoFuWu
* 递归查找下一道工序,并修改时间
*/
public int findLastTask(Long taskDetailId,ProTaskSubTime taskSubTime){
// @Override
// public void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu) {
// ProTaskDeliverExample proTaskDeliverExample=new ProTaskDeliverExample();
// ProTaskDeliver proTaskDeliver=new ProTaskDeliver();
// if(jiaoFuWu.getId()!=null && StringUtils.isNotBlank(jiaoFuWu.getNames())){
// //修改
// proTaskDeliver.setId(jiaoFuWu.getId());
// proTaskDeliver.setName(jiaoFuWu.getNames());
// proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0);
// proTaskDeliverMapper.updateByExampleSelective(proTaskDeliver,proTaskDeliverExample);
// }else if(jiaoFuWu.getId()==null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
// //新增
// proTaskDeliver.setId(snowflake.nextId());
// proTaskDeliver.setName(jiaoFuWu.getNames());
// proTaskDeliverMapper.insertSelective(proTaskDeliver);
// }
//
// }
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskDetailId);
Long subTimeDifference = taskSubTime.getEndTime() - taskSubTime.getBeginTime();
/**
* 新增和修改输入文档
* @param jiaoFuWu
*/
// @Override
// public void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu) {
// ProTaskInputDocExample proTaskDeliverExample=new ProTaskInputDocExample();
// ProTaskInputDoc proTaskDeliver=new ProTaskInputDoc();
// if(jiaoFuWu.getId()!=null && StringUtils.isNotBlank(jiaoFuWu.getNames())){
// //修改
// proTaskDeliver.setId(jiaoFuWu.getId());
// proTaskDeliver.setName(jiaoFuWu.getNames());
// proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0);
// proTaskInputDocDao.updateByExampleSelective(proTaskDeliver,proTaskDeliverExample);
// }else if(jiaoFuWu.getId()==null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
// //新增
// proTaskDeliver.setId(snowflake.nextId());
// proTaskDeliver.setName(jiaoFuWu.getNames());
// proTaskInputDocDao.insertSelective(proTaskDeliver);
// }
// }
ProTaskDetailExample taskDetailExample = new ProTaskDetailExample();
taskDetailExample.createCriteria().andLastTaskDetailIdEqualTo(taskDetailId);
List<ProTaskDetail> taskDetails = taskDetailDao.selectByExample(taskDetailExample);
if (CollectionUtil.isNotEmpty(taskDetails)){
for (ProTaskDetail detail : taskDetails) {
System.out.println(detail);
switch (detail.getLastType()){
case 0:
ProTaskSubTime taskSubTime0 = new ProTaskSubTime();
taskSubTime0.setId(snowflake.nextId());
taskSubTime0.setTaskDetailId(detail.getId());
taskSubTime0.setBeginTime(taskSubTime.getBeginTime()-taskDetail.getTimeDifference());
taskSubTime0.setEndTime(taskSubTime.getBeginTime()-taskDetail.getTimeDifference()+subTimeDifference);
taskSubTimeDao.insertSelective(taskSubTime0);
findLastTask(detail.getId(),taskSubTime0);
break;
case 1:
ProTaskSubTime taskSubTime1 = new ProTaskSubTime();
taskSubTime1.setId(snowflake.nextId());
taskSubTime1.setTaskDetailId(detail.getId());
taskSubTime1.setBeginTime(taskSubTime.getBeginTime());
taskSubTime1.setEndTime(taskSubTime.getBeginTime()+subTimeDifference);
taskSubTimeDao.insertSelective(taskSubTime1);
findLastTask(detail.getId(),taskSubTime1);
break;
case 2:
ProTaskSubTime taskSubTime2 = new ProTaskSubTime();
taskSubTime2.setId(snowflake.nextId());
taskSubTime2.setTaskDetailId(detail.getId());
taskSubTime2.setBeginTime(taskSubTime.getBeginTime()+taskDetail.getTimeDifference());
taskSubTime2.setEndTime(taskSubTime.getBeginTime()+taskDetail.getTimeDifference()+subTimeDifference);
taskSubTimeDao.insertSelective(taskSubTime2);
findLastTask(detail.getId(),taskSubTime2);
break;
case 3:
ProTaskSubTime taskSubTime3 = new ProTaskSubTime();
taskSubTime3.setId(snowflake.nextId());
taskSubTime3.setTaskDetailId(detail.getId());
taskSubTime3.setBeginTime(taskSubTime.getEndTime()-taskDetail.getTimeDifference());
taskSubTime3.setEndTime(taskSubTime.getEndTime()-taskDetail.getTimeDifference()+subTimeDifference);
taskSubTimeDao.insertSelective(taskSubTime3);
findLastTask(detail.getId(),taskSubTime3);
break;
case 4:
ProTaskSubTime taskSubTime4 = new ProTaskSubTime();
taskSubTime4.setId(snowflake.nextId());
taskSubTime4.setTaskDetailId(detail.getId());
taskSubTime4.setBeginTime(taskSubTime.getEndTime());
taskSubTime4.setEndTime(taskSubTime.getEndTime()-taskDetail.getTimeDifference()+subTimeDifference);
taskSubTimeDao.insertSelective(taskSubTime4);
findLastTask(detail.getId(),taskSubTime4);
break;
case 5:
ProTaskSubTime taskSubTime5 = new ProTaskSubTime();
taskSubTime5.setId(snowflake.nextId());
taskSubTime5.setTaskDetailId(detail.getId());
taskSubTime5.setBeginTime(taskSubTime.getEndTime()+taskDetail.getTimeDifference());
taskSubTime5.setEndTime(taskSubTime.getEndTime()+taskDetail.getTimeDifference()+subTimeDifference);
taskSubTimeDao.insertSelective(taskSubTime5);
findLastTask(detail.getId(),taskSubTime5);
break;
default:
break;
}
}
}
return 1;
}
}

2
util/src/main/java/com/ccsens/util/WebConstant.java

@ -1074,4 +1074,6 @@ public class WebConstant {
this.message = message;
}
}
}

17
util/src/test/java/com/ccsens/util/TallTest.java

@ -0,0 +1,17 @@
package com.ccsens.util;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
@RunWith(SpringRunner.class)
@SpringBootTest
public class TallTest {
}
Loading…
Cancel
Save