加签、转办更新左侧人员信息

This commit is contained in:
梁琦涛
2024-07-17 19:19:21 +08:00
parent 8ee621bb61
commit a8ad01dfee
5 changed files with 120 additions and 42 deletions
@@ -1,10 +1,13 @@
package com.jero.modules.activiti.process.fb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.ResultCommon;
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.entity.ProcessNode;
import com.jero.modules.activiti.entity.ProcessNodeLink;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.common.DraftCommon;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
@@ -16,10 +19,7 @@ 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.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
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.activiti.service.WorkCenterService;
import com.jero.modules.activiti.service.*;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RepositoryService;
@@ -61,6 +61,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
private ProcessDraftService processDraftService; // 流程草稿表
@Resource
private ProcessSnapshotService processSnapshotService; // 流程草稿表
@Resource
private ProcessNodeService processNodeService;
/**
* @Author: liao
* @Date: 2023/11/2 17:04
@@ -214,6 +216,31 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
log.error(e.getMessage(),e);
throw new JeroBootException(e.getMessage());
}
// 更新节点操作人
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String processDefinitionId = task.getProcessDefinitionId();
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("数据不存在");
}
LambdaUpdateWrapper<ProcessNodeLink> updateProcessNodeLink = new LambdaUpdateWrapper<>();
updateProcessNodeLink.eq(ProcessNodeLink::getProcessInstanceId,processInstanceId);
updateProcessNodeLink.eq(ProcessNodeLink::getProcessNodeId,processNode.getId());
updateProcessNodeLink.eq(ProcessNodeLink::getProcessDefinitionId,processDefinitionId);
updateProcessNodeLink.eq(ProcessNodeLink::getUserId,userId);
updateProcessNodeLink.set(ProcessNodeLink::getUserId,toUserId);
processNodeLinkService.update(updateProcessNodeLink);
}
/**
@@ -90,18 +90,6 @@ public class ProcessMarketStandardReleaseController extends JeroController<Proce
return Result.OK();
}
/**
* 转办
*
*/
@AutoLog(value = "市场法规清单发布流程-转办")
@ApiOperation(value="市场法规清单发布流程-转办", notes="市场法规清单发布流程-转办")
@PostMapping(value = "/transfer")
public Result<?> transfer(@RequestBody DelegateTaskParam param) {
processHandleService.transfer(param.getTaskId(), param.getUserId());
return Result.OK();
}
/**
* 新法规导入流程-办理
* @param taskId
@@ -149,10 +149,6 @@ public class ProcessMarketStandardReleaseServiceImpl extends ServiceImpl<Process
// 验证是否已发起流程
checkProcessStatus(processInfoVO.getBusinessInfoDTO().getManifestId());
}
ProcessMarketStandardRelease processMarketStandardRelease = processInfoVO.getBusinessInfoDTO();
if(!Objects.isNull(processMarketStandardRelease)){
saveOrUpdate(processMarketStandardRelease);
}
// 流程信息
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
// 流程类型
@@ -228,7 +224,38 @@ public class ProcessMarketStandardReleaseServiceImpl extends ServiceImpl<Process
@Override
public void submit(ProcessInfoVO<ProcessMarketStandardRelease> processInfoVO) {
startProcess(processInfoVO);
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
String taskId = processTask.getTaskId();
// 获取task
if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("taskId为空或任务不存在");
}
// 获取当前节点的id
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
String xmlNodeId = record.getNodeId();
// 发起节点 更新业务数据
startNodeBusProcess(processInfoVO);
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(processTask, taskId);
// 审批节点
actFlowCommonService.completeTask(taskId, userId);
// 保存快照
// 获取流程通用数据
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
if(!Objects.isNull(process)){
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
basicProcessInfoDTO.setProcessName(process.getPrcName());
basicProcessInfoDTO.setProcessType(process.getPrcType());
basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId());
basicProcessInfoDTO.setProcessInstanceId(process.getProcessInstanceId());
basicProcessInfoDTO.setProcessDescription(process.getPrcMes());
basicProcessInfoDTO.setProcessDueDate(process.getDueTime());
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
// 保存快照
processHandleService.saveToSnapshot(processInfoVO,userId);
}
}
@Override
@@ -88,17 +88,6 @@ public class ProcessNewStandardImportController extends JeroController<ProcessNe
return Result.OK();
}
/**
* 转办
*
*/
@AutoLog(value = "新法规导入流程-转办")
@ApiOperation(value="新法规导入流程-转办", notes="新法规导入流程-转办")
@PostMapping(value = "/transfer")
public Result<?> transfer(@RequestBody DelegateTaskParam param) {
processHandleService.transfer(param.getTaskId(), param.getUserId());
return Result.OK();
}
/**
* 新法规导入流程-办理
@@ -27,9 +27,13 @@ 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.ProcessEngine;
import org.activiti.engine.ProcessEngines;
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;
@@ -72,6 +76,10 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
@Resource
private SendMessageAPI sendMessageAPI;
@Resource
private TaskService taskService;
@Resource
private ProcessEngine processEngine;
@Override
@Transactional(rollbackFor = JeroBootException.class)
@@ -173,16 +181,17 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
// 获取当前节点的id
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
String xmlNodeId = record.getNodeId();
// 发起节点 更新业务数据
if(Objects.equals(ProcessNewStandardImportConstants.STANDARD_ENGINEER_START,xmlNodeId)){
startNodeBusProcess(processInfoVO);
}else{
if(Objects.isNull(processTask.getCommitFlag())){
processTask.setCommitFlag(pass ? ActivitiCommon.COMMIT_FLAG1 : ActivitiCommon.COMMIT_FLAG2);
}
//任务Id 查询任务对象
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if(Objects.isNull(task)){
throw new JeroBootException("找不到对应任务");
}
String processInstanceId = task.getProcessInstanceId();
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
if(Objects.isNull(processTask.getCommitFlag())){
processTask.setCommitFlag(pass ? ActivitiCommon.COMMIT_FLAG1 : ActivitiCommon.COMMIT_FLAG2);
}
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(processTask, taskId);
// 驳回,结束所有节点
@@ -199,7 +208,6 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
// 审批节点
actFlowCommonService.completeTask(taskId, userId);
// 保存快照
// 获取流程通用数据
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
@@ -219,7 +227,46 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
@Override
public void submit(ProcessInfoVO<ProcessNewStandardImport> processInfoVO) {
startProcess(processInfoVO);
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
String taskId = processTask.getTaskId();
// 获取task
if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("taskId为空或任务不存在");
}
//任务Id 查询任务对象
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if(Objects.isNull(task)){
throw new JeroBootException("找不到对应任务");
}
// 人员信息
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
// 设置流程变量
Map<String, Object> actVariables = setVariables(userInfoMap);
String processInstanceId = task.getProcessInstanceId();
runtimeService.setVariables(processInstanceId,actVariables);
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
// 发起节点 更新业务数据
startNodeBusProcess(processInfoVO);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(processTask, taskId);
// 审批节点
actFlowCommonService.completeTask(taskId, userId);
// 保存快照
// 获取流程通用数据
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
if(!Objects.isNull(process)){
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
basicProcessInfoDTO.setProcessName(process.getPrcName());
basicProcessInfoDTO.setProcessType(process.getPrcType());
basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId());
basicProcessInfoDTO.setProcessInstanceId(process.getProcessInstanceId());
basicProcessInfoDTO.setProcessDescription(process.getPrcMes());
basicProcessInfoDTO.setProcessDueDate(process.getDueTime());
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
// 保存快照
processHandleService.saveToSnapshot(processInfoVO,userId);
}
}
@Override