完善加签功能
This commit is contained in:
+26
-13
@@ -2,11 +2,12 @@ package com.jero.modules.activiti.process.ms.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
@@ -18,6 +19,7 @@ import com.jero.modules.activiti.process.ms.entity.ProcessMarketStandardRelease;
|
||||
import com.jero.modules.activiti.process.ms.mapper.ProcessMarketStandardReleaseMapper;
|
||||
import com.jero.modules.activiti.process.ms.service.IProcessMarketStandardReleaseService;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail;
|
||||
import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService;
|
||||
@@ -28,6 +30,7 @@ import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.delegate.DelegateExecution;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.DelegationState;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -66,6 +69,8 @@ public class ProcessMarketStandardReleaseServiceImpl extends ServiceImpl<Process
|
||||
private ILawsMarketStandardDetailService lawsMarketStandardDetailService;
|
||||
@Resource
|
||||
private ILawsMarketStandardService lawsMarketStandardService;
|
||||
@Resource
|
||||
private ProcessApprovalRecordService processApprovalRecordService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
@@ -166,24 +171,32 @@ public class ProcessMarketStandardReleaseServiceImpl extends ServiceImpl<Process
|
||||
}
|
||||
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
// 获取当前节点的id
|
||||
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
|
||||
String xmlNodeId = record.getNodeId();
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
// 获取当前流程
|
||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
switch (xmlNodeId) {
|
||||
|
||||
// 驳回,结束所有节点
|
||||
if(!pass){
|
||||
// 获取当前节点的id
|
||||
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
|
||||
String xmlNodeId = record.getNodeId();
|
||||
LambdaUpdateWrapper<ProcessApprovalRecord> update = new LambdaUpdateWrapper<>();
|
||||
update.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
|
||||
update.ne(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue());
|
||||
update.eq(ProcessApprovalRecord::getNodeId,xmlNodeId);
|
||||
update.set(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.COMPLETE.getValue());
|
||||
update.set(ProcessApprovalRecord::getEndTime,new Date());
|
||||
processApprovalRecordService.update(update);
|
||||
}
|
||||
// 转办修改流程变量逻辑
|
||||
switch (xmlNodeId) {
|
||||
|
||||
}
|
||||
runtimeService.setVariable(processInstanceId, PASS, pass);
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
// 判断任务是否为委托状态
|
||||
if (task != null && task.getDelegationState() == DelegationState.PENDING) {
|
||||
// 任务处于委托状态,应使用resolveTask方法
|
||||
taskService.resolveTask(taskId);
|
||||
} else {
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
}
|
||||
// 保存快照
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
|
||||
+17
-17
@@ -2,12 +2,14 @@ package com.jero.modules.activiti.process.ni.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.SendMessageAPI;
|
||||
import com.jero.common.api.dto.message.SendMessageDTO;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
@@ -18,22 +20,19 @@ import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport;
|
||||
import com.jero.modules.activiti.process.ni.mapper.ProcessNewStandardImportMapper;
|
||||
import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ProcessSccVO;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||
import com.jero.modules.sys.utils.UserUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.delegate.DelegateExecution;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.*;
|
||||
|
||||
import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
|
||||
@@ -55,7 +54,7 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
|
||||
private ProcessNodeLinkService processNodeLinkService;
|
||||
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
private ProcessApprovalRecordService processApprovalRecordService;
|
||||
|
||||
@Resource
|
||||
private ProcessAllService processAllService;
|
||||
@@ -166,25 +165,26 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
|
||||
throw new JeroBootException("taskId为空或任务不存在");
|
||||
}
|
||||
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
// 获取当前节点的id
|
||||
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
|
||||
String xmlNodeId = record.getNodeId();
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
// 获取当前流程
|
||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
switch (xmlNodeId) {
|
||||
|
||||
}
|
||||
// 转办修改流程变量逻辑
|
||||
switch (xmlNodeId) {
|
||||
|
||||
// 驳回,结束所有节点
|
||||
if(!pass){
|
||||
// 获取当前节点的id
|
||||
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
|
||||
String xmlNodeId = record.getNodeId();
|
||||
LambdaUpdateWrapper<ProcessApprovalRecord> update = new LambdaUpdateWrapper<>();
|
||||
update.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
|
||||
update.ne(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue());
|
||||
update.eq(ProcessApprovalRecord::getNodeId,xmlNodeId);
|
||||
update.set(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.COMPLETE.getValue());
|
||||
update.set(ProcessApprovalRecord::getEndTime,new Date());
|
||||
processApprovalRecordService.update(update);
|
||||
}
|
||||
runtimeService.setVariable(processInstanceId, PASS, pass);
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
|
||||
// 保存快照
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
|
||||
+48
-1
@@ -19,6 +19,7 @@ import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.entity.ProcessNode;
|
||||
import com.jero.modules.activiti.entity.ProcessNodeLink;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
@@ -27,6 +28,8 @@ import com.jero.modules.activiti.mapper.ProcessAllMapper;
|
||||
import com.jero.modules.activiti.process.common.common.DraftCommon;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||
import com.jero.modules.activiti.process.standardinterpret.common.StandardInterpretCommon;
|
||||
import com.jero.modules.activiti.util.ActivityCountersign;
|
||||
import com.jero.modules.activiti.util.SpringContextUtil;
|
||||
import com.jero.modules.activiti.vo.DelegateTaskParam;
|
||||
import com.jero.modules.activiti.vo.ResolveTaskParam;
|
||||
@@ -36,6 +39,7 @@ import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardRecheckPlanService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.HistoryService;
|
||||
import org.activiti.engine.ManagementService;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.task.Task;
|
||||
@@ -77,6 +81,14 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
|
||||
private EnterpriseStandardRecheckPlanService esRecheckService;
|
||||
@Resource
|
||||
private PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI;
|
||||
@Resource
|
||||
private ProcessApprovalRecordService processApprovalRecordService;
|
||||
@Resource
|
||||
private ProcessNodeService processNodeService;
|
||||
@Resource
|
||||
private ProcessNodeLinkService processNodeLinkService;
|
||||
@Resource
|
||||
private ManagementService managementService;
|
||||
|
||||
private static final List<Integer> INSPECT_PROCESS = Arrays.asList();
|
||||
public ProcessAll getByProcessInstanceId(String processInstanceId){
|
||||
@@ -252,7 +264,7 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
|
||||
pushWorkflowIntegrationAPI.sendTodoTask(todoAddList);
|
||||
}
|
||||
|
||||
public void delegateTask(DelegateTaskParam param) {
|
||||
public void delegateTaskA(DelegateTaskParam param) {
|
||||
String taskId = param.getTaskId();
|
||||
String userId = param.getUserId();
|
||||
|
||||
@@ -284,6 +296,41 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
|
||||
|
||||
}
|
||||
|
||||
public void delegateTask(DelegateTaskParam param) {
|
||||
String taskId = param.getTaskId();
|
||||
String userId = param.getUserId();
|
||||
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
String processInstanceId = task.getProcessInstanceId();
|
||||
|
||||
String processDefinitionId = task.getProcessDefinitionId();
|
||||
// 添加流程实例节点关联用户信息
|
||||
//添加节点操作人
|
||||
ProcessNodeLink processNodeLink = new ProcessNodeLink();
|
||||
processNodeLink.setProcessDefinitionId(processDefinitionId);
|
||||
processNodeLink.setProcessInstanceId(processInstanceId);
|
||||
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessApprovalRecord::getTaskId,taskId);
|
||||
ProcessApprovalRecord record = processApprovalRecordService.getOne(wrapper, false);
|
||||
if(Objects.isNull(record)){
|
||||
throw new JeroBootException("数据不存在");
|
||||
}
|
||||
String xmlNodeId = record.getNodeId();
|
||||
LambdaQueryWrapper<ProcessNode> queryProcessNode = new LambdaQueryWrapper<>();
|
||||
queryProcessNode.eq(ProcessNode::getProcessDefinitionId,processDefinitionId);
|
||||
queryProcessNode.eq(ProcessNode::getXmlNodeId,xmlNodeId);
|
||||
ProcessNode processNode = processNodeService.getOne(queryProcessNode,false);
|
||||
if(Objects.isNull(processNode)){
|
||||
throw new JeroBootException("数据不存在");
|
||||
}
|
||||
processNodeLink.setProcessNodeId(processNode.getId());
|
||||
processNodeLink.setUserId(userId);
|
||||
processNodeLinkService.save(processNodeLink);
|
||||
|
||||
managementService.executeCommand(
|
||||
new ActivityCountersign(taskId, userId, processNode.getVariableName()));
|
||||
}
|
||||
|
||||
public void resolveTask(ResolveTaskParam param) {
|
||||
String taskId = param.getTaskId();
|
||||
String commitText = param.getCommitText();
|
||||
|
||||
Reference in New Issue
Block a user