update 项目合规评估流程 部分节点增加createListener
This commit is contained in:
@@ -126,5 +126,10 @@ public class ResultCommon {
|
|||||||
*/
|
*/
|
||||||
public static final String EN_STANDARD_NUMBER_CONFLICT = "en.standard.number.conflict";
|
public static final String EN_STANDARD_NUMBER_CONFLICT = "en.standard.number.conflict";
|
||||||
|
|
||||||
|
// ---------项目合规评估流程---------
|
||||||
|
/**
|
||||||
|
* 模块负责人不能为空
|
||||||
|
*/
|
||||||
|
public static final String ProjectAssess = "en.standard.number.conflict";
|
||||||
|
// ---------项目合规评估流程---------
|
||||||
}
|
}
|
||||||
|
|||||||
+9
@@ -1,5 +1,6 @@
|
|||||||
package com.jero.modules.activiti.process.fb.service.impl;
|
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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.modules.activiti.entity.ProcessAll;
|
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.enums.FinishFlagEnum;
|
||||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
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.BasicProcessInfoDTO;
|
||||||
import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
|
import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
|
||||||
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
|
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.activiti.service.ProcessNodeService;
|
||||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.activiti.engine.HistoryService;
|
||||||
import org.activiti.engine.RepositoryService;
|
import org.activiti.engine.RepositoryService;
|
||||||
import org.activiti.engine.RuntimeService;
|
import org.activiti.engine.RuntimeService;
|
||||||
import org.activiti.engine.TaskService;
|
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.Execution;
|
||||||
|
import org.activiti.engine.runtime.ExecutionQuery;
|
||||||
import org.activiti.engine.runtime.ProcessInstance;
|
import org.activiti.engine.runtime.ProcessInstance;
|
||||||
import org.activiti.engine.task.Task;
|
import org.activiti.engine.task.Task;
|
||||||
|
import org.activiti.engine.task.TaskInfo;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -50,6 +57,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
|||||||
@Resource
|
@Resource
|
||||||
private TaskService taskService;
|
private TaskService taskService;
|
||||||
@Resource
|
@Resource
|
||||||
|
private HistoryService historyService;
|
||||||
|
@Resource
|
||||||
private RepositoryService repositoryService;
|
private RepositoryService repositoryService;
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessAllService processAllService; // 流程实例总表
|
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.constant.enums.YesOrNoEnum;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.common.system.api.ISysBaseAPI;
|
import com.jero.common.system.api.ISysBaseAPI;
|
||||||
import com.jero.common.system.vo.ComboModel;
|
|
||||||
import com.jero.common.system.vo.LoginUser;
|
import com.jero.common.system.vo.LoginUser;
|
||||||
import com.jero.modules.activiti.entity.ProcessAll;
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
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.fb.vo.ProcessInfoVO;
|
||||||
import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO;
|
import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO;
|
||||||
import com.jero.modules.activiti.service.ProcessAllService;
|
import com.jero.modules.activiti.service.ProcessAllService;
|
||||||
|
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||||
|
import org.activiti.engine.RuntimeService;
|
||||||
import org.activiti.engine.TaskService;
|
import org.activiti.engine.TaskService;
|
||||||
|
import org.activiti.engine.delegate.DelegateTask;
|
||||||
import org.activiti.engine.runtime.Execution;
|
import org.activiti.engine.runtime.Execution;
|
||||||
import org.activiti.engine.task.Task;
|
import org.activiti.engine.task.Task;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -56,8 +58,12 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
@Resource
|
@Resource
|
||||||
private ProcessAllService processAllService;
|
private ProcessAllService processAllService;
|
||||||
@Resource
|
@Resource
|
||||||
|
private ProcessApprovalRecordService processApprovalRecordService;
|
||||||
|
@Resource
|
||||||
private TaskService taskService;
|
private TaskService taskService;
|
||||||
@Resource
|
@Resource
|
||||||
|
private RuntimeService runtimeService;
|
||||||
|
@Resource
|
||||||
private ProcessProjectAssessLinkService processProjectAssessLinkService;
|
private ProcessProjectAssessLinkService processProjectAssessLinkService;
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessProjectAssessTermService processProjectAssessTermService;
|
private ProcessProjectAssessTermService processProjectAssessTermService;
|
||||||
@@ -88,9 +94,11 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||||
String originUserId = processApprovalRecord.getOriginUserId();
|
String originUserId = processApprovalRecord.getOriginUserId();
|
||||||
Task task = processDTO.getTask();
|
Task task = processDTO.getTask();
|
||||||
|
|
||||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||||
Execution execution = processDTO.getExecution();
|
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<ProcessProjectAssessTermUser> processProjectAssessTermUserList = new ArrayList<>();
|
||||||
List<ProcessProjectAssessTerm> processProjectAssessTermList = new ArrayList<>();
|
List<ProcessProjectAssessTerm> processProjectAssessTermList = new ArrayList<>();
|
||||||
//获取所有用户信息
|
//获取所有用户信息
|
||||||
@@ -286,21 +294,42 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
Task task = processDTO.getTask();
|
Task task = processDTO.getTask();
|
||||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||||
switch (taskDefinitionKey) {
|
switch (taskDefinitionKey) {
|
||||||
|
//各部门主管级领导下发
|
||||||
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
||||||
gbmzgjldxfSubmit(processInfoVO,processDTO);
|
gbmzgjldxfSubmit(processInfoVO,processDTO);
|
||||||
break;
|
break;
|
||||||
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
//模块负责人分发
|
||||||
break;
|
|
||||||
case ProcessProjectAssessCommon.MKFZRFF:
|
case ProcessProjectAssessCommon.MKFZRFF:
|
||||||
|
mkfzrffSubmit(processInfoVO,processDTO);
|
||||||
break;
|
break;
|
||||||
|
//设计工程师评估
|
||||||
case ProcessProjectAssessCommon.SJGCSPG:
|
case ProcessProjectAssessCommon.SJGCSPG:
|
||||||
break;
|
break;
|
||||||
|
//模块负责人修改
|
||||||
|
case ProcessProjectAssessCommon.MKFZRXG:
|
||||||
|
break;
|
||||||
|
//法规工程师归档
|
||||||
|
case ProcessProjectAssessCommon.FGGCSGD:
|
||||||
|
break;
|
||||||
default:
|
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) {
|
private void gbmzgjldxfSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||||
String businessId = processInfoVO.getBusinessId();
|
String businessId = processInfoVO.getBusinessId();
|
||||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||||
@@ -349,11 +378,15 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
processProjectAssessTermUserService.saveBatch(allTermUserList);
|
processProjectAssessTermUserService.saveBatch(allTermUserList);
|
||||||
|
if (moduleOwnerIds.isEmpty()){
|
||||||
|
throw new JeroBootException(ResultCommon.ProjectAssess);
|
||||||
|
}
|
||||||
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.GBMZGJLDXF, moduleOwnerIds);
|
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.GBMZGJLDXF, moduleOwnerIds);
|
||||||
// 完成任务
|
// 完成任务
|
||||||
String taskId = processDTO.getTaskId();
|
String taskId = processDTO.getTaskId();
|
||||||
Map<String, Object> variables = new HashMap<>();
|
Map<String, Object> variables = new HashMap<>();
|
||||||
variables.put(ProcessProjectAssessCommon.MODULE_OWNER_LIST, moduleOwnerIds);
|
variables.put(ProcessProjectAssessCommon.MODULE_OWNER_LIST, moduleOwnerIds);
|
||||||
|
variables.put("flowIndex", executionId);
|
||||||
taskService.complete(taskId,variables);
|
taskService.complete(taskId,variables);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -372,4 +405,44 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
|||||||
|
|
||||||
processHandleService.saveToDraft(processInfoVO);
|
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.api.ISysBaseAPI;
|
||||||
import com.jero.common.system.query.QueryGenerator;
|
import com.jero.common.system.query.QueryGenerator;
|
||||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||||
|
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -51,4 +52,15 @@ public class ProcessApprovalRecordService extends ServiceImpl<ProcessApprovalRec
|
|||||||
}
|
}
|
||||||
return pageList;
|
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