|
@@ -33,6 +33,7 @@ import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import static com.dayou.enums.workflow.NodeStateEnum.PENDING;
|
|
|
import static com.dayou.enums.workflow.NodeStateEnum.SKIP;
|
|
|
import static com.dayou.enums.workflow.WorkflowNodeEnum.*;
|
|
|
|
|
@@ -60,6 +61,9 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
|
|
|
@Autowired
|
|
|
private IWorkFlowNodeInstanceService workFlowNodeInstanceService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IWorkTaskRecordService workTaskRecordService;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public boolean forward(WorkNodeCommit workNodeCommit) {
|
|
@@ -121,12 +125,12 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
|
|
|
return Boolean.TRUE;
|
|
|
}
|
|
|
// 判断下一个节点为null,且当前节点为 归档 时, 返回TRUE
|
|
|
- if (ObjectUtil.isNull(nextWorkNode)){
|
|
|
+ if (ObjectUtil.isNull(nextWorkNode)) {
|
|
|
String code = workNodeService.getOne(new LambdaQueryWrapper<WorkNode>()
|
|
|
.select(WorkNode::getCode)
|
|
|
.eq(BaseEntity::getId, currentInstanceNode.getNodeId()).eq(BaseEntity::getDeleted, Boolean.FALSE)).getCode();
|
|
|
WorkflowNodeEnum workflowNodeEnum = WorkflowNodeEnum.valueOf(code);
|
|
|
- if (workflowNodeEnum.equals(WorkflowNodeEnum.BUSINESS_ARCHIVING)){
|
|
|
+ if (workflowNodeEnum.equals(WorkflowNodeEnum.BUSINESS_ARCHIVING)) {
|
|
|
// 将产品归档状态与归档时间更新
|
|
|
assetsProductionService.prodSaveFile(new Date(), workNodeCommit.getBusinessSubId());
|
|
|
assetsProductionService.prodSaveFile(new Date(), workNodeCommit.getBusinessMinId());
|
|
@@ -150,19 +154,26 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
|
|
|
public boolean goBack(WorkNodeCommit commit) {
|
|
|
Long instanceNodeId = commit.getInstanceNodeId();
|
|
|
WorkFlowNodeInstance currentNode = workFlowNodeInstanceMapper.getInstanceNodeInfoById(instanceNodeId);
|
|
|
- //如果是撰写节点(意见书,报告,复评函)退回。需删除产品业务信息
|
|
|
- List<String> writeNodes = Arrays.asList(new String[]{WRITE_STATEMENT.name(), WRITE_REPORT.name(), WRITE_LETTER.name()});
|
|
|
- if (writeNodes.contains(currentNode.getNodeCode()) && commit.getCleanReportNo() != null && commit.getCleanReportNo()) {
|
|
|
- //是否取号?
|
|
|
-// List<String> reportNos = majorTargetMapper.getSubReportNo(currentNode.getBusinessId());
|
|
|
-// if (CollectionUtil.isNotEmpty(reportNos)){
|
|
|
-// //清除子号
|
|
|
-// majorTargetMapper.cleanSubReportNo(currentNode.getBusinessId());
|
|
|
-// //清除产品信息
|
|
|
-// majorProductionMapper.delete(new LambdaQueryWrapper<MajorProduction>().eq(MajorProduction::getMajorId,currentNode.getBusinessId()));
|
|
|
-// }
|
|
|
+ //判断是否是审核节点退回
|
|
|
+ List<String> writeNodes = Arrays.asList(new String[]{REVIEW_STATEMENT.name(), CHECK_REPORT.name()});
|
|
|
+ if (writeNodes.contains(currentNode.getNodeCode())) {
|
|
|
+ //将上一个节点状态改为PENDING
|
|
|
+ workFlowNodeInstanceService.update(new LambdaUpdateWrapper<WorkFlowNodeInstance>().set(WorkFlowNodeInstance::getState, PENDING)
|
|
|
+ .eq(WorkFlowNodeInstance::getBusinessId, currentNode.getBusinessId()).eq(WorkFlowNodeInstance::getFlowId, currentNode.getFlowId())
|
|
|
+// .eq(StrUtil.isNotEmpty(commit.getBusinessSubId()), WorkFlowNodeInstance::getBusinessSubId, commit.getBusinessSubId())
|
|
|
+// .eq(StrUtil.isNotEmpty(commit.getBusinessMinId()), WorkFlowNodeInstance::getBusinessMinId, commit.getBusinessMinId())
|
|
|
+ .eq(WorkFlowNodeInstance::getSequence, (currentNode.getSequence() - 1)).eq(BaseEntity::getDeleted, Boolean.FALSE));
|
|
|
+ //删除当前节点
|
|
|
+ workFlowNodeInstanceService.delete(instanceNodeId);
|
|
|
+
|
|
|
+ //删除当前节点的待处理的任务记录
|
|
|
+ workTaskRecordService.remove(new LambdaQueryWrapper<WorkTaskRecord>().eq(WorkTaskRecord::getInstanceId,instanceNodeId));
|
|
|
+
|
|
|
+ //添加日志
|
|
|
+ return addWorkflowLog(commit,currentNode);
|
|
|
+ }else {
|
|
|
+ return super.goBack(commit);
|
|
|
}
|
|
|
- return super.goBack(commit);
|
|
|
}
|
|
|
|
|
|
/**
|