|
@@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -82,7 +83,6 @@ public class MajorNodeHandler extends WorkNodeProcessable {
|
|
|
@Override
|
|
|
public boolean forward(WorkNodeCommit workNodeCommit) {
|
|
|
WorkFlowNodeInstance currentInstanceNode = workFlowNodeInstanceMapper.getById(workNodeCommit.getInstanceNodeId());
|
|
|
- //todo 如果currentInstanceNode 是分管领导分单。则需要将instance的state改为FINISHED
|
|
|
WorkNodeDTO nextWorkNode = beforeForward(workNodeCommit,currentInstanceNode);
|
|
|
if (nextWorkNode==null && workNodeCommit.getNodeCode().equals(LEADER_ALLOCATION.name())){
|
|
|
nextWorkNode = workNodeService.doCreatedDepartmentAllocationNode();
|
|
@@ -377,18 +377,32 @@ public class MajorNodeHandler extends WorkNodeProcessable {
|
|
|
}
|
|
|
else{
|
|
|
commit.setComments(comments.equals("3")?"委托人撤单":"客户经理通知终止");
|
|
|
- WorkFlowNodeInstance preNode = workFlowNodeInstanceService.list(new LambdaQueryWrapper<WorkFlowNodeInstance>().select(BaseEntity::getId)
|
|
|
- .eq(WorkFlowNodeInstance::getFlowId, currentNode.getFlowId())
|
|
|
- .eq(WorkFlowNodeInstance::getBusinessId, currentNode.getBusinessId()).eq(WorkFlowNodeInstance::getSequence, (currentNode.getSequence() - 1))
|
|
|
- .eq(BaseEntity::getDeleted, Boolean.FALSE).orderByDesc(BaseEntity::getCreated)).get(0);
|
|
|
+// WorkFlowNodeInstance preNode = workFlowNodeInstanceService.list(new LambdaQueryWrapper<WorkFlowNodeInstance>().select(BaseEntity::getId)
|
|
|
+// .eq(WorkFlowNodeInstance::getFlowId, currentNode.getFlowId())
|
|
|
+// .eq(WorkFlowNodeInstance::getBusinessId, currentNode.getBusinessId()).eq(WorkFlowNodeInstance::getSequence, (currentNode.getSequence() - 1))
|
|
|
+// .eq(BaseEntity::getDeleted, Boolean.FALSE).orderByDesc(BaseEntity::getCreated)).get(0);
|
|
|
+ WorkNodeDTO orderNode = workNodeService.getUniqueNodeByFlowNameAndNodeName(MAJOR_BUSINESS, OPENING_ORDER);
|
|
|
//将上一个节点状态改为PENDING
|
|
|
- preNode.setState(PENDING.getCode());
|
|
|
- workFlowNodeInstanceService.updateById(preNode);
|
|
|
-
|
|
|
- //将上一个节点的任务状态修改为未完成
|
|
|
- workTaskRecordService.update(new LambdaUpdateWrapper<WorkTaskRecord>()
|
|
|
- .set(WorkTaskRecord::getFinished,Boolean.FALSE)
|
|
|
- .eq(WorkTaskRecord::getInstanceId,preNode.getId()));
|
|
|
+ WorkFlowNodeInstance orderInstance = new WorkFlowNodeInstance();
|
|
|
+ orderInstance.setState(PENDING.getCode());
|
|
|
+ orderInstance.setNodeId(orderNode.getId());
|
|
|
+ orderInstance.setBusinessId(currentNode.getBusinessId());
|
|
|
+ orderInstance.setFlowId(orderNode.getFlowId());
|
|
|
+ orderInstance.setSequence(0);
|
|
|
+ orderInstance.setBusinessType(MAJOR_BUSINESS.name());
|
|
|
+ workFlowNodeInstanceService.save(orderInstance);
|
|
|
+
|
|
|
+ WorkFlowNodeInstance oldOrderNode = workFlowNodeInstanceService.list(new LambdaQueryWrapper<WorkFlowNodeInstance>()
|
|
|
+ .eq(WorkFlowNodeInstance::getBusinessId, currentNode.getBusinessId()).orderByAsc(BaseEntity::getCreated)).get(0);
|
|
|
+
|
|
|
+ WorkTaskRecord oldTask = workTaskRecordService.getOne(new LambdaQueryWrapper<WorkTaskRecord>().eq(WorkTaskRecord::getInstanceId, oldOrderNode.getId()));
|
|
|
+ WorkTaskRecord workTaskRecord = new WorkTaskRecord();
|
|
|
+ workTaskRecord.setInstanceId(orderInstance.getId());
|
|
|
+ workTaskRecord.setTaskId(oldTask.getTaskId());
|
|
|
+ workTaskRecord.setHandlerId(oldTask.getHandlerId());
|
|
|
+ workTaskRecord.setFinished(true);
|
|
|
+ workTaskRecord.setFinishTime(oldTask.getFinishTime());
|
|
|
+ workTaskRecordService.save(workTaskRecord);
|
|
|
}
|
|
|
|
|
|
//删除当前节点
|