feat: 法规符合性排查流程-流程发起
This commit is contained in:
+1
@@ -12,6 +12,7 @@ import lombok.Getter;
|
||||
public enum ProcessType {
|
||||
|
||||
STANDARD_INTERPRET("标准解读流程", "2", "standard_interpret", "StandardInterpretFlowServiceImpl"),
|
||||
STANDARD_COMPLIANCE_CHECK("法规符合性评估流程", "3", "laws-evaluation-main", "ProcessStandardComplianceCheckServiceImpl"),
|
||||
;
|
||||
|
||||
private final String name;
|
||||
|
||||
+20
-45
@@ -15,6 +15,9 @@ 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.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.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
||||
@@ -128,30 +131,16 @@ public class ActFlowCommonService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 循环设置流程变量
|
||||
*
|
||||
* @param processInstanceId
|
||||
* @param variables
|
||||
*/
|
||||
public void setProcessVariables(String processInstanceId, Map<String, Object> variables) {
|
||||
for (Map.Entry<String, Object> entry : variables.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
runtimeService.setVariable(processInstanceId, key, entry.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新审批表为完成,填充数据
|
||||
*
|
||||
* @param commonVO
|
||||
* @param processTask
|
||||
* @param taskId
|
||||
* @param pass
|
||||
*/
|
||||
public void updateApprovalInfo(CommonVO commonVO, String taskId, boolean pass) {
|
||||
public void updateApprovalInfo(BasicTaskInfoDTO processTask, String taskId) {
|
||||
ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(taskId);
|
||||
approvalRecord.setCommitText(commonVO.getCommitText());
|
||||
approvalRecord.setCommitFile(commonVO.getCommitFile());
|
||||
approvalRecord.setCommitText(processTask.getHandleText());
|
||||
approvalRecord.setCommitFile(processTask.getHandleFile());
|
||||
approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue());
|
||||
approvalRecord.setEndTime(new Date());
|
||||
// 使用流程引擎根据TaskId找到NodeId
|
||||
@@ -294,19 +283,14 @@ public class ActFlowCommonService {
|
||||
/**
|
||||
* 更新流程主表
|
||||
*
|
||||
* @param processInstanceId
|
||||
* @param userId
|
||||
* @param prcName
|
||||
* @param prcMes
|
||||
* @param prcType
|
||||
* @param dueTime
|
||||
* @param processInfo
|
||||
*/
|
||||
public void updateProcessAll(String processInstanceId, String userId, String prcName, String prcMes, Integer prcType, Date dueTime) {
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
process.setPrcName(prcName);
|
||||
process.setPrcMes(prcMes);
|
||||
process.setDueTime(dueTime);
|
||||
process.setPrcType(prcType);
|
||||
public void updateProcessAll(BasicProcessInfoDTO processInfo) {
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInfo.getProcessInstanceId());
|
||||
process.setPrcName(processInfo.getProcessName());
|
||||
process.setPrcMes(processInfo.getProcessDescription());
|
||||
process.setDueTime(processInfo.getProcessDueDate());
|
||||
process.setPrcType(processInfo.getProcessType());
|
||||
processAllService.updateById(process);
|
||||
}
|
||||
|
||||
@@ -375,10 +359,10 @@ public class ActFlowCommonService {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void getExistDraftAndRemove(CommonVO common, ProcessTypeEnum processTypeEnum) {
|
||||
public void getExistDraftAndRemove(String draftId) {
|
||||
// 删除草稿表数据
|
||||
if (StrUtil.isNotBlank(common.getDraftId())) {
|
||||
processDraftService.removeById(common.getDraftId());
|
||||
if (StrUtil.isNotBlank(draftId)) {
|
||||
processDraftService.removeById(draftId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -466,19 +450,10 @@ public class ActFlowCommonService {
|
||||
/**
|
||||
* 强制撤回流程-保存草稿
|
||||
*
|
||||
* @param common
|
||||
* @param processTypeEnum
|
||||
* @param jsonData
|
||||
* @param processInfoVO
|
||||
* @param userId
|
||||
*/
|
||||
public void saveFirstNodeDraft(CommonVO common, ProcessTypeEnum processTypeEnum, Object data) {
|
||||
|
||||
}
|
||||
|
||||
public void saveFirstNodeDraft(CommonVO common, ProcessTypeEnum processTypeEnum, String jsonData) {
|
||||
|
||||
}
|
||||
|
||||
public void saveFirstNodeDraftCustomUserId(CommonVO common, ProcessTypeEnum processTypeEnum, String jsonData, String userId) {
|
||||
public void saveFirstNodeDraft(ProcessInfoVO processInfoVO, String userId) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -42,8 +42,7 @@ public class ProcessDemoService extends ServiceImpl<ProcessDemoMapper, ProcessDe
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@Resource
|
||||
private IProcessHandleService processHandleService;
|
||||
@Resource
|
||||
private ProcessAllService processAllService;
|
||||
@Resource private ProcessAllService processAllService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
|
||||
+6
-14
@@ -8,23 +8,15 @@ package com.jero.modules.activiti.process.fb.common;
|
||||
public class ProcessDefinitionKey {
|
||||
|
||||
private ProcessDefinitionKey() {}
|
||||
|
||||
public static final String FB_ENTRY_CHANGE = "fb-entry-change"; // 标准法规入库/变更流程
|
||||
|
||||
public static final String FB_STANDARD_CONSULTATION = "fb-standard-consultation"; // 标准征求意见流程
|
||||
|
||||
public static final String FB_STANDARD_PURCHASE = "fb-standard-purchase"; // 法规采购流程
|
||||
|
||||
public static final String FB_STANDARD_COMPLIANCE_ASSESSMENT = "fb-standard-compliance-assessment"; // 法规合规评估流程
|
||||
//项目合规评估流程
|
||||
public static final String PROJECT_ASSESS = "project-assessment";
|
||||
//项目合规评估流程
|
||||
public static final String PROJECT_NOT_MET = "project-not-met";
|
||||
//项目合规评估流程
|
||||
public static final String PROJECT_STANDARD = "standard-assessment";
|
||||
//demo流程
|
||||
public static final String DEMO_MAIN = "demo_main";
|
||||
public static final String DEMO_JDR = "demo_jdr";
|
||||
public static final String DEMO_CXFF = "demo_cxff";
|
||||
// 法规符合性排查流程-主流程
|
||||
public static final String STANDARD_COMPLIANCE_CHECK_MAIN = "standard_compliance_check_main";
|
||||
// 法规符合性排查流程-分发
|
||||
public static final String STANDARD_COMPLIANCE_CHECK_DISTRIBUTE = "standard_compliance_check_distribute";
|
||||
// 法规符合性排查流程-重新分发
|
||||
public static final String STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE = "standard_compliance_check_redistribute";
|
||||
|
||||
}
|
||||
|
||||
+9
@@ -8,6 +8,7 @@ import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.entity.TransferVO;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
import com.jero.modules.activiti.process.demo.vo.ProcessDemoVO;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheck;
|
||||
@@ -67,6 +68,14 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规符合性排查流程-提交")
|
||||
@ApiOperation(value = "法规符合性排查流程-提交", notes = "法规符合性排查流程-提交")
|
||||
@PostMapping("/submit")
|
||||
public Result<T> submit(@Validated @RequestBody ProcessInfoVO<ProcessSccVO> processInfoVO) {
|
||||
sccService.submit(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 转办
|
||||
*
|
||||
|
||||
+12
-4
@@ -1,18 +1,26 @@
|
||||
package com.jero.modules.activiti.process.standardComplianceCheck.listener;
|
||||
|
||||
import com.jero.modules.activiti.process.demo.service.ProcessDemoService;
|
||||
import com.jero.modules.activiti.util.SpringContextUtil;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.delegate.DelegateTask;
|
||||
import org.activiti.engine.delegate.TaskListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2023-06-18 15:43
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class ProcessSCCCreateListener implements TaskListener {
|
||||
|
||||
@Resource
|
||||
private IProcessStandardComplianceCheckService sccService;
|
||||
|
||||
@Override
|
||||
public void notify(DelegateTask delegateTask) {
|
||||
ProcessDemoService demoService = SpringContextUtil.getBean(ProcessDemoService.class);
|
||||
demoService.createAutoTaskListener(delegateTask);
|
||||
sccService.createAutoTaskListener(delegateTask);
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -4,6 +4,7 @@ import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheck;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ProcessSccVO;
|
||||
import org.activiti.engine.delegate.DelegateTask;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
@@ -17,4 +18,8 @@ public interface IProcessStandardComplianceCheckService extends IService<Process
|
||||
void approveTask(ProcessInfoVO<ProcessSccVO> processInfoVO, boolean b);
|
||||
|
||||
ProcessInfoVO<ProcessSccVO> getHandleData(String taskId);
|
||||
|
||||
void createAutoTaskListener(DelegateTask delegateTask);
|
||||
|
||||
void submit(ProcessInfoVO<ProcessSccVO> processInfoVO);
|
||||
}
|
||||
|
||||
+138
-2
@@ -1,13 +1,34 @@
|
||||
package com.jero.modules.activiti.process.standardComplianceCheck.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.modules.activiti.common.ActivitiCommon;
|
||||
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;
|
||||
import com.jero.modules.activiti.process.demo.common.ProcessDemoCommon;
|
||||
import com.jero.modules.activiti.process.demo.vo.ProcessDemoVO;
|
||||
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
|
||||
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.service.IProcessHandleService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheck;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ProcessSccVO;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckService;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.mapper.ProcessStandardComplianceCheckMapper;
|
||||
import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||
import com.jero.modules.sys.utils.UserUtils;
|
||||
import org.activiti.engine.delegate.DelegateTask;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【process_standard_compliance_check】的数据库操作Service实现
|
||||
@@ -17,13 +38,76 @@ import org.springframework.stereotype.Service;
|
||||
public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<ProcessStandardComplianceCheckMapper, ProcessStandardComplianceCheck>
|
||||
implements IProcessStandardComplianceCheckService {
|
||||
|
||||
@Resource
|
||||
private IProcessHandleService processHandleService;
|
||||
|
||||
@Resource
|
||||
private ActFlowCommonService actFlowCommonService;
|
||||
|
||||
@Resource
|
||||
private ProcessNodeLinkService processNodeLinkService;
|
||||
|
||||
@Override
|
||||
public void startProcess(ProcessInfoVO<ProcessSccVO> processInfoVO) {
|
||||
// 流程Key
|
||||
String processDefinitionKey = ProcessType.STANDARD_COMPLIANCE_CHECK.getProcessKey();
|
||||
// 流程信息
|
||||
BasicProcessInfoDTO processInfo = processInfoVO.getBasicProcessInfoDTO();
|
||||
// 任务信息
|
||||
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
|
||||
// 人员信息
|
||||
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
|
||||
// 业务数据
|
||||
ProcessSccVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
// 当前用户Id
|
||||
String userId = UserUtils.getUserId();
|
||||
// 设置流程变量
|
||||
Map<String, Object> actVariables = this.setVariables(businessInfoDTO);
|
||||
// 删除草稿
|
||||
actFlowCommonService.getExistDraftAndRemove(processInfoVO.getDraftId());
|
||||
// 启动流程
|
||||
ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, actVariables);
|
||||
// 获取流程实例ID
|
||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||
String processInstanceId = processInstance.getId();
|
||||
processInfo.setProcessInstanceId(processInstanceId);
|
||||
processInfo.setProcessDefinitionId(processDefinitionId);
|
||||
processInfo.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue());
|
||||
// 保存数据
|
||||
// dataList.forEach(data -> data.setProcessInstanceId(processInstanceId));
|
||||
// dataList.forEach(ProcessEsAnnualInit::setDateEditFlag);
|
||||
// saveOrUpdateBatch(dataList);
|
||||
// 保存选人信息
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(userInfoMap));
|
||||
// 获取第一个任务的taskId
|
||||
String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId);
|
||||
// 保存第一个节点的草稿
|
||||
actFlowCommonService.saveFirstNodeDraft(processInfoVO, userId);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
// 自动完成第一个任务
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
// 根据流程实例id更新流程总表
|
||||
actFlowCommonService.updateProcessAll(processInfo);
|
||||
}
|
||||
|
||||
private Map<String, Object> setVariables(ProcessSccVO businessInfoDTO) {
|
||||
// TODO 转List
|
||||
return new HashMap<>();
|
||||
}
|
||||
|
||||
private Map<String, Object> getUserMap(Map<String, Object> map) {
|
||||
// TODO 转逗号拼接
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void approveTask(ProcessInfoVO<ProcessSccVO> processInfoVO, boolean pass) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void approveTask(ProcessInfoVO<ProcessSccVO> processInfoVO, boolean b) {
|
||||
public void submit(ProcessInfoVO<ProcessSccVO> processInfoVO) {
|
||||
|
||||
}
|
||||
|
||||
@@ -31,6 +115,58 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
public ProcessInfoVO<ProcessSccVO> getHandleData(String taskId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@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