diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java index 92fc1dd4..f553d076 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java @@ -55,7 +55,7 @@ public interface IProcessHandleService { **/ void updateProcessAll(ProcessInfoVO processInfoVO); - + void updateProcessAllCustomUserId(ProcessInfoVO processInfoVO, String userId); /** * @Author: liao * @Date: 2023/11/3 10:52 @@ -63,6 +63,8 @@ public interface IProcessHandleService { **/ void updateApprovalRecord(ProcessInfoVO processInfoVO); + void saveToDraft(ProcessInfoVO processInfoVO); + /** * @Author: liao * @Date: 2023/11/3 11:13 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java index a341b98e..93b0dae6 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java @@ -299,6 +299,69 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { processApprovalRecordService.updateById(approvalRecord); } + @Override + public void saveToDraft(ProcessInfoVO processInfoVO) { + this.saveToDraft(processInfoVO, CurrentUserUtil.getId()); + } + + private void saveToDraft(ProcessInfoVO processInfoVO, String userId) { + BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO(); + BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO(); + String taskId = null; + String handleText = null; + String handleFile = null; + if (basicTaskInfoDTO != null) { + taskId = basicTaskInfoDTO.getTaskId(); + handleText = basicTaskInfoDTO.getHandleText(); + handleFile = basicTaskInfoDTO.getHandleFile(); + } else { + processInfoVO.setBasicTaskInfoDTO(new BasicTaskInfoDTO()); + } + + // 保存 + updateProcessAllCustomUserId(processInfoVO, userId); + updateApprovalRecord(processInfoVO); + + // 删除自己的草稿 + ProcessDraft processDraft = new ProcessDraft(); + + String draftId = processInfoVO.getDraftId(); + if (StringUtils.isNotBlank(draftId)) { + processDraft.setId(draftId); + //processDraftService.removeById(draftId); + } + // 根据是否有taskId区分保存来源(待办、草稿) + processDraft.setProjectId(processInfoVO.getBusinessId()); // 业务id + processDraft.setProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId()); // 流程实例id + processDraft.setPrcName(basicProcessInfoDTO.getProcessName()); // 流程名称 + processDraft.setPrcType(basicProcessInfoDTO.getProcessType()); // 流程类型 + processDraft.setProcessDueDate(basicProcessInfoDTO.getProcessDueDate()); // 流程信息-截止日期 + processDraft.setProcessDescription(basicProcessInfoDTO.getProcessDescription()); // 流程信息-流程说明 + processDraft.setTaskId(taskId); // 任务id + processDraft.setHandleText(handleText); // 流程审批信息-备注 + processDraft.setHandleFile(handleFile); // 流程审批信息-附件 + processDraft.setUserId(userId); // 用户id + processDraft.setInfoJsonStr(processInfoVO.getInfoJsonStr());//草稿信息json字符串 + processDraft.setSaveSource(processInfoVO.getSaveSource());//来源(启动流程时有用,用于保存初始业务信息用于强制驳回) + processDraftService.saveOrUpdate(processDraft); + } + + @Override + public void updateProcessAllCustomUserId(ProcessInfoVO processInfoVO, String userId) { + BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO(); + ProcessAll process = processAllService.getByProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId()); + if (Objects.isNull(process)) { + process = new ProcessAll(); + } + process.setPrcName(basicProcessInfoDTO.getProcessName()); // 流程名称 + process.setMes(basicProcessInfoDTO.getProcessDescription()); // 流程说明 + process.setPrcMes(basicProcessInfoDTO.getProcessDescription()); // 流程说明 + process.setDueTime(basicProcessInfoDTO.getProcessDueDate()); // 流程截止时间 + process.setPrcType(basicProcessInfoDTO.getProcessType()); // 流程类型 + process.setProjectId(processInfoVO.getBusinessId()); // 业务id + processAllService.updateById(process); + } + /** * @Author: liao * @Date: 2023/11/9 16:46 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 index ff58a249..0ec470b3 100644 --- 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 @@ -51,6 +51,19 @@ public class ProcessNewStandardImportController extends JeroController save(@Validated @RequestBody ProcessInfoVO processInfoVO) { + sccService.saveToDraft(processInfoVO); + return Result.OK(); + } + @AutoLog(value = "新法规导入流程-同意") @ApiOperation(value = "新法规导入流程-同意", notes = "新法规导入流程-同意") @PostMapping("/agree") 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 index 1f55d24a..cb85a12e 100644 --- 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 @@ -15,6 +15,8 @@ public interface IProcessNewStandardImportService extends IService processInfoVO); + void saveToDraft(ProcessInfoVO processInfoVO); + void approveTask(ProcessInfoVO processInfoVO, boolean b); ProcessInfoVO getHandleData(String taskId); 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 index 54dc481a..7926fbaa 100644 --- 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 @@ -1,7 +1,9 @@ package com.jero.modules.activiti.process.ni.service.impl; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; @@ -10,6 +12,7 @@ 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.ni.entity.ProcessNewStandardImport; import com.jero.modules.activiti.process.ni.mapper.ProcessNewStandardImportMapper; @@ -56,6 +59,9 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl processInfoVO) { @@ -91,7 +97,7 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl processInfoVO) { + // 流程信息 + BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO(); + // 流程类型 + basicProcessInfoDTO.setProcessType(ProcessTypeEnum.NEW_STANDARD_IMPORT.getValue()); + processHandleService.saveToDraft(processInfoVO); + } + /** * 第一个节点业务数据处理 * @param processInfoVO @@ -182,12 +197,24 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(ProcessNewStandardImport::getProcessInstanceId, processInstanceId); + ProcessNewStandardImport data = getOne(lambdaQueryWrapper); + result.setBusinessInfoDTO(data); return result; } }