feat: scc流程各部门接口人分发获取数据接口
This commit is contained in:
+15
-94
@@ -2,25 +2,21 @@ package com.jero.modules.activiti.process.common.service;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
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.enums.CommitFlagEnum;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.common.DraftCommon;
|
||||
import com.jero.modules.activiti.process.common.entity.CommonVO;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessSnapshot;
|
||||
import com.jero.modules.activiti.process.common.entity.StandTypeVO;
|
||||
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
|
||||
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
||||
import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
@@ -256,20 +252,6 @@ public class ActFlowCommonService {
|
||||
return task.getProcessInstanceId();
|
||||
}
|
||||
|
||||
public String getProcessDefId(String processInstanceId) {
|
||||
ProcessInstance processInstance =
|
||||
runtimeService.createProcessInstanceQuery()
|
||||
.processInstanceId(processInstanceId)
|
||||
.singleResult();
|
||||
|
||||
// 从ProcessInstance对象中获取processDefId
|
||||
if (processInstance != null) {
|
||||
return processInstance.getProcessDefinitionId();
|
||||
} else {
|
||||
throw new JeroBootException("未找到流程定义Id");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新流程主表
|
||||
*
|
||||
@@ -284,48 +266,6 @@ public class ActFlowCommonService {
|
||||
processAllService.updateById(process);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新流程主表
|
||||
*
|
||||
* @param processInstanceId
|
||||
* @param userId
|
||||
* @param prcName
|
||||
* @param prcMes
|
||||
* @param prcType
|
||||
* @param dueTime
|
||||
*/
|
||||
public void updateProcessAllWithUserId(String processInstanceId, String userId, String prcName, String prcMes, Integer prcType, Date dueTime) {
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
process.setCreateUserId(userId);
|
||||
process.setPrcName(prcName);
|
||||
process.setPrcMes(prcMes);
|
||||
process.setDueTime(dueTime);
|
||||
process.setPrcType(prcType);
|
||||
processAllService.updateById(process);
|
||||
}
|
||||
|
||||
public void updateProcessAllWithProjectId(String processInstanceId, String prcName, String prcMes,
|
||||
Integer prcType, Date dueTime, String projectId) {
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
process.setPrcName(prcName);
|
||||
process.setPrcMes(prcMes);
|
||||
process.setDueTime(dueTime);
|
||||
process.setPrcType(prcType);
|
||||
process.setProjectId(projectId);
|
||||
processAllService.updateById(process);
|
||||
}
|
||||
|
||||
public StandTypeVO getStandTypeByStandNo(String standardNo) {
|
||||
LambdaUpdateWrapper<EnterpriseStandardPlan> espWrapper = new LambdaUpdateWrapper<>();
|
||||
espWrapper.eq(EnterpriseStandardPlan::getNewEnStandardNo, standardNo);
|
||||
EnterpriseStandardPlan one = espService.getOne(espWrapper);
|
||||
StandTypeVO standTypeVO = new StandTypeVO();
|
||||
if (one != null) {
|
||||
standTypeVO.setStandardType(one.getStandardType());
|
||||
}
|
||||
return standTypeVO;
|
||||
}
|
||||
|
||||
public ProcessDraft getExistDraft(String draftId) {
|
||||
String userId = UserUtils.getUserId();
|
||||
LambdaQueryWrapper<ProcessDraft> draftWrapper = new LambdaQueryWrapper<>();
|
||||
@@ -355,24 +295,6 @@ public class ActFlowCommonService {
|
||||
}
|
||||
}
|
||||
|
||||
public CommonVO getHandleCommon(String taskId) {
|
||||
String processInstanceId = this.getProcessInstanceIdByTaskId(taskId);
|
||||
String processDefinitionId = this.getProcessDefId(processInstanceId);
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
CommonVO commonVO = new CommonVO();
|
||||
commonVO.setPrcName(process.getPrcName());
|
||||
commonVO.setTaskId(process.getTaskId());
|
||||
commonVO.setPrcMes(process.getPrcMes());
|
||||
commonVO.setDueTime(process.getDueTime());
|
||||
commonVO.setProcessDefinitionId(processDefinitionId);
|
||||
commonVO.setProcessInstanceId(processInstanceId);
|
||||
// 获取节点ID
|
||||
ProcessApprovalRecord record = this.getNodeIdByTaskId(taskId);
|
||||
commonVO.setNodeId(record.getNodeId());
|
||||
return commonVO;
|
||||
}
|
||||
|
||||
public void removeDraft(CommonVO commonVO) {
|
||||
String userId = UserUtils.getUserId();
|
||||
String taskId = commonVO.getTaskId();
|
||||
@@ -385,22 +307,6 @@ public class ActFlowCommonService {
|
||||
processDraftService.remove(draftWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 会签节点驳回后,将其余节点recode设置为 未处理 状态
|
||||
*
|
||||
* @param prcId
|
||||
* @param nodeName
|
||||
*/
|
||||
public void updateOtherCountersignRecodeStatus(String prcId, String nodeName) {
|
||||
LambdaUpdateWrapper<ProcessApprovalRecord> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(ProcessApprovalRecord::getProcessInstanceId, prcId);
|
||||
updateWrapper.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue());
|
||||
updateWrapper.eq(ProcessApprovalRecord::getTaskName, nodeName);
|
||||
updateWrapper.set(ProcessApprovalRecord::getCommitText, CommitFlagEnum.UNDISPOSED.getName());
|
||||
updateWrapper.set(ProcessApprovalRecord::getFinishFlag, null);
|
||||
processApprovalRecordService.update(updateWrapper);
|
||||
}
|
||||
|
||||
public String getOriginTaskAssignee(String taskId) {
|
||||
ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(taskId);
|
||||
return approvalRecord.getOriginUserId();
|
||||
@@ -441,4 +347,19 @@ public class ActFlowCommonService {
|
||||
draftWrapper.eq(ProcessSnapshot::getId, snapshotId);
|
||||
return processSnapshotService.getOne(draftWrapper);
|
||||
}
|
||||
|
||||
public BasicProcessInfoDTO getProcessInfo(String taskId) {
|
||||
String processInstanceId = this.getProcessInstanceIdByTaskId(taskId);
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
|
||||
// 获取节点ID
|
||||
basicProcessInfoDTO.setProcessInstanceId(processInstanceId);
|
||||
basicProcessInfoDTO.setProcessDescription(process.getPrcMes());
|
||||
basicProcessInfoDTO.setProcessName(process.getPrcName());
|
||||
basicProcessInfoDTO.setProcessDueDate(process.getDueTime());
|
||||
basicProcessInfoDTO.setProcessType(process.getPrcType());
|
||||
basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId());
|
||||
return basicProcessInfoDTO;
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -117,6 +118,7 @@ public class ProcessStandardComplianceCheck implements Serializable {
|
||||
* 适用市场
|
||||
*/
|
||||
@ApiModelProperty(value = "适用市场")
|
||||
@Dict(dictTable = "laws_market_standard", dicText = "manifest_name", dicCode = "id")
|
||||
private String applicableMarket;
|
||||
|
||||
/**
|
||||
|
||||
+93
-74
@@ -128,7 +128,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
processTask.setTaskId(taskId);
|
||||
// 保存第一个节点的草稿
|
||||
processHandleService.saveToDraft(processInfoVO, userId);
|
||||
// 保存第一个节点的草稿
|
||||
// 保存第一个节点的快照
|
||||
processHandleService.saveToSnapshot(processInfoVO, userId);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
@@ -267,6 +267,98 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
return this.saveAllDetailData(modelExcelVOList, detailInfoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProcessInfoVO<ProcessSccVO> getHandleData(String taskId) {
|
||||
if (!actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("任务不存在");
|
||||
}
|
||||
ProcessInfoVO<ProcessSccVO> result = new ProcessInfoVO<>();
|
||||
ProcessSccVO processSccVO = new ProcessSccVO();
|
||||
result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(taskId));
|
||||
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
|
||||
String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId();
|
||||
// 使用流程引擎根据taskId找到流程实例Id
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
|
||||
// 获取当前流程数据
|
||||
LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, processInstanceId);
|
||||
ProcessStandardComplianceCheck scc = getOne(queryWrapper);
|
||||
LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> detailQueryWrapper = new LambdaQueryWrapper<>();
|
||||
detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId());
|
||||
List<ProcessStandardComplianceCheckDetail> detailList = sccDetailService.list(detailQueryWrapper);
|
||||
String xmlNodeId = record.getNodeId();
|
||||
// 设置流程信息
|
||||
switch (xmlNodeId) {
|
||||
case DEPT_USER_DISTRIBUTE:
|
||||
processSccVO.setStandardInfo(scc);
|
||||
processSccVO.setDetailInfoList(detailList);
|
||||
break;
|
||||
case MAIN_CHECK_USER_COLLECT:
|
||||
break;
|
||||
case COUNTERSIGN:
|
||||
break;
|
||||
case MANAGER_APPROVAL:
|
||||
break;
|
||||
}
|
||||
result.setBusinessInfoDTO(processSccVO);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createAutoTaskListener(DelegateTask delegateTask) {
|
||||
String taskId = delegateTask.getId();
|
||||
String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
|
||||
String processInstanceId = delegateTask.getProcessInstanceId();
|
||||
Map<String, Object> userInfoMap = new HashMap<>();
|
||||
ProcessInfoVO<ProcessDemoVO> processInfoVO = new ProcessInfoVO<>();
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
|
||||
String mainInstanceId = (String) delegateTask.getVariable(ActivitiCommon.MAIN_INSTANCE_ID);
|
||||
//保存父子关联信息
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put(ActivitiCommon.MAIN_INSTANCE_ID, mainInstanceId != null ? mainInstanceId : processInstanceId);
|
||||
variables.put(ActivitiCommon.PARENT_TASK_ID, taskId);
|
||||
|
||||
switch (taskDefinitionKey) {
|
||||
//主排查人分批下发后自动任务
|
||||
case AUTO_TASK_1:
|
||||
case AUTO_TASK_3:
|
||||
// TODO
|
||||
List<String> interpreterList = (List<String>) delegateTask.getVariable(ProcessDemoCommon.INTERPRETER);
|
||||
for (String interpreter : interpreterList) {
|
||||
userInfoMap.put(ProcessDemoCommon.INTERPRETER, interpreter);
|
||||
// 流程定义id
|
||||
String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE);
|
||||
basicProcessInfoDTO.setProcessDefinitionId(definitionId);
|
||||
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue()); // 流程类型
|
||||
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
|
||||
|
||||
processInfoVO.setProcessVariables(variables);
|
||||
processInfoVO.setUserInfoMap(userInfoMap);
|
||||
processHandleService.startChildrenProcess(processInfoVO);
|
||||
}
|
||||
break;
|
||||
//设计工程师驳回后自动任务
|
||||
case AUTO_TASK_2:
|
||||
// TODO
|
||||
String mainInterpreter = (String) delegateTask.getVariable(ProcessDemoCommon.MAIN_INTERPRETER);
|
||||
userInfoMap.put(ProcessDemoCommon.MAIN_INTERPRETER, mainInterpreter);
|
||||
// 流程定义id
|
||||
String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE);
|
||||
basicProcessInfoDTO.setProcessDefinitionId(definitionId);
|
||||
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue()); // 流程类型
|
||||
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
|
||||
|
||||
processInfoVO.setProcessVariables(variables);
|
||||
processInfoVO.setUserInfoMap(userInfoMap);
|
||||
processHandleService.startChildrenProcess(processInfoVO);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
private MultipartFile getFileById(String fileId) {
|
||||
List<OSSFile> fileInfos = ossFileService.getFileInfos(fileId);
|
||||
if (fileInfos == null || fileInfos.isEmpty()) {
|
||||
@@ -423,79 +515,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
}
|
||||
return modelExcelVOList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProcessInfoVO<ProcessSccVO> getHandleData(String taskId) {
|
||||
if (!actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("任务不存在");
|
||||
}
|
||||
ProcessInfoVO<ProcessSccVO> result = new ProcessInfoVO<>();
|
||||
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
|
||||
String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId();
|
||||
// 使用流程引擎根据taskId找到流程实例Id
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
|
||||
String xmlNodeId = record.getNodeId();
|
||||
// 设置流程信息
|
||||
switch (xmlNodeId) {
|
||||
//TODO
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createAutoTaskListener(DelegateTask delegateTask) {
|
||||
String taskId = delegateTask.getId();
|
||||
String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
|
||||
String processInstanceId = delegateTask.getProcessInstanceId();
|
||||
Map<String, Object> userInfoMap = new HashMap<>();
|
||||
ProcessInfoVO<ProcessDemoVO> processInfoVO = new ProcessInfoVO<>();
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
|
||||
String mainInstanceId = (String) delegateTask.getVariable(ActivitiCommon.MAIN_INSTANCE_ID);
|
||||
//保存父子关联信息
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put(ActivitiCommon.MAIN_INSTANCE_ID, mainInstanceId != null ? mainInstanceId : processInstanceId);
|
||||
variables.put(ActivitiCommon.PARENT_TASK_ID, taskId);
|
||||
|
||||
switch (taskDefinitionKey) {
|
||||
//主排查人分批下发后自动任务
|
||||
case AUTO_TASK_1:
|
||||
case AUTO_TASK_3:
|
||||
// TODO
|
||||
List<String> interpreterList = (List<String>) delegateTask.getVariable(ProcessDemoCommon.INTERPRETER);
|
||||
for (String interpreter : interpreterList) {
|
||||
userInfoMap.put(ProcessDemoCommon.INTERPRETER, interpreter);
|
||||
// 流程定义id
|
||||
String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE);
|
||||
basicProcessInfoDTO.setProcessDefinitionId(definitionId);
|
||||
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue()); // 流程类型
|
||||
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
|
||||
|
||||
processInfoVO.setProcessVariables(variables);
|
||||
processInfoVO.setUserInfoMap(userInfoMap);
|
||||
processHandleService.startChildrenProcess(processInfoVO);
|
||||
}
|
||||
break;
|
||||
//设计工程师驳回后自动任务
|
||||
case AUTO_TASK_2:
|
||||
// TODO
|
||||
String mainInterpreter = (String) delegateTask.getVariable(ProcessDemoCommon.MAIN_INTERPRETER);
|
||||
userInfoMap.put(ProcessDemoCommon.MAIN_INTERPRETER, mainInterpreter);
|
||||
// 流程定义id
|
||||
String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE);
|
||||
basicProcessInfoDTO.setProcessDefinitionId(definitionId);
|
||||
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue()); // 流程类型
|
||||
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
|
||||
|
||||
processInfoVO.setProcessVariables(variables);
|
||||
processInfoVO.setUserInfoMap(userInfoMap);
|
||||
processHandleService.startChildrenProcess(processInfoVO);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user