From 4655da0fa8de7799f0d1dd30b67e155ca55bfcde Mon Sep 17 00:00:00 2001 From: liao Date: Mon, 20 Nov 2023 15:44:32 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/ProcessFbStandardConsultation.java | 1 + .../fb/listener/BusinessKeyListener.java | 18 ++++++ .../fb/listener/SetVariableListener.java | 9 --- .../fb/listener/TaskListenerService.java | 62 +++++++++++++++++++ ...cessFbStandardConsultationServiceImpl.java | 29 +++++++-- .../impl/ProcessHandleServiceImpl.java | 21 ++++--- .../controller/LawsDomesticController.java | 5 +- .../controller/LawsEnterpriseController.java | 6 +- .../controller/LawsOverseasController.java | 5 +- .../main/resources/bpmn/标准征求意见流程.bpmn | 42 +++++++++++++ 10 files changed, 166 insertions(+), 32 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/BusinessKeyListener.java delete mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/SetVariableListener.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/TaskListenerService.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbStandardConsultation.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbStandardConsultation.java index 2fce12e4..9325a133 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbStandardConsultation.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbStandardConsultation.java @@ -61,6 +61,7 @@ public class ProcessFbStandardConsultation implements Serializable { @Excel(name = "0表示未删除,1表示删除", width = 15) @ApiModelProperty(value = "0表示未删除,1表示删除") private java.lang.Integer delFlag; + /**标准编号*/ @Excel(name = "标准编号", width = 15) @ApiModelProperty(value = "标准编号") diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/BusinessKeyListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/BusinessKeyListener.java new file mode 100644 index 00000000..4320d4a4 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/BusinessKeyListener.java @@ -0,0 +1,18 @@ +package com.jero.modules.activiti.process.fb.listener; + +import com.jero.common.util.SpringContextUtils; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +/** + * @Author: liao + * @Date: 2023/11/13 17:01 + * @Description: 设置任务的业务key + */ +public class BusinessKeyListener implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + TaskListenerService taskListenerService = SpringContextUtils.getBean(TaskListenerService.class); + taskListenerService.setBusinessKey(delegateTask); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/SetVariableListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/SetVariableListener.java deleted file mode 100644 index ad5193d0..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/SetVariableListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.jero.modules.activiti.process.fb.listener; - -/** - * @Author: liao - * @Date: 2023/11/13 17:01 - * @Description: 设置子流程变量名 - */ -public class SetVariableListener { -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/TaskListenerService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/TaskListenerService.java new file mode 100644 index 00000000..7469dcd1 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/listener/TaskListenerService.java @@ -0,0 +1,62 @@ +package com.jero.modules.activiti.process.fb.listener; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.modules.activiti.entity.ProcessAll; +import com.jero.modules.activiti.process.fb.common.ConsultationTaskKey; +import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationUserLink; +import com.jero.modules.activiti.process.fb.service.IProcessFbConsultationUserLinkService; +import com.jero.modules.activiti.service.ProcessAllService; +import com.jero.modules.laws.common.util.CurrentUserUtil; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateTask; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @Author: liao + * @Date: 2023/11/20 11:41 + * @Description: 任务监听器服务 + */ +@Service +@Slf4j +public class TaskListenerService { + + @Resource + private IProcessFbConsultationUserLinkService processFbConsultationUserLinkService; + @Resource + private ProcessAllService processAllService; + + public void setBusinessKey(DelegateTask delegateTask) { + // 在任务创建时,设置业务key + String taskDefinitionKey = delegateTask.getTaskDefinitionKey(); + String assignee = delegateTask.getAssignee(); + String processInstanceId = delegateTask.getProcessInstanceId(); + ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId); + + DelegateExecution execution = delegateTask.getExecution(); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProcessFbConsultationUserLink::getBusinessId, processAll.getProjectId()); + String userId = CurrentUserUtil.getId(); + switch (taskDefinitionKey) { + case ConsultationTaskKey.MODULE_OWNER_START: // 模块负责人分发 + queryWrapper.eq(ProcessFbConsultationUserLink::getDepartLeaderId, userId); + queryWrapper.eq(ProcessFbConsultationUserLink::getModuleOwnerId, assignee); + break; + default: + log.info("{}没有监听任务", taskDefinitionKey); + return; + } + ProcessFbConsultationUserLink userLink = processFbConsultationUserLinkService.getOne(queryWrapper); + delegateTask.setFormKey(userLink.getId()); + + log.info("================================任务监听器================================="); + log.info("任务id: {}", delegateTask.getId()); + log.info("taskDefinitionKey: {}", taskDefinitionKey); + log.info("assignee: {}", assignee); + log.info("======================================================================="); + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java index e4157cf7..bfa592de 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java @@ -86,7 +86,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl departLeaderList = Arrays.asList(departLeaders.split(",")); @@ -107,7 +107,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl processInfoVO, boolean pass) { - + throw new JeroBootException("目前还未开发,请联系管理员"); } /** @@ -117,7 +117,17 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl processInfoVO) { + // 保存业务信息 + ProcessFbStandardConsultationVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + ProcessFbStandardConsultation processFbStandardConsultation = businessInfoDTO.getProcessFbStandardConsultation(); + ProcessFbConsultationUserLink processFbConsultationUserLink = businessInfoDTO.getProcessFbConsultationUserLink(); + List processFbConsultationLists = businessInfoDTO.getProcessFbConsultationLists(); + // 流程信息 + BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO(); + basicProcessInfoDTO.setProcessType(ProcessTypeEnum.FB_STANDARD_CONSULTATION.getValue()); // 流程类型 + + processHandleService.saveToDraft(processInfoVO); } /** @@ -173,20 +183,29 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl processInfoVO) { ProcessFbStandardConsultationVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); // 全部业务信息 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 70e82e24..cf92e3a7 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 @@ -1,6 +1,5 @@ package com.jero.modules.activiti.process.fb.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.exception.JeroBootException; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; @@ -22,6 +21,7 @@ import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import org.activiti.engine.runtime.Execution; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.apache.commons.lang3.StringUtils; @@ -62,6 +62,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { * @Description: 启动流程 **/ @Override + @Transactional public String startProcess(ProcessInfoVO processInfoVO) { // 删除自己的草稿 deleteMyDraft(processInfoVO.getBusinessId()); @@ -94,14 +95,18 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { basicTaskInfoDTO.setCommitFlag(CommitFlagEnum.PASS.getValue()); // 审批意见(1通过,2驳回) updateApprovalRecord(processInfoVO); + Execution execution = runtimeService.createExecutionQuery().executionId(task.getExecutionId()).singleResult(); + log.info("================================启动流程================================="); + log.info("流程定义id: {}", processDefinitionId); + log.info("流程实例id: {}", processInstanceId); + log.info("任务ExecutionId: {}", task.getExecutionId()); + log.info("任务SuperExecutionId: {}", execution.getSuperExecutionId()); + log.info("任务ParentTaskId: {}", task.getParentTaskId()); + log.info("======================================================================="); + // 完成任务 taskService.complete(taskId); - System.out.println("================================启动流程================================="); - System.out.println("流程定义id: " + processDefinitionId); - System.out.println("流程实例id: " + processInstanceId); - System.out.println("======================================================================="); - return processInstanceId; } @@ -294,12 +299,12 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { * @Description: 删除自己的草稿 **/ private void deleteMyDraft(String businessId) { - if (StringUtils.isNotBlank(businessId)) { + /*if (StringUtils.isNotBlank(businessId)) { LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper<>(); deleteWrapper.eq(ProcessDraft::getProjectId, businessId); deleteWrapper.eq(ProcessDraft::getUserId, CurrentUserUtil.getId()); processDraftService.remove(deleteWrapper); - } + }*/ } /** diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java index 74217a14..9b42e9f7 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java @@ -17,8 +17,7 @@ import com.jero.modules.personal.service.ILawsStandardCollectionService; import com.jero.modules.personal.service.ILawsStandardSharingService; import com.jero.modules.tag.entity.LawsTag; import com.jero.modules.tag.enums.TableNameEnum; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.*; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -57,7 +56,7 @@ public class LawsDomesticController { @PostMapping(value = "/getCommonPage") @ApiOperationSupport(order = 1) @RequiresPermissions("domesticStandard:search") - public Result>> getCommonPage(@RequestBody Map parameterMap) { + public Result>> getCommonPage(@RequestBody @ApiParam("标签管理") Map parameterMap) { parameterMap.put(FieldCommon.MODULE, MODULE_VALUE); return Result.OK(lawsCommonService.getCommonPage(parameterMap)); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java index 717785eb..660f30cd 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java @@ -25,9 +25,7 @@ import com.jero.modules.personal.service.ILawsStandardSharingService; import com.jero.modules.sys.utils.UserUtils; import com.jero.modules.tag.entity.LawsTag; import com.jero.modules.tag.enums.TableNameEnum; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.annotations.*; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -76,7 +74,7 @@ public class LawsEnterpriseController { @PostMapping(value = "/getCommonPage") @ApiOperationSupport(order = 1) @RequiresPermissions("enterpriseStandard:search") - public Result>> getCommonPage(@RequestBody Map parameterMap) { + public Result>> getCommonPage(@RequestBody @ApiParam("标签管理") Map parameterMap) { parameterMap.put(FieldCommon.MODULE, MODULE_VALUE); return Result.OK(lawsCommonService.getCommonPage(parameterMap)); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java index ebbe55f1..73aae5e8 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java @@ -17,8 +17,7 @@ import com.jero.modules.personal.service.ILawsStandardCollectionService; import com.jero.modules.personal.service.ILawsStandardSharingService; import com.jero.modules.tag.entity.LawsTag; import com.jero.modules.tag.enums.TableNameEnum; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.*; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -57,7 +56,7 @@ public class LawsOverseasController { @PostMapping(value = "/getCommonPage") @ApiOperationSupport(order = 1) @RequiresPermissions("overseasStandard:search") - public Result>> getCommonPage(@RequestBody Map parameterMap) { + public Result>> getCommonPage(@RequestBody @ApiParam("标签管理") Map parameterMap) { parameterMap.put(FieldCommon.MODULE, MODULE_VALUE); return Result.OK(lawsCommonService.getCommonPage(parameterMap)); } diff --git a/laws-modules/src/main/resources/bpmn/标准征求意见流程.bpmn b/laws-modules/src/main/resources/bpmn/标准征求意见流程.bpmn index 2e6b3885..9b5ee05c 100644 --- a/laws-modules/src/main/resources/bpmn/标准征求意见流程.bpmn +++ b/laws-modules/src/main/resources/bpmn/标准征求意见流程.bpmn @@ -5,6 +5,9 @@ Flow_1d5objw + + + Flow_1d5objw Flow_0azsibi @@ -19,6 +22,9 @@ Flow_1gv6jmb + + + Flow_1gv6jmb Flow_0hpm8eq @@ -30,6 +36,9 @@ + + + Flow_05oz1ja Flow_09jjte7 @@ -40,6 +49,9 @@ ${!passFirst} + + + Flow_0oc8671 Flow_14aeapm Flow_18olfei @@ -55,11 +67,17 @@ Flow_13krhma + + + Flow_13krhma Flow_0e4x3wm + + + Flow_0e4x3wm Flow_0vnqotz @@ -68,6 +86,9 @@ + + + Flow_0vnqotz Flow_05e6l5d @@ -98,11 +119,17 @@ ${!passSecond} + + + Flow_09jjte7 Flow_0qai32h + + + Flow_0f48izh Flow_14aeapm @@ -113,6 +140,9 @@ + + + Flow_19vxot3 Flow_0g6wwzz Flow_1f5fu60 @@ -136,6 +166,9 @@ ${passThird == 2} + + + Flow_1aeqdsv Flow_0g6wwzz @@ -153,6 +186,9 @@ Flow_07p5ivp + + + Flow_1ft2poj Flow_0q5ae61 Flow_0mdmcs5 @@ -161,6 +197,9 @@ + + + Flow_0mdmcs5 Flow_0flbibd @@ -181,6 +220,9 @@ ${!passSecond} + + + Flow_07p5ivp Flow_0q5ae61