From 9cc4d4a9889d882a8895c5120069883e5659b441 Mon Sep 17 00:00:00 2001 From: Timer <@> Date: Thu, 2 Apr 2026 01:22:19 +0800 Subject: [PATCH] bug --- .../SafetyCheckComprehensiveController.java | 4 +- .../safety/SafetyCheckDaylyController.java | 4 +- .../safety/SafetyCheckSpecialController.java | 4 +- .../safety/SafetyCheckActivityService.java | 3 - .../service/safety/SafetyFlowTaskService.java | 93 ++++++++++++------- 5 files changed, 63 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/sipai/controller/safety/SafetyCheckComprehensiveController.java b/src/main/java/com/sipai/controller/safety/SafetyCheckComprehensiveController.java index a387817f..249b14b3 100644 --- a/src/main/java/com/sipai/controller/safety/SafetyCheckComprehensiveController.java +++ b/src/main/java/com/sipai/controller/safety/SafetyCheckComprehensiveController.java @@ -377,10 +377,9 @@ public class SafetyCheckComprehensiveController { @Transactional(rollbackFor = Exception.class) public Result response(HttpServletRequest request, SafetyCheckComprehensive bean, String processInstanceId, int pass) throws IOException, ServiceException { - safetyCheckActivityService.audit(bean.getConfirmUserId(), processInstanceId, pass); - //通过 if (pass == 1) { + safetyCheckActivityService.audit(bean.getConfirmUserId(), processInstanceId, pass); bean.setStatus(SafetyCheckStatusEnum.COMPLETE.getId()); service.update(bean); @@ -403,6 +402,7 @@ public class SafetyCheckComprehensiveController { } //不通过 else { + safetyCheckActivityService.audit(bean.getDutyUserId(), processInstanceId, pass); bean.setStatus(SafetyCheckStatusEnum.APPLY.getId()); service.update(bean); safetyFlowTaskService.saveWorkFlowRecord(true, diff --git a/src/main/java/com/sipai/controller/safety/SafetyCheckDaylyController.java b/src/main/java/com/sipai/controller/safety/SafetyCheckDaylyController.java index c44ac870..37e6df03 100644 --- a/src/main/java/com/sipai/controller/safety/SafetyCheckDaylyController.java +++ b/src/main/java/com/sipai/controller/safety/SafetyCheckDaylyController.java @@ -373,10 +373,9 @@ public class SafetyCheckDaylyController { @Transactional(rollbackFor = Exception.class) public Result response(HttpServletRequest request, SafetyCheckDayly bean, String processInstanceId, int pass) throws IOException, ServiceException { - safetyCheckActivityService.audit(bean.getConfirmUserId(), processInstanceId, pass); - //通过 if (pass == 1) { + safetyCheckActivityService.audit(bean.getConfirmUserId(), processInstanceId, pass); bean.setStatus(SafetyCheckStatusEnum.COMPLETE.getId()); safetyCheckDaylyService.update(bean); @@ -400,6 +399,7 @@ public class SafetyCheckDaylyController { } //不通过 else { + safetyCheckActivityService.audit(bean.getDutyUserId(), processInstanceId, pass); bean.setStatus(SafetyCheckStatusEnum.APPLY.getId()); safetyCheckDaylyService.update(bean); safetyFlowTaskService.saveWorkFlowRecord(true, diff --git a/src/main/java/com/sipai/controller/safety/SafetyCheckSpecialController.java b/src/main/java/com/sipai/controller/safety/SafetyCheckSpecialController.java index 98635223..5694c0a2 100644 --- a/src/main/java/com/sipai/controller/safety/SafetyCheckSpecialController.java +++ b/src/main/java/com/sipai/controller/safety/SafetyCheckSpecialController.java @@ -393,10 +393,9 @@ public class SafetyCheckSpecialController { @Transactional(rollbackFor = Exception.class) public Result response(HttpServletRequest request, SafetyCheckSpecial bean, String processInstanceId, int pass) throws IOException, ServiceException { - safetyCheckActivityService.audit(bean.getConfirmUserId(), processInstanceId, pass); - //通过 if (pass == 1) { + safetyCheckActivityService.audit(bean.getConfirmUserId(), processInstanceId, pass); bean.setStatus(SafetyCheckStatusEnum.COMPLETE.getId()); service.update(bean); @@ -419,6 +418,7 @@ public class SafetyCheckSpecialController { } //不通过 else { + safetyCheckActivityService.audit(bean.getDutyUserId(), processInstanceId, pass); bean.setStatus(SafetyCheckStatusEnum.APPLY.getId()); service.update(bean); safetyFlowTaskService.saveWorkFlowRecord(true, diff --git a/src/main/java/com/sipai/service/safety/SafetyCheckActivityService.java b/src/main/java/com/sipai/service/safety/SafetyCheckActivityService.java index f76a6afa..994e7596 100644 --- a/src/main/java/com/sipai/service/safety/SafetyCheckActivityService.java +++ b/src/main/java/com/sipai/service/safety/SafetyCheckActivityService.java @@ -52,7 +52,6 @@ public class SafetyCheckActivityService { Map map = new HashMap<>(); map.put(CommString.ACTI_KEK_Condition, 1); map.put(CommString.ACTI_KEK_Assignee, applyUserId); - map.put(CommString.ACTI_KEK_Candidate_Users, applyUserId); // 启动流程 ProcessInstance processInstance = workflowService.startWorkflow( @@ -71,7 +70,6 @@ public class SafetyCheckActivityService { Map map2 = new HashMap<>(); map2.put(CommString.ACTI_KEK_Condition, 1); map2.put(CommString.ACTI_KEK_Assignee, nextUserId); - map2.put(CommString.ACTI_KEK_Candidate_Users, nextUserId); workflowService.getTaskService().complete(task.getId(), map2); return Result.success(); @@ -91,7 +89,6 @@ public class SafetyCheckActivityService { Map map = new HashMap<>(); map.put(CommString.ACTI_KEK_Condition, pass); map.put(CommString.ACTI_KEK_Assignee, nextUserId); - map.put(CommString.ACTI_KEK_Candidate_Users, nextUserId); for (Task task : tasks) { workflowService.getTaskService().complete(task.getId(), map); } diff --git a/src/main/java/com/sipai/service/safety/SafetyFlowTaskService.java b/src/main/java/com/sipai/service/safety/SafetyFlowTaskService.java index 070975a5..9582c36f 100644 --- a/src/main/java/com/sipai/service/safety/SafetyFlowTaskService.java +++ b/src/main/java/com/sipai/service/safety/SafetyFlowTaskService.java @@ -100,44 +100,65 @@ public class SafetyFlowTaskService implements CommService { String copyNames, String record) throws ServiceException { - SafetyFlowTask safetyFlowTask; + SafetyFlowTask safetyFlowTask = null; List list = selectListByWhere(" where biz_id='" + bizId + "' order by create_time desc"); - if (list != null && list.size() != 0 && list.get(0).getTaskName().equals(taskTitle)) { - safetyFlowTask = list.get(0); - safetyFlowTask.setIsDone(true); - safetyFlowTask.setCopy(copyNames); - safetyFlowTask.setDoneTime(DateUtil.toStr(null, new Date())); - update(safetyFlowTask); - } else if (list != null && list.size() != 0 && !list.get(0).getTaskName().equals(taskTitle)) { - safetyFlowTask = list.get(0); - safetyFlowTask.setIsDone(true); - safetyFlowTask.setCopy(copyNames); - safetyFlowTask.setDoneTime(DateUtil.toStr(null, new Date())); - update(safetyFlowTask); - - safetyFlowTask = new SafetyFlowTask(); - - safetyFlowTask.setId(UUID.randomUUID().toString()); - safetyFlowTask.setBizId(bizId); - safetyFlowTask.setTaskName(taskTitle); - safetyFlowTask.setIsDone(isDone); - safetyFlowTask.setDoneTime(isDone ? DateUtil.toStr(null, new Date()) : null); - safetyFlowTask.setAuditor(auditorName); - safetyFlowTask.setCopy(copyNames); - save(safetyFlowTask); - - } else { - safetyFlowTask = new SafetyFlowTask(); - - safetyFlowTask.setId(UUID.randomUUID().toString()); - safetyFlowTask.setBizId(bizId); - safetyFlowTask.setTaskName(taskTitle); - safetyFlowTask.setIsDone(isDone); - safetyFlowTask.setDoneTime(isDone ? DateUtil.toStr(null, new Date()) : null); - safetyFlowTask.setAuditor(auditorName); - safetyFlowTask.setCopy(copyNames); - save(safetyFlowTask); + + // 查找是否已存在相同taskTitle的记录 + SafetyFlowTask existingTask = null; + if (list != null && !list.isEmpty()) { + for (SafetyFlowTask task : list) { + if (task.getTaskName().equals(taskTitle)) { + existingTask = task; + break; + } + } } + + if (isDone) { + // 标记任务为完成 + if (existingTask != null) { + // 更新已存在的记录 + existingTask.setIsDone(true); + existingTask.setCopy(copyNames); + existingTask.setDoneTime(DateUtil.toStr(null, new Date())); + update(existingTask); + safetyFlowTask = existingTask; + } else { + // 创建新的完成记录 + safetyFlowTask = new SafetyFlowTask(); + safetyFlowTask.setId(UUID.randomUUID().toString()); + safetyFlowTask.setBizId(bizId); + safetyFlowTask.setTaskName(taskTitle); + safetyFlowTask.setIsDone(true); + safetyFlowTask.setDoneTime(DateUtil.toStr(null, new Date())); + safetyFlowTask.setAuditor(auditorName); + safetyFlowTask.setCopy(copyNames); + save(safetyFlowTask); + } + } else { + // 创建待处理任务 + if (existingTask == null) { + // 不存在才创建 + safetyFlowTask = new SafetyFlowTask(); + safetyFlowTask.setId(UUID.randomUUID().toString()); + safetyFlowTask.setBizId(bizId); + safetyFlowTask.setTaskName(taskTitle); + safetyFlowTask.setIsDone(false); + safetyFlowTask.setDoneTime(null); + safetyFlowTask.setAuditor(auditorName); + safetyFlowTask.setCopy(copyNames); + save(safetyFlowTask); + } else { + // 已存在,重置为待处理状态(用于流程回退后重新处理) + existingTask.setIsDone(false); + existingTask.setDoneTime(null); + existingTask.setAuditor(auditorName); + existingTask.setCopy(copyNames); + update(existingTask); + safetyFlowTask = existingTask; + } + } + if (StringUtils.isNotEmpty(record)) { SafetyFlowTaskDetail safetyFlowTaskDetail = new SafetyFlowTaskDetail(); safetyFlowTaskDetail.setId(UUID.randomUUID().toString());