|
|
@@ -308,72 +308,21 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
*/
|
|
|
private String completeTask(CostProjectTask task) {
|
|
|
CostProjectTask nTask = costProjectTaskManager.getById(task.getId());
|
|
|
- NodeConstant nextNode = NodeConstant.getNextNode(task.getCurrentNode());
|
|
|
if (nTask == null){
|
|
|
return "任务不存在";
|
|
|
}
|
|
|
- if (!nTask.getPid().equals("0") ) {
|
|
|
- // 将当前任务置为办结
|
|
|
- String nextNodeStatus = nextNode.getNodeKey();
|
|
|
- task.setStatus(TaskStatusConstant.COMPLETED.getStatusCode());
|
|
|
- task.setCurrentNode(nextNodeStatus);
|
|
|
- costProjectTaskManager.updateById(task);
|
|
|
- // 如果所有子任务都办结,则将父子任务都扭转
|
|
|
- List<CostProjectTask> children = costProjectTaskManager.list(
|
|
|
- new LambdaQueryWrapper<CostProjectTask>()
|
|
|
- .eq(CostProjectTask::getPid, nTask.getPid())
|
|
|
- );
|
|
|
- boolean b = children.stream().allMatch(child ->
|
|
|
- child.getStatus().equals(TaskStatusConstant.COMPLETED.getStatusCode()));
|
|
|
- if(b){
|
|
|
- CostProjectTask pNtask = costProjectTaskManager.getById(nTask.getPid());
|
|
|
- pNtask.setStatus(TaskStatusConstant.AUDITING.getStatusCode());
|
|
|
- pNtask.setCurrentNode(nextNodeStatus);
|
|
|
- costProjectTaskManager.updateById(pNtask);
|
|
|
- String status = "";
|
|
|
- switch (pNtask.getCurrentNode()){
|
|
|
- case "yjfk":
|
|
|
- status = TaskStatusConstant.WAIT_FEEDBACK.getStatusCode();
|
|
|
- break;
|
|
|
- case "jtsy":
|
|
|
- status = TaskStatusConstant.COMPLETED.getStatusCode();
|
|
|
- break;
|
|
|
- default:
|
|
|
- status = TaskStatusConstant.AUDITING.getStatusCode();
|
|
|
- break;
|
|
|
- }
|
|
|
- for (CostProjectTask child : children) {
|
|
|
- child.setStatus(status);
|
|
|
- child.setCurrentNode(nextNodeStatus);
|
|
|
- costProjectTaskManager.updateById(child);
|
|
|
- }
|
|
|
- }
|
|
|
- // 如果下一个节点是"意见告知",生成空的初步意见数据
|
|
|
- if (NodeConstant.yjfk.getNodeKey().equals(nextNodeStatus)) {
|
|
|
- // 检查是否已存在初步意见
|
|
|
- CostProjectTaskPreliminaryOpinion existingOpinion = preliminaryOpinionManager.getByTaskId(task.getId());
|
|
|
- if (existingOpinion == null) {
|
|
|
- CostProjectTaskPreliminaryOpinion preliminaryOpinion = new CostProjectTaskPreliminaryOpinion();
|
|
|
- preliminaryOpinion.setTaskId(task.getId());
|
|
|
- preliminaryOpinion.setStatus("draft");
|
|
|
- preliminaryOpinion.setIsDeleted(BaseConstant.NORMAL_STATUS);
|
|
|
- preliminaryOpinionManager.createOrUpdate(preliminaryOpinion);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- }else{
|
|
|
- List<CostProjectTask> children = costProjectTaskManager.list(
|
|
|
- new LambdaQueryWrapper<CostProjectTask>()
|
|
|
- .eq(CostProjectTask::getPid, nTask.getId())
|
|
|
- );
|
|
|
- boolean b = children.stream().allMatch(child ->
|
|
|
- child.getStatus().equals(TaskStatusConstant.COMPLETED.getStatusCode()));
|
|
|
- if (!b) {
|
|
|
- throw new RuntimeException("子任务未全部办结,主任务无法办结");
|
|
|
- }
|
|
|
- task.setStatus(TaskStatusConstant.COMPLETED.getStatusCode());
|
|
|
- costProjectTaskManager.updateById(task);
|
|
|
+ List<CostProjectTask> children = costProjectTaskManager.list(
|
|
|
+ new LambdaQueryWrapper<CostProjectTask>()
|
|
|
+ .eq(CostProjectTask::getPid, nTask.getId())
|
|
|
+ );
|
|
|
+ boolean b = children.stream().allMatch(child ->
|
|
|
+ child.getStatus().equals(TaskStatusConstant.COMPLETED.getStatusCode()));
|
|
|
+ if (!b) {
|
|
|
+ throw new RuntimeException("子任务未全部办结,主任务无法办结");
|
|
|
}
|
|
|
+ task.setStatus(TaskStatusConstant.COMPLETED.getStatusCode());
|
|
|
+ costProjectTaskManager.updateById(task);
|
|
|
|
|
|
// 发送通知
|
|
|
String title = NodeConstant.getNodeValueByKey(task.getCurrentNode())+"通过";
|
|
|
@@ -384,7 +333,7 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
String enterpriseId = task.getAuditedUnitId() == null ? "" : task.getAuditedUnitId();
|
|
|
String noticeSource = "系统";
|
|
|
String sendTarget = task.getCreateBy() == null ? "" : task.getCreateBy();
|
|
|
- costNoticeManager.sendNotice(task.getProjectId(), "1", title, content, enterpriseId, noticeSource, sendTarget);
|
|
|
+ costNoticeManager.sendNotice(task.getProjectId(),task.getId(), "1", title, content, enterpriseId, noticeSource, sendTarget);
|
|
|
|
|
|
return title;
|
|
|
}
|
|
|
@@ -402,7 +351,7 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
String enterpriseId = task.getAuditedUnitId() == null ? "" : task.getAuditedUnitId();
|
|
|
String noticeSource = "系统";
|
|
|
String sendTarget = task.getCreateBy() == null ? "" : task.getCreateBy();
|
|
|
- costNoticeManager.sendNotice(task.getProjectId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
+ costNoticeManager.sendNotice(task.getProjectId(),task.getId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
|
|
|
// 更新任务的当前节点和状态
|
|
|
task.setStatus(TaskStatusConstant.NOT_PASSED.getStatusCode());
|
|
|
@@ -428,7 +377,7 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
String enterpriseId = task.getAuditedUnitId() == null ? "" : task.getAuditedUnitId();
|
|
|
String noticeSource = "系统";
|
|
|
String sendTarget = task.getCreateBy() == null ? "" : task.getCreateBy();
|
|
|
- costNoticeManager.sendNotice(task.getProjectId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
+ costNoticeManager.sendNotice(task.getProjectId(),task.getId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
|
|
|
return title;
|
|
|
}
|
|
|
@@ -463,7 +412,7 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
// 通知内容组装(针对子任务对应的单位)
|
|
|
String childEnterpriseId = childTask.getAuditedUnitId() == null ? "" : childTask.getAuditedUnitId();
|
|
|
String childSendTarget = childTask.getCreateBy() == null ? "" : childTask.getCreateBy();
|
|
|
- costNoticeManager.sendNotice(task.getProjectId(), "1", title, req.getContent(), childEnterpriseId, noticeSource, childSendTarget);
|
|
|
+ costNoticeManager.sendNotice(task.getProjectId(),task.getId(), "1", title, req.getContent(), childEnterpriseId, noticeSource, childSendTarget);
|
|
|
// 收集单位名称
|
|
|
if (StringUtil.isNotEmpty(childTask.getAuditedUnitName())) {
|
|
|
unitNames.add(childTask.getAuditedUnitName());
|
|
|
@@ -478,7 +427,7 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
costProjectTaskManager.updateById(task);
|
|
|
String enterpriseId = task.getAuditedUnitId() == null ? "" : task.getAuditedUnitId();
|
|
|
String sendTarget = task.getCreateBy() == null ? "" : task.getCreateBy();
|
|
|
- costNoticeManager.sendNotice(task.getProjectId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
+ costNoticeManager.sendNotice(task.getProjectId(),task.getId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
return title;
|
|
|
}
|
|
|
}
|
|
|
@@ -537,7 +486,7 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
String enterpriseId = task.getAuditedUnitId() == null ? "" : task.getAuditedUnitId();
|
|
|
String noticeSource = "系统";
|
|
|
String sendTarget = task.getCreateBy() == null ? "" : task.getCreateBy();
|
|
|
- costNoticeManager.sendNotice(task.getProjectId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
+ costNoticeManager.sendNotice(task.getProjectId(),task.getId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
|
|
|
return title;
|
|
|
}
|
|
|
@@ -558,18 +507,33 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
new LambdaQueryWrapper<CostProjectTask>()
|
|
|
.eq(CostProjectTask::getPid, nTask.getId())
|
|
|
);
|
|
|
- boolean b = children.stream().allMatch(
|
|
|
- child -> child.getStatus().equals(TaskStatusConstant.COMPLETED.getStatusCode()));
|
|
|
+ boolean b = children.stream().noneMatch(
|
|
|
+ child -> child.getStatus().equals(TaskStatusConstant.AUDITING.getStatusCode()));
|
|
|
if (!b){
|
|
|
throw new RuntimeException("子任务未全部办结,主任务无法扭转");
|
|
|
}
|
|
|
- // 主任务扭转下一步
|
|
|
- String nextNodeKey = NodeConstant.getNextNode(nTask.getCurrentNode()).getNodeKey();
|
|
|
- nTask.setStatus(TaskStatusConstant.AUDITING.getStatusCode());
|
|
|
- nTask.setCurrentNode(nextNodeKey);
|
|
|
- costProjectTaskManager.updateById(nTask);
|
|
|
+ // 将当前任务置为办结
|
|
|
+ String nextNodeStatus = NodeConstant.getNextNode(nTask.getCurrentNode()).getNodeKey();
|
|
|
+ task.setStatus(TaskStatusConstant.AUDITING.getStatusCode());
|
|
|
+ task.setCurrentNode(nextNodeStatus);
|
|
|
+ nTask.setIsGd("0");
|
|
|
+ costProjectTaskManager.updateById(task);
|
|
|
+ // 如果所有子任务都办结,则将父子任务都扭转
|
|
|
+ String status = "";
|
|
|
+ switch (nTask.getCurrentNode()){
|
|
|
+ case "yjfk":
|
|
|
+ status = TaskStatusConstant.WAIT_FEEDBACK.getStatusCode();
|
|
|
+ break;
|
|
|
+ case "jtsy":
|
|
|
+ status = TaskStatusConstant.COMPLETED.getStatusCode();
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ status = TaskStatusConstant.AUDITING.getStatusCode();
|
|
|
+ break;
|
|
|
+ }
|
|
|
for (CostProjectTask child : children) {
|
|
|
- child.setCurrentNode(nextNodeKey);
|
|
|
+ child.setStatus(status);
|
|
|
+ child.setCurrentNode(nextNodeStatus);
|
|
|
costProjectTaskManager.updateById(child);
|
|
|
}
|
|
|
// 通知内容组装
|
|
|
@@ -577,7 +541,7 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
String enterpriseId = task.getAuditedUnitId() == null ? "" : task.getAuditedUnitId();
|
|
|
String noticeSource = "系统";
|
|
|
String sendTarget = task.getCreateBy() == null ? "" : task.getCreateBy();
|
|
|
- costNoticeManager.sendNotice(task.getProjectId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
+ costNoticeManager.sendNotice(task.getProjectId(), task.getId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
|
|
|
return title;
|
|
|
}
|