forked from gzzfw/backEnd/gz-dyh

liyj
2024-09-15 63e6c990e5bfd5c48b1abfeb273a500b783e7fa7
1、自行受理、受理跳转bug修复
2、联合处置流程优化
8 files modified
331 ■■■■ changed files
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java 16 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseReturnMapper.xml 6 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseReturn.java 6 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistApplyService.java 91 ●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseReturnService.java 4 ●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java 138 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/java/cn/huge/module/flow/consts/FlowNodeEnum.java 6 ●●●●● patch | view | raw | blame | history
dyh-service/dyh-mediate/src/main/resources/processes/GZDYH_LHCZ_3LEVEL_V1.bpmn20.xml 64 ●●●● patch | view | raw | blame | history
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
@@ -467,7 +467,21 @@
            result.add(firstSelectTermDTO);
            return result;
        }else {
            return new ArrayList<>();
            // todo
            QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
            ctUnitQueryWrapper.eq("parent_id", loginUnit.getParentId());
            List<CtUnit> ctUnitList = mapper.selectList(ctUnitQueryWrapper);
            //
            List<SelectTermDTO> unitList = new ArrayList<>();
            for (CtUnit ctUnit: ctUnitList){
                SelectTermDTO unitSelectTerm = new SelectTermDTO();
                unitSelectTerm.setValue(ctUnit.getId());
                unitSelectTerm.setLabel(ctUnit.getUnitName());
                unitSelectTerm.setParentId(ctUnit.getParentId());
                unitSelectTerm.setCheckable(true);
                unitList.add(unitSelectTerm);
            }
            return unitList;
        }
    }
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseReturnMapper.xml
@@ -21,6 +21,7 @@
            <result property="returnTime" column="return_time"/>
            <result property="returnStatus" column="return_status"/>
            <result property="caseTaskId" column="case_task_id"/>
            <result property="caseTaskType" column="case_task_type"/>
            <result property="auditUnitId" column="audit_unit_id"/>
            <result property="auditUnitName" column="audit_unit_name"/>
            <result property="auditUserId" column="audit_user_id"/>
@@ -48,6 +49,7 @@
        return_time,
        return_status,
        case_task_id,
        case_task_type,
        audit_unit_id,
        audit_unit_name,
        audit_user_id,
@@ -72,6 +74,7 @@
            <if test="entity.returnTime != null">return_time = #{entity.returnTime},</if>
            <if test="entity.returnStatus != null">return_status = #{entity.returnStatus},</if>
            <if test="entity.caseTaskId != null">case_task_id = #{entity.caseTaskId},</if>
            <if test="entity.caseTaskType != null">case_task_type = #{entity.caseTaskType},</if>
            <if test="entity.auditUnitId != null">audit_unit_id = #{entity.auditUnitId},</if>
            <if test="entity.auditUnitName != null">audit_unit_name = #{entity.auditUnitName},</if>
            <if test="entity.auditUserId != null">audit_user_id = #{entity.auditUserId},</if>
@@ -119,6 +122,9 @@
                <if test="terms.caseTaskId != null and terms.caseTaskId !=''">
                    and case_task_id = #{terms.caseTaskId}
                </if>
                <if test="terms.caseTaskType != null and terms.caseTaskType !=''">
                    and case_task_type = #{terms.caseTaskType}
                </if>
                <if test="terms.auditUnitId != null and terms.auditUnitId !=''">
                    and audit_unit_id = #{terms.auditUnitId}
                </if>
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseReturn.java
@@ -84,6 +84,12 @@
    private String caseTaskId;
    /**
     * 纠纷任务类型,1:承办,2:配合
     */
    @TableField(value = "case_task_type")
    private Integer caseTaskType;
    /**
    * 回退审核组织编号
    */
    @TableField(value = "audit_unit_id")
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistApplyService.java
@@ -197,31 +197,74 @@
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            Date now = DateUtils.getNowDate();
            caseAssistApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1);
            caseAssistApply.setAuditUserId(loginUser.getId());
            caseAssistApply.setAuditUserName(loginUser.getTrueName());
            caseAssistApply.setAuditTime(now);
            caseAssistApply.setUpdateTime(now);
            mapper.updateCaseAssistApply(caseAssistApply);
            CaseAssistApply caseAssistApplyPO = mapper.selectById(caseAssistApply.getId());
            caseAssistApplyPO.setAuditResult(caseAssistApply.getAuditResult());
            caseAssistApplyPO.setAuditResultName(caseAssistApply.getAuditResultName());
            caseAssistApplyPO.setAuditContent(caseAssistApply.getAuditContent());
            caseAssistApplyPO.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1);
            caseAssistApplyPO.setAuditUserId(loginUser.getId());
            caseAssistApplyPO.setAuditUserName(loginUser.getTrueName());
            caseAssistApplyPO.setAuditTime(now);
            caseAssistApplyPO.setUpdateTime(now);
            mapper.updateCaseAssistApply(caseAssistApplyPO);
            // 审核通过,就启动联合处置工作流
            if (AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex().equals(caseAssistApply.getAuditResult())) {
                String[] unitIds = caseAssistApply.getApplyAssistUnitId().split(BaseConsts.COMMA);
            if (AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex().equals(caseAssistApplyPO.getAuditResult())) {
                String[] unitIds = caseAssistApplyPO.getApplyAssistUnitId().split(BaseConsts.COMMA);
                for (String unitId: unitIds) {
                    // 启动联合处置工作流
                    FlowNode firstFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_LHCZ, caseAssistApply.getCaseId());
                    FlowNode dfpFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_LHCZ, caseAssistApplyPO.getCaseId());
                    // 新建并完成配合部门待分派任务
                    CaseTask dfpCaseTask = new CaseTask();
                    dfpCaseTask.setId(utilsClient.getNewTimeId());
                    dfpCaseTask.setCaseId(caseAssistApplyPO.getCaseId());
                    dfpCaseTask.setFlowableId(dfpFlowNode.getFlowableId());
                    dfpCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId());
                    dfpCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId());
                    dfpCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
                    dfpCaseTask.setNodeType(dfpFlowNode.getNodeType());
                    dfpCaseTask.setNodeId(dfpFlowNode.getNodeId());
                    dfpCaseTask.setNodeName(dfpFlowNode.getNodeName());
                    dfpCaseTask.setFlowId(dfpFlowNode.getFlowId());
                    dfpCaseTask.setNodeShowName(dfpFlowNode.getNodeShowName());
                    dfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
                    // 通过调度的,任务候选执行者类型是上一步骤选择
                    dfpCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                    dfpCaseTask.setCandeUnitId(loginUser.getUnitId());
                    dfpCaseTask.setCandeUnitName(loginUser.getUnitName());
                    // 不需要签收
                    dfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    dfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                    dfpCaseTask.setHandleUnitId(loginUser.getUnitId());
                    dfpCaseTask.setHandleUnitName(loginUser.getUnitName());
                    dfpCaseTask.setHandleUserId(loginUser.getId());
                    dfpCaseTask.setHandleUserName(loginUser.getTrueName());
                    dfpCaseTask.setHandleContent(caseAssistApplyPO.getAuditContent());
                    dfpCaseTask.setHandleIllust("交办至:"+caseAssistApplyPO.getApplyAssistUnitName());
                    // 任务处理时限
                    if (dfpFlowNode.getExpire() != 0) {
                        dfpCaseTask.setExpireTime(DateUtils.addDay(now, dfpFlowNode.getExpire()));
                    }
                    dfpCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    dfpCaseTask.setCustId(caseAssistApplyPO.getCustId());
                    dfpCaseTask.setCreateTime(now);
                    dfpCaseTask.setUpdateTime(now);
                    caseTaskService.save(dfpCaseTask);
                    // 完成待分派任务
                    FlowNode dslFlowNode = flowInfoService.completeTask(dfpCaseTask.getFlowableId(), dfpCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_forward, loginUser.getId());
                    // 创建配合部门待受理任务
                    CaseTask dslCaseTask = new CaseTask();
                    dslCaseTask.setId(utilsClient.getNewTimeId());
                    dslCaseTask.setCaseId(caseAssistApply.getCaseId());
                    dslCaseTask.setFlowableId(firstFlowNode.getFlowableId());
                    dslCaseTask.setProcessInstanceId(firstFlowNode.getProcessInstanceId());
                    dslCaseTask.setProcessTaskId(firstFlowNode.getProcessTaskId());
                    dslCaseTask.setCaseId(caseAssistApplyPO.getCaseId());
                    dslCaseTask.setFlowableId(dslFlowNode.getFlowableId());
                    dslCaseTask.setProcessInstanceId(dslFlowNode.getProcessInstanceId());
                    dslCaseTask.setProcessTaskId(dslFlowNode.getProcessTaskId());
                    dslCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
                    dslCaseTask.setNodeType(firstFlowNode.getNodeType());
                    dslCaseTask.setNodeId(firstFlowNode.getNodeId());
                    dslCaseTask.setNodeName(firstFlowNode.getNodeName());
                    dslCaseTask.setFlowId(firstFlowNode.getFlowId());
                    dslCaseTask.setNodeShowName(firstFlowNode.getNodeShowName());
                    dslCaseTask.setNodeType(dslFlowNode.getNodeType());
                    dslCaseTask.setNodeId(dslFlowNode.getNodeId());
                    dslCaseTask.setNodeName(dslFlowNode.getNodeName());
                    dslCaseTask.setFlowId(dslFlowNode.getFlowId());
                    dslCaseTask.setNodeShowName(dslFlowNode.getNodeShowName());
                    dslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
                    // 通过调度的,任务候选执行者类型是上一步骤选择
                    dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
@@ -232,20 +275,20 @@
                    dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
                    dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    // 任务处理时限
                    if (firstFlowNode.getExpire() != 0) {
                        dslCaseTask.setExpireTime(DateUtils.addDay(now, firstFlowNode.getExpire()));
                    if (dslFlowNode.getExpire() != 0) {
                        dslCaseTask.setExpireTime(DateUtils.addDay(now, dslFlowNode.getExpire()));
                    }
                    dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    dslCaseTask.setCustId(caseAssistApply.getCustId());
                    dslCaseTask.setCustId(caseAssistApplyPO.getCustId());
                    dslCaseTask.setCreateTime(now);
                    dslCaseTask.setUpdateTime(now);
                    caseTaskService.save(dslCaseTask);
                }
                // 更新纠纷扩展信息
                CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
                caseInfoUnfoldPO.setId(caseAssistApply.getCaseId());
                caseInfoUnfoldPO.setAssistUnitId(caseAssistApply.getApplyAssistUnitId());
                caseInfoUnfoldPO.setAssistUnitName(caseAssistApply.getApplyAssistUnitName());
                caseInfoUnfoldPO.setId(caseAssistApplyPO.getCaseId());
                caseInfoUnfoldPO.setAssistUnitId(caseAssistApplyPO.getApplyAssistUnitId());
                caseInfoUnfoldPO.setAssistUnitName(caseAssistApplyPO.getApplyAssistUnitName());
                caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            }
        }catch (Exception e){
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseReturnService.java
@@ -155,10 +155,10 @@
     * @param caseId 纠纷编号
     * @return
     */
    public CaseReturn getNewByCaseId(String caseId){
    public CaseReturn getNewByCaseId(String caseId, int caseTaskType){
        try{
            QueryWrapper<CaseReturn> caseReturnQueryWrapper = new QueryWrapper<>();
            caseReturnQueryWrapper.eq("case_id", caseId).orderByDesc("return_time");
            caseReturnQueryWrapper.eq("case_id", caseId).eq("case_task_type", caseTaskType).orderByDesc("return_time");
            List<CaseReturn> caseReturnList = mapper.selectList(caseReturnQueryWrapper);
            if (CollectionUtils.isNotEmpty(caseReturnList)) {
                return caseReturnList.get(0);
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java
@@ -443,7 +443,7 @@
                    // 回退申请节点
                    if(CaseTaskConsts.TASK_TYPE_2 == caseTask.getTaskType()){
                        webCaseFlowDTO.setNodeShowName("事件回退");
                        CaseReturn caseReturn = caseReturnService.getNewByCaseId(caseId);
                        CaseReturn caseReturn = caseReturnService.getNewByCaseId(caseId, caseTask.getCaseTaskType());
                        if (StringUtils.isNotEmpty(caseReturn.getReturnContent())) {
                            webCaseFlowDTO.setHandleNotes("回退理由:" + caseReturn.getReturnContent());
                        }else {
@@ -1113,7 +1113,7 @@
            caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId());
            caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName());
            caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            return dslCaseTask.getId();
            return blfkCaseTask.getId();
        }catch (Exception e){
            log.error("[CaseTaskService.webStartFlowZXSL]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webStartFlowZXSL", e);
@@ -1224,37 +1224,76 @@
                        collect(Collectors.joining(BaseConsts.COMMA));
                for (AssignAssistUnitDTO assignAssistUnitDTO: assignTaskDTO.getAssistUnitList()){
                    // 启动联合处置工作流
                    FlowNode firstFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_LHCZ, dfpCaseTask.getCaseId());
                    // 创建配合部门待受理任务
                    CaseTask lhczCaseTask = new CaseTask();
                    lhczCaseTask.setId(utilsClient.getNewTimeId());
                    lhczCaseTask.setCaseId(dfpCaseTask.getCaseId());
                    lhczCaseTask.setFlowableId(firstFlowNode.getFlowableId());
                    lhczCaseTask.setProcessInstanceId(firstFlowNode.getProcessInstanceId());
                    lhczCaseTask.setProcessTaskId(firstFlowNode.getProcessTaskId());
                    lhczCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
                    lhczCaseTask.setNodeType(firstFlowNode.getNodeType());
                    lhczCaseTask.setNodeId(firstFlowNode.getNodeId());
                    lhczCaseTask.setNodeName(firstFlowNode.getNodeName());
                    lhczCaseTask.setFlowId(firstFlowNode.getFlowId());
                    lhczCaseTask.setNodeShowName(firstFlowNode.getNodeShowName());
                    lhczCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
                    FlowNode lhczdfpFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_LHCZ, dfpCaseTask.getCaseId());
                    // 新建并完成配合部门待分派任务
                    CaseTask lhczdfpCaseTask = new CaseTask();
                    lhczdfpCaseTask.setId(utilsClient.getNewTimeId());
                    lhczdfpCaseTask.setCaseId(dfpCaseTask.getCaseId());
                    lhczdfpCaseTask.setFlowableId(lhczdfpFlowNode.getFlowableId());
                    lhczdfpCaseTask.setProcessInstanceId(lhczdfpFlowNode.getProcessInstanceId());
                    lhczdfpCaseTask.setProcessTaskId(lhczdfpFlowNode.getProcessTaskId());
                    lhczdfpCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
                    lhczdfpCaseTask.setNodeType(lhczdfpFlowNode.getNodeType());
                    lhczdfpCaseTask.setNodeId(lhczdfpFlowNode.getNodeId());
                    lhczdfpCaseTask.setNodeName(lhczdfpFlowNode.getNodeName());
                    lhczdfpCaseTask.setFlowId(lhczdfpFlowNode.getFlowId());
                    lhczdfpCaseTask.setNodeShowName(lhczdfpFlowNode.getNodeShowName());
                    lhczdfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
                    // 通过调度的,任务候选执行者类型是上一步骤选择
                    lhczCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                    lhczCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId());
                    lhczCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName());
                    // 需要签收
                    lhczCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
                    lhczCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    lhczdfpCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                    lhczdfpCaseTask.setCandeUnitId(loginUser.getUnitId());
                    lhczdfpCaseTask.setCandeUnitName(loginUser.getUnitName());
                    // 不需要签收
                    lhczdfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    lhczdfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                    lhczdfpCaseTask.setHandleUnitId(loginUser.getUnitId());
                    lhczdfpCaseTask.setHandleUnitName(loginUser.getUnitName());
                    lhczdfpCaseTask.setHandleUserId(loginUser.getId());
                    lhczdfpCaseTask.setHandleUserName(loginUser.getTrueName());
                    lhczdfpCaseTask.setHandleContent(assignTaskDTO.getAssignContent());
                    lhczdfpCaseTask.setHandleIllust("交办至:"+assistUnitName);
                    // 任务处理时限
                    if (firstFlowNode.getExpire() != 0) {
                        lhczCaseTask.setExpireTime(DateUtils.addDay(nowDate, firstFlowNode.getExpire()));
                    if (lhczdfpFlowNode.getExpire() != 0) {
                        lhczdfpCaseTask.setExpireTime(DateUtils.addDay(nowDate, lhczdfpFlowNode.getExpire()));
                    }
                    lhczCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    lhczCaseTask.setCustId(dfpCaseTask.getCustId());
                    lhczCaseTask.setCreateTime(nowDate);
                    lhczCaseTask.setUpdateTime(nowDate);
                    mapper.insert(lhczCaseTask);
                    lhczdfpCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    lhczdfpCaseTask.setCustId(dfpCaseTask.getCustId());
                    lhczdfpCaseTask.setCreateTime(nowDate);
                    lhczdfpCaseTask.setUpdateTime(nowDate);
                    mapper.insert(lhczdfpCaseTask);
                    // 完成待分派任务
                    FlowNode lhczdslFlowNode = flowInfoService.completeTask(lhczdfpCaseTask.getFlowableId(), lhczdfpCaseTask.getProcessTaskId(),
                            FlowableConsts.OPERATION_forward, loginUser.getId());
                    // 创建配合部门待受理任务
                    CaseTask lhczdslCaseTask = new CaseTask();
                    lhczdslCaseTask.setId(utilsClient.getNewTimeId());
                    lhczdslCaseTask.setCaseId(lhczdfpCaseTask.getCaseId());
                    lhczdslCaseTask.setFlowableId(lhczdslFlowNode.getFlowableId());
                    lhczdslCaseTask.setProcessInstanceId(lhczdslFlowNode.getProcessInstanceId());
                    lhczdslCaseTask.setProcessTaskId(lhczdslFlowNode.getProcessTaskId());
                    lhczdslCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
                    lhczdslCaseTask.setNodeType(lhczdslFlowNode.getNodeType());
                    lhczdslCaseTask.setNodeId(lhczdslFlowNode.getNodeId());
                    lhczdslCaseTask.setNodeName(lhczdslFlowNode.getNodeName());
                    lhczdslCaseTask.setFlowId(lhczdslFlowNode.getFlowId());
                    lhczdslCaseTask.setNodeShowName(lhczdslFlowNode.getNodeShowName());
                    lhczdslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
                    // 通过调度的,任务候选执行者类型是上一步骤选择
                    lhczdslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                    lhczdslCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId());
                    lhczdslCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName());
                    // 需要签收
                    lhczdslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
                    lhczdslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    // 任务处理时限
                    if (lhczdslFlowNode.getExpire() != 0) {
                        lhczdslCaseTask.setExpireTime(DateUtils.addDay(nowDate, lhczdslFlowNode.getExpire()));
                    }
                    lhczdslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    lhczdslCaseTask.setCustId(lhczdfpCaseTask.getCustId());
                    lhczdslCaseTask.setCreateTime(nowDate);
                    lhczdslCaseTask.setUpdateTime(nowDate);
                    mapper.insert(lhczdslCaseTask);
                }
                // 更新纠纷扩展信息
                CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
@@ -1889,7 +1928,7 @@
            htshCaseTask.setNodeName(htshFlowNode.getNodeName());
            htshCaseTask.setFlowId(htshFlowNode.getFlowId());
            htshCaseTask.setNodeShowName(htshFlowNode.getNodeShowName());
            htshCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
            htshCaseTask.setCaseTaskType(dslCaseTask.getCaseTaskType());
            // 受理任务,任务候选执行者类型是上一步骤选择
            htshCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
            CtUnitDTO ctUnitDTO = custClient.getParentZzzxUnit(loginUser.getUnitId());
@@ -1909,6 +1948,7 @@
            mapper.insert(htshCaseTask);
            // 新增回退申请信息
            caseReturn.setCaseTaskId(htshCaseTask.getId());
            caseReturn.setCaseTaskType(htshCaseTask.getCaseTaskType());
            caseReturnService.save(caseReturn);
        }catch (Exception e){
            log.error("[CaseTaskService.webAppearApply]调用失败,异常信息:"+e, e);
@@ -1950,9 +1990,10 @@
                htshCaseTaskPO.setHandleTime(nowDate);
                htshCaseTaskPO.setUpdateTime(nowDate);
                mapper.updateCaseTask(htshCaseTaskPO);
                // 完成当前回退审核任务,走待分派任务
                // 完成当前回退审核任务,承办部门走待分派任务,配合部门结束流程
                FlowNode dfpFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(),
                        FlowableConsts.OPERATION_htsh_ty, userId);
                if (CaseTaskConsts.CASE_TASK_TYPE_1 == htshCaseTask.getCaseTaskType()) {
                // 新建待分派任务
                CaseTask dfphCaseTask = new CaseTask();
                dfphCaseTask.setId(utilsClient.getNewTimeId());
@@ -1966,7 +2007,7 @@
                dfphCaseTask.setNodeName(dfpFlowNode.getNodeName());
                dfphCaseTask.setFlowId(dfpFlowNode.getFlowId());
                dfphCaseTask.setNodeShowName(dfpFlowNode.getNodeShowName());
                dfphCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                    dfphCaseTask.setCaseTaskType(htshCaseTask.getCaseTaskType());
                // 受理任务,任务候选执行者类型是上一步骤选择
                dfphCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                dfphCaseTask.setCandeUnitId(loginUser.getUnitId());
@@ -1994,21 +2035,22 @@
                caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                caseInfoPO.setUpdateTime(nowDate);
                caseInfoService.updateCaseInfo(caseInfoPO);
                }
            }else {
                // 审核不通过
                // 完成当前回退审核任务
                CaseTask sbshCaseTaskPO = new CaseTask();
                sbshCaseTaskPO.setId(caseReturn.getCaseTaskId());
                sbshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
                sbshCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
                sbshCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
                sbshCaseTaskPO.setHandleUserId(loginUser.getId());
                sbshCaseTaskPO.setHandleUserName(loginUser.getTrueName());
                sbshCaseTaskPO.setHandleContent(caseReturn.getAuditContent());
                sbshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2);
                sbshCaseTaskPO.setHandleTime(nowDate);
                sbshCaseTaskPO.setUpdateTime(nowDate);
                mapper.updateCaseTask(sbshCaseTaskPO);
                CaseTask htshCaseTaskPO = new CaseTask();
                htshCaseTaskPO.setId(caseReturn.getCaseTaskId());
                htshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
                htshCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
                htshCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
                htshCaseTaskPO.setHandleUserId(loginUser.getId());
                htshCaseTaskPO.setHandleUserName(loginUser.getTrueName());
                htshCaseTaskPO.setHandleContent(caseReturn.getAuditContent());
                htshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2);
                htshCaseTaskPO.setHandleTime(nowDate);
                htshCaseTaskPO.setUpdateTime(nowDate);
                mapper.updateCaseTask(htshCaseTaskPO);
                CaseReturn btyCaseReturn = caseReturnService.getById(caseReturn.getId());
                CtUnitDTO returnUnit = custClient.getUnitById(btyCaseReturn.getReturnUnitId());
                String operation = FlowableConsts.OPERATION_htsh_bty;
@@ -2034,7 +2076,7 @@
                dslCaseTask.setNodeName(dslFlowNode.getNodeName());
                dslCaseTask.setFlowId(dslFlowNode.getFlowId());
                dslCaseTask.setNodeShowName(dslFlowNode.getNodeShowName());
                dslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                dslCaseTask.setCaseTaskType(htshCaseTask.getCaseTaskType());
                // 受理任务,任务候选执行者类型是上一步骤选择
                dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                dslCaseTask.setCandeUnitId(btyCaseReturn.getReturnUnitId());
@@ -2053,8 +2095,8 @@
                mapper.insert(dslCaseTask);
            }
        }catch (Exception e){
            log.error("[CaseTaskService.webAppearAudit]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webAppearAudit", e);
            log.error("[CaseTaskService.webReturnAudit]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webReturnAudit", e);
        }
    }
dyh-service/dyh-mediate/src/main/java/cn/huge/module/flow/consts/FlowNodeEnum.java
@@ -13,7 +13,9 @@
    /**
     * 节点
     */
    FLOW_NODE_DFP("DFP", "待分派"),
    FLOW_NODE_DSL("DSL", "待受理"),
    FLOW_NODE_HTSH("HTSH", "回退审核"),
    FLOW_NODE_BLFK("BLFK", "办理反馈"),
    FLOW_NODE_JASQ("JASQ", "结案申请"),
    FLOW_NODE_JASH("JASH", "结案审核"),
@@ -100,8 +102,12 @@
     */
    public static FlowNodeEnum getByIndex(final String index) {
        switch (index) {
            case "DFP":
                return FLOW_NODE_DFP;
            case "DSL":
                return FLOW_NODE_DSL;
            case "HTSH":
                return FLOW_NODE_HTSH;
            case "BLFK":
                return FLOW_NODE_BLFK;
            case "JASQ":
dyh-service/dyh-mediate/src/main/resources/processes/GZDYH_LHCZ_3LEVEL_V1.bpmn20.xml
@@ -6,12 +6,26 @@
    <userTask id="BLFK" name="办理反馈"/>
    <endEvent id="END" name="结束"/>
    <userTask id="DSL" name="待受理"/>
    <sequenceFlow id="sid-6FA28350-5EFB-4393-B91A-D73ED7C3B390" sourceRef="START" targetRef="DSL"/>
    <userTask id="DFP" name="待分派"/>
    <sequenceFlow id="sid-97FF5E7D-10E2-45EA-86D6-0653C46C77FF" sourceRef="START" targetRef="DFP"/>
    <sequenceFlow id="sid-295E1BEE-52BD-4CA8-A7E9-654AA5DB7A4D" name="通过" sourceRef="DSL" targetRef="BLFK">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='forward'}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-ECF7A199-20E7-414B-B20A-83080EEED633" name="通过" sourceRef="DFP" targetRef="DSL">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='forward'}]]></conditionExpression>
    </sequenceFlow>
    <userTask id="HTSH" name="回退审核"/>
    <sequenceFlow id="sid-A0580378-38E0-44D8-981B-9D048ED42E97" name="通过" sourceRef="BLFK" targetRef="END">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='forward'}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-295E1BEE-52BD-4CA8-A7E9-654AA5DB7A4D" name="通过" sourceRef="DSL" targetRef="BLFK">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='forward'}]]></conditionExpression>
    <sequenceFlow id="sid-898E82EA-FC5A-4EAA-AA8C-B5B74B39D826" name="回退申请" sourceRef="DSL" targetRef="HTSH">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='htsq'}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-2B1A0AA4-9560-41A7-9E4D-7C42107ABFCC" name="回退审核同意" sourceRef="HTSH" targetRef="BLFK">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='htsh_ty'}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-05F6F2B8-9E23-4AAE-82FE-5F33117881D7" name="回退审核不同意" sourceRef="HTSH" targetRef="END">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${operation=='htsh_bty'}]]></conditionExpression>
    </sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_GZDYH_LHCZ_3LEVEL_V1">
@@ -20,25 +34,47 @@
        <omgdc:Bounds height="30.0" width="30.0" x="15.0" y="160.00001244246837"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="BLFK" id="BPMNShape_BLFK">
        <omgdc:Bounds height="80.0" width="100.0" x="314.9999953061343" y="134.99999798834327"/>
        <omgdc:Bounds height="80.0" width="99.99999999999994" x="494.9999953061343" y="134.99999798834327"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="END" id="BPMNShape_END">
        <omgdc:Bounds height="28.0" width="28.0" x="509.9999834597113" y="161.00001205503818"/>
        <omgdc:Bounds height="28.0" width="28.0" x="689.9999834597113" y="161.00001205503818"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="DSL" id="BPMNShape_DSL">
        <omgdc:Bounds height="80.0" width="100.0" x="150.0" y="135.00001244246837"/>
        <omgdc:Bounds height="80.0" width="100.0" x="330.0" y="135.00001244246837"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="sid-6FA28350-5EFB-4393-B91A-D73ED7C3B390" id="BPMNEdge_sid-6FA28350-5EFB-4393-B91A-D73ED7C3B390">
        <omgdi:waypoint x="44.94999936756078" y="175.00001244246837"/>
        <omgdi:waypoint x="149.99999999993562" y="175.00001244246837"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape bpmnElement="DFP" id="BPMNShape_DFP">
        <omgdc:Bounds height="80.0" width="100.0" x="135.0" y="135.00001244246837"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="HTSH" id="BPMNShape_HTSH">
        <omgdc:Bounds height="80.0" width="100.0" x="330.0" y="270.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="sid-A0580378-38E0-44D8-981B-9D048ED42E97" id="BPMNEdge_sid-A0580378-38E0-44D8-981B-9D048ED42E97">
        <omgdi:waypoint x="414.9499950929594" y="175.00000240740906"/>
        <omgdi:waypoint x="509.9999834597113" y="175.00001081646118"/>
        <omgdi:waypoint x="594.9499950929594" y="175.00000240740906"/>
        <omgdi:waypoint x="689.9999834597113" y="175.00001081646118"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-05F6F2B8-9E23-4AAE-82FE-5F33117881D7" id="BPMNEdge_sid-05F6F2B8-9E23-4AAE-82FE-5F33117881D7">
        <omgdi:waypoint x="429.94999999999993" y="289.16666746346476"/>
        <omgdi:waypoint x="691.0735362274839" y="180.36679574539076"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-295E1BEE-52BD-4CA8-A7E9-654AA5DB7A4D" id="BPMNEdge_sid-295E1BEE-52BD-4CA8-A7E9-654AA5DB7A4D">
        <omgdi:waypoint x="249.94999995704916" y="175.00000806243037"/>
        <omgdi:waypoint x="314.9999953060832" y="175.00000236400126"/>
        <omgdi:waypoint x="429.95000000000005" y="175.00000806243034"/>
        <omgdi:waypoint x="494.9999953061343" y="175.00000236400123"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-898E82EA-FC5A-4EAA-AA8C-B5B74B39D826" id="BPMNEdge_sid-898E82EA-FC5A-4EAA-AA8C-B5B74B39D826">
        <omgdi:waypoint x="380.0" y="214.9500124424684"/>
        <omgdi:waypoint x="380.0" y="270.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-2B1A0AA4-9560-41A7-9E4D-7C42107ABFCC" id="BPMNEdge_sid-2B1A0AA4-9560-41A7-9E4D-7C42107ABFCC">
        <omgdi:waypoint x="428.82777566115067" y="270.0"/>
        <omgdi:waypoint x="496.11110853652156" y="214.94999798834328"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-97FF5E7D-10E2-45EA-86D6-0653C46C77FF" id="BPMNEdge_sid-97FF5E7D-10E2-45EA-86D6-0653C46C77FF">
        <omgdi:waypoint x="44.94999923927441" y="175.00001244246837"/>
        <omgdi:waypoint x="135.0" y="175.00001244246837"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-ECF7A199-20E7-414B-B20A-83080EEED633" id="BPMNEdge_sid-ECF7A199-20E7-414B-B20A-83080EEED633">
        <omgdi:waypoint x="234.9499999999802" y="175.00001244246837"/>
        <omgdi:waypoint x="330.0" y="175.00001244246837"/>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>