update 项目合规评估流程 部分节点增加createListener
This commit is contained in:
+9
@@ -1,5 +1,6 @@
|
||||
package com.jero.modules.activiti.process.fb.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
@@ -10,6 +11,7 @@ import com.jero.modules.activiti.enums.CommitFlagEnum;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||
import com.jero.modules.activiti.process.fb.common.FbCommon;
|
||||
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
||||
import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
|
||||
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
|
||||
@@ -22,12 +24,17 @@ import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.modules.activiti.service.ProcessNodeService;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.HistoryService;
|
||||
import org.activiti.engine.RepositoryService;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.history.HistoricTaskInstance;
|
||||
import org.activiti.engine.history.HistoricTaskInstanceQuery;
|
||||
import org.activiti.engine.runtime.Execution;
|
||||
import org.activiti.engine.runtime.ExecutionQuery;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.activiti.engine.task.TaskInfo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -50,6 +57,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private HistoryService historyService;
|
||||
@Resource
|
||||
private RepositoryService repositoryService;
|
||||
@Resource
|
||||
private ProcessAllService processAllService; // 流程实例总表
|
||||
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
package com.jero.modules.activiti.process.projectassess.listener;
|
||||
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.process.projectassess.service.ProcessProjectAssessService;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.util.SpringContextUtil;
|
||||
import org.activiti.engine.delegate.DelegateTask;
|
||||
import org.activiti.engine.delegate.TaskListener;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2023-10-13 16:43
|
||||
*/
|
||||
public class ProcessProjectAssessCreateListener implements TaskListener {
|
||||
@Override
|
||||
public void notify(DelegateTask delegateTask) {
|
||||
ProcessProjectAssessService processProjectAssessService = SpringContextUtil.getBean(ProcessProjectAssessService.class);
|
||||
processProjectAssessService.createListener(delegateTask);
|
||||
}
|
||||
}
|
||||
+77
-4
@@ -8,7 +8,6 @@ import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.ComboModel;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
@@ -26,8 +25,11 @@ import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAsse
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.delegate.DelegateTask;
|
||||
import org.activiti.engine.runtime.Execution;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -56,8 +58,12 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
@Resource
|
||||
private ProcessAllService processAllService;
|
||||
@Resource
|
||||
private ProcessApprovalRecordService processApprovalRecordService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
@Resource
|
||||
private ProcessProjectAssessLinkService processProjectAssessLinkService;
|
||||
@Resource
|
||||
private ProcessProjectAssessTermService processProjectAssessTermService;
|
||||
@@ -88,9 +94,11 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||
String originUserId = processApprovalRecord.getOriginUserId();
|
||||
Task task = processDTO.getTask();
|
||||
|
||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||
Execution execution = processDTO.getExecution();
|
||||
String executionParentId = execution.getParentId();
|
||||
String executionParentId = (String) runtimeService.getVariable(execution.getId(),"flowIndex");
|
||||
//String executionParentId = execution.getParentId();
|
||||
List<ProcessProjectAssessTermUser> processProjectAssessTermUserList = new ArrayList<>();
|
||||
List<ProcessProjectAssessTerm> processProjectAssessTermList = new ArrayList<>();
|
||||
//获取所有用户信息
|
||||
@@ -286,21 +294,42 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
Task task = processDTO.getTask();
|
||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||
switch (taskDefinitionKey) {
|
||||
//各部门主管级领导下发
|
||||
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
||||
gbmzgjldxfSubmit(processInfoVO,processDTO);
|
||||
break;
|
||||
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
||||
break;
|
||||
//模块负责人分发
|
||||
case ProcessProjectAssessCommon.MKFZRFF:
|
||||
mkfzrffSubmit(processInfoVO,processDTO);
|
||||
break;
|
||||
//设计工程师评估
|
||||
case ProcessProjectAssessCommon.SJGCSPG:
|
||||
break;
|
||||
//模块负责人修改
|
||||
case ProcessProjectAssessCommon.MKFZRXG:
|
||||
break;
|
||||
//法规工程师归档
|
||||
case ProcessProjectAssessCommon.FGGCSGD:
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void mkfzrffSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||
String businessId = processInfoVO.getBusinessId();
|
||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||
String originUserId = processApprovalRecord.getOriginUserId();
|
||||
Task task = processDTO.getTask();
|
||||
String executionId = task.getExecutionId();
|
||||
// 删除原先存储的关联
|
||||
LambdaQueryWrapper<ProcessProjectAssessTermUser> removeWrapper = new LambdaQueryWrapper<>();
|
||||
removeWrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, businessId);
|
||||
removeWrapper.eq(ProcessProjectAssessTermUser::getResponsibleUnitLeader, originUserId);
|
||||
processProjectAssessTermUserService.remove(removeWrapper);
|
||||
}
|
||||
|
||||
private void gbmzgjldxfSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||
String businessId = processInfoVO.getBusinessId();
|
||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||
@@ -349,11 +378,15 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
}
|
||||
}
|
||||
processProjectAssessTermUserService.saveBatch(allTermUserList);
|
||||
if (moduleOwnerIds.isEmpty()){
|
||||
throw new JeroBootException(ResultCommon.ProjectAssess);
|
||||
}
|
||||
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.GBMZGJLDXF, moduleOwnerIds);
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put(ProcessProjectAssessCommon.MODULE_OWNER_LIST, moduleOwnerIds);
|
||||
variables.put("flowIndex", executionId);
|
||||
taskService.complete(taskId,variables);
|
||||
}
|
||||
|
||||
@@ -372,4 +405,44 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
|
||||
processHandleService.saveToDraft(processInfoVO);
|
||||
}
|
||||
|
||||
public void createListener(DelegateTask delegateTask) {
|
||||
String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
|
||||
String assignee = delegateTask.getAssignee();
|
||||
String processInstanceId = delegateTask.getProcessInstanceId();
|
||||
//查询我最新提交的task
|
||||
ProcessApprovalRecord myLastComplete = processApprovalRecordService.getMyLastComplete(processInstanceId);
|
||||
String lastCompleteTaskId = myLastComplete.getTaskId();
|
||||
ProcessDTO processDTO = processHandleService.getProcessDTO(lastCompleteTaskId);
|
||||
Execution execution = processDTO.getExecution();
|
||||
delegateTask.setFormKey(execution.getId());
|
||||
switch (taskDefinitionKey) {
|
||||
//各部门主管级领导下发
|
||||
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
||||
break;
|
||||
//各部门主管级领导(汇总)审批
|
||||
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
||||
|
||||
break;
|
||||
//模块负责人分发
|
||||
case ProcessProjectAssessCommon.MKFZRFF:
|
||||
break;
|
||||
//模块负责人审批
|
||||
case ProcessProjectAssessCommon.MKFZRSP:
|
||||
//模块负责人修改
|
||||
case ProcessProjectAssessCommon.MKFZRXG:
|
||||
|
||||
break;
|
||||
//设计工程师评估
|
||||
case ProcessProjectAssessCommon.SJGCSPG:
|
||||
|
||||
break;
|
||||
//法规工程师归档
|
||||
case ProcessProjectAssessCommon.FGGCSGD:
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+12
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
@@ -51,4 +52,15 @@ public class ProcessApprovalRecordService extends ServiceImpl<ProcessApprovalRec
|
||||
}
|
||||
return pageList;
|
||||
}
|
||||
|
||||
public ProcessApprovalRecord getMyLastComplete(String processInstanceId) {
|
||||
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
|
||||
wrapper.eq(ProcessApprovalRecord::getUserId, CurrentUserUtil.getId());
|
||||
wrapper.eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.COMPLETE.getValue());
|
||||
wrapper.orderByDesc(ProcessApprovalRecord::getEndTime);
|
||||
wrapper.last("limit 1");
|
||||
ProcessApprovalRecord approvalRecord = this.getOne(wrapper);
|
||||
return approvalRecord;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user