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.entity.ProcessApprovalRecord;
|
||||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
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.ProcessDraftService;
|
||||||
|
import com.jero.modules.activiti.process.common.service.ProcessSnapshotService;
|
||||||
import com.jero.modules.activiti.process.standardinterpret.vo.FlowApproveInfo;
|
import com.jero.modules.activiti.process.standardinterpret.vo.FlowApproveInfo;
|
||||||
import com.jero.modules.activiti.service.ProcessAllService;
|
import com.jero.modules.activiti.service.ProcessAllService;
|
||||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||||
@@ -41,6 +43,7 @@ public class FlowUtility {
|
|||||||
private final ProcessApprovalRecordService processApprovalRecordService;
|
private final ProcessApprovalRecordService processApprovalRecordService;
|
||||||
private final ProcessDraftService processDraftService;
|
private final ProcessDraftService processDraftService;
|
||||||
private final RuntimeService runtimeService;
|
private final RuntimeService runtimeService;
|
||||||
|
private final ProcessSnapshotService processSnapshotService;
|
||||||
|
|
||||||
public void flowApprovalUpdate(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord){
|
public void flowApprovalUpdate(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord){
|
||||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
@@ -73,6 +76,39 @@ public class FlowUtility {
|
|||||||
.set(ProcessApprovalRecord::getCommitFile, processApprovalRecord.getCommitFile()));
|
.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){
|
public FlowApproveInfo queryFlowApproveInfo(String projectId, String taskId){
|
||||||
FlowApproveInfo flowApproveInfo = new FlowApproveInfo();
|
FlowApproveInfo flowApproveInfo = new FlowApproveInfo();
|
||||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
|||||||
+12
-1
@@ -150,6 +150,13 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
|
|||||||
|
|
||||||
// 自动完成第一个节点
|
// 自动完成第一个节点
|
||||||
taskService.complete(task.getId());
|
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
|
@Override
|
||||||
@@ -207,13 +214,17 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
|
|||||||
|
|
||||||
// 特殊节点
|
// 特殊节点
|
||||||
String nodeId = processApprovalRecord.getNodeId();
|
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>()
|
processAllService.update(new LambdaUpdateWrapper<ProcessAll>()
|
||||||
.eq(ProcessAll::getProjectId, processAll.getProjectId())
|
.eq(ProcessAll::getProjectId, processAll.getProjectId())
|
||||||
.set(ProcessAll::getPrcStatus, ProcessStatusEnum.INCOMPLETE.getValue()));
|
.set(ProcessAll::getPrcStatus, ProcessStatusEnum.INCOMPLETE.getValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 保存快照
|
||||||
|
flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, standardInterpretFlowDTO.getInfoJsonStr());
|
||||||
|
|
||||||
// 流程结束
|
// 流程结束
|
||||||
if (flowUtility.isLastNode(processAll.getProcessInstanceId())){
|
if (flowUtility.isLastNode(processAll.getProcessInstanceId())){
|
||||||
// 查询业务信息
|
// 查询业务信息
|
||||||
|
|||||||
Reference in New Issue
Block a user