|
|
@ -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; |
|
|
|
} |
|
|
|
} |
|
|
|