|
@@ -65,46 +65,52 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
|
|
|
@Override
|
|
|
public boolean forward(WorkNodeCommit workNodeCommit) {
|
|
|
WorkFlowNodeInstance currentInstanceNode = workFlowNodeInstanceMapper.getById(workNodeCommit.getInstanceNodeId());
|
|
|
- WorkNodeDTO nextWorkNode = beforeForward(workNodeCommit,currentInstanceNode);
|
|
|
- if (nextWorkNode!=null){
|
|
|
+ WorkNodeDTO nextWorkNode = beforeForward(workNodeCommit, currentInstanceNode);
|
|
|
+ if (nextWorkNode != null) {
|
|
|
String ifVerify = currentInstanceNode.getVerify();
|
|
|
- if (StrUtil.isNotEmpty(ifVerify)){
|
|
|
+ if (StrUtil.isNotEmpty(ifVerify)) {
|
|
|
CallbackEnum callback = CallbackEnum.valueOf(ifVerify);
|
|
|
//根据callback 确定具体的业务数据
|
|
|
//获取产品类型
|
|
|
List<ProductionEnum> production = workNodeCommit.getProduction();
|
|
|
- switch (callback){
|
|
|
+ switch (callback) {
|
|
|
+ // 校验资产产品类型
|
|
|
case CHECK_ASSET_PRODUCTION_TYPE:
|
|
|
//1. 获取业务上出具的产品类型。
|
|
|
//2.根据出具的产品类型 确定需要哪些节点
|
|
|
- Map<String,List<WorkflowNodeEnum>> assetsNecessaryNodes = CallbackEnum.NecessaryNode.getByProduction(MainBusinessEnum.ASSET_BUSINESS.name(),
|
|
|
+ Map<String, List<WorkflowNodeEnum>> assetsNecessaryNodes = CallbackEnum.NecessaryNode.getByProduction(MainBusinessEnum.ASSET_BUSINESS.name(),
|
|
|
production);
|
|
|
- nextWorkNode = workNodeService.getNextWorkNodeByBusiness(currentInstanceNode.getFlowId(),MainBusinessEnum.ASSET_BUSINESS,currentInstanceNode.getNodeCode(), assetsNecessaryNodes);
|
|
|
+ nextWorkNode = workNodeService.getNextWorkNodeByBusiness(currentInstanceNode.getFlowId(), MainBusinessEnum.ASSET_BUSINESS, currentInstanceNode.getNodeCode(), assetsNecessaryNodes);
|
|
|
+ break;
|
|
|
+ // 校验资产四审
|
|
|
+ case CHECK_ASSET_FOURTH_CHECK_REPORT:
|
|
|
+ // doFourthCheck为真则执行四审节点,为假则跳过四审节点
|
|
|
+ if (!workNodeCommit.getDoFourthCheck()){
|
|
|
+ nextWorkNode = workNodeService.getNextWorkNodeByFourthCheckState(currentInstanceNode.getFlowId(), currentInstanceNode.getNodeCode());
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- if (CollectionUtil.isNotEmpty(workNodeCommit.getReportNos())){
|
|
|
+ if (CollectionUtil.isNotEmpty(workNodeCommit.getReportNos())) {
|
|
|
//主流程分支
|
|
|
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.GENERATE_STATEMENT)){
|
|
|
- for (String businessSubId :workNodeCommit.getReportNos()){
|
|
|
- addNextInstanceNode(currentInstanceNode,nextWorkNode, workNodeCommit.getNextHandlerId(),businessSubId,null);
|
|
|
+ if (workflowNodeEnum.equals(WorkflowNodeEnum.GENERATE_STATEMENT)) {
|
|
|
+ for (String businessSubId : workNodeCommit.getReportNos()) {
|
|
|
+ addNextInstanceNode(currentInstanceNode, nextWorkNode, workNodeCommit.getNextHandlerId(), businessSubId, null);
|
|
|
}
|
|
|
- }
|
|
|
- else if(workflowNodeEnum.equals(WorkflowNodeEnum.WRITE_REPORT)){
|
|
|
- for (String businessMinId :workNodeCommit.getReportNos()){
|
|
|
- addNextInstanceNode(currentInstanceNode,nextWorkNode, workNodeCommit.getNextHandlerId(),workNodeCommit.getBusinessSubId(),businessMinId);
|
|
|
+ } else if (workflowNodeEnum.equals(WorkflowNodeEnum.WRITE_REPORT)) {
|
|
|
+ for (String businessMinId : workNodeCommit.getReportNos()) {
|
|
|
+ addNextInstanceNode(currentInstanceNode, nextWorkNode, workNodeCommit.getNextHandlerId(), workNodeCommit.getBusinessSubId(), businessMinId);
|
|
|
}
|
|
|
- }else {
|
|
|
- addNextInstanceNode(currentInstanceNode,nextWorkNode, workNodeCommit.getNextHandlerId(),workNodeCommit.getBusinessSubId(),workNodeCommit.getBusinessMinId());
|
|
|
+ } else {
|
|
|
+ addNextInstanceNode(currentInstanceNode, nextWorkNode, workNodeCommit.getNextHandlerId(), workNodeCommit.getBusinessSubId(), workNodeCommit.getBusinessMinId());
|
|
|
}
|
|
|
- }
|
|
|
- else {
|
|
|
- addNextInstanceNode(currentInstanceNode,nextWorkNode, workNodeCommit.getNextHandlerId(),workNodeCommit.getBusinessSubId(),workNodeCommit.getBusinessMinId());
|
|
|
+ } else {
|
|
|
+ addNextInstanceNode(currentInstanceNode, nextWorkNode, workNodeCommit.getNextHandlerId(), workNodeCommit.getBusinessSubId(), workNodeCommit.getBusinessMinId());
|
|
|
}
|
|
|
return Boolean.TRUE;
|
|
|
}
|
|
@@ -112,22 +118,22 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public boolean skip(WorkNodeCommit workNodeCommit){
|
|
|
+ public boolean skip(WorkNodeCommit workNodeCommit) {
|
|
|
WorkFlowNodeInstance instanceNode = workFlowNodeInstanceService.getById(workNodeCommit.getInstanceNodeId());
|
|
|
- workFlowNodeInstanceService.update(new LambdaUpdateWrapper<WorkFlowNodeInstance>().set(WorkFlowNodeInstance::getState,SKIP)
|
|
|
- .set(WorkFlowNodeInstance::getComment,workNodeCommit.getComments())
|
|
|
- .eq(WorkFlowNodeInstance::getId,workNodeCommit.getInstanceNodeId()));
|
|
|
+ workFlowNodeInstanceService.update(new LambdaUpdateWrapper<WorkFlowNodeInstance>().set(WorkFlowNodeInstance::getState, SKIP)
|
|
|
+ .set(WorkFlowNodeInstance::getComment, workNodeCommit.getComments())
|
|
|
+ .eq(WorkFlowNodeInstance::getId, workNodeCommit.getInstanceNodeId()));
|
|
|
//添加日志
|
|
|
- return addWorkflowLog(workNodeCommit,instanceNode);
|
|
|
+ return addWorkflowLog(workNodeCommit, instanceNode);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public boolean goBack(WorkNodeCommit commit){
|
|
|
+ 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()){
|
|
|
+ if (writeNodes.contains(currentNode.getNodeCode()) && commit.getCleanReportNo() != null && commit.getCleanReportNo()) {
|
|
|
//是否取号?
|
|
|
// List<String> reportNos = majorTargetMapper.getSubReportNo(currentNode.getBusinessId());
|
|
|
// if (CollectionUtil.isNotEmpty(reportNos)){
|
|
@@ -142,23 +148,24 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
|
|
|
|
|
|
/**
|
|
|
* 选择节点处理人
|
|
|
- * @param instanceNode 节点实列
|
|
|
+ *
|
|
|
+ * @param instanceNode 节点实列
|
|
|
* @param handlerPermissionDTO
|
|
|
* @return Long
|
|
|
*/
|
|
|
@Override
|
|
|
- public Long searchHandlerId(WorkFlowNodeInstance instanceNode, HandlerPermissionDTO handlerPermissionDTO){
|
|
|
+ public Long searchHandlerId(WorkFlowNodeInstance instanceNode, HandlerPermissionDTO handlerPermissionDTO) {
|
|
|
HandlerPermissionEnum handlerPermissionEnum = handlerPermissionDTO.getName();
|
|
|
Assets assets = assetsMapper.selectOne(new LambdaQueryWrapper<Assets>().select(Assets::getClientManagerId, Assets::getPrincipalId)
|
|
|
.eq(BaseEntity::getId, instanceNode.getBusinessId()));
|
|
|
- switch (handlerPermissionEnum){
|
|
|
+ switch (handlerPermissionEnum) {
|
|
|
case EMPLOYEE:
|
|
|
return handlerPermissionDTO.getPowerId();
|
|
|
case POST:
|
|
|
Long handlerId = userPostService.getUniqueHandlerByPostForWorkNode(handlerPermissionDTO.getPowerId());
|
|
|
- return handlerId==null?
|
|
|
+ return handlerId == null ?
|
|
|
departmentMapper.selectOne(new LambdaQueryWrapper<Department>().select(Department::getLeaderId).eq(BaseEntity::getId, assets.getDepartmentId())).getLeaderId()
|
|
|
- :handlerId;
|
|
|
+ : handlerId;
|
|
|
case DEPARTMENT_LEADER:
|
|
|
return departmentMapper.selectOne(new LambdaQueryWrapper<Department>().select(Department::getLeaderId).eq(BaseEntity::getId, assets.getDepartmentId())).getLeaderId();
|
|
|
case CLIENT_MANAGER:
|