From 0ef48e74e8078337aa125f70dc8aa26e4aa5bc39 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 13 Dec 2023 14:20:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B9=B4=E5=BA=A6=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2=E5=90=84=E9=83=A8=E9=97=A8=E4=B8=BB=E5=8A=A8=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/ActFlowCommonService.java | 5 +++ .../ProcessEsAnnualReportServiceImpl.java | 45 +++++++++++-------- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index 37cad6b5..7effad8d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -481,4 +481,9 @@ public class ActFlowCommonService { } } } + + public String getOriginTaskAssignee(String taskId) { + ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(taskId); + return approvalRecord.getUserId(); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java index e3e5393a..f58d8155 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java @@ -139,9 +139,7 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl flowUserVO = annualReportDataVO.getFlowUser(); List dataList = annualReportDataVO.getDataList(); String taskId = commonVO.getTaskId(); // 获取task @@ -152,11 +150,16 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); switch (taskName) { case CONTACT_USER_DISTRIBUTE: annualReport = annualReportDataVO.getDataList().get(0); boolean distribute = annualReport.getDistributeFlag().equals("1"); - String contactUserLeaderLeader = annualReport.getContactUserLeaderLeader(); + contactUserLeaderLeader = annualReport.getContactUserLeaderLeader(); taskService.setVariable(taskId, "distribute", distribute); // 获取是否分发 if (distribute) { @@ -165,47 +168,53 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl workGroupUserList = StrUtil.split(workGroupUsers, ','); // 设置流程变量 taskService.setVariable(taskId, "workGroupUserList", workGroupUserList); - taskService.setVariable(taskId, "contactUserLeaderLeader", contactUserLeaderLeader); } else { - // 获取执行id - String executionId = task.getExecutionId(); // 保存联络人主管级上级领导 dataList.forEach(data -> data.setContactUserLeaderLeader(contactUserLeaderLeader)); dataList.forEach(data -> data.setExecutionId(executionId)); dataList.forEach(data -> data.setProcessInstanceId(processInstanceId)); + dataList.forEach(data -> data.setContactUser(contactUser)); // 不分发,入库存表 saveBatch(dataList); taskService.setVariable(taskId, "contactUserLeaderLeader", contactUserLeaderLeader); } break; case WORK_GROUP_COLLECT: + // 先删后增 + wrapper.eq(ProcessEsAnnualReport::getWorkGroupUser, workGroupUser); + wrapper.eq(ProcessEsAnnualReport::getContactUser, contactUser); + wrapper.eq(ProcessEsAnnualReport::getProcessInstanceId, processInstanceId); + remove(wrapper); annualReport = annualReportDataVO.getDataList().get(0); String collectUserLeader = annualReport.getCollectUserLeader(); - String executionId = task.getExecutionId(); - String contactUser = (String) runtimeService.getVariable(executionId, "contactUser"); dataList.forEach(data -> data.setContactUser(contactUser)); dataList.forEach(data -> data.setExecutionId(executionId)); + dataList.forEach(data -> data.setProcessInstanceId(processInstanceId)); // 保存收集联络人主管级领导 dataList.forEach(data -> data.setCollectUserLeader(collectUserLeader)); - dataList.forEach(data -> data.setWorkGroupUser(UserUtils.getUserId())); + dataList.forEach(data -> data.setWorkGroupUser(workGroupUser)); saveBatch(dataList); // 设置下一个节点的审批人流程变量 taskService.setVariable(taskId, "collectUserLeader", collectUserLeader); break; case CONTACT_USER_COLLECT: // 先删后增 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(ProcessEsAnnualReport::getContactUser, UserUtils.getUserId()); + wrapper.eq(ProcessEsAnnualReport::getContactUser, contactUser); wrapper.eq(ProcessEsAnnualReport::getProcessInstanceId, processInstanceId); remove(wrapper); + annualReport = annualReportDataVO.getDataList().get(0); + contactUserLeaderLeader = annualReport.getContactUserLeaderLeader(); + dataList.forEach(data -> data.setExecutionId(executionId)); + dataList.forEach(data -> data.setContactUserLeaderLeader(contactUserLeaderLeader)); + taskService.setVariable(taskId, "contactUserLeaderLeader", contactUserLeaderLeader); saveBatch(dataList); break; } - runtimeService.setVariable(processInstanceId, "pass", pass); + runtimeService.setVariableLocal(processInstanceId, "pass", pass); // 更新审批表为完成,填充数据 actFlowCommonService.updateApprovalInfo(commonVO, taskId, pass); // 审批节点 - actFlowCommonService.completeTask(taskId, userId); + actFlowCommonService.completeTask(taskId, UserUtils.getUserId()); } @Override @@ -215,7 +224,8 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl