feat: 专业技术企业标准报批流程

This commit is contained in:
2024-10-10 14:50:37 +08:00
parent 05b4cce7c6
commit 42ff75b3ea
8 changed files with 183 additions and 196 deletions
@@ -22,4 +22,38 @@ public class ActivitiCommon {
* 未处理 * 未处理
*/ */
public static final int COMMIT_FLAG3 = 3; public static final int COMMIT_FLAG3 = 3;
/**
* 起草人
*/
public static final String MAIN_DRAFT_USER = "mainDraftUser";
/**
* 审批人一
*/
public static final String USER_ONE_List = "userOneList";
/**
* 审批人二
*/
public static final String USER_TWO_List = "userTwoList";
/**
* 审批人三
*/
public static final String USER_THREE_List = "userThreeList";
/**
* 审批人四
*/
public static final String USER_FOUR_List = "userFourList";
/**
* 审批人五
*/
public static final String USER_FIVE_List = "userFiveList";
/**
* 审批人六
*/
public static final String USER_SIX_List = "userSixList";
/**
* 审批人七
*/
public static final String USER_SEVEN_List = "userSevenList";
} }
@@ -21,7 +21,11 @@ public enum ProcessTypeEnum {
DOMESTIC_VEHICLE_CONTROL_PUBLISH("国内整车型号和VIN前八位管控流程", 8, "com.jero.modules.activiti.process.vehicledomestic.service.impl.ProcessVehicleDomesticReleaseServiceImpl","/workCenter/VehicleDomesticReleaseProcess","/workCenter/VehicleDomesticReleaseProcess"), DOMESTIC_VEHICLE_CONTROL_PUBLISH("国内整车型号和VIN前八位管控流程", 8, "com.jero.modules.activiti.process.vehicledomestic.service.impl.ProcessVehicleDomesticReleaseServiceImpl","/workCenter/VehicleDomesticReleaseProcess","/workCenter/VehicleDomesticReleaseProcess"),
PLAN_CHANGE("企业标准计划变更流程", 9, "com.jero.modules.activiti.process.planchange.service.ProcessPlanChangeService","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"), PLAN_CHANGE("企业标准计划变更流程", 9, "com.jero.modules.activiti.process.planchange.service.ProcessPlanChangeService","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"),
INTERNATIONAL_VEHICLE_CONTROL_PUBLISH("国际整车型号和VIN前八位管控流程", 10, "com.jero.modules.activiti.process.vehicleinternational.service.impl.ProcessVehicleDomesticReleaseServiceImpl","/workCenter/VehicleInternationalReleaseProcess","/workCenter/VehicleInternationalReleaseProcess"), INTERNATIONAL_VEHICLE_CONTROL_PUBLISH("国际整车型号和VIN前八位管控流程", 10, "com.jero.modules.activiti.process.vehicleinternational.service.impl.ProcessVehicleDomesticReleaseServiceImpl","/workCenter/VehicleInternationalReleaseProcess","/workCenter/VehicleInternationalReleaseProcess"),
PART_TYPE_APPLY("关键零部件型号申请流程", 11, "com.jero.modules.activiti.process.part.service.impl.ProcessPartTypeApplyServiceImpl","/workCenter/KeyComponentModelRequestProcess","/workCenter/KeyComponentModelRequestProcess") PART_TYPE_APPLY("关键零部件型号申请流程", 11, "com.jero.modules.activiti.process.part.service.impl.ProcessPartTypeApplyServiceImpl","/workCenter/KeyComponentModelRequestProcess","/workCenter/KeyComponentModelRequestProcess"),
SPECIAL_ES_APPROVAL("专业技术企业标准报批流程", 12, "com.jero.modules.activiti.process.specialEsApproval.service.impl.specialEsApprovalServiceImpl", "/workCenter/specialEsApproval/specialEsApprovalFlow","/workCenter/enterpriseStandardRevision"),
MACHINE_ES_APPROVAL("产品标准-整车企业标准报批流程", 13, "com.jero.modules.activiti.process.esRevisionAdvice.service.impl.EsRevisionServiceImpl", "/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"),
ES_CAR_APPROVAL("产品标准-整机企业标准报批流程", 14, "com.jero.modules.activiti.process.esRevisionAdvice.service.impl.EsRevisionServiceImpl", "/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"),
ES_RECHECK("企标复审流程", 15, "com.jero.modules.activiti.process.esRecheck.service.impl.EsRecheckServiceImpl", "/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow","/workCenter/enterpriseStandardRecheck")
; ;
private final String name; private final String name;
@@ -110,7 +110,7 @@ public class ActFlowCommonService {
* @param flowUserInfoVO * @param flowUserInfoVO
* @param key * @param key
*/ */
public void convertAndPutList(HashMap<String, Object> map, Map<String, Object> flowUserInfoVO, String key) { public void convertAndPutList(Map<String, Object> map, Map<String, Object> flowUserInfoVO, String key) {
Optional.ofNullable(flowUserInfoVO.get(key)) Optional.ofNullable(flowUserInfoVO.get(key))
.map(Object::toString) .map(Object::toString)
.map(s -> Arrays.asList(s.split(","))) .map(s -> Arrays.asList(s.split(",")))
@@ -45,7 +45,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
import static com.jero.modules.activiti.common.ActivitiCommon.MAIN_INSTANCE_ID;
import static com.jero.modules.activiti.process.esRevisionAdvice.common.RevisionTaskNodeIdConstant.*; import static com.jero.modules.activiti.process.esRevisionAdvice.common.RevisionTaskNodeIdConstant.*;
/** /**
@@ -220,8 +219,7 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
BasicProcessInfoDTO processInfo = new BasicProcessInfoDTO(); BasicProcessInfoDTO processInfo = new BasicProcessInfoDTO();
// 使用流程引擎根据taskId找到流程实例Id // 使用流程引擎根据taskId找到流程实例Id
String mainInstanceId = (String) taskService.getVariable(taskId, MAIN_INSTANCE_ID); processInfo.setProcessInstanceId(processInstanceId);
processInfo.setProcessInstanceId(mainInstanceId);
processInfoVO.setBasicProcessInfoDTO(processInfo); processInfoVO.setBasicProcessInfoDTO(processInfo);
// 更新审批表为完成,填充数据 // 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(processTask, taskId); actFlowCommonService.updateApprovalInfo(processTask, taskId);
@@ -7,19 +7,17 @@ package com.jero.modules.activiti.process.specialEsApproval.common;
public class SpecialEsApprovalTaskNodeIdConstant { public class SpecialEsApprovalTaskNodeIdConstant {
/** 法规工程师确认是否开启征求意见 */ /** 法规工程师确认是否开启征求意见 */
public static final String CONFIRM_ADVISE = "Activity_1siuksf"; public static final String START = "Activity_1siuksf";
/** 设计工程师填写意见 */ /** 设计工程师填写意见 */
public static final String ADVICE = "Activity_04m430n"; public static final String ONE = "Activity_04m430n";
/** 法规工程师汇总数据 */ /** 法规工程师汇总数据 */
public static final String ADVICE_COLLECT = "Activity_1riqzkp"; public static final String TWO = "Activity_1riqzkp";
/** 法规工程师派号 */ /** 法规工程师派号 */
public static final String SET_STANDARD_NUMBER = "Activity_11uuyg0"; public static final String THREE = "Activity_11uuyg0";
/** 主起草人 */ /** 主起草人 */
public static final String MAIN_DRAFT_USER = "mainDraftUser"; public static final String FOUR = "mainDraftUser";
/** 法规工程师 */ /** 法规工程师 */
public static final String STANDARD_ENGINEER = "standardEngineer"; public static final String FIVE = "standardEngineer";
/** 征求意见人员 */ /** 征求意见人员 */
public static final String ADVICE_USER_LIST = "adviceUserList"; public static final String SIX = "adviceUserList";
/** 开启征求意见 */
public static final String OPEN = "open";
} }
@@ -24,34 +24,34 @@ import javax.annotation.Resource;
*/ */
@Slf4j @Slf4j
@RestController @RestController
@Api(tags = "企标制修订征求意见流程") @Api(tags = "专业技术企业标准报批流程")
@RequestMapping("/process/es/specialEsApproval") @RequestMapping("/process/es/specialEsApproval")
public class SpecialEsApprovalController { public class SpecialEsApprovalController {
@Resource @Resource
private SpecialEsApprovalService revisionService; private SpecialEsApprovalService flowService;
@Resource @Resource
private ActFlowCommonService actFlowCommonService; private ActFlowCommonService actFlowCommonService;
/** /**
* 企标制修订流程 * 专业技术企业标准报批流程
* *
* @param processInfoVO * @param processInfoVO
*/ */
@AutoLog(value = "企标制修订流程-发起流程") @AutoLog(value = "专业技术企业标准报批流程-发起流程")
@ApiOperation(value="企标制修订流程-发起流程", notes="企标制修订流程-发起流程") @ApiOperation(value="专业技术企业标准报批流程-发起流程", notes="专业技术企业标准报批流程-发起流程")
@PostMapping("/start") @PostMapping("/start")
public Result<?> startProcess(@RequestBody ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) { public Result<?> startProcess(@RequestBody ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) {
revisionService.startProcess(processInfoVO); flowService.startProcess(processInfoVO);
return Result.OK(); return Result.OK();
} }
@AutoLog(value = "企标制修订流程-提交") @AutoLog(value = "专业技术企业标准报批流程-提交")
@ApiOperation(value = "企标制修订流程-提交", notes = "企标制修订流程-提交") @ApiOperation(value = "专业技术企业标准报批流程-提交", notes = "专业技术企业标准报批流程-提交")
@PostMapping("/submit") @PostMapping("/submit")
public Result<T> submit(@RequestBody ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) { public Result<T> submit(@RequestBody ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) {
revisionService.submit(processInfoVO); flowService.submit(processInfoVO);
return Result.OK(); return Result.OK();
} }
@@ -59,8 +59,8 @@ public class SpecialEsApprovalController {
* 保存到待办 * 保存到待办
* @param taskId * @param taskId
*/ */
@AutoLog(value = "企标制修订流程-办理") @AutoLog(value = "专业技术企业标准报批流程-办理")
@ApiOperation(value="企标制修订流程-办理", notes="企标制修订流程-办理") @ApiOperation(value="专业技术企业标准报批流程-办理", notes="专业技术企业标准报批流程-办理")
@GetMapping("/handle/{taskId}") @GetMapping("/handle/{taskId}")
@Translation @Translation
public Result<?> handle(@PathVariable("taskId") String taskId) { public Result<?> handle(@PathVariable("taskId") String taskId) {
@@ -68,6 +68,23 @@ public class SpecialEsApprovalController {
if (draft != null) { if (draft != null) {
return Result.OK(draft); return Result.OK(draft);
} }
return Result.OK(revisionService.getHandleData(taskId)); return Result.OK(flowService.getHandleData(taskId));
} }
@AutoLog(value = "专业技术企业标准报批流程-同意")
@ApiOperation(value = "专业技术企业标准报批流程-同意", notes = "专业技术企业标准报批流程-同意")
@PostMapping("/agree")
public Result<T> agree(@RequestBody ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) {
flowService.approveTask(processInfoVO, true);
return Result.OK();
}
@AutoLog(value = "专业技术企业标准报批流程-驳回")
@ApiOperation(value = "专业技术企业标准报批流程-驳回", notes = "专业技术企业标准报批流程-驳回")
@PostMapping("/reject")
public Result<T> reject(@RequestBody ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) {
flowService.approveTask(processInfoVO, false);
return Result.OK();
}
} }
@@ -18,4 +18,6 @@ public interface SpecialEsApprovalService extends IService<ProcessSpecialEsAppro
void startProcess(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO); void startProcess(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO);
void submit(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO); void submit(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO);
void approveTask(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO, boolean pass);
} }
@@ -2,17 +2,13 @@ package com.jero.modules.activiti.process.specialEsApproval.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.api.vo.ResultCommon; import com.jero.common.api.vo.ResultCommon;
import com.jero.common.exception.JeroBootException; 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.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.CommitFlagEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esRevisionAdvice.entity.EsRevisionAdvice;
import com.jero.modules.activiti.process.esRevisionAdvice.service.EsRevisionAdviceService;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; 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.dto.BasicTaskInfoDTO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
@@ -20,14 +16,8 @@ import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.process.specialEsApproval.entity.ProcessSpecialEsApproval; import com.jero.modules.activiti.process.specialEsApproval.entity.ProcessSpecialEsApproval;
import com.jero.modules.activiti.process.specialEsApproval.mapper.ProcessSpecialEsApprovalMapper; import com.jero.modules.activiti.process.specialEsApproval.mapper.ProcessSpecialEsApprovalMapper;
import com.jero.modules.activiti.process.specialEsApproval.service.SpecialEsApprovalService; import com.jero.modules.activiti.process.specialEsApproval.service.SpecialEsApprovalService;
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.ProcessNodeLinkService;
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
import com.jero.modules.laws.enterprise.entity.ESPProjectStatus;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.sys.utils.UserUtils; import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
@@ -38,10 +28,10 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import static com.jero.modules.activiti.process.esRevisionAdvice.common.RevisionTaskNodeIdConstant.*; import static com.jero.modules.activiti.common.ActivitiCommon.*;
import static com.jero.modules.activiti.process.specialEsApproval.common.SpecialEsApprovalTaskNodeIdConstant.TWO;
/** /**
* @author ThinkBook * @author ThinkBook
@@ -66,34 +56,16 @@ public class SpecialEsApprovalServiceImpl extends ServiceImpl<ProcessSpecialEsAp
@Resource @Resource
private IProcessHandleService processHandleService; private IProcessHandleService processHandleService;
@Resource
private ProcessAllService processAllService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private EnterpriseStandardPlanService espService; private ProcessApprovalRecordService approvalRecordService;
@Resource
private EsRevisionAdviceService adviceService;
@Resource
private SendMessageAPI sendMessageAPI;
@Resource
private ILawsEnterpriseStandardService esService;
@Resource
private EnterpriseStandardPlanService planService;
@Resource
private EnterpriseStandardUtil esUtil;
@Override @Override
public void startProcess(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) { public void startProcess(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) {
// 流程Key // 流程Key
String processDefinitionKey = ProcessType.ES_REVISION_ADVICE.getProcessKey(); String processDefinitionKey = ProcessType.SPECIAL_ES_APPROVAL.getProcessKey();
// 流程信息 // 流程信息
BasicProcessInfoDTO processInfo = processInfoVO.getBasicProcessInfoDTO(); BasicProcessInfoDTO processInfo = processInfoVO.getBasicProcessInfoDTO();
// 任务信息 // 任务信息
@@ -113,7 +85,7 @@ public class SpecialEsApprovalServiceImpl extends ServiceImpl<ProcessSpecialEsAp
String processInstanceId = processInstance.getId(); String processInstanceId = processInstance.getId();
processInfo.setProcessInstanceId(processInstanceId); processInfo.setProcessInstanceId(processInstanceId);
processInfo.setProcessDefinitionId(processDefinitionId); processInfo.setProcessDefinitionId(processDefinitionId);
processInfo.setProcessType(ProcessTypeEnum.ES_REVISION_ADVICE.getValue()); processInfo.setProcessType(ProcessTypeEnum.SPECIAL_ES_APPROVAL.getValue());
// 第一个节点业务数据处理 // 第一个节点业务数据处理
this.startNodeBusProcess(processInfoVO); this.startNodeBusProcess(processInfoVO);
// 保存选人信息 // 保存选人信息
@@ -136,24 +108,23 @@ public class SpecialEsApprovalServiceImpl extends ServiceImpl<ProcessSpecialEsAp
private void startNodeBusProcess(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) { private void startNodeBusProcess(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) {
String processInstanceId = processInfoVO.getBasicProcessInfoDTO().getProcessInstanceId(); String processInstanceId = processInfoVO.getBasicProcessInfoDTO().getProcessInstanceId();
ProcessSpecialEsApproval processInfo = processInfoVO.getBusinessInfoDTO(); ProcessSpecialEsApproval processInfo = processInfoVO.getBusinessInfoDTO();
// 修改企标计划状态
// 检查企标计划是否已被删除
String espId = processInfo.getEspId();
EnterpriseStandardPlan esp = espService.getById(espId);
if (esp == null) {
throw new JeroBootException(ResultCommon.INVALID_ESP);
}
// 设置状态为运行中
espService.updateProjectStatus(espId, ESPProjectStatus.IN_PROGRESS.getValue());
// 保存数据
processInfo.setProcessInstanceId(processInstanceId); processInfo.setProcessInstanceId(processInstanceId);
save(processInfo); save(processInfo);
} }
private Map<String, Object> setVariables(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) { private Map<String, Object> setVariables(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) {
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap(); Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
Map<String, Object> result = new HashMap<>();
// 将所有多选人员转换为List后放入map中
userInfoMap.put(MAIN_DRAFT_USER, userInfoMap.get(MAIN_DRAFT_USER));
actFlowCommonService.convertAndPutList(result, userInfoMap, USER_ONE_List);
actFlowCommonService.convertAndPutList(result, userInfoMap, USER_TWO_List);
actFlowCommonService.convertAndPutList(result, userInfoMap, USER_THREE_List);
actFlowCommonService.convertAndPutList(result, userInfoMap, USER_FOUR_List);
actFlowCommonService.convertAndPutList(result, userInfoMap, USER_FIVE_List);
actFlowCommonService.convertAndPutList(result, userInfoMap, USER_SIX_List);
// 获取分发人 // 获取分发人
return new HashMap<>(userInfoMap); return result;
} }
@Override @Override
@@ -162,7 +133,6 @@ public class SpecialEsApprovalServiceImpl extends ServiceImpl<ProcessSpecialEsAp
throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS); throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS);
} }
ProcessInfoVO<ProcessSpecialEsApproval> result = new ProcessInfoVO<>(); ProcessInfoVO<ProcessSpecialEsApproval> result = new ProcessInfoVO<>();
ProcessSpecialEsApproval processVo = new ProcessSpecialEsApproval();
// 使用流程引擎根据taskId找到流程实例Id // 使用流程引擎根据taskId找到流程实例Id
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(processInstanceId)); result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(processInstanceId));
@@ -171,137 +141,101 @@ public class SpecialEsApprovalServiceImpl extends ServiceImpl<ProcessSpecialEsAp
// 获取当前流程数据 // 获取当前流程数据
LambdaQueryWrapper<ProcessSpecialEsApproval> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessSpecialEsApproval> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessSpecialEsApproval::getProcessInstanceId, processInstanceId); queryWrapper.eq(ProcessSpecialEsApproval::getProcessInstanceId, processInstanceId);
ProcessSpecialEsApproval data = getOne(queryWrapper); ProcessSpecialEsApproval processVo = getOne(queryWrapper);
// 获取当前流程
String xmlNodeId = record.getNodeId();
// 设置流程信息 // 设置流程信息
switch (xmlNodeId) {
case CONFIRM_ADVISE:
case ADVICE:
case SET_STANDARD_NUMBER:
break;
}
// 设置流程变量等相关信息
// processVo.setProcessInfo(data);
result.setBusinessInfoDTO(processVo); result.setBusinessInfoDTO(processVo);
return result; return result;
} }
@Override @Override
public void submit(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) { public void submit(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO) {
// BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
// String taskId = processTask.getTaskId(); String taskId = processTask.getTaskId();
// // 校验是否有权限操作此待办 // 校验是否有权限操作此待办
// processHandleService.validTask(taskId); processHandleService.validTask(taskId);
// // 获取当前节点的id // 获取当前节点的id
// ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId); String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
// String xmlNodeId = record.getNodeId(); BasicProcessInfoDTO processInfo = new BasicProcessInfoDTO();
// String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); // 使用流程引擎根据taskId找到流程实例Id
// BasicProcessInfoDTO processInfo = new BasicProcessInfoDTO(); processInfo.setProcessInstanceId(processInstanceId);
// // 使用流程引擎根据taskId找到流程实例Id processInfoVO.setBasicProcessInfoDTO(processInfo);
// String mainInstanceId = (String) taskService.getVariable(taskId, MAIN_INSTANCE_ID); // 更新审批表为完成,填充数据
// processInfo.setProcessInstanceId(mainInstanceId); actFlowCommonService.updateApprovalInfo(processTask, taskId);
// processInfoVO.setBasicProcessInfoDTO(processInfo); String curUserId = UserUtils.getUserId();
// // 更新审批表为完成,填充数据 ProcessSpecialEsApproval data = processInfoVO.getBusinessInfoDTO();
// actFlowCommonService.updateApprovalInfo(processTask, taskId); // 根据流程实例Id获取流程定义ID
// String curUserId = UserUtils.getUserId(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
// ProcessSpecialEsApproval businessInfoDTO = processInfoVO.getBusinessInfoDTO(); .processInstanceId(processInstanceId).singleResult();
//// ProcessSpecialEsApproval data = businessInfoDTO.getProcessInfo(); // 获取数据库中的流程信息
//// List<EsRevisionAdvice> adviceList = businessInfoDTO.getAdviceList(); LambdaQueryWrapper<ProcessSpecialEsApproval> queryWrapper = new LambdaQueryWrapper<>();
// // 根据流程实例Id获取流程定义ID queryWrapper.eq(ProcessSpecialEsApproval::getProcessInstanceId, processInstanceId);
// ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); ProcessSpecialEsApproval dataFromDb = getOne(queryWrapper);
// // 获取数据库中的流程信息 if (dataFromDb != null) {
// LambdaQueryWrapper<ProcessSpecialEsApproval> queryWrapper = new LambdaQueryWrapper<>(); data.setId(dataFromDb.getId());
// queryWrapper.eq(ProcessSpecialEsApproval::getProcessInstanceId, processInstanceId); }
// ProcessSpecialEsApproval dataFromDb = getOne(queryWrapper); // 获取流程实例ID
// if (dataFromDb != null) { String processDefinitionId = processInstance.getProcessDefinitionId();
// data.setId(dataFromDb.getId()); // 判断是否开启征求意见子流程 设置流程变量
// } Map<String, Object> actVariable = this.setVariables(processInfoVO);
// // 获取流程实例ID taskService.setVariables(taskId, actVariable);
// String processDefinitionId = processInstance.getProcessDefinitionId(); // 保存流程数据
// Map<String, Object> userMap = new HashMap<>(); saveOrUpdate(data);
// LambdaQueryWrapper<EsRevisionAdvice> detailQueryWrapper = new LambdaQueryWrapper<>(); processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, processInfoVO.getUserInfoMap());
// detailQueryWrapper.eq(EsRevisionAdvice::getProcessInstanceId, processInstanceId); // 完成任务
// List<EsRevisionAdvice> dbAdviceList = adviceService.list(detailQueryWrapper); actFlowCommonService.completeTask(taskId, curUserId);
// // 筛选出最新一轮 // 更新审批表为完成,填充数据
// Integer maxBatchNum = this.calculateAdviceBatchNum(dbAdviceList); actFlowCommonService.updateApprovalInfo(processTask, taskId);
// switch (xmlNodeId) { // 删除草稿
// case CONFIRM_ADVISE: actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId);
// // 判断是否开启征求意见子流程 设置流程变量 // 保存快照
// boolean adviceFlag = !data.getAdviceFlag().equals(YesOrNoEnum.NO.getValue()); processHandleService.saveToSnapshot(processInfoVO, curUserId);
// if (adviceFlag) { }
// List<String> adviceUserList = Arrays.asList(data.getAdviceUsers().split(","));
// taskService.setVariable(taskId, ADVICE_USER_LIST, adviceUserList); @Override
// taskService.setVariable(taskId, STANDARD_ENGINEER, curUserId); public void approveTask(ProcessInfoVO<ProcessSpecialEsApproval> processInfoVO, boolean pass) {
// taskService.setVariable(taskId, OPEN, true); // 获取task
// // 保存流程数据 BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
// saveOrUpdate(data); String taskId = processTask.getTaskId();
// userMap.put(STANDARD_ENGINEER, curUserId); // 校验是否有权限操作此待办
// userMap.put(ADVICE_USER_LIST, data.getAdviceUsers()); processHandleService.validTask(taskId);
// processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap); String prcId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
// } else { BasicProcessInfoDTO processInfo = new BasicProcessInfoDTO();
// taskService.setVariable(taskId, OPEN, false); processInfo.setProcessInstanceId(prcId);
// } processInfoVO.setBasicProcessInfoDTO(processInfo);
// break; // 获取当前节点的id
// case SET_STANDARD_NUMBER: ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
// // 判断标准编号是否重复 String xmlNodeId = record.getNodeId();
// Map<String, Object> variables = JSON.parseObject(data.getBusinessJson(), Map.class); String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
// // 根据派号字段重新生成标准编号 // 更新审批表为完成,填充数据
// String standardNumberTmp = (String) variables.get(FieldCommon.STANDARD_NUMBER_TEMP); actFlowCommonService.updateApprovalInfo(processTask, taskId);
// String standardNumber = ""; String curUserId = UserUtils.getUserId();
// if (StringUtils.isNotBlank(standardNumberTmp)) { if (xmlNodeId.equals(TWO)) {
// // 组合企标编号 // 获取数据库中的流程信息
// standardNumber = esUtil.combineStandardNumber(variables); ProcessSpecialEsApproval data = processInfoVO.getBusinessInfoDTO();
// } else { LambdaQueryWrapper<ProcessSpecialEsApproval> queryWrapper = new LambdaQueryWrapper<>();
// // 生成企标编号 queryWrapper.eq(ProcessSpecialEsApproval::getProcessInstanceId, processInstanceId);
// standardNumber = esUtil.generateStandardNumber(variables); ProcessSpecialEsApproval dataFromDb = getOne(queryWrapper);
// standardNumberTmp = EnterpriseStandardUtil.getSequenceNoFromStandardNo(standardNumber); if (dataFromDb != null) {
// } data.setId(dataFromDb.getId());
// variables.put(FieldCommon.STANDARD_NUMBER, standardNumber); }
// variables.put(FieldCommon.STANDARD_NUMBER_TEMP, standardNumberTmp); // 保存数据
// // 重新序列化为json updateById(data);
// data.setBusinessJson(JSON.toJSONString(variables)); }
// // 校验重复 // 设置流程变量
// LambdaQueryWrapper<LawsEnterpriseStandard> esQueryWrapper = new LambdaQueryWrapper<>(); runtimeService.setVariable(processInstanceId, PASS, pass);
// esQueryWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standardNumber); // 会签节点驳回后修改其他节点的状态
// LawsEnterpriseStandard es = esService.getOne(esQueryWrapper); approvalRecordService.updateApprovalRecordFinishFlag(pass, taskId, xmlNodeId, processInstanceId);
// if (Objects.nonNull(es)) { // 保存快照
// throw new JeroBootException(ResultCommon.STANDARD_NUMBER_ALREADY_EXISTS); processHandleService.saveToSnapshot(processInfoVO, curUserId);
// }
// LambdaQueryWrapper<EnterpriseStandardPlan> planQueryWrapper = new LambdaQueryWrapper<>();
// planQueryWrapper.eq(EnterpriseStandardPlan::getStandardNumber, standardNumber);
// EnterpriseStandardPlan plan = planService.getOne(planQueryWrapper);
// if (Objects.nonNull(plan)) {
// throw new JeroBootException(ResultCommon.STANDARD_NUMBER_ALREADY_EXISTS);
// }
// // 保存数据
// updateById(data);
// break;
// }
// 审批节点 // 审批节点
// actFlowCommonService.completeTask(taskId, curUserId); actFlowCommonService.completeTask(taskId, curUserId);
// // 更新审批表为完成,填充数据 // 驳回,结束所有节点
// actFlowCommonService.updateApprovalInfo(processTask, taskId); approvalRecordService.updateApprovalRecordFinishFlag(pass, taskId, xmlNodeId, processInstanceId);
// // 删除草稿 // 更新审批表为完成,填充数据
// actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId); processTask.setCommitFlag(pass ? CommitFlagEnum.PASS.getValue() : CommitFlagEnum.REJECT.getValue());
// // 保存快照 actFlowCommonService.updateApprovalInfo(processTask, taskId);
// processHandleService.saveToSnapshot(processInfoVO, curUserId); // 删除草稿
} actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId);
private Integer calculateAdviceBatchNum(List<EsRevisionAdvice> adviceList) {
return adviceList.stream().mapToInt(EsRevisionAdvice::getBatchNum).max().orElse(0);
}
private void sendMessageToMainDraftUser(String mainDraftUser, String processInstanceId, Integer maxBatchNum) {
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
SendMessageDTO sendMessageDTO = new SendMessageDTO();
sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.ES_REVISION_ADVICE);
sendMessageDTO.setToUserId(mainDraftUser);
Map<String, String> sendMap = new HashMap<>();
sendMap.put("prcNum", processAll.getPrcNum());
sendMap.put("batchNum", maxBatchNum.toString());
sendMessageDTO.setMap(sendMap);
sendMessageAPI.sendMessage(sendMessageDTO);
} }
} }