diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/controller/ProcessController.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/controller/ProcessController.java index 0893be1..d8c3c96 100644 --- a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/controller/ProcessController.java +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/controller/ProcessController.java @@ -103,17 +103,17 @@ caseFlowService.completeCaseTask(dto); //若是立案派发在后台直接完成,前端直接到处置部门 - if (CaseStateEnum.TO_BE_DISTRIBUTED.getState() == dto.getChangeState()) { - dto.setCurrState(CaseStateEnum.TO_BE_DISTRIBUTED.getState()); - dto.setChangeState(CaseStateEnum.TO_BE_HANDLED.getState()); - caseFlowService.completeCaseTask(dto); - } +// if (CaseStateEnum.TO_BE_DISTRIBUTED.getState() == dto.getChangeState()) { +// dto.setCurrState(CaseStateEnum.TO_BE_DISTRIBUTED.getState()); +// dto.setChangeState(CaseStateEnum.TO_BE_HANDLED.getState()); +// caseFlowService.completeCaseTask(dto); +// } //处理审核派发核查 - if(CaseStateEnum.TO_BE_CHECKED.getState()==dto.getChangeState()){ - dto.setCurrState(CaseStateEnum.TO_BE_CHECKED.getState()); - dto.setChangeState(CaseStateEnum.CHECK_SCENE.getState()); - caseFlowService.completeCaseTask(dto); - } +// if(CaseStateEnum.TO_BE_CHECKED.getState()==dto.getChangeState()){ +// dto.setCurrState(CaseStateEnum.TO_BE_CHECKED.getState()); +// dto.setChangeState(CaseStateEnum.CHECK_SCENE.getState()); +// caseFlowService.completeCaseTask(dto); +// } return ResponseData.success(); } diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/controller/ProcessController.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/controller/ProcessController.java index 0893be1..d8c3c96 100644 --- a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/controller/ProcessController.java +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/controller/ProcessController.java @@ -103,17 +103,17 @@ caseFlowService.completeCaseTask(dto); //若是立案派发在后台直接完成,前端直接到处置部门 - if (CaseStateEnum.TO_BE_DISTRIBUTED.getState() == dto.getChangeState()) { - dto.setCurrState(CaseStateEnum.TO_BE_DISTRIBUTED.getState()); - dto.setChangeState(CaseStateEnum.TO_BE_HANDLED.getState()); - caseFlowService.completeCaseTask(dto); - } +// if (CaseStateEnum.TO_BE_DISTRIBUTED.getState() == dto.getChangeState()) { +// dto.setCurrState(CaseStateEnum.TO_BE_DISTRIBUTED.getState()); +// dto.setChangeState(CaseStateEnum.TO_BE_HANDLED.getState()); +// caseFlowService.completeCaseTask(dto); +// } //处理审核派发核查 - if(CaseStateEnum.TO_BE_CHECKED.getState()==dto.getChangeState()){ - dto.setCurrState(CaseStateEnum.TO_BE_CHECKED.getState()); - dto.setChangeState(CaseStateEnum.CHECK_SCENE.getState()); - caseFlowService.completeCaseTask(dto); - } +// if(CaseStateEnum.TO_BE_CHECKED.getState()==dto.getChangeState()){ +// dto.setCurrState(CaseStateEnum.TO_BE_CHECKED.getState()); +// dto.setChangeState(CaseStateEnum.CHECK_SCENE.getState()); +// caseFlowService.completeCaseTask(dto); +// } return ResponseData.success(); } diff --git a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java index 76873f2..c575f19 100644 --- a/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java +++ b/casic-service-cws/casic-cws-flow/src/main/java/com/casic/missiles/modular/flowable/service/impl/CaseFlowServiceImpl.java @@ -1,7 +1,9 @@ package com.casic.missiles.modular.flowable.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.SqlRunner; +import com.casic.missiles.core.common.constant.Const; import com.casic.missiles.core.common.exception.BizExceptionEnum; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.exception.GunsException; @@ -15,6 +17,9 @@ import com.casic.missiles.modular.flowable.service.ICwsSuportService; import com.casic.missiles.modular.flowable.util.BizFlowUtil; import com.casic.missiles.modular.flowable.util.FlowDcmsUserFactory; +import com.casic.missiles.modular.system.constant.FlowNodeConstant; +import com.casic.missiles.modular.system.model.FlowNextnode; +import com.casic.missiles.modular.system.service.IFlowNextnodeService; import org.flowable.engine.ProcessEngine; import org.flowable.engine.history.HistoricActivityInstance; import org.flowable.engine.impl.persistence.entity.ExecutionEntity; @@ -50,7 +55,8 @@ private String[] cancelNodes; @Autowired private IBmsSuportService caseSuportService; - + @Autowired + private IFlowNextnodeService flowNextnodeService; /** * 默认阶段时限 */ @@ -97,7 +103,7 @@ return processId; } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void completeCaseTask(ProcessDcmsDto dto) { logger.debug("案件处理信息:{}", dto); @@ -115,6 +121,25 @@ //更改当前案件状态 SqlRunner.db().update("UPDATE DCM_CWS_CASE SET CASE_STATE = {0} WHERE ID = {1}", new Object[]{dto.getChangeState(), dto.getBizId()}); BizFlowUtil.completeCaseTask(dto); + + //判断流程是否需要要自动处理 + EntityWrapper query = new EntityWrapper<>(); + query.eq(FlowNodeConstant.STATE, dto.getCurrState()); + List flowNextnodes = flowNextnodeService.getFlowNextnodesByCurrState(query); + int count = 0; + FlowNextnode autoNode = null; + for (FlowNextnode nextnode : flowNextnodes) { + if (Const.ONE.equals(nextnode.getIsAuto())) { + count++; + autoNode = nextnode; + } + } + if (count == 1) { + //执行自动流转 + dto.setCurrState(autoNode.getState()); + dto.setChangeState(autoNode.getNextState()); + this.completeCaseTask(dto); + } } @Transactional(rollbackFor = Exception.class)