|
|
@@ -437,19 +437,50 @@ public class CostProjectTaskManagerImpl extends BaseManagerImpl<CostProjectTaskD
|
|
|
* 补充材料,发送通知+修改任务状态
|
|
|
*/
|
|
|
private String supplementMaterial(CostProjectTask task, CostTaskPageReq req) {
|
|
|
-
|
|
|
- // 更新任务状态为
|
|
|
- task.setStatus(TaskStatusConstant.BCCL.getStatusCode());
|
|
|
- costProjectTaskManager.updateById(task);
|
|
|
-
|
|
|
- // 通知内容组装
|
|
|
- String title = NodeConstant.getNodeValueByKey(task.getCurrentNode())+TaskStatusConstant.BCCL.getStatusName();
|
|
|
- String enterpriseId = task.getAuditedUnitId() == null ? "" : task.getAuditedUnitId();
|
|
|
+ String currentNode = task.getCurrentNode();
|
|
|
+ String title = NodeConstant.getNodeValueByKey(currentNode) + TaskStatusConstant.BCCL.getStatusName();
|
|
|
String noticeSource = "系统";
|
|
|
- String sendTarget = task.getCreateBy() == null ? "" : task.getCreateBy();
|
|
|
- costNoticeManager.sendNotice(task.getProjectId(), "1", title, req.getContent(), enterpriseId, noticeSource, sendTarget);
|
|
|
|
|
|
- return title;
|
|
|
+ switch (currentNode) {
|
|
|
+ // 集体审议节点:支持指定多个子任务补充材料
|
|
|
+ case "jtsy":
|
|
|
+ if (StringUtil.isNotEmpty(req.getChildTaskId())) {
|
|
|
+ String[] childTaskIdArray = req.getChildTaskId().split(",");
|
|
|
+ List<String> unitNames = new java.util.ArrayList<>();
|
|
|
+
|
|
|
+ for (String childTaskId : childTaskIdArray) {
|
|
|
+ CostProjectTask childTask = costProjectTaskManager.getById(childTaskId);
|
|
|
+ if (childTask == null) {
|
|
|
+ throw new RuntimeException("子任务不存在:" + childTaskId);
|
|
|
+ }
|
|
|
+ // 验证子任务是否属于当前主任务
|
|
|
+ if (!childTask.getPid().equals(task.getId())) {
|
|
|
+ throw new RuntimeException("子任务不属于当前主任务:" + childTaskId);
|
|
|
+ }
|
|
|
+ // 更新子任务状态为补充材料
|
|
|
+ childTask.setStatus(TaskStatusConstant.BCCL.getStatusCode());
|
|
|
+ costProjectTaskManager.updateById(childTask);
|
|
|
+ // 通知内容组装(针对子任务对应的单位)
|
|
|
+ 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);
|
|
|
+ // 收集单位名称
|
|
|
+ if (StringUtil.isNotEmpty(childTask.getAuditedUnitName())) {
|
|
|
+ unitNames.add(childTask.getAuditedUnitName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 返回结果,包含所有单位名称
|
|
|
+ String unitNamesStr = unitNames.isEmpty() ? "" : String.join("、", unitNames);
|
|
|
+ return title + "(单位:" + unitNamesStr + ")";
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ task.setStatus(TaskStatusConstant.BCCL.getStatusCode());
|
|
|
+ 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);
|
|
|
+ return title;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|