feat(企标稽查计划): 完善流程

This commit is contained in:
yjz
2023-11-16 10:59:12 +08:00
parent d474aef1af
commit 6c9650354b
5 changed files with 31 additions and 72 deletions
@@ -20,6 +20,7 @@ public enum ProcessType {
ES_CHANGE("企标变更流程", "7", "es-change", "ProcessEsChangeServiceImpl"), ES_CHANGE("企标变更流程", "7", "es-change", "ProcessEsChangeServiceImpl"),
ES_RECHECK("企标复审流程", "8", "es-recheck", "ProcessEsRecheckServiceImpl"), ES_RECHECK("企标复审流程", "8", "es-recheck", "ProcessEsRecheckServiceImpl"),
ES_ENABLE("已封存企标启用流程", "9", "es-enable", "ProcessEsEnableServiceImpl"), ES_ENABLE("已封存企标启用流程", "9", "es-enable", "ProcessEsEnableServiceImpl"),
ES_INSPECT_PLAN("企标稽查计划", "16", "es-inspect_plan", "ProcessEsInspectPlanServiceImpl"),
; ;
private final String name; private final String name;
@@ -15,7 +15,7 @@ public class EsInspectPlanCommon {
/** /**
* 企标稽查计划key * 企标稽查计划key
*/ */
public static final String KEY = "Process_1dgrvyk"; public static final String KEY = "inspect_plan";
/** /**
* 企标稽查计划key * 企标稽查计划key
@@ -23,12 +23,20 @@ public class EsInspectPlanCommon {
public static final String NAME = "企业稽查计划"; public static final String NAME = "企业稽查计划";
/** /**
* 网关判断 * 企业稽查计划流程开始节点
*/ */
public static final String PASS = "pass"; public static final String PROCESS_NODE_START = "稽查联络人发起计划";
/**
* 企业稽查计划流程结束节点
*/
public static final String PROCESS_NODE_END = "联络人主管级领导批准";
/** /**
* 会签 *审批意见 1:通过 2:驳回
*/ */
public static final String INVOLVE_LIST = "involveList"; public static final String PROCESS_COMMIT_FLAG_1 = "1";
/**
*审批意见 1:通过 2:驳回
*/
public static final String PROCESS_COMMIT_FLAG_2 = "2";
} }
@@ -9,7 +9,6 @@ import com.jero.common.util.SnowflakeUtils;
import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.entity.ProcessNode;
import com.jero.modules.activiti.process.esinspectplan.service.IEsInspectPlanFlowService; import com.jero.modules.activiti.process.esinspectplan.service.IEsInspectPlanFlowService;
import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO; import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO;
import com.jero.modules.activiti.process.esinspectplan.vo.FlowRefusalVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -110,16 +109,4 @@ public class EsInspectPlanFlowController {
esInspectPlanFlowService.flowTransfer(taskId, userId); esInspectPlanFlowService.flowTransfer(taskId, userId);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
} }
/**
* 企标稽查计划流程-流程驳回
* @return 结果对象
*/
@AutoLog(value = "企标稽查计划流程-流程驳回")
@ApiOperation(value="企标稽查计划流程-流程驳回", notes="企标稽查计划流程-流程驳回")
@PostMapping(value = "/flowRefusal")
public Result<T> flowRefusal(@RequestBody FlowRefusalVO flowRefusalVO) {
esInspectPlanFlowService.flowRefusal(flowRefusalVO);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
} }
@@ -2,7 +2,6 @@ package com.jero.modules.activiti.process.esinspectplan.service;
import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.entity.ProcessNode;
import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO; import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO;
import com.jero.modules.activiti.process.esinspectplan.vo.FlowRefusalVO;
import java.util.List; import java.util.List;
@@ -46,11 +45,4 @@ public interface IEsInspectPlanFlowService {
* @param userId * @param userId
*/ */
void flowTransfer(String taskId, String userId); void flowTransfer(String taskId, String userId);
/**
* 企标稽查计划流程-流程驳回
*
* @param flowRefusalVO
*/
void flowRefusal(FlowRefusalVO flowRefusalVO);
} }
@@ -11,13 +11,11 @@ import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.entity.ProcessNode;
import com.jero.modules.activiti.entity.ProcessNodeLink; import com.jero.modules.activiti.entity.ProcessNodeLink;
import com.jero.modules.activiti.enums.FinishFlagEnum; import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esinspectplan.common.EsInspectPlanCommon; import com.jero.modules.activiti.process.esinspectplan.common.EsInspectPlanCommon;
import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan; import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan;
import com.jero.modules.activiti.process.esinspectplan.service.IEsInspectPlanFlowService; import com.jero.modules.activiti.process.esinspectplan.service.IEsInspectPlanFlowService;
import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService; import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService;
import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO; import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO;
import com.jero.modules.activiti.process.esinspectplan.vo.FlowRefusalVO;
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.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -31,6 +29,7 @@ import org.activiti.engine.repository.ProcessDefinition;
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.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -51,41 +50,36 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
private final ProcessAllService processAllService; private final ProcessAllService processAllService;
private final ProcessApprovalRecordService processApprovalRecordService; private final ProcessApprovalRecordService processApprovalRecordService;
private final IProcessEsInspectPlanService processEsInspectPlanService; private final IProcessEsInspectPlanService processEsInspectPlanService;
private final TaskService taskService;
private final RepositoryService repositoryService; private final RepositoryService repositoryService;
private final ISysUserService sysUserService; private final ISysUserService sysUserService;
private final ProcessNodeService processNodeService; private final ProcessNodeService processNodeService;
private final ProcessNodeLinkService processNodeLinkService; private final ProcessNodeLinkService processNodeLinkService;
private final ActFlowCommonService actFlowCommonService;
private final SendMessageAPI sendMessageAPI; private final SendMessageAPI sendMessageAPI;
public EsInspectPlanFlowServiceImpl(ProcessAllService processAllService, public EsInspectPlanFlowServiceImpl(ProcessAllService processAllService,
ProcessApprovalRecordService processApprovalRecordService, ProcessApprovalRecordService processApprovalRecordService,
IProcessEsInspectPlanService processEsInspectPlanService, IProcessEsInspectPlanService processEsInspectPlanService,
TaskService taskService,
RepositoryService repositoryService, RepositoryService repositoryService,
ISysUserService sysUserService, ISysUserService sysUserService,
ProcessNodeService processNodeService, ProcessNodeService processNodeService,
ProcessNodeLinkService processNodeLinkService, ProcessNodeLinkService processNodeLinkService,
ActFlowCommonService actFlowCommonService,
SendMessageAPI sendMessageAPI) { SendMessageAPI sendMessageAPI) {
this.processAllService = processAllService; this.processAllService = processAllService;
this.processApprovalRecordService = processApprovalRecordService; this.processApprovalRecordService = processApprovalRecordService;
this.processEsInspectPlanService = processEsInspectPlanService; this.processEsInspectPlanService = processEsInspectPlanService;
this.taskService = taskService;
this.repositoryService = repositoryService; this.repositoryService = repositoryService;
this.sysUserService = sysUserService; this.sysUserService = sysUserService;
this.processNodeService = processNodeService; this.processNodeService = processNodeService;
this.processNodeLinkService = processNodeLinkService; this.processNodeLinkService = processNodeLinkService;
this.actFlowCommonService = actFlowCommonService;
this.sendMessageAPI = sendMessageAPI; this.sendMessageAPI = sendMessageAPI;
} }
// ProcessEngine
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// RunTimeService
RuntimeService runtimeService = processEngine.getRuntimeService(); RuntimeService runtimeService = processEngine.getRuntimeService();
@Autowired
private TaskService taskService;
@Override @Override
public void flowStart(EsInspectPlanFlowVO esInspectPlanFlowVO) { public void flowStart(EsInspectPlanFlowVO esInspectPlanFlowVO) {
// 流程信息 // 流程信息
@@ -123,15 +117,13 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
processApprovalRecord.setUserId(loginUser.getId()); processApprovalRecord.setUserId(loginUser.getId());
processApprovalRecordService.update(processApprovalRecord, processApprovalRecordService.update(processApprovalRecord,
new LambdaUpdateWrapper<ProcessApprovalRecord>() new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getProcessInstanceId, processInstance.getId())); .eq(ProcessApprovalRecord::getTaskId, task.getId()));
// 新增流程实例节点关联用户表 // 新增流程实例节点关联用户表
processNodeLinkService.saveNodeUserLink(processInstance.getProcessDefinitionId(), processInstance.getId(), listToString(map)); processNodeLinkService.saveNodeUserLink(processInstance.getProcessDefinitionId(), processInstance.getId(), listToString(map));
// 自动完成第一个节点 // 自动完成第一个节点
if (task != null) { taskService.complete(task.getId());
taskService.complete(task.getId());
}
} }
private Map<String, Object> listToString(Map<String, Object> map) { private Map<String, Object> listToString(Map<String, Object> map) {
@@ -207,6 +199,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
@Override @Override
public void flowApproval(EsInspectPlanFlowVO esInspectPlanFlowVO) { public void flowApproval(EsInspectPlanFlowVO esInspectPlanFlowVO) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 流程信息 // 流程信息
ProcessAll processAll = esInspectPlanFlowVO.getProcessAll(); ProcessAll processAll = esInspectPlanFlowVO.getProcessAll();
// 流程审批信息 // 流程审批信息
@@ -215,26 +208,22 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
Map<String, Object> map = esInspectPlanFlowVO.getMap(); Map<String, Object> map = esInspectPlanFlowVO.getMap();
// 更新流程审批信息 // 更新流程审批信息
processApprovalRecordService.update(processApprovalRecord, processApprovalRecordService.update(
new LambdaUpdateWrapper<ProcessApprovalRecord>() new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, processAll.getTaskId())); .eq(ProcessApprovalRecord::getUserId, loginUser.getId())
.eq(ProcessApprovalRecord::getTaskId, processAll.getTaskId())
.set(StringUtils.isNotBlank(processApprovalRecord.getCommitText()),
ProcessApprovalRecord::getCommitText, processApprovalRecord.getCommitText())
.set(ProcessApprovalRecord::getCommitFlag, processApprovalRecord.getCommitFlag())
.set(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue()));
Task task = taskService.createTaskQuery().taskId(processAll.getTaskId()).singleResult(); Task task = taskService.createTaskQuery().taskId(processAll.getTaskId()).singleResult();
if (task!= null) { if (task!= null) {
// 完成任务 // 完成任务
taskService.complete(task.getId(), map); taskService.complete(task.getId(), map);
// 任务结束
// 查询当前流程实例的任务数量 if (EsInspectPlanCommon.PROCESS_NODE_END.equals(task.getName())
long activeTaskCount = taskService.createTaskQuery() && map.containsKey("pass") && (boolean) map.get("pass")){
.processInstanceId(processAll.getProcessInstanceId())
.active()
.count();
if (activeTaskCount == 0){
// 任务结束
processApprovalRecordService.update(new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getProcessInstanceId, processAll.getProcessInstanceId())
.set(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue()));
// 抄送消息 通过hiwork 给稽查联络人抄送消息 // 抄送消息 通过hiwork 给稽查联络人抄送消息
List<ProcessNode> processNodeList = queryPersonInfo(EsInspectPlanCommon.NAME, processAll.getProcessInstanceId()); List<ProcessNode> processNodeList = queryPersonInfo(EsInspectPlanCommon.NAME, processAll.getProcessInstanceId());
if (!processNodeList.isEmpty()){ if (!processNodeList.isEmpty()){
@@ -266,22 +255,4 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
// 转办 // 转办
taskService.setAssignee(taskId, userId); taskService.setAssignee(taskId, userId);
} }
@Override
public void flowRefusal(FlowRefusalVO flowRefusalVO) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String taskId = flowRefusalVO.getTaskId();
Task task = taskService.createTaskQuery()
.processInstanceId(taskId)
.singleResult();
if (task != null){
// 更新流程审批信息
processApprovalRecordService.update(new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, taskId)
.set(ProcessApprovalRecord::getUserId, loginUser.getId()));
// 驳回
actFlowCommonService.completeTask(taskId, loginUser.getId());
}
}
} }