完善新法规导入流程

This commit is contained in:
梁琦涛
2024-07-10 16:22:32 +08:00
parent 3b93f977e7
commit 10bb8408e2
5 changed files with 109 additions and 2 deletions
@@ -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
@@ -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
@@ -51,6 +51,19 @@ public class ProcessNewStandardImportController extends JeroController<ProcessNe
return Result.OK();
}
/**
* 保存到草稿
* @param processInfoVO
*/
@AutoLog(value = "企标废止发起流程-保存")
@ApiOperation(value="企标废止发起流程-保存", notes="企标废止发起流程-保存")
@PostMapping("/save")
public Result<?> save(@Validated @RequestBody ProcessInfoVO<ProcessNewStandardImport> processInfoVO) {
sccService.saveToDraft(processInfoVO);
return Result.OK();
}
@AutoLog(value = "新法规导入流程-同意")
@ApiOperation(value = "新法规导入流程-同意", notes = "新法规导入流程-同意")
@PostMapping("/agree")
@@ -15,6 +15,8 @@ public interface IProcessNewStandardImportService extends IService<ProcessNewSta
void startProcess(ProcessInfoVO<ProcessNewStandardImport> processInfoVO);
void saveToDraft(ProcessInfoVO<ProcessNewStandardImport> processInfoVO);
void approveTask(ProcessInfoVO<ProcessNewStandardImport> processInfoVO, boolean b);
ProcessInfoVO<ProcessNewStandardImport> getHandleData(String taskId);
@@ -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<ProcessNewS
@Resource
private RuntimeService runtimeService;
@Resource
private IProcessHandleService processHandleService;
@Override
@Transactional(rollbackFor = JeroBootException.class)
public void startProcess(ProcessInfoVO<ProcessNewStandardImport> processInfoVO) {
@@ -91,7 +97,7 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
// 获取第一个任务的taskId
String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId);
// 保存第一个节点的草稿
actFlowCommonService.saveFirstNodeDraft(processInfoVO, userId);
processHandleService.saveToDraft(processInfoVO);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(processTask, taskId);
// 自动完成第一个任务
@@ -100,6 +106,15 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
actFlowCommonService.updateProcessAll(processInfo);
}
@Override
public void saveToDraft(ProcessInfoVO<ProcessNewStandardImport> 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<ProcessNewS
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
// 获取流程通用数据
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
basicProcessInfoDTO.setProcessName(process.getPrcName());
basicProcessInfoDTO.setProcessType(process.getPrcType());
basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId());
basicProcessInfoDTO.setProcessInstanceId(process.getProcessInstanceId());
basicProcessInfoDTO.setProcessDescription(process.getPrcMes());
basicProcessInfoDTO.setProcessDueDate(process.getDueTime());
result.setBasicProcessInfoDTO(basicProcessInfoDTO);
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
String xmlNodeId = record.getNodeId();
// 设置流程信息
switch (xmlNodeId) {
//TODO
}
LambdaQueryWrapper<ProcessNewStandardImport> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(ProcessNewStandardImport::getProcessInstanceId, processInstanceId);
ProcessNewStandardImport data = getOne(lambdaQueryWrapper);
result.setBusinessInfoDTO(data);
return result;
}
}