feat(标准解读流程): 快照
This commit is contained in:
+36
@@ -10,7 +10,9 @@ import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
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.standardinterpret.vo.FlowApproveInfo;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
@@ -41,6 +43,7 @@ public class FlowUtility {
|
||||
private final ProcessApprovalRecordService processApprovalRecordService;
|
||||
private final ProcessDraftService processDraftService;
|
||||
private final RuntimeService runtimeService;
|
||||
private final ProcessSnapshotService processSnapshotService;
|
||||
|
||||
public void flowApprovalUpdate(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord){
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
@@ -73,6 +76,39 @@ public class FlowUtility {
|
||||
.set(ProcessApprovalRecord::getCommitFile, processApprovalRecord.getCommitFile()));
|
||||
}
|
||||
|
||||
public void flowSaveSnapshot(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord, String infoJsonStr){
|
||||
// 保存快照
|
||||
ProcessSnapshot processSnapshot = new ProcessSnapshot();
|
||||
BeanUtils.copyProperties(processAll, processSnapshot);
|
||||
processSnapshot.setId(String.valueOf(SnowflakeUtils.snowflake()));
|
||||
processSnapshot.setCreateBy(null);
|
||||
processSnapshot.setCreateTime(null);
|
||||
processSnapshot.setUpdateBy(null);
|
||||
processSnapshot.setUpdateTime(null);
|
||||
if (StringUtils.isNotBlank(processApprovalRecord.getCommitFile())){
|
||||
processSnapshot.setHandleFile(processApprovalRecord.getCommitFile());
|
||||
}
|
||||
if (StringUtils.isNotBlank(processApprovalRecord.getCommitText())){
|
||||
processSnapshot.setHandleText(processApprovalRecord.getCommitFile());
|
||||
}
|
||||
if (!Objects.isNull(processAll.getDueTime())){
|
||||
processSnapshot.setProcessDueDate(processAll.getDueTime());
|
||||
}
|
||||
if (StringUtils.isNotBlank(processAll.getPrcMes())){
|
||||
processSnapshot.setProcessDescription(processAll.getPrcMes());
|
||||
}
|
||||
if (StringUtils.isNotBlank(infoJsonStr)){
|
||||
processSnapshot.setInfoJsonStr(infoJsonStr);
|
||||
}
|
||||
if (StringUtils.isNotBlank(processApprovalRecord.getTaskId())){
|
||||
processSnapshot.setTaskId(processApprovalRecord.getTaskId());
|
||||
}
|
||||
if (StringUtils.isNotBlank(processApprovalRecord.getUserId())){
|
||||
processSnapshot.setUserId(processApprovalRecord.getUserId());
|
||||
}
|
||||
processSnapshotService.save(processSnapshot);
|
||||
}
|
||||
|
||||
public FlowApproveInfo queryFlowApproveInfo(String projectId, String taskId){
|
||||
FlowApproveInfo flowApproveInfo = new FlowApproveInfo();
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
+12
-1
@@ -150,6 +150,13 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
|
||||
|
||||
// 自动完成第一个节点
|
||||
taskService.complete(task.getId());
|
||||
|
||||
// 保存快照
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
processAll.setProcessInstanceId(task.getProcessInstanceId());
|
||||
processApprovalRecord.setTaskId(task.getId());
|
||||
processApprovalRecord.setUserId(loginUser.getId());
|
||||
flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, standardInterpretFlowDTO.getInfoJsonStr());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -207,13 +214,17 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
|
||||
|
||||
// 特殊节点
|
||||
String nodeId = processApprovalRecord.getNodeId();
|
||||
if (StandardInterpretCommon.MASTER_INTERPRET_APPROVE.equals(nodeId)){
|
||||
if (StandardInterpretCommon.MASTER_INTERPRET_APPROVE.equals(nodeId)
|
||||
|| StandardInterpretCommon.MASTER_INTERPRET_AGAIN_DISTRIBUTE.equals(nodeId)){
|
||||
// 更新流程总表状态
|
||||
processAllService.update(new LambdaUpdateWrapper<ProcessAll>()
|
||||
.eq(ProcessAll::getProjectId, processAll.getProjectId())
|
||||
.set(ProcessAll::getPrcStatus, ProcessStatusEnum.INCOMPLETE.getValue()));
|
||||
}
|
||||
|
||||
// 保存快照
|
||||
flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, standardInterpretFlowDTO.getInfoJsonStr());
|
||||
|
||||
// 流程结束
|
||||
if (flowUtility.isLastNode(processAll.getProcessInstanceId())){
|
||||
// 查询业务信息
|
||||
|
||||
Reference in New Issue
Block a user