add 注解

This commit is contained in:
liao
2023-11-20 15:44:32 +08:00
parent d3cf0ae1fc
commit 4655da0fa8
10 changed files with 166 additions and 32 deletions
@@ -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 = "标准编号")
@@ -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);
}
}
@@ -1,9 +0,0 @@
package com.jero.modules.activiti.process.fb.listener;
/**
* @Author: liao
* @Date: 2023/11/13 17:01
* @Description: 设置子流程变量名
*/
public class SetVariableListener {
}
@@ -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<ProcessFbConsultationUserLink> 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("=======================================================================");
}
}
@@ -86,7 +86,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
basicProcessInfoDTO.setProcessDefinitionId(processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.FB_STANDARD_CONSULTATION)); // 流程定义id
basicProcessInfoDTO.setProcessName(businessInfoDTO.getStandardNumber() + "-" + businessInfoDTO.getStandardName() + "-" + "征求意见"); // 流程名称
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.FB_STANDARD_CONSULTATION.getValue()); // 流程类型
String processInstanceId = processHandleService.startProcess(processInfoVO);
processHandleService.startProcess(processInfoVO);
// 把各部所主管级领导数据存入关联人员表
List<String> departLeaderList = Arrays.asList(departLeaders.split(","));
@@ -107,7 +107,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
**/
@Override
public void approveTask(ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO, boolean pass) {
throw new JeroBootException("目前还未开发,请联系管理员");
}
/**
@@ -117,7 +117,17 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
**/
@Override
public void saveToDraft(ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO) {
// 保存业务信息
ProcessFbStandardConsultationVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
ProcessFbStandardConsultation processFbStandardConsultation = businessInfoDTO.getProcessFbStandardConsultation();
ProcessFbConsultationUserLink processFbConsultationUserLink = businessInfoDTO.getProcessFbConsultationUserLink();
List<ProcessFbConsultationList> 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<Proces
case ConsultationTaskKey.DEPART_LEADER_START_1:
processDepartLeaderStart_1(processInfoVO); // 各部所主管级领导分发
break;
case ConsultationTaskKey.DESIGN_ENGINEER_2: // 设计工程师填写征求意见(直接
case ConsultationTaskKey.DESIGN_ENGINEER_2: // 设计工程师填写征求意见(不分发给模块负责人
processEngineer_2(processInfoVO);
break;
default:
throw new JeroBootException("目前还未开发,请联系管理员");
}
taskInfo.setCommitFlag(CommitFlagEnum.PASS.getValue());
processHandleService.updateApprovalRecord(processInfoVO);
//processHandleService.updateApprovalRecord(processInfoVO);
Execution execution = runtimeService.createExecutionQuery().executionId(task.getExecutionId()).singleResult();
log.info("================================流程节点=================================");
log.info("任务Id: {}", task.getId());
log.info("任务ProcessInstanceId: {}", task.getProcessInstanceId());
log.info("任务ExecutionId: {}", task.getExecutionId());
log.info("任务SuperExecutionId: {}", execution.getSuperExecutionId());
log.info("任务ParentTaskId: {}", task.getParentTaskId());
log.info("=======================================================================");
}
/**
* @Author: liao
* @Date: 2023/11/16 15:46
* @Description: 设计工程师填写征求意见(直接
* @Description: 设计工程师填写征求意见(不分发给模块负责人
**/
private void processEngineer_2(ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO) {
ProcessFbStandardConsultationVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); // 全部业务信息
@@ -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<ProcessDraft> deleteWrapper = new LambdaQueryWrapper<>();
deleteWrapper.eq(ProcessDraft::getProjectId, businessId);
deleteWrapper.eq(ProcessDraft::getUserId, CurrentUserUtil.getId());
processDraftService.remove(deleteWrapper);
}
}*/
}
/**
@@ -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<IPage<Map<String,Object>>> getCommonPage(@RequestBody Map<String,Object> parameterMap) {
public Result<IPage<Map<String,Object>>> getCommonPage(@RequestBody @ApiParam("标签管理") Map<String,Object> parameterMap) {
parameterMap.put(FieldCommon.MODULE, MODULE_VALUE);
return Result.OK(lawsCommonService.getCommonPage(parameterMap));
}
@@ -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<IPage<Map<String,Object>>> getCommonPage(@RequestBody Map<String,Object> parameterMap) {
public Result<IPage<Map<String,Object>>> getCommonPage(@RequestBody @ApiParam("标签管理") Map<String,Object> parameterMap) {
parameterMap.put(FieldCommon.MODULE, MODULE_VALUE);
return Result.OK(lawsCommonService.getCommonPage(parameterMap));
}
@@ -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<IPage<Map<String,Object>>> getCommonPage(@RequestBody Map<String,Object> parameterMap) {
public Result<IPage<Map<String,Object>>> getCommonPage(@RequestBody @ApiParam("标签管理") Map<String,Object> parameterMap) {
parameterMap.put(FieldCommon.MODULE, MODULE_VALUE);
return Result.OK(lawsCommonService.getCommonPage(parameterMap));
}
@@ -5,6 +5,9 @@
<bpmn:outgoing>Flow_1d5objw</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="engineer_start" name="法规工程师发起" activiti:assignee="${engineer}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_1d5objw</bpmn:incoming>
<bpmn:outgoing>Flow_0azsibi</bpmn:outgoing>
</bpmn:userTask>
@@ -19,6 +22,9 @@
<bpmn:outgoing>Flow_1gv6jmb</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="depart_leader_start_1" name="各部所主管级领导分发" activiti:assignee="${departLeader}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_1gv6jmb</bpmn:incoming>
<bpmn:outgoing>Flow_0hpm8eq</bpmn:outgoing>
</bpmn:userTask>
@@ -30,6 +36,9 @@
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_0hpm8eq" sourceRef="depart_leader_start_1" targetRef="Gateway_0mogtm0" />
<bpmn:userTask id="design_engineer_2" name="设计工程师填写征求意见" activiti:assignee="${designEngineer}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_05oz1ja</bpmn:incoming>
<bpmn:outgoing>Flow_09jjte7</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics activiti:collection="designEngineerList" activiti:elementVariable="designEngineer">
@@ -40,6 +49,9 @@
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!passFirst}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="depart_leader_end_1" name="各部所主管级领导审批" activiti:assignee="${departLeader}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0oc8671</bpmn:incoming>
<bpmn:incoming>Flow_14aeapm</bpmn:incoming>
<bpmn:outgoing>Flow_18olfei</bpmn:outgoing>
@@ -55,11 +67,17 @@
<bpmn:outgoing>Flow_13krhma</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="module_owner_start" name="模块负责人分发(可跳过)" activiti:assignee="${moduleOwner}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_13krhma</bpmn:incoming>
<bpmn:outgoing>Flow_0e4x3wm</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_13krhma" sourceRef="Event_15afvr9" targetRef="module_owner_start" />
<bpmn:userTask id="design_engineer_1" name="设计工程师填写征求意见" activiti:assignee="${designEngineer}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0e4x3wm</bpmn:incoming>
<bpmn:outgoing>Flow_0vnqotz</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics activiti:collection="designEngineerList" activiti:elementVariable="designEngineer">
@@ -68,6 +86,9 @@
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_0e4x3wm" sourceRef="module_owner_start" targetRef="design_engineer_1" />
<bpmn:userTask id="module_owner_end_1" name="模块负责人汇总填写意见(可跳过)" activiti:assignee="${moduleOwner}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0vnqotz</bpmn:incoming>
<bpmn:outgoing>Flow_05e6l5d</bpmn:outgoing>
</bpmn:userTask>
@@ -98,11 +119,17 @@
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!passSecond}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="depart_leader_collect_2" name="各部所主管级领导汇总" activiti:assignee="${departLeader}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_09jjte7</bpmn:incoming>
<bpmn:outgoing>Flow_0qai32h</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_0qai32h" sourceRef="depart_leader_collect_2" targetRef="Event_0r7jsfk" />
<bpmn:userTask id="module_owner_end_2" name="模块负责人汇总填写意见(可跳过)" activiti:assignee="${moduleOwner}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0f48izh</bpmn:incoming>
<bpmn:outgoing>Flow_14aeapm</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics activiti:collection="moduleOwnerList" activiti:elementVariable="moduleOwner">
@@ -113,6 +140,9 @@
</bpmn:subProcess>
<bpmn:sequenceFlow id="Flow_0azsibi" sourceRef="engineer_start" targetRef="sub_process_1" />
<bpmn:userTask id="engineer_start_end" name="法规工程师审批" activiti:assignee="${engineer}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_19vxot3</bpmn:incoming>
<bpmn:incoming>Flow_0g6wwzz</bpmn:incoming>
<bpmn:incoming>Flow_1f5fu60</bpmn:incoming>
@@ -136,6 +166,9 @@
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${passThird == 2}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="depart_leader_collect_3" name="各部所主管级领导汇总">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_1aeqdsv</bpmn:incoming>
<bpmn:outgoing>Flow_0g6wwzz</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics activiti:collection="departLeaderList" activiti:elementVariable="departLeader">
@@ -153,6 +186,9 @@
<bpmn:outgoing>Flow_07p5ivp</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="module_owner_end_3" name="模块负责人汇总填写意见(可跳过)">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_1ft2poj</bpmn:incoming>
<bpmn:incoming>Flow_0q5ae61</bpmn:incoming>
<bpmn:outgoing>Flow_0mdmcs5</bpmn:outgoing>
@@ -161,6 +197,9 @@
</bpmn:multiInstanceLoopCharacteristics>
</bpmn:userTask>
<bpmn:userTask id="depart_leader_end_4" name="各部所主管级领导审批" activiti:assignee="${departLeader}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0mdmcs5</bpmn:incoming>
<bpmn:outgoing>Flow_0flbibd</bpmn:outgoing>
</bpmn:userTask>
@@ -181,6 +220,9 @@
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!passSecond}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="depart_leader_start_2" name="各部所主管级领导审批" activiti:assignee="${departLeader}">
<bpmn:extensionElements>
<activiti:taskListener class="com.jero.modules.activiti.process.fb.listener.BusinessKeyListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_07p5ivp</bpmn:incoming>
<bpmn:outgoing>Flow_0q5ae61</bpmn:outgoing>
</bpmn:userTask>