From b1ec1242b0dc9f9d24017fc46014b47344955d95 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 10 May 2024 16:53:19 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=BD=AC=E5=8A=9E=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E7=BB=99hiwork=E5=85=88=E5=8F=91=E9=80=81=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=9C=A8=E5=8F=91=E9=80=81=E6=96=B0=E5=BE=85?= =?UTF-8?q?=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/api/dto/message/HiworkTodoAdd.java | 3 ++ .../service/impl/HiworkTodoServiceImpl.java | 7 ++- .../listener/MyGlobalEventListener.java | 47 ++++++++++++++----- .../common/service/ActFlowCommonService.java | 14 +----- .../impl/EsInspectFlowServiceImpl.java | 12 ++--- .../EsInspectDelayApplyFlowServiceImpl.java | 14 ++---- .../impl/EsInspectPlanFlowServiceImpl.java | 13 ++--- .../impl/EsInspectRectifyFlowServiceImpl.java | 13 ++--- .../EsPermissionApplyFlowServiceImpl.java | 13 ++--- .../impl/ProcessHandleServiceImpl.java | 3 +- .../impl/MeetingManageFlowServiceImpl.java | 13 ++--- 11 files changed, 72 insertions(+), 80 deletions(-) diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java index 251dfd63..1b028ab2 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java @@ -23,4 +23,7 @@ public class HiworkTodoAdd { private String processDefinitionId; @ApiModelProperty(value = "3结束,6删除,其他是待办已办") private String type; + @ApiModelProperty(value = "转办时用") + private String toUserId; + } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java index a5e708b5..d8f41f4f 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java @@ -192,7 +192,12 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { // 是否显示(0否,1是) hiworkTodo.setIsShow(String.valueOf(processNode.getIsView())); } - String userId = processApprovalRecord.getUserId(); + String userId; + if (hiworkTodoAdd.getToUserId() == null){ + userId = processApprovalRecord.getUserId(); + }else { + userId = hiworkTodoAdd.getToUserId(); + } SysUser sysUser = sysUserService.getById(userId); String noticeTitle = processApprovalRecord.getTaskName() + "(" + sysUser.getRealname() + " " + date + ")"; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java index 7de719c8..ac52d3e5 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java @@ -31,10 +31,7 @@ import org.activiti.engine.impl.persistence.entity.ExecutionEntityImpl; import org.activiti.engine.impl.persistence.entity.TaskEntity; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author liJiaRao @@ -173,14 +170,40 @@ public class MyGlobalEventListener implements ActivitiEventListener { } private void taskAssigned(ActivitiEvent event) { - //log.info("===================任务分配事件==================="); - //ActivitiEntityEventImpl activitiEntityEvent = (ActivitiEntityEventImpl) event; - //TaskEntity taskEntity = (TaskEntity) activitiEntityEvent.getEntity(); - //log.info("id = " + id); - //log.info("name = " + name); - //log.info("taskEntity.getAssignee() = " + taskEntity.getAssignee()); - //log.info("taskEntity.getIdentityLinks() = " + taskEntity.getIdentityLinks()); - //log.info("taskEntity.getVariables() = " + taskEntity.getVariables()); + log.info("===================任务分配事件==================="); + ActivitiEntityEventImpl activitiEntityEvent = (ActivitiEntityEventImpl) event; + TaskEntity delegateTask = (TaskEntity) activitiEntityEvent.getEntity(); + String taskId = delegateTask.getId(); + String assignee = delegateTask.getAssignee(); + String processDefinitionId = delegateTask.getProcessDefinitionId(); + + ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessApprovalRecord::getTaskId,taskId); + ProcessApprovalRecord approvalRecord = recordService.getOne(wrapper); + String userId = approvalRecord.getUserId(); + + if (!Objects.equals(assignee,userId)) { + log.info("由"+userId+"转办给"+assignee); + // 对接统一平台生成完成任务 + PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class); + List list = new ArrayList<>(); + HiworkTodoAdd hiworkTodoAdd = new HiworkTodoAdd(); + hiworkTodoAdd.setRecordId(approvalRecord.getId()); + hiworkTodoAdd.setProcessDefinitionId(processDefinitionId); + list.add(hiworkTodoAdd); + pushWorkflowIntegrationAPI.sendTodoTask(list); + + // 对接统一平台生成办结 + pushWorkflowIntegrationAPI.sendActivityComplete(list); + + // 生成被转办人的待办 + list.clear(); + hiworkTodoAdd.setToUserId(assignee); + list.add(hiworkTodoAdd); + pushWorkflowIntegrationAPI.sendTodoTask(list); + } + } private void taskComplete(ActivitiEvent event) { 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 e800a437..82a513c4 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 @@ -248,18 +248,8 @@ public class ActFlowCommonService { /** * 转办 */ - public void transfer(String taskId, String userId) { - //获取审批(未完成的任务id是之前的) - ProcessApprovalRecord approvalRecord = approvalRecordService.getToDoByTaskId(taskId); - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(ProcessApprovalRecord::getId, approvalRecord.getId()); - updateWrapper.set(ProcessApprovalRecord::getTransferBy, loginUser.getId()); - updateWrapper.set(ProcessApprovalRecord::getUserId, userId); - approvalRecordService.update(updateWrapper); - taskService.setAssignee(taskId, userId); - log.info("转办 任务Id:{} 转办用户Id{}", taskId, userId); + public void transfer(String taskId, String toUserId) { + processHandleService.transfer(taskId, toUserId); } /** diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java index 903129c2..14cdedc4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java @@ -27,6 +27,7 @@ import com.jero.modules.activiti.process.esinspectrectify.entity.ProcessEsInspec import com.jero.modules.activiti.process.esinspectrectify.service.IEsInspectRectifyFlowService; import com.jero.modules.activiti.process.esinspectrectify.service.IProcessEsInspectRectifyService; import com.jero.modules.activiti.process.esinspectrectify.vo.EsInspectRectifyFlowVO; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessNodeLinkService; @@ -109,6 +110,8 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService { RuntimeService runtimeService = processEngine.getRuntimeService(); @Resource private TaskService taskService; + @Resource + private IProcessHandleService processHandleService; @Override public void flowStart(EsInspectFlowVO esInspectFlowVO) { // 流程信息 @@ -525,14 +528,7 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService { @Override public void flowTransfer(String taskId, String userId) { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - // 更新流程审批信息 - processApprovalRecordService.update(new LambdaUpdateWrapper() - .eq(ProcessApprovalRecord::getTaskId, taskId) - .set(ProcessApprovalRecord::getTransferBy, loginUser.getId()) - .set(ProcessApprovalRecord::getUserId, userId)); - // 转办 - taskService.setAssignee(taskId, userId); + processHandleService.transfer(taskId, userId); } public boolean isLastNode(String processInstanceId) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java index a325df84..314f5e91 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java @@ -24,6 +24,7 @@ import com.jero.modules.activiti.process.esinspectdelayapply.service.IEsInspectD import com.jero.modules.activiti.process.esinspectdelayapply.service.IProcessEsInspectDelayApplyService; import com.jero.modules.activiti.process.esinspectdelayapply.vo.EsInspectDelayApplyFlowVO; import com.jero.modules.activiti.process.esinspectdelayapply.vo.ProcessEsInspectDelayApplyVO; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessNodeLinkService; @@ -89,7 +90,8 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF RuntimeService runtimeService = processEngine.getRuntimeService(); @Resource private TaskService taskService; - + @Resource + private IProcessHandleService processHandleService; @Override public void flowStart(EsInspectDelayApplyFlowVO esInspectDelayApplyFlowVO) { // 流程信息 @@ -350,14 +352,6 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF @Override public void flowTransfer(String taskId, String userId) { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - // 更新流程审批信息 - processApprovalRecordService.update(new LambdaUpdateWrapper() - .eq(ProcessApprovalRecord::getTaskId, taskId) - .set(ProcessApprovalRecord::getTransferBy, userId) - .set(ProcessApprovalRecord::getTransferBy, loginUser.getId()) - .set(ProcessApprovalRecord::getUserId, userId)); - // 转办 - taskService.setAssignee(taskId, userId); + processHandleService.transfer(taskId, userId); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java index 124f7d3d..d34c4a22 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java @@ -31,6 +31,7 @@ import com.jero.modules.activiti.process.esinspectplan.service.IEsInspectPlanFlo import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanOpinionService; import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService; import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessNodeLinkService; @@ -115,6 +116,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { RuntimeService runtimeService = processEngine.getRuntimeService(); @Resource private TaskService taskService; + @Resource + private IProcessHandleService processHandleService; private static final String COUNTERSIGN = "countersign"; private static final String COUNTERSIGN_TAG = "countersignTag"; @@ -557,15 +560,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { @Override public void flowTransfer(String taskId, String userId) { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - // 更新流程审批信息 - processApprovalRecordService.update(new LambdaUpdateWrapper() - .eq(ProcessApprovalRecord::getTaskId, taskId) - .set(ProcessApprovalRecord::getTransferBy, userId) - .set(ProcessApprovalRecord::getTransferBy, loginUser.getId()) - .set(ProcessApprovalRecord::getUserId, userId)); - // 转办 - taskService.setAssignee(taskId, userId); + processHandleService.transfer(taskId, userId); } @Override diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectrectify/service/impl/EsInspectRectifyFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectrectify/service/impl/EsInspectRectifyFlowServiceImpl.java index 75ff9040..c31a42b0 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectrectify/service/impl/EsInspectRectifyFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectrectify/service/impl/EsInspectRectifyFlowServiceImpl.java @@ -26,6 +26,7 @@ import com.jero.modules.activiti.process.esinspectrectify.service.IProcessEsInsp import com.jero.modules.activiti.process.esinspectrectify.vo.EsInspectRectifyFlowVO; import com.jero.modules.activiti.process.esinspectrectify.vo.ProcessEsInspectRectifyVO; import com.jero.modules.activiti.process.esinspectrectify.vo.UserInfo; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessNodeLinkService; @@ -87,6 +88,8 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer RuntimeService runtimeService = processEngine.getRuntimeService(); @Resource private TaskService taskService; + @Resource + private IProcessHandleService processHandleService; private static final String RESPONSIBLE = "responsible"; @@ -447,15 +450,7 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer @Override public void flowTransfer(String taskId, String userId) { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - // 更新流程审批信息 - processApprovalRecordService.update(new LambdaUpdateWrapper() - .eq(ProcessApprovalRecord::getTaskId, taskId) - .set(ProcessApprovalRecord::getTransferBy, userId) - .set(ProcessApprovalRecord::getTransferBy, loginUser.getId()) - .set(ProcessApprovalRecord::getUserId, userId)); - // 转办 - taskService.setAssignee(taskId, userId); + processHandleService.transfer(taskId, userId); } private Map listToString(Map map) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java index c0340ada..654c430f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java @@ -22,6 +22,7 @@ import com.jero.modules.activiti.process.espermissionapply.service.EsPermissionA import com.jero.modules.activiti.process.espermissionapply.service.IProcessEsPermissionApplyService; import com.jero.modules.activiti.process.espermissionapply.vo.EsPermissionApplyFlowVO; import com.jero.modules.activiti.process.espermissionapply.vo.ProcessEsPermissionApplyVO; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessNodeLinkService; @@ -77,6 +78,8 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe RuntimeService runtimeService = processEngine.getRuntimeService(); @Resource private TaskService taskService; + @Resource + private IProcessHandleService processHandleService; @Resource private EnterpriseStandardAuthUserService enterpriseStandardAuthUserService; @@ -288,15 +291,7 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe @Override public void flowTransfer(String taskId, String userId) { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - // 更新流程审批信息 - processApprovalRecordService.update(new LambdaUpdateWrapper() - .eq(ProcessApprovalRecord::getTaskId, taskId) - .set(ProcessApprovalRecord::getTransferBy, userId) - .set(ProcessApprovalRecord::getTransferBy, loginUser.getId()) - .set(ProcessApprovalRecord::getUserId, userId)); - // 转办 - taskService.setAssignee(taskId, userId); + processHandleService.transfer(taskId, userId); } public boolean isLastNode(String processInstanceId) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java index 738ec349..a4e2af27 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java @@ -272,11 +272,12 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { // 删除自己的草稿 deleteMyDraft(taskId, processApprovalRecord.getProjectId(), null); + taskService.setAssignee(taskId, toUserId); + String userId = processApprovalRecord.getUserId(); processApprovalRecord.setTransferBy(CurrentUserUtil.getId()); // 转办人 processApprovalRecord.setUserId(toUserId); // 任务处理人 processApprovalRecordService.updateById(processApprovalRecord); - taskService.setAssignee(taskId, toUserId); WorkCenterService classByValue = null; try { Object o = Class.forName(ProcessTypeEnum.getClassByValue(prcType)).newInstance(); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/meetingmanage/service/impl/MeetingManageFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/meetingmanage/service/impl/MeetingManageFlowServiceImpl.java index 9ba2176c..9f40a4cf 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/meetingmanage/service/impl/MeetingManageFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/meetingmanage/service/impl/MeetingManageFlowServiceImpl.java @@ -16,6 +16,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.meetingmanage.common.ProcessMeetingManageCommon; import com.jero.modules.activiti.process.meetingmanage.entity.ProcessMeetingManage; import com.jero.modules.activiti.process.meetingmanage.entity.ProcessMeetingManagePersonnel; @@ -89,6 +90,8 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService { RuntimeService runtimeService = processEngine.getRuntimeService(); @Resource private TaskService taskService; + @Resource + private IProcessHandleService processHandleService; @Override public void flowStart(MeetingManageFlowVO meetingManageFlowVO) { @@ -339,15 +342,7 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService { @Override public void flowTransfer(String taskId, String userId) { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - // 更新流程审批信息 - processApprovalRecordService.update(new LambdaUpdateWrapper() - .eq(ProcessApprovalRecord::getTaskId, taskId) - .set(ProcessApprovalRecord::getTransferBy, userId) - .set(ProcessApprovalRecord::getTransferBy, loginUser.getId()) - .set(ProcessApprovalRecord::getUserId, userId)); - // 转办 - taskService.setAssignee(taskId, userId); + processHandleService.transfer(taskId, userId); } private Map listToString(Map map) {