feat: 快照保存

This commit is contained in:
2024-07-11 10:39:06 +08:00
parent 13e571c944
commit b95b4ce3cd
5 changed files with 45 additions and 22 deletions
@@ -18,7 +18,6 @@ import com.jero.modules.activiti.process.common.entity.StandTypeVO;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
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.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
@@ -407,16 +406,6 @@ public class ActFlowCommonService {
return approvalRecord.getOriginUserId();
}
/**
* 强制撤回流程-保存草稿
*
* @param processInfoVO
* @param userId
*/
public void saveFirstNodeDraft(ProcessInfoVO processInfoVO, String userId) {
}
public void checkStandardState(String standardId) {
LawsEnterpriseStandard es = esService.getById(standardId);
if (es != null) {
@@ -63,7 +63,9 @@ public interface IProcessHandleService {
**/
void updateApprovalRecord(ProcessInfoVO processInfoVO);
void saveToDraft(ProcessInfoVO processInfoVO);
void saveToDraft(ProcessInfoVO processInfoVO, String userId);
void saveToSnapshot(ProcessInfoVO processInfoVO, String userId);
/**
* @Author: liao
@@ -8,7 +8,9 @@ import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.common.DraftCommon;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.entity.ProcessSnapshot;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.common.service.ProcessSnapshotService;
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.ProcessDTO;
@@ -57,7 +59,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
private ProcessNodeLinkService processNodeLinkService; // 流程实例节点关联用户表
@Resource
private ProcessDraftService processDraftService; // 流程草稿表
@Resource
private ProcessSnapshotService processSnapshotService; // 流程草稿表
/**
* @Author: liao
* @Date: 2023/11/2 17:04
@@ -301,11 +304,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
}
@Override
public void saveToDraft(ProcessInfoVO processInfoVO) {
this.saveToDraft(processInfoVO, CurrentUserUtil.getId());
}
private void saveToDraft(ProcessInfoVO processInfoVO, String userId) {
public void saveToDraft(ProcessInfoVO processInfoVO, String userId) {
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
String taskId = null;
@@ -320,7 +319,6 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
}
// 保存
updateProcessAllCustomUserId(processInfoVO, userId);
updateApprovalRecord(processInfoVO);
// 删除自己的草稿
@@ -347,6 +345,38 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
processDraftService.saveOrUpdate(processDraft);
}
@Override
public void saveToSnapshot(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());
}
ProcessSnapshot processSnapshot = new ProcessSnapshot();
// 根据是否有taskId区分保存来源(待办、草稿)
processSnapshot.setProjectId(processInfoVO.getBusinessId()); // 业务id
processSnapshot.setProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId()); // 流程实例id
processSnapshot.setPrcName(basicProcessInfoDTO.getProcessName()); // 流程名称
processSnapshot.setPrcType(basicProcessInfoDTO.getProcessType()); // 流程类型
processSnapshot.setProcessDueDate(basicProcessInfoDTO.getProcessDueDate()); // 流程信息-截止日期
processSnapshot.setProcessDescription(basicProcessInfoDTO.getProcessDescription()); // 流程信息-流程说明
processSnapshot.setTaskId(taskId); // 任务id
processSnapshot.setHandleText(handleText); // 流程审批信息-备注
processSnapshot.setHandleFile(handleFile); // 流程审批信息-附件
processSnapshot.setUserId(userId); // 用户id
processSnapshot.setInfoJsonStr(processInfoVO.getInfoJsonStr());//草稿信息json字符串
processSnapshotService.save(processSnapshot);
}
@Override
public void updateProcessAllCustomUserId(ProcessInfoVO processInfoVO, String userId) {
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
@@ -100,7 +100,7 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
// 获取第一个任务的taskId
String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId);
// 保存第一个节点的草稿
processHandleService.saveToDraft(processInfoVO);
processHandleService.saveToDraft(processInfoVO, UserUtils.getUserId());
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(processTask, taskId);
// 自动完成第一个任务
@@ -116,7 +116,7 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
// 流程类型
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.NEW_STANDARD_IMPORT.getValue());
processHandleService.saveToDraft(processInfoVO);
processHandleService.saveToDraft(processInfoVO, UserUtils.getUserId());
}
/**
@@ -126,7 +126,9 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
// 获取第一个任务的taskId
String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId);
// 保存第一个节点的草稿
actFlowCommonService.saveFirstNodeDraft(processInfoVO, userId);
processHandleService.saveToDraft(processInfoVO, userId);
// 保存第一个节点的草稿
processHandleService.saveToSnapshot(processInfoVO, userId);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(processTask, taskId);
// 自动完成第一个任务