diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java index aaf6b4ba..41d5ea47 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java @@ -13,6 +13,7 @@ public enum ProcessTypeEnum { DEMO("测试流程", 0, "com.jero.modules.activiti.process.demo.service.ProcessDemoService", "/workCenter/StandardEntryOrChangeProcess", "/workCenter/StandardEntryOrChangeProcess"), STANDARD_INTERPRET("标准解读流程", 2, "com.jero.modules.activiti.process.standardinterpret.service.impl.StandardInterpretFlow", "", ""), STANDARD_COMPLIANCE_CHECK("法规符合性排查流程", 3, "com.jero.modules.activiti.process.standardComplianceCheck.service.ProcessStandardComplianceCheckService", "/workCenter/StandardComplianceCheckProcess", "/workCenter/StandardComplianceCheckProcess"), + NEW_STANDARD_IMPORT("新法规导入流程", 4, "com.jero.modules.activiti.process.ni.service.ProcessNewStandardImportService", "/workCenter/ProcessNewStandardImportProcess", "/workCenter/StandardComplianceCheckProcess"), ; private final String name; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java index 26fdcf78..0832497a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java @@ -13,6 +13,7 @@ public enum ProcessType { STANDARD_INTERPRET("标准解读流程", "2", "standard_interpret", "StandardInterpretFlowServiceImpl"), STANDARD_COMPLIANCE_CHECK("法规符合性评估流程", "3", "laws-evaluation-main", "ProcessStandardComplianceCheckServiceImpl"), + NEW_STANDARD_IMPORT("新法规搭导入流程", "4", "new_standard_import", "ProcessNewStandardImportServiceImpl"), ; private final String name; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/common/ProcessNewStandardImportConstants.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/common/ProcessNewStandardImportConstants.java new file mode 100644 index 00000000..56921337 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/common/ProcessNewStandardImportConstants.java @@ -0,0 +1,68 @@ +package com.jero.modules.activiti.process.ni.common; + +/** + * @author liJiaRao + * @date 2024-06-17 15:28 + */ +public class ProcessNewStandardImportConstants { + + /** 法规工程师 */ + public static final String STANDARD_ENGINEER = "standardEngineer"; + /** 各部门接口人 */ + public static final String DEPT_USER = "deptUser"; + /** 主排查人 */ + public static final String MAIN_CHECK_USER = "mainCheckUser"; + /** 会签人员列表 */ + public static final String COUNTERSIGN_USER_LIST = "countersignUserList"; + /** 设计工程师科室经理审核 */ + public static final String MANAGER = "manager"; + /** 高级经理/技术官 */ + public static final String SENIOR_MANAGER = "seniorManager"; + /** 未分配数量 */ + public static final String UNALLOCATED_QUANTITY = "unallocatedQuantity"; + + /** + * 法规工程师发起 + */ + public static final String STANDARD_ENGINEER_START = "sid-F144BD89-366F-482C-89DE-3AE2BD22D371"; + /** + * 各部门接口人分发 + */ + public static final String DEPT_USER_DISTRIBUTE = "sid-F07416DD-65BF-499E-AC96-F7A407AA3CEB"; + /** + * 主排查人分发 + */ + public static final String MAIN_CHECK_USER_DISTRIBUTE = "sid-96A59284-7EE2-4F10-A327-F76BC26B95F8"; + /** + * 主排查人分发 + */ + public static final String MAIN_CHECK_USER_REDISTRIBUTE = "sid-3D1BFC0F-9074-4868-891F-2F76D00A21C7"; + /** + * 主排查人汇总 + */ + public static final String MAIN_CHECK_USER_COLLECT = "sid-A478E1B2-84B6-4884-875B-E6C53392BC4F"; + /** + * 会签 + */ + public static final String COUNTERSIGN = "sid-D3B3377E-9392-44D6-81D5-9DDDA91FB083"; + /** + * 设计工程师科室经理审核 + */ + public static final String MANAGER_APPROVAL = "sid-B253F229-2E92-4882-A054-EAA068069F0F"; + /** + * 高级经理/技术官审核 + */ + public static final String SENIOR_MANAGER_APPROVAL = "sid-31D9FF6F-D1BE-4B02-910C-5DB7A5D0A626"; + /** + * 设计工程师工程师评估 + */ + public static final String DESIGNER_ENGINEER_EVALUATION = "sid-45FC4ED6-DB83-49E0-A080-55192B7860EB"; + /** + * 主排查人审核 + */ + public static final String MAIN_CHECK_USER_APPROVAL = "sid-C9A2FE2E-8A8A-4846-8010-5AE4ECF14DFE"; + /** 自动任务 */ + public static final String AUTO_TASK_1 = "sid-95E41F78-FE01-4FEC-BF8B-EC11DFBA8824"; + public static final String AUTO_TASK_2 = "autoTask_2"; + public static final String AUTO_TASK_3 = "autoTask_3"; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/controller/ProcessNewStandardImportController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/controller/ProcessNewStandardImportController.java new file mode 100644 index 00000000..e96ccdf2 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/controller/ProcessNewStandardImportController.java @@ -0,0 +1,126 @@ +package com.jero.modules.activiti.process.ni.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.common.system.base.controller.JeroController; +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.fb.service.IProcessHandleService; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport; +import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService; +import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ModelExcelVO; +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.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.enmus.ExcelType; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import java.util.ArrayList; + +/** + * 流程-新法规导入流程 + * + * @author xxxxx + */ +@Slf4j +@Api(tags = "新法规导入流程") +@RestController +@RequestMapping("process/newStandardImport") +public class ProcessNewStandardImportController extends JeroController { + + @Resource + private IProcessNewStandardImportService sccService; + + @Resource + private IProcessHandleService processHandleService; + + @Resource + private ActFlowCommonService actFlowCommonService; + + @AutoLog(value = "新法规导入流程-发起流程") + @ApiOperation(value = "新法规导入流程-发起流程", notes = "新法规导入流程-发起流程") + @PostMapping(value = "/start") + public Result startProcess(@Validated @RequestBody ProcessInfoVO processInfoVO) { + sccService.startProcess(processInfoVO); + return Result.OK(); + } + + @AutoLog(value = "新法规导入流程-同意") + @ApiOperation(value = "新法规导入流程-同意", notes = "新法规导入流程-同意") + @PostMapping("/agree") + public Result agree(@Validated @RequestBody ProcessInfoVO processInfoVO) { + sccService.approveTask(processInfoVO, true); + return Result.OK(); + } + + @AutoLog(value = "新法规导入流程-驳回") + @ApiOperation(value = "新法规导入流程-驳回", notes = "新法规导入流程-驳回") + @PostMapping("/reject") + public Result reject(@Validated @RequestBody ProcessInfoVO processInfoVO) { + sccService.approveTask(processInfoVO, false); + return Result.OK(); + } + + @AutoLog(value = "新法规导入流程-提交") + @ApiOperation(value = "新法规导入流程-提交", notes = "新法规导入流程-提交") + @PostMapping("/submit") + public Result submit(@Validated @RequestBody ProcessInfoVO processInfoVO) { + sccService.submit(processInfoVO); + return Result.OK(); + } + + /** + * 转办 + * + */ + @AutoLog(value = "新法规导入流程-转办") + @ApiOperation(value="新法规导入流程-转办", notes="新法规导入流程-转办") + @PostMapping(value = "/transfer") + public Result transfer(@RequestBody TransferVO transferVO) { + processHandleService.transfer(transferVO.getTaskId(), transferVO.getUserId()); + 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.STANDARD_COMPLIANCE_CHECK); + if (draft != null) { + return Result.OK(draft); + } + return Result.OK(sccService.getHandleData(taskId)); + } + + /** + * 生成 + * @param scc + */ + @AutoLog(value = "新法规导入流程-生成") + @ApiOperation(value="新法规导入流程-生成", notes="新法规导入流程-生成") + @PostMapping("/generate") + @Translation + public Result generate(@RequestPart("scc") ProcessNewStandardImport scc, + @RequestPart("modelFile") MultipartFile modelFile, + @RequestPart(name = "splitFile", required = false) MultipartFile splitFile) throws Exception { + return Result.OK(sccService.generate(scc, modelFile, splitFile)); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/entity/ProcessNewStandardImport.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/entity/ProcessNewStandardImport.java new file mode 100644 index 00000000..bbd054f5 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/entity/ProcessNewStandardImport.java @@ -0,0 +1,85 @@ +package com.jero.modules.activiti.process.ni.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * + * @TableName process_standard_compliance_check + */ +@TableName(value ="process_standard_import") +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="process_standard_import对象", description="新法规导入流程-主表") +public class ProcessNewStandardImport implements Serializable { + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /** + * 标准ID + */ + @ApiModelProperty(value = "标准ID") + private String standardId; + + /** + * 流程实例id + */ + @ApiModelProperty(value = "流程实例id") + private String processInstanceId; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private Date updateTime; + + + /** + * 0表示未删除,1表示删除 + */ + @ApiModelProperty(value = "0表示未删除,1表示删除") + @TableLogic + private Integer delFlag; + + /**所处阶段*/ + @ApiModelProperty(value = "所处阶段") + private String eventPhase; + + /**适用市场*/ + @ApiModelProperty(value = "适用市场") + private String applicableMarket; + /**法规要求简要描述*/ + @ApiModelProperty(value = "法规要求简要描述") + private String requireBriefDesc; + /**抄送人员*/ + @ApiModelProperty(value = "抄送人员") + private String copyUser; + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/entity/vo/ProcessNewStandardImportVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/entity/vo/ProcessNewStandardImportVO.java new file mode 100644 index 00000000..5e3fd99d --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/entity/vo/ProcessNewStandardImportVO.java @@ -0,0 +1,11 @@ +package com.jero.modules.activiti.process.ni.entity.vo; + + +import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport; +import lombok.Data; + +@Data +public class ProcessNewStandardImportVO { + + ProcessNewStandardImport standardInfo; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/listener/ProcessNewStandardImportFlowListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/listener/ProcessNewStandardImportFlowListener.java new file mode 100644 index 00000000..593f1456 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/listener/ProcessNewStandardImportFlowListener.java @@ -0,0 +1,28 @@ +package com.jero.modules.activiti.process.ni.listener; + +import com.jero.common.util.SpringContextUtils; +import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService; +import com.jero.modules.activiti.process.standardinterpret.service.StandardInterpretFlowService; +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 ProcessNewStandardImportFlowListener implements TaskListener { + + @Resource + private IProcessNewStandardImportService processNewStandardImportService; + + @Override + public void notify(DelegateTask delegateTask) { + processNewStandardImportService.flowListener(delegateTask); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/mapper/ProcessNewStandardImportMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/mapper/ProcessNewStandardImportMapper.java new file mode 100644 index 00000000..9d0197eb --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/mapper/ProcessNewStandardImportMapper.java @@ -0,0 +1,19 @@ +package com.jero.modules.activiti.process.ni.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport; + +/** +* @author +* @description 针对表【process_standard_import】的数据库操作Mapper +* @createDate 2024-07-04 10:21:21 +* @Entity +*/ +public interface ProcessNewStandardImportMapper extends BaseMapper { + +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/mapper/xml/ProcessNewStandardImportMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/mapper/xml/ProcessNewStandardImportMapper.xml new file mode 100644 index 00000000..d3dc4a8a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/mapper/xml/ProcessNewStandardImportMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/service/IProcessNewStandardImportService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/service/IProcessNewStandardImportService.java new file mode 100644 index 00000000..1f55d24a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/service/IProcessNewStandardImportService.java @@ -0,0 +1,27 @@ +package com.jero.modules.activiti.process.ni.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport; +import org.activiti.engine.delegate.DelegateTask; +import org.springframework.web.multipart.MultipartFile; + +/** +* @author ThinkBook +* @description 针对表【process_standard_compliance_check】的数据库操作Service +* @createDate 2024-07-04 10:21:21 +*/ +public interface IProcessNewStandardImportService extends IService { + + void startProcess(ProcessInfoVO processInfoVO); + + void approveTask(ProcessInfoVO processInfoVO, boolean b); + + ProcessInfoVO getHandleData(String taskId); + + void submit(ProcessInfoVO processInfoVO); + + String generate(ProcessNewStandardImport scc, MultipartFile modelFile, MultipartFile splitFile) throws Exception; + + void flowListener(DelegateTask delegateTask); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/service/impl/ProcessNewStandardImportServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/service/impl/ProcessNewStandardImportServiceImpl.java new file mode 100644 index 00000000..cb6b097f --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/ni/service/impl/ProcessNewStandardImportServiceImpl.java @@ -0,0 +1,199 @@ +package com.jero.modules.activiti.process.ni.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.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.vo.ProcessInfoVO; +import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport; +import com.jero.modules.activiti.process.ni.mapper.ProcessNewStandardImportMapper; +import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService; +import com.jero.modules.activiti.service.ProcessAllService; +import com.jero.modules.activiti.service.ProcessNodeLinkService; +import com.jero.modules.sys.utils.UserUtils; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +import static com.jero.modules.activiti.common.ActivitiCommon.PASS; + +/** +* @author ThinkBook +* @description 针对表【process_standard_compliance_check】的数据库操作Service实现 +* @createDate 2024-07-04 10:21:21 +*/ +@Service +public class ProcessNewStandardImportServiceImpl extends ServiceImpl + implements IProcessNewStandardImportService { + + @Resource + private ActFlowCommonService actFlowCommonService; + + @Resource + private ProcessNodeLinkService processNodeLinkService; + + @Resource + private TaskService taskService; + + @Resource + private ProcessAllService processAllService; + + @Resource + private RuntimeService runtimeService; + + @Override + public void startProcess(ProcessInfoVO processInfoVO) { + // 流程Key + String processDefinitionKey = ProcessType.NEW_STANDARD_IMPORT.getProcessKey(); + // 流程信息 + BasicProcessInfoDTO processInfo = processInfoVO.getBasicProcessInfoDTO(); + // 任务信息 + BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); + // 人员信息 + Map userInfoMap = processInfoVO.getUserInfoMap(); + // 业务数据 + ProcessNewStandardImport businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + // 当前用户Id + String userId = UserUtils.getUserId(); + // 设置流程变量 + Map actVariables = this.setVariables(businessInfoDTO); + // 删除草稿 + actFlowCommonService.getExistDraftAndRemove(processInfoVO.getDraftId()); + // 启动流程 + ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, actVariables); + // 获取流程实例ID + String processDefinitionId = processInstance.getProcessDefinitionId(); + String processInstanceId = processInstance.getId(); + businessInfoDTO.setProcessInstanceId(processInstanceId); + processInfo.setProcessInstanceId(processInstanceId); + processInfo.setProcessDefinitionId(processDefinitionId); + processInfo.setProcessType(ProcessTypeEnum.NEW_STANDARD_IMPORT.getValue()); + // 第一个节点业务数据处理 返回流程名称 + this.startNodeBusProcess(processInfoVO); + // 保存选人信息 + 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); + } + + /** + * 第一个节点业务数据处理 + * @param processInfoVO + */ + private void startNodeBusProcess(ProcessInfoVO processInfoVO) { + ProcessNewStandardImport businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + save(businessInfoDTO); + } + + private Map setVariables(ProcessNewStandardImport businessInfoDTO) { + // TODO 转List + return new HashMap<>(); + } + + private Map getUserMap(Map map) { + // TODO 转逗号拼接 + return map; + } + + @Override + public void approveTask(ProcessInfoVO processInfoVO, boolean pass) { + BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); + String taskId = processTask.getTaskId(); + // 获取task + if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) { + throw new JeroBootException("taskId为空或任务不存在"); + } + String userId = actFlowCommonService.getOriginTaskAssignee(taskId); + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + // 获取执行id + String executionId = task.getExecutionId(); + // 获取当前节点的id + ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId); + String xmlNodeId = record.getNodeId(); + String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); + // 获取当前流程 + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + String processDefinitionId = processInstance.getProcessDefinitionId(); + Map userMap = new HashMap<>(); + Map flowUser; + // 更新审批表为完成,填充数据 + actFlowCommonService.updateApprovalInfo(processTask, taskId); + String curUserId; + switch (xmlNodeId) { + + } + // 转办修改流程变量逻辑 + switch (xmlNodeId) { + + + } + runtimeService.setVariable(processInstanceId, PASS, pass); + // 审批节点 + actFlowCommonService.completeTask(taskId, userId); + } + + @Override + public void submit(ProcessInfoVO processInfoVO) { + startProcess(processInfoVO); + } + + @Override + public String generate(ProcessNewStandardImport scc, MultipartFile modelFile, MultipartFile splitFile) throws Exception { + // 新增流程主表数据 + this.save(scc); + // 返回主键 + return scc.getId(); + } + + @Override + public void flowListener(DelegateTask delegateTask) { + + } + + @Override + public ProcessInfoVO getHandleData(String taskId) { + if (!actFlowCommonService.taskExists(taskId)) { + throw new JeroBootException("任务不存在"); + } + ProcessInfoVO 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; + } +} + + + +