feat: 整机企业标准报批流程
This commit is contained in:
@@ -16,16 +16,16 @@ public enum ProcessTypeEnum {
|
||||
STANDARD_COMPLIANCE_CHECK("法规符合性排查流程", 3, "com.jero.modules.activiti.process.standardComplianceCheck.service.StandardComplianceCheckFlow", "/workCenter/RegulatoryComplianceCheckProcess", "/workCenter/RegulatoryComplianceCheckProcess"),
|
||||
MARKET_STANDARD_PUBLISH("市场清单发布流程", 4, "com.jero.modules.activiti.process.ms.service.impl.ProcessMarketStandardReleaseServiceImpl", "/workCenter/MarketListReleaseProcess", "/workCenter/MarketListReleaseProcess"),
|
||||
ENTERPRISE_STANDARD_ABOLISH_PUBLISH("企标废止发布流程", 5, "com.jero.modules.activiti.process.abolish.service.impl.ProcessAbolishReleaseServiceImpl", "/workCenter/AbolishReleaseProcess", "/workCenter/AbolishReleaseProcess"),
|
||||
ES_REVISION_ADVICE("企业标准制修订及征求意见流程", 6, "com.jero.modules.activiti.process.esRevisionAdvice.service.impl.EsRevisionServiceImpl","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"),
|
||||
ES_REVISION_ADVICE("企业标准制修订及征求意见流程", 6, "com.jero.modules.activiti.process.esRevisionAdvice.service.impl.EsRevisionServiceImpl","/workCenter/EsRevisionAndConsultationProcess","/workCenter/EsRevisionAndConsultationProcess"),
|
||||
ANNUAL_INIT("企业标准年度制修订计划流程", 7, "com.jero.modules.activiti.process.annualinit.service.ProcessAnnualInitService","/workCenter/ESAnnualRevisionPlanProcess","/workCenter/ESAnnualRevisionPlanProcess"),
|
||||
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"),
|
||||
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"),
|
||||
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")
|
||||
SPECIAL_ES_APPROVAL("专业技术企业标准报批流程", 12, "com.jero.modules.activiti.process.specialEsApproval.service.impl.specialEsApprovalServiceImpl", "/workCenter/specialEsApproval/specialEsApprovalFlow","/workCenter/specialEsApprovalFlow"),
|
||||
MACHINE_ES_APPROVAL("产品标准-整车企业标准报批流程", 13, "com.jero.modules.activiti.process.machineEsApproval.service.impl.machineEsApprovalServiceImpl", "/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"),
|
||||
CAR_ES_APPROVAL("产品标准-整机企业标准报批流程", 14, "com.jero.modules.activiti.process.carEsApproval.service.impl.carEsApprovalServiceImpl", "/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;
|
||||
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.jero.modules.activiti.process.machineEsApproval.common;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2023/12/19 15:14
|
||||
*/
|
||||
public class MachineEsApprovalTaskNodeIdConstant {
|
||||
|
||||
/** 法规工程师确认是否开启征求意见 */
|
||||
public static final String START = "Activity_1siuksf";
|
||||
/** 设计工程师填写意见 */
|
||||
public static final String ONE = "Activity_04m430n";
|
||||
/** 法规工程师汇总数据 */
|
||||
public static final String TWO = "Activity_1riqzkp";
|
||||
/** 法规工程师派号 */
|
||||
public static final String THREE = "Activity_11uuyg0";
|
||||
/** 主起草人 */
|
||||
public static final String FOUR = "mainDraftUser";
|
||||
/** 法规工程师 */
|
||||
public static final String FIVE = "standardEngineer";
|
||||
/** 征求意见人员 */
|
||||
public static final String SIX = "adviceUserList";
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
package com.jero.modules.activiti.process.machineEsApproval.controller;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.aspect.annotation.Translation;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.machineEsApproval.entity.ProcessMachineEsApproval;
|
||||
import com.jero.modules.activiti.process.machineEsApproval.service.MachineEsApprovalService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2023/10/18 10:44
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@Api(tags = "整机企业标准报批流程")
|
||||
@RequestMapping("/process/es/machineEsApproval")
|
||||
public class MachineEsApprovalController {
|
||||
|
||||
@Resource
|
||||
private MachineEsApprovalService flowService;
|
||||
|
||||
@Resource
|
||||
private ActFlowCommonService actFlowCommonService;
|
||||
|
||||
/**
|
||||
* 整机企业标准报批流程
|
||||
*
|
||||
* @param processInfoVO
|
||||
*/
|
||||
@AutoLog(value = "整机企业标准报批流程-发起流程")
|
||||
@ApiOperation(value="整机企业标准报批流程-发起流程", notes="整机企业标准报批流程-发起流程")
|
||||
@PostMapping("/start")
|
||||
public Result<?> startProcess(@RequestBody ProcessInfoVO<ProcessMachineEsApproval> processInfoVO) {
|
||||
flowService.startProcess(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "整机企业标准报批流程-提交")
|
||||
@ApiOperation(value = "整机企业标准报批流程-提交", notes = "整机企业标准报批流程-提交")
|
||||
@PostMapping("/submit")
|
||||
public Result<T> submit(@RequestBody ProcessInfoVO<ProcessMachineEsApproval> processInfoVO) {
|
||||
flowService.submit(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存到待办
|
||||
* @param taskId
|
||||
*/
|
||||
@AutoLog(value = "整机企业标准报批流程-办理")
|
||||
@ApiOperation(value="整机企业标准报批流程-办理", notes="整机企业标准报批流程-办理")
|
||||
@GetMapping("/handle/{taskId}")
|
||||
@Translation
|
||||
public Result<?> handle(@PathVariable("taskId") String taskId) {
|
||||
ProcessDraft draft = actFlowCommonService.getExistDraftByTaskId(taskId, ProcessTypeEnum.MACHINE_ES_APPROVAL);
|
||||
if (draft != null) {
|
||||
return Result.OK(draft);
|
||||
}
|
||||
return Result.OK(flowService.getHandleData(taskId));
|
||||
}
|
||||
|
||||
@AutoLog(value = "整机企业标准报批流程-同意")
|
||||
@ApiOperation(value = "整机企业标准报批流程-同意", notes = "整机企业标准报批流程-同意")
|
||||
@PostMapping("/agree")
|
||||
public Result<T> agree(@RequestBody ProcessInfoVO<ProcessMachineEsApproval> processInfoVO) {
|
||||
flowService.approveTask(processInfoVO, true);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "整机企业标准报批流程-驳回")
|
||||
@ApiOperation(value = "整机企业标准报批流程-驳回", notes = "整机企业标准报批流程-驳回")
|
||||
@PostMapping("/reject")
|
||||
public Result<T> reject(@RequestBody ProcessInfoVO<ProcessMachineEsApproval> processInfoVO) {
|
||||
flowService.approveTask(processInfoVO, false);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
}
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
package com.jero.modules.activiti.process.machineEsApproval.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
*
|
||||
* @TableName process_machine_es_approval
|
||||
*/
|
||||
@TableName(value ="process_machine_es_approval")
|
||||
@Data
|
||||
public class ProcessMachineEsApproval implements Serializable {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 所属部门
|
||||
*/
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private String orgCode;
|
||||
|
||||
/**
|
||||
* 0表示未删除,1表示删除
|
||||
*/
|
||||
@ApiModelProperty(value = "0表示未删除,1表示删除")
|
||||
private Integer delFlag;
|
||||
|
||||
/**
|
||||
* 流程实例Id
|
||||
*/
|
||||
@ApiModelProperty(value = "流程实例Id")
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 在线编辑文件id
|
||||
*/
|
||||
@ApiModelProperty(value = "在线编辑文件id")
|
||||
private String onEditFile;
|
||||
|
||||
/**
|
||||
* 业务json数据
|
||||
*/
|
||||
@ApiModelProperty(value = "业务JSON数据")
|
||||
private String businessJson;
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
package com.jero.modules.activiti.process.machineEsApproval.listener;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
|
||||
import com.jero.modules.activiti.process.esRevisionAdvice.service.EsRevisionAdviceService;
|
||||
import com.jero.modules.activiti.process.machineEsApproval.entity.ProcessMachineEsApproval;
|
||||
import com.jero.modules.activiti.process.machineEsApproval.service.MachineEsApprovalService;
|
||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||
import com.jero.modules.laws.common.service.ILawsCommonService;
|
||||
import com.jero.modules.oss.service.IOSSFileService;
|
||||
import com.jero.modules.tag.enums.TableNameEnum;
|
||||
import lombok.SneakyThrows;
|
||||
import org.activiti.engine.delegate.DelegateExecution;
|
||||
import org.activiti.engine.delegate.ExecutionListener;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2023/12/19 11:59
|
||||
*/
|
||||
@Component
|
||||
public class ProcessMachineEsApprovalEndListener implements ExecutionListener {
|
||||
|
||||
@Resource
|
||||
private MachineEsApprovalService esRevisionService;
|
||||
|
||||
@Resource
|
||||
private EsRevisionAdviceService esAdviceService;
|
||||
|
||||
@Resource
|
||||
private ILawsCommonService lawsCommonService;
|
||||
|
||||
@Resource
|
||||
private IOSSFileService ossFileService;
|
||||
|
||||
@Resource
|
||||
private EsRevisionAdviceService revisionAdviceService;
|
||||
|
||||
@Value(value = "${jero.uploadType}")
|
||||
private String uploadType;
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public void notify(DelegateExecution delegateExecution) {
|
||||
// // 获取流程实例Id
|
||||
// String processInstanceId = delegateExecution.getProcessInstanceId();
|
||||
// // 根据流程Id获取业务数据
|
||||
// LambdaQueryWrapper<ProcessSpecialEsApproval> revisionWrapper = new LambdaQueryWrapper<>();
|
||||
// revisionWrapper.eq(ProcessSpecialEsApproval::getProcessInstanceId, processInstanceId);
|
||||
// // 获取企标相关数据
|
||||
// ProcessSpecialEsApproval data = esRevisionService.getOne(revisionWrapper);
|
||||
// // 将数据转换为Map
|
||||
// Map<String, Object> variables = transMap(data);
|
||||
// Date adviceDeadline = data.getAdviceDeadline();
|
||||
// if (adviceDeadline != null) {
|
||||
// // 制作征求意见稿
|
||||
// String draftFileId = this.makeDraftFile(data);
|
||||
// variables.put(FieldCommon.FILE_DRAFT_FOR_COMMENT, draftFileId);
|
||||
// }
|
||||
// // 发布企标
|
||||
// String esId = lawsCommonService.commonAdd(variables);
|
||||
// // 所有意见设置标准Id
|
||||
// LambdaQueryWrapper<EsRevisionAdvice> adviceWrapper = new LambdaQueryWrapper<>();
|
||||
// adviceWrapper.eq(EsRevisionAdvice::getProcessInstanceId, processInstanceId);
|
||||
// List<EsRevisionAdvice> list = esAdviceService.list(adviceWrapper);
|
||||
// if (!list.isEmpty()) {
|
||||
// list.forEach(item -> item.setStandardId(esId));
|
||||
// esAdviceService.updateBatchById(list);
|
||||
// }
|
||||
// // 更改企标计划状态
|
||||
}
|
||||
|
||||
private Map<String, Object> transMap(ProcessMachineEsApproval data) {
|
||||
Map<String, Object> variables = JSON.parseObject(data.getBusinessJson(), Map.class);
|
||||
variables.put(FieldCommon.MODULE, TableNameEnum.ENTERPRISE_STANDARDS.getValue());
|
||||
// 标准状态
|
||||
variables.put(FieldCommon.STANDARD_STATE, StandardStateEnum.SEEK_FOR_OPINIONS.getStateValue());
|
||||
String standardId = IdWorker.getIdStr();
|
||||
variables.put(FieldCommon.ID, standardId);
|
||||
String onEditFile = data.getOnEditFile();
|
||||
// 发布稿
|
||||
variables.put(FieldCommon.FILE_PUBLISH_OF_ORIGINAL, onEditFile);
|
||||
return variables;
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.jero.modules.activiti.process.machineEsApproval.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.modules.activiti.process.machineEsApproval.entity.ProcessMachineEsApproval;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【process_es_revision】的数据库操作Mapper
|
||||
* @createDate 2023-12-19 11:58:59
|
||||
* @Entity com.jero.modules.activiti.process.esRevision.entity.EsRevision
|
||||
*/
|
||||
public interface ProcessMachineEsApprovalMapper extends BaseMapper<ProcessMachineEsApproval> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.jero.modules.activiti.process.machineEsApproval.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.machineEsApproval.entity.ProcessMachineEsApproval;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【process_es_revision】的数据库操作Service
|
||||
* @createDate 2023-12-19 11:58:59
|
||||
*/
|
||||
public interface MachineEsApprovalService extends IService<ProcessMachineEsApproval> {
|
||||
|
||||
|
||||
ProcessInfoVO<ProcessMachineEsApproval> getHandleData(String taskId);
|
||||
|
||||
void startProcess(ProcessInfoVO<ProcessMachineEsApproval> processInfoVO);
|
||||
|
||||
void submit(ProcessInfoVO<ProcessMachineEsApproval> processInfoVO);
|
||||
|
||||
void approveTask(ProcessInfoVO<ProcessMachineEsApproval> processInfoVO, boolean pass);
|
||||
}
|
||||
+242
@@ -0,0 +1,242 @@
|
||||
package com.jero.modules.activiti.process.machineEsApproval.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
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.process.common.enums.ProcessType;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
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.machineEsApproval.entity.ProcessMachineEsApproval;
|
||||
import com.jero.modules.activiti.process.machineEsApproval.mapper.ProcessMachineEsApprovalMapper;
|
||||
import com.jero.modules.activiti.process.machineEsApproval.service.MachineEsApprovalService;
|
||||
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.runtime.ProcessInstance;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.jero.modules.activiti.common.ActivitiCommon.*;
|
||||
import static com.jero.modules.activiti.process.specialEsApproval.common.SpecialEsApprovalTaskNodeIdConstant.TWO;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【process_es_revision】的数据库操作Service实现
|
||||
* @createDate 2023-12-19 11:58:59
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public class MachineEsApprovalServiceImpl extends ServiceImpl<ProcessMachineEsApprovalMapper, ProcessMachineEsApproval>
|
||||
implements MachineEsApprovalService {
|
||||
|
||||
@Resource
|
||||
private ActFlowCommonService actFlowCommonService;
|
||||
|
||||
@Resource
|
||||
private ProcessNodeLinkService processNodeLinkService;
|
||||
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
|
||||
@Resource
|
||||
private IProcessHandleService processHandleService;
|
||||
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
|
||||
@Resource
|
||||
private ProcessApprovalRecordService approvalRecordService;
|
||||
|
||||
@Override
|
||||
public void startProcess(ProcessInfoVO<ProcessMachineEsApproval> processInfoVO) {
|
||||
// 流程Key
|
||||
String processDefinitionKey = ProcessType.MACHINE_ES_APPROVAL.getProcessKey();
|
||||
// 流程信息
|
||||
BasicProcessInfoDTO processInfo = processInfoVO.getBasicProcessInfoDTO();
|
||||
// 任务信息
|
||||
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
|
||||
// 人员信息
|
||||
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
|
||||
// 当前用户Id
|
||||
String userId = UserUtils.getUserId();
|
||||
// 设置流程变量
|
||||
Map<String, Object> actVariables = this.setVariables(processInfoVO);
|
||||
// 删除草稿
|
||||
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.MACHINE_ES_APPROVAL.getValue());
|
||||
// 第一个节点业务数据处理
|
||||
this.startNodeBusProcess(processInfoVO);
|
||||
// 保存选人信息
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap);
|
||||
// 获取第一个任务的taskId
|
||||
String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId);
|
||||
processTask.setTaskId(taskId);
|
||||
// 保存第一个节点的草稿
|
||||
processHandleService.saveToDraft(processInfoVO, userId);
|
||||
// 保存第一个节点的快照
|
||||
processHandleService.saveToSnapshot(processInfoVO, userId);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
// 根据流程实例id更新流程总表
|
||||
actFlowCommonService.updateProcessAll(processInfo);
|
||||
// 自动完成第一个任务
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
}
|
||||
|
||||
private void startNodeBusProcess(ProcessInfoVO<ProcessMachineEsApproval> processInfoVO) {
|
||||
String processInstanceId = processInfoVO.getBasicProcessInfoDTO().getProcessInstanceId();
|
||||
ProcessMachineEsApproval processInfo = processInfoVO.getBusinessInfoDTO();
|
||||
processInfo.setProcessInstanceId(processInstanceId);
|
||||
save(processInfo);
|
||||
}
|
||||
|
||||
private Map<String, Object> setVariables(ProcessInfoVO<ProcessMachineEsApproval> processInfoVO) {
|
||||
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 result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProcessInfoVO<ProcessMachineEsApproval> getHandleData(String taskId) {
|
||||
if (!actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS);
|
||||
}
|
||||
ProcessInfoVO<ProcessMachineEsApproval> result = new ProcessInfoVO<>();
|
||||
// 使用流程引擎根据taskId找到流程实例Id
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(processInstanceId));
|
||||
// 获取当前流程数据
|
||||
LambdaQueryWrapper<ProcessMachineEsApproval> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessMachineEsApproval::getProcessInstanceId, processInstanceId);
|
||||
ProcessMachineEsApproval processVo = getOne(queryWrapper);
|
||||
// 设置流程信息
|
||||
result.setBusinessInfoDTO(processVo);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void submit(ProcessInfoVO<ProcessMachineEsApproval> processInfoVO) {
|
||||
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
|
||||
String taskId = processTask.getTaskId();
|
||||
// 校验是否有权限操作此待办
|
||||
processHandleService.validTask(taskId);
|
||||
// 获取当前节点的id
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
BasicProcessInfoDTO processInfo = new BasicProcessInfoDTO();
|
||||
// 使用流程引擎根据taskId找到流程实例Id
|
||||
processInfo.setProcessInstanceId(processInstanceId);
|
||||
processInfoVO.setBasicProcessInfoDTO(processInfo);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
String curUserId = UserUtils.getUserId();
|
||||
ProcessMachineEsApproval data = processInfoVO.getBusinessInfoDTO();
|
||||
// 根据流程实例Id获取流程定义ID
|
||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
|
||||
.processInstanceId(processInstanceId).singleResult();
|
||||
// 获取数据库中的流程信息
|
||||
LambdaQueryWrapper<ProcessMachineEsApproval> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessMachineEsApproval::getProcessInstanceId, processInstanceId);
|
||||
ProcessMachineEsApproval dataFromDb = getOne(queryWrapper);
|
||||
if (dataFromDb != null) {
|
||||
data.setId(dataFromDb.getId());
|
||||
}
|
||||
// 获取流程实例ID
|
||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||
// 判断是否开启征求意见子流程 设置流程变量
|
||||
Map<String, Object> actVariable = this.setVariables(processInfoVO);
|
||||
taskService.setVariables(taskId, actVariable);
|
||||
// 保存流程数据
|
||||
saveOrUpdate(data);
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, processInfoVO.getUserInfoMap());
|
||||
// 完成任务
|
||||
actFlowCommonService.completeTask(taskId, curUserId);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
// 删除草稿
|
||||
actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId);
|
||||
// 保存快照
|
||||
processHandleService.saveToSnapshot(processInfoVO, curUserId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void approveTask(ProcessInfoVO<ProcessMachineEsApproval> processInfoVO, boolean pass) {
|
||||
// 获取task
|
||||
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
|
||||
String taskId = processTask.getTaskId();
|
||||
// 校验是否有权限操作此待办
|
||||
processHandleService.validTask(taskId);
|
||||
String prcId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
BasicProcessInfoDTO processInfo = new BasicProcessInfoDTO();
|
||||
processInfo.setProcessInstanceId(prcId);
|
||||
processInfoVO.setBasicProcessInfoDTO(processInfo);
|
||||
// 获取当前节点的id
|
||||
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
|
||||
String xmlNodeId = record.getNodeId();
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
String curUserId = UserUtils.getUserId();
|
||||
if (xmlNodeId.equals(TWO)) {
|
||||
// 获取数据库中的流程信息
|
||||
ProcessMachineEsApproval data = processInfoVO.getBusinessInfoDTO();
|
||||
LambdaQueryWrapper<ProcessMachineEsApproval> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessMachineEsApproval::getProcessInstanceId, processInstanceId);
|
||||
ProcessMachineEsApproval dataFromDb = getOne(queryWrapper);
|
||||
if (dataFromDb != null) {
|
||||
data.setId(dataFromDb.getId());
|
||||
}
|
||||
// 保存数据
|
||||
updateById(data);
|
||||
}
|
||||
// 设置流程变量
|
||||
runtimeService.setVariable(processInstanceId, PASS, pass);
|
||||
// 会签节点驳回后修改其他节点的状态
|
||||
approvalRecordService.updateApprovalRecordFinishFlag(pass, taskId, xmlNodeId, processInstanceId);
|
||||
// 保存快照
|
||||
processHandleService.saveToSnapshot(processInfoVO, curUserId);
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, curUserId);
|
||||
// 驳回,结束所有节点
|
||||
approvalRecordService.updateApprovalRecordFinishFlag(pass, taskId, xmlNodeId, processInstanceId);
|
||||
// 更新审批表为完成,填充数据
|
||||
processTask.setCommitFlag(pass ? CommitFlagEnum.PASS.getValue() : CommitFlagEnum.REJECT.getValue());
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
// 删除草稿
|
||||
actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ public class SpecialEsApprovalController {
|
||||
@GetMapping("/handle/{taskId}")
|
||||
@Translation
|
||||
public Result<?> handle(@PathVariable("taskId") String taskId) {
|
||||
ProcessDraft draft = actFlowCommonService.getExistDraftByTaskId(taskId, ProcessTypeEnum.ES_REVISION_ADVICE);
|
||||
ProcessDraft draft = actFlowCommonService.getExistDraftByTaskId(taskId, ProcessTypeEnum.SPECIAL_ES_APPROVAL);
|
||||
if (draft != null) {
|
||||
return Result.OK(draft);
|
||||
}
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import java.util.Date;
|
||||
|
||||
/**
|
||||
*
|
||||
* @TableName process_es_revision
|
||||
* @TableName process_special_es_approval
|
||||
*/
|
||||
@TableName(value ="process_special_es_approval")
|
||||
@Data
|
||||
|
||||
Reference in New Issue
Block a user