forked from gzzfw/backEnd/gz-dyh

liyj
2024-09-15 3ce77531a4e13d749d58fea1a13695a80fbb9516
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java
@@ -6,12 +6,11 @@
import cn.huge.module.cases.dao.mapper.*;
import cn.huge.module.cases.domain.dto.*;
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.module.cases.domain.dto.CaseFlowDTO;
import cn.huge.module.cases.domain.dto.WebCaseFlowDTO;
import cn.huge.module.cases.domain.dto.TabButtonDTO;
import cn.huge.module.cases.domain.dto.TabButtonInfoDTO;
import cn.huge.module.cases.domain.po.CaseAssistApply;
import cn.huge.module.cases.domain.po.CaseInfoUnfold;
import cn.huge.module.cases.domain.dto.*;
import cn.huge.module.cases.domain.po.*;
import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.client.api.impl.DispClientImpl;
@@ -25,7 +24,6 @@
import cn.huge.module.cust.dto.CtUserDTO;
import cn.huge.module.mediate.constant.AuditBaseConsts;
import cn.huge.module.mediate.constant.AuditBaseConstsEnum;
import cn.huge.module.mediate.constant.CaseBaseConsts;
import cn.huge.module.disp.constant.DispBaseConstsEnum;
import cn.huge.module.disp.dto.CaseDispBaseDTO;
import cn.huge.module.disp.dto.DispCaseBaseDTO;
@@ -41,9 +39,9 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Maps;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
@@ -51,8 +49,6 @@
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.stream.Collectors;
@@ -96,6 +92,8 @@
    private CaseAppearService caseAppearService;
    @Autowired
    private CaseReturnService caseReturnService;
    @Autowired
    private CaseEvaluateService caseEvaluateService;
    @Autowired
    private CaseWindupApplyMapper caseWindupApplyMapper;
@@ -393,9 +391,9 @@
    public Map<String, Object> webListCaseFlow(String caseId, String userId){
        try{
            Map<String, Object> result = Maps.newHashMap();
            LinkedList<CaseFlowDTO> handleCaseFlowList = new LinkedList<>();
            LinkedList<WebCaseFlowDTO> handleCaseFlowList = new LinkedList<>();
            // 首节点
            CaseFlowDTO lfdj = new CaseFlowDTO();
            WebCaseFlowDTO lfdj = new WebCaseFlowDTO();
            CaseInfo caseInfo = caseInfoService.getById(caseId);
            if (CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())){
                lfdj.setNodeShowName("来访登记");
@@ -404,7 +402,6 @@
            }else {
                lfdj.setNodeShowName(caseInfo.getCanalName());
                lfdj.setHandleUnitName(caseInfo.getInputUserName()+"(当事人)");
                lfdj.setHandleUserName(caseInfo.getInputUserName());
            }
            lfdj.setTaskType(CaseTaskConsts.TASK_TYPE_1);
            lfdj.setStatus(CaseTaskConsts.TASK_STATUS_2);
@@ -414,124 +411,123 @@
            QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>();
            caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_1).orderByAsc("id");
            List<CaseTask> handleCaseTaskList = mapper.selectList(caseTaskQueryWrapper);
            for (CaseTask caseTask: handleCaseTaskList){
                CaseFlowDTO caseFlowDTO = new CaseFlowDTO();
                if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){
                    if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
                        caseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                        caseFlowDTO.setProcessName(caseTask.getNodeShowName());
                    }else{
                        caseFlowDTO.setProcessName(caseInfo.getProcessName());
                // 已结束节点
                if (CaseTaskConsts.TASK_STATUS_2 == caseTask.getStatus()){
                    // 待受理并已签收的正常任务节点,需要加多一个签收节点
                    if(caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex())
                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_DSL.getIndex())
                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_DSL.getIndex())
                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSL.getIndex())){
                        if (CaseTaskConsts.SIGN_STATUS_2 == caseTask.getSignStatus() && CaseTaskConsts.TASK_TYPE_1 == caseTask.getTaskType()){
                            WebCaseFlowDTO slWebCaseFlowDTO = new WebCaseFlowDTO();
                            slWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                            slWebCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
                            slWebCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName());
                            slWebCaseFlowDTO.setHandleTime(caseTask.getHandleTime());
                            slWebCaseFlowDTO.setHandleNotes("已签收");
                            slWebCaseFlowDTO.setTaskType(caseTask.getTaskType());
                            slWebCaseFlowDTO.setStatus(caseTask.getStatus());
                            handleCaseFlowList.add(slWebCaseFlowDTO);
                        }
                    }
                    caseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
                    caseFlowDTO.setTaskType(caseTask.getTaskType());
                    caseFlowDTO.setStatus(caseTask.getStatus());
                }else {
                    caseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                    caseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
                    caseFlowDTO.setHandleUserName(caseTask.getHandleUserName());
                    caseFlowDTO.setHandleTime(caseTask.getHandleTime());
                    caseFlowDTO.setHandleNotes(caseTask.getHandleIllust());
                    caseFlowDTO.setTaskType(caseTask.getTaskType());
                    // todo 审核不通过、通过的展示,有调解结果的
                    if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) {
                    }
                    if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) {
                    }
                    caseFlowDTO.setStatus(caseTask.getStatus());
                }
                handleCaseFlowList.add(caseFlowDTO);
                // 待受理节点,已签收的并处理完,需要加多一个受理节点
                if(caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex())
                        || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_DSL.getIndex())
                        || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_DSL.getIndex())){
                    if(CaseTaskConsts.SIGN_STATUS_2 == caseTask.getSignStatus()
                            && CaseTaskConsts.TASK_STATUS_2 == caseTask.getStatus()){
                        CaseFlowDTO slCaseFlowDTO = new CaseFlowDTO();
                        if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){
                            if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
                                slCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                                slCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
                            }else{
                                slCaseFlowDTO.setProcessName(caseInfo.getProcessName());
                            }
                            slCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
                            slCaseFlowDTO.setTaskType(caseTask.getTaskType());
                            slCaseFlowDTO.setStatus(caseTask.getStatus());
                    // 普通节点
                    WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO();
                    webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                    webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName());
                    webCaseFlowDTO.setHandleTime(caseTask.getHandleTime());
                    webCaseFlowDTO.setStatus(caseTask.getStatus());
                    webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust());
                    webCaseFlowDTO.setTaskType(caseTask.getTaskType());
                    // 回退申请节点
                    if(CaseTaskConsts.TASK_TYPE_2 == caseTask.getTaskType()){
                        webCaseFlowDTO.setNodeShowName("事件回退");
                        CaseReturn caseReturn = caseReturnService.getNewByCaseId(caseId);
                        if (StringUtils.isNotEmpty(caseReturn.getReturnContent())) {
                            webCaseFlowDTO.setHandleNotes("回退理由:" + caseReturn.getReturnContent());
                        }else {
                            slCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                            slCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
                            slCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName());
                            slCaseFlowDTO.setHandleTime(caseTask.getHandleTime());
                            slCaseFlowDTO.setHandleNotes("已受理");
                            if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) {
                                slCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex());
                                slCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes());
                                slCaseFlowDTO.setTaskType(caseTask.getTaskType());
                            }
                            if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) {
                                slCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex());
                                slCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes());
                                slCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_2);
                            }
                            slCaseFlowDTO.setStatus(caseTask.getStatus());
                            webCaseFlowDTO.setHandleNotes("回退理由:-");
                        }
                        handleCaseFlowList.add(slCaseFlowDTO);
                    }
                }
                // 办理反馈节点,加上化解结果
                if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_BLFK.getIndex())){
                    CaseFlowDTO blfkCaseFlowDTO = new CaseFlowDTO();
                    if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){
                        if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
                            blfkCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                            blfkCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
                        }else{
                            blfkCaseFlowDTO.setProcessName(caseInfo.getProcessName());
                    // 上报申请节点
                    if(CaseTaskConsts.TASK_TYPE_3 == caseTask.getTaskType()){
                        webCaseFlowDTO.setNodeShowName("事件上报");
                        CaseAppear caseAppear = caseAppearService.getNewByCaseId(caseId);
                        if (StringUtils.isNotEmpty(caseAppear.getAppearContent())) {
                            webCaseFlowDTO.setHandleNotes("上报理由:" + caseAppear.getAppearContent());
                        }else {
                            webCaseFlowDTO.setHandleNotes("上报意见:-" );
                        }
                        blfkCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
                        blfkCaseFlowDTO.setTaskType(caseTask.getTaskType());
                        blfkCaseFlowDTO.setStatus(caseTask.getStatus());
                    }else {
                        blfkCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                        blfkCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
                        blfkCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName());
                        blfkCaseFlowDTO.setHandleTime(caseTask.getHandleTime());
                        CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId);
                        blfkCaseFlowDTO.setHandleNotes("化解结果:"+caseInfoUnfold.getMediResultName());
                        blfkCaseFlowDTO.setTaskType(caseTask.getTaskType());
                        // todo 审核不通过、通过的展示,有调解结果的
                        if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) {
                        }
                    }
                    // 当事人评价节点,特殊处理
                    if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
                        webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                        webCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
                    }else{
                        webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName());
                    }
                    // 审核节点要判断通过/不通过
                    if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JASH.getIndex())
                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex())
                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex())
                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex())
                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex())
                            || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex())){
                        // 处理不通过,任务类型就是回退
                        if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) {
                            webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex());
                            webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes());
                            webCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_2);
                        }else{
                            // 处理通过
                            webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex());
                            webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes());
                        }
                        blfkCaseFlowDTO.setStatus(caseTask.getStatus());
                        // 临时加上
                        webCaseFlowDTO.setHandleNotes("审核结果:"+webCaseFlowDTO.getAuditResultName());
                    }
                    handleCaseFlowList.add(blfkCaseFlowDTO);
                    // 结案申请,需要展示化解结果
                    if (FlowNodeEnum.FLOW_NODE_JASQ.getIndex().equals(caseTask.getNodeId())){
                        CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseTask.getCaseId());
                        if (ObjectUtils.isNotEmpty(caseInfoUnfold)){
                            webCaseFlowDTO.setMediResult(caseInfoUnfold.getMediResult());
                            webCaseFlowDTO.setMediResultName(caseInfoUnfold.getMediResultName());
                            // 临时加上
                            webCaseFlowDTO.setHandleNotes("化解结果:"+webCaseFlowDTO.getMediResultName());
                        }
                    }
                    handleCaseFlowList.add(webCaseFlowDTO);
                }else {
                    // 进行中的节点
                    WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO();
                    webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                    webCaseFlowDTO.setStatus(caseTask.getStatus());
                    // 当事人评价节点,特殊处理
                    if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){
                        webCaseFlowDTO.setProcessName(caseTask.getNodeShowName());
                    }else{
                        webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
                    }
                    handleCaseFlowList.add(webCaseFlowDTO);
                }
            }
            result.put("handleCaseFlowList", handleCaseFlowList);
            // 查询配合组织流程
            LinkedList<CaseFlowDTO> assistCaseFlowList = new LinkedList<>();
            LinkedList<WebCaseFlowDTO> assistCaseFlowList = new LinkedList<>();
            caseTaskQueryWrapper.clear();
            caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByDesc("create_time");
            List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper);
            for (CaseTask caseTask: assistCaseTaskList){
                CaseFlowDTO caseFlowDTO = new CaseFlowDTO();
                caseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                caseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
                caseFlowDTO.setHandleTime(caseTask.getHandleTime());
                caseFlowDTO.setHandleNotes(caseTask.getHandleIllust());
                caseFlowDTO.setTaskType(caseTask.getTaskType());
                caseFlowDTO.setStatus(caseTask.getStatus());
                assistCaseFlowList.add(caseFlowDTO);
                WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO();
                webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName());
                webCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName());
                webCaseFlowDTO.setHandleTime(caseTask.getHandleTime());
                webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust());
                webCaseFlowDTO.setTaskType(caseTask.getTaskType());
                webCaseFlowDTO.setStatus(caseTask.getStatus());
                assistCaseFlowList.add(webCaseFlowDTO);
            }
            result.put("assistCaseFlowList", assistCaseFlowList);
            return result;
@@ -722,31 +718,123 @@
            throw new ServiceException("CaseTaskService.pageMyTaskQs", e);
        }
    }
    /**
     * 首页-待审核分页查询
     * @param caseId 事项编号
     * @return Page
     */
    public List<Object> listMyApplyRecord(String caseId){
        try {
            QueryWrapper<CaseReturn> caseReturnQueryWrapper = new QueryWrapper<>();
            caseReturnQueryWrapper.eq("case_id", caseId);
            List<CaseReturn>caseReturnList = caseReturnService.list(caseReturnQueryWrapper);
            QueryWrapper<CaseAppear> caseAppearQueryWrapper = new QueryWrapper<>();
            caseAppearQueryWrapper.eq("case_id", caseId);
            List<CaseAppear>caseAppearList = caseAppearService.list(caseAppearQueryWrapper);
            QueryWrapper<CaseWindupApply> caseWindupApplyQueryWrapper = new QueryWrapper<>();
            caseWindupApplyQueryWrapper.eq("case_id", caseId);
            List<CaseWindupApply>caseWindupApplyList = caseWindupApplyService.list(caseWindupApplyQueryWrapper);
            QueryWrapper<CaseAssistApply> caseAssistApplyQueryWrapper = new QueryWrapper<>();
            caseAssistApplyQueryWrapper.eq("case_id", caseId);
            List<CaseAssistApply>caseAssistApplyList = caseAssistApplyService.list(caseAssistApplyQueryWrapper);
            List<SortUtilDTO> sortUtilDTOList = new ArrayList<>();
            for(CaseReturn caseReturn: caseReturnList){
                SortUtilDTO sortUtilDTO = new SortUtilDTO();
                sortUtilDTO.setObject(caseReturn);
                sortUtilDTO.setDate(caseReturn.getCreateTime());
                sortUtilDTO.setType("回退申请");
                sortUtilDTOList.add(sortUtilDTO);
            }
            for(CaseAppear caseAppear: caseAppearList){
                SortUtilDTO sortUtilDTO = new SortUtilDTO();
                sortUtilDTO.setObject(caseAppear);
                sortUtilDTO.setDate(caseAppear.getCreateTime());
                sortUtilDTO.setType("上报申请");
                sortUtilDTOList.add(sortUtilDTO);
            }
            for(CaseWindupApply caseWindupApply: caseWindupApplyList){
                SortUtilDTO sortUtilDTO = new SortUtilDTO();
                sortUtilDTO.setObject(caseWindupApply);
                sortUtilDTO.setDate(caseWindupApply.getCreateTime());
                sortUtilDTO.setType("结案申请");
                sortUtilDTOList.add(sortUtilDTO);
            }
            for(CaseAssistApply caseAssistApply: caseAssistApplyList){
                SortUtilDTO sortUtilDTO = new SortUtilDTO();
                sortUtilDTO.setObject(caseAssistApply);
                sortUtilDTO.setDate(caseAssistApply.getCreateTime());
                sortUtilDTO.setType("联合处置申请");
                sortUtilDTOList.add(sortUtilDTO);
            }
            sortUtilDTOList.sort(Comparator.comparing(SortUtilDTO::getDate));
            List<Object> resultList = new ArrayList<>();
            for(SortUtilDTO sortUtilDTO: sortUtilDTOList){
                resultList.add(sortUtilDTO);
            }
            return resultList;
        }catch (Exception e) {
            log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e);
            throw new ServiceException("CaseTaskService.pageMyTaskQs", e);
        }
    }
    /**
     * wechat端-查询流程进度
     * @param caseId 纠纷编号
     * @return
     */
    public List<CaseFlowDTO> wechatListCaseFlow(String caseId, String userId){
        try{
            // 临时给前端联调数据
            List<CaseFlowDTO> list = new ArrayList<>();
            QueryWrapper<CaseTask> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("case_id", caseId);
            queryWrapper.orderByAsc("create_time");
            List<CaseTask> caseTasks = mapper.selectList(queryWrapper);
            if(ObjectUtils.isNotEmpty(caseTasks)){
                for (CaseTask caseTask : caseTasks) {
                    CaseFlowDTO caseFlowDTO = new CaseFlowDTO();
                    BeanUtils.copyProperties(caseTask, caseFlowDTO);
                    list.add(caseFlowDTO);
                }
            }
            return list;
        }catch (Exception e){
            log.error("[CaseTaskService.wechatListCaseFlow]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.wechatListCaseFlow", e);
    public List<WechatCaseFlowDTO> wechatListCaseFlow(String caseId, String userId){
        // 封装办理流程
        List<WechatCaseFlowDTO> list = new ArrayList<>();
        CaseInfo caseInfo = caseInfoService.getById(caseId);
        // 提交申请
        WechatCaseFlowDTO tjsq = new WechatCaseFlowDTO();
        tjsq.setProcessName("提交申请");
        tjsq.setVisitWayName(caseInfo.getVisitWayName());
        tjsq.setShowTime(caseInfo.getCreateTime());
        tjsq.setCaseTypeName(caseInfo.getCaseTypeName());
        tjsq.setProcessStep(1);
        list.add(tjsq);
        CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId);
        // 办理中
        if (caseInfo.getInfoProcess() >= CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_2.getIndex()){
            WechatCaseFlowDTO sxbl = new WechatCaseFlowDTO();
            sxbl.setProcessName("事项办理");
            sxbl.setShowTime(caseInfoUnfold.getAcceptTime());
            sxbl.setMediateUnitName(caseInfoUnfold.getMediateUnitName());
            sxbl.setProcessStep(2);
            list.add(sxbl);
        }
        // 已结案
        if (caseInfo.getInfoProcess() >= CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_3.getIndex()){
            WechatCaseFlowDTO sxbj = new WechatCaseFlowDTO();
            sxbj.setProcessName("事项办结");
            sxbj.setShowTime(caseInfoUnfold.getCloseTime());
            sxbj.setMediResult(caseInfoUnfold.getMediResult());
            sxbj.setMediResultName(caseInfoUnfold.getMediResultName());
            sxbj.setProcessStep(3);
            list.add(sxbj);
        }
        // 评价
        QueryWrapper<CaseEvaluate> caseEvaluateQueryWrapper = new QueryWrapper<>();
        caseEvaluateQueryWrapper.eq("case_id", caseId).orderByDesc("create_time");
        List<CaseEvaluate> caseEvaluateList = caseEvaluateService.list(caseEvaluateQueryWrapper);
        if (CollectionUtils.isNotEmpty(caseEvaluateList)){
            CaseEvaluate caseEvaluate = caseEvaluateList.get(0);
            WechatCaseFlowDTO sxpj = new WechatCaseFlowDTO();
            sxpj.setProcessName("事项评价");
            sxpj.setShowTime(caseEvaluate.getCreateTime());
            sxpj.setEvaluateUserName(caseEvaluate.getEvaluateUserName());
            sxpj.setEvaluateGrade(caseEvaluate.getEvaluateGrade());
            sxpj.setEvaluateRemark(caseEvaluate.getEvaluateRemark());
            sxpj.setProcessStep(4);
            list.add(sxpj);
        }
        return list;
    }
    /**
@@ -827,6 +915,10 @@
                        // 系统给综治中心分派,不需要签收
                        dfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                        dfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                        // 任务处理时限
                        if (firstFlowNode.getExpire() != 0) {
                            dfpCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire()));
                        }
                        dfpCaseTask.setHandleUnitName("系统派单");
                        dfpCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
                        dfpCaseTask.setHandleIllust("派单至:"+caseDispBaseDTO.getTargetName());
@@ -840,36 +932,36 @@
                        FlowNode secondFlowNode = flowInfoService.completeTask(dfpCaseTask.getFlowableId(), dfpCaseTask.getProcessTaskId(),
                                FlowableConsts.OPERATION_jb_zszz, "系统派单");
                        // 进入第2个节点-镇街级组织待受理
                        CaseTask sdlCaseTask = new CaseTask();
                        sdlCaseTask.setId(utilsClient.getNewTimeId());
                        sdlCaseTask.setCaseId(caseInfo.getId());
                        sdlCaseTask.setFlowableId(secondFlowNode.getFlowableId());
                        sdlCaseTask.setProcessInstanceId(secondFlowNode.getProcessInstanceId());
                        sdlCaseTask.setProcessTaskId(secondFlowNode.getProcessTaskId());
                        sdlCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
                        sdlCaseTask.setNodeType(secondFlowNode.getNodeType());
                        sdlCaseTask.setNodeId(secondFlowNode.getNodeId());
                        sdlCaseTask.setNodeName(secondFlowNode.getNodeName());
                        sdlCaseTask.setFlowId(secondFlowNode.getFlowId());
                        sdlCaseTask.setNodeShowName(secondFlowNode.getNodeShowName());
                        sdlCaseTask.setCaseTaskType(dfpCaseTask.getCaseTaskType());
                        CaseTask dslCaseTask = new CaseTask();
                        dslCaseTask.setId(utilsClient.getNewTimeId());
                        dslCaseTask.setCaseId(caseInfo.getId());
                        dslCaseTask.setFlowableId(secondFlowNode.getFlowableId());
                        dslCaseTask.setProcessInstanceId(secondFlowNode.getProcessInstanceId());
                        dslCaseTask.setProcessTaskId(secondFlowNode.getProcessTaskId());
                        dslCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
                        dslCaseTask.setNodeType(secondFlowNode.getNodeType());
                        dslCaseTask.setNodeId(secondFlowNode.getNodeId());
                        dslCaseTask.setNodeName(secondFlowNode.getNodeName());
                        dslCaseTask.setFlowId(secondFlowNode.getFlowId());
                        dslCaseTask.setNodeShowName(secondFlowNode.getNodeShowName());
                        dslCaseTask.setCaseTaskType(dfpCaseTask.getCaseTaskType());
                        // 通过调度的,任务候选执行者类型是上一步骤选择
                        sdlCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                        sdlCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId());
                        sdlCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName());
                        dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                        dslCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId());
                        dslCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName());
                        // 系统调度给调解组织,需要签收
                        sdlCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
                        sdlCaseTask.setSignExpireTime(sysClient.getExpireTime(caseInfo.getCreateTime(), SyTimeEnum.SY_TIME_2.getIndex()));
                        dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
                        dslCaseTask.setSignExpireTime(sysClient.getExpireTime(caseInfo.getCreateTime(), SyTimeEnum.SY_TIME_2.getIndex()));
                        // 任务处理时限
                        if (firstFlowNode.getExpire() != 0) {
                            sdlCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire()));
                            dslCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire()));
                        }
                        sdlCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                        sdlCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                        sdlCaseTask.setCustId(caseInfo.getCustId());
                        sdlCaseTask.setCreateTime(caseInfo.getCreateTime());
                        sdlCaseTask.setUpdateTime(caseInfo.getUpdateTime());
                        mapper.insert(sdlCaseTask);
                        dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                        dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                        dslCaseTask.setCustId(caseInfo.getCustId());
                        dslCaseTask.setCreateTime(caseInfo.getCreateTime());
                        dslCaseTask.setUpdateTime(caseInfo.getUpdateTime());
                        mapper.insert(dslCaseTask);
                        // 更新纠纷信息
                        CaseInfo caseInfoPO = new CaseInfo();
                        caseInfoPO.setId(caseInfo.getId());
@@ -894,23 +986,63 @@
     * @param caseInfo
     * @param loginUser
     */
    public void webStartFlowZXSL(CaseInfo caseInfo, CtUserDTO loginUser){
    public String webStartFlowZXSL(CaseInfo caseInfo, CtUserDTO loginUser){
        try{
            // 启动自行受理工作流
            FlowNode firstFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_ZXSL, caseInfo.getId());
            // 启动自行受理工作流,进入待受理节点
            FlowNode dslFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_ZXSL, caseInfo.getId());
            // 创建并完成待受理任务
            CaseTask dslCaseTask = new CaseTask();
            dslCaseTask.setId(utilsClient.getNewTimeId());
            dslCaseTask.setCaseId(caseInfo.getId());
            dslCaseTask.setFlowableId(dslFlowNode.getFlowableId());
            dslCaseTask.setProcessInstanceId(dslFlowNode.getProcessInstanceId());
            dslCaseTask.setProcessTaskId(dslFlowNode.getProcessTaskId());
            dslCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
            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_1);
            // 自行受理,任务候选执行者类型是上一步骤选择
            dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
            dslCaseTask.setCandeUnitId(loginUser.getUnitId());
            dslCaseTask.setCandeUnitName(loginUser.getUnitName());
            // 自行受理,不需要签收
            dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
            dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
            // 任务处理时限
            if (dslFlowNode.getExpire() != 0) {
                dslCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), dslFlowNode.getExpire()));
            }
            dslCaseTask.setHandleUnitId(loginUser.getUnitId());
            dslCaseTask.setHandleUnitName(loginUser.getUnitName());
            dslCaseTask.setHandleUserId(loginUser.getId());
            dslCaseTask.setHandleUserName(loginUser.getTrueName());
            dslCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
            dslCaseTask.setHandleIllust("自行受理");
            dslCaseTask.setHandleTime(caseInfo.getCreateTime());
            dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            dslCaseTask.setCustId(caseInfo.getCustId());
            dslCaseTask.setCreateTime(caseInfo.getCreateTime());
            dslCaseTask.setUpdateTime(caseInfo.getCreateTime());
            mapper.insert(dslCaseTask);
            // 完成待受理任务,走办理反馈节点
            FlowNode blfkFlowNode = flowInfoService.completeTask(dslCaseTask.getFlowableId(), dslCaseTask.getProcessTaskId(),
                    FlowableConsts.OPERATION_forward, loginUser.getId());
            // 进入第1个节点-办理反馈
            CaseTask blfkCaseTask = new CaseTask();
            blfkCaseTask.setId(utilsClient.getNewTimeId());
            blfkCaseTask.setCaseId(caseInfo.getId());
            blfkCaseTask.setFlowableId(firstFlowNode.getFlowableId());
            blfkCaseTask.setProcessInstanceId(firstFlowNode.getProcessInstanceId());
            blfkCaseTask.setProcessTaskId(firstFlowNode.getProcessTaskId());
            blfkCaseTask.setFlowableId(blfkFlowNode.getFlowableId());
            blfkCaseTask.setProcessInstanceId(blfkFlowNode.getProcessInstanceId());
            blfkCaseTask.setProcessTaskId(blfkFlowNode.getProcessTaskId());
            blfkCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
            blfkCaseTask.setNodeType(firstFlowNode.getNodeType());
            blfkCaseTask.setNodeId(firstFlowNode.getNodeId());
            blfkCaseTask.setNodeName(firstFlowNode.getNodeName());
            blfkCaseTask.setFlowId(firstFlowNode.getFlowId());
            blfkCaseTask.setNodeShowName(firstFlowNode.getNodeShowName());
            blfkCaseTask.setNodeType(blfkFlowNode.getNodeType());
            blfkCaseTask.setNodeId(blfkFlowNode.getNodeId());
            blfkCaseTask.setNodeName(blfkFlowNode.getNodeName());
            blfkCaseTask.setFlowId(blfkFlowNode.getFlowId());
            blfkCaseTask.setNodeShowName(blfkFlowNode.getNodeShowName());
            blfkCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
            // 通过调度的,任务候选执行者类型是上一步骤选择
            blfkCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
@@ -920,8 +1052,8 @@
            blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
            blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
            // 任务处理时限
            if (firstFlowNode.getExpire() != 0) {
                blfkCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire()));
            if (blfkFlowNode.getExpire() != 0) {
                blfkCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), blfkFlowNode.getExpire()));
            }
            blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            blfkCaseTask.setCustId(caseInfo.getCustId());
@@ -938,6 +1070,14 @@
            caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
            caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
            caseInfoService.updateCaseInfo(caseInfoPO);
            // 更新纠纷扩展信息
            CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
            caseInfoUnfoldPO.setId(blfkCaseTask.getCaseId());
            caseInfoUnfoldPO.setAcceptTime(blfkCaseTask.getCreateTime());
            caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId());
            caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName());
            caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            return dslCaseTask.getId();
        }catch (Exception e){
            log.error("[CaseTaskService.webStartFlowZXSL]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webStartFlowZXSL", e);
@@ -1047,57 +1187,38 @@
                String assistUnitName = assignTaskDTO.getAssistUnitList().stream().map(AssignAssistUnitDTO::getUitId).
                        collect(Collectors.joining(BaseConsts.COMMA));
                for (AssignAssistUnitDTO assignAssistUnitDTO: assignTaskDTO.getAssistUnitList()){
                    // 创建交办配合组织任务
                    CaseTask jbAssistCaseTask = new CaseTask();
                    jbAssistCaseTask.setId(utilsClient.getNewTimeId());
                    jbAssistCaseTask.setCaseId(dfpCaseTask.getCaseId());
                    jbAssistCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
                    jbAssistCaseTask.setNodeName("交办配合部门");
                    jbAssistCaseTask.setNodeShowName("交办配合部门");
                    jbAssistCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
                    // 配合任务,任务候选执行者类型是上一步骤选择
                    jbAssistCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                    jbAssistCaseTask.setCandeUnitId(loginUser.getUnitId());
                    jbAssistCaseTask.setCandeUnitName(loginUser.getUnitName());
                    jbAssistCaseTask.setHandleUnitId(loginUser.getUnitId());
                    jbAssistCaseTask.setHandleUnitName(loginUser.getUnitId());
                    jbAssistCaseTask.setHandleUserId(loginUser.getId());
                    jbAssistCaseTask.setHandleUserName(loginUser.getTrueName());
                    jbAssistCaseTask.setHandleContent(assignTaskDTO.getAssignContent());
                    jbAssistCaseTask.setHandleIllust("派单至:"+assignTaskDTO.getHandleUnitName());
                    jbAssistCaseTask.setHandleTime(nowDate);
                    // 不需要签收
                    jbAssistCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                    jbAssistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
                    jbAssistCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    jbAssistCaseTask.setCustId(dfpCaseTask.getCustId());
                    jbAssistCaseTask.setCreateTime(nowDate);
                    jbAssistCaseTask.setUpdateTime(nowDate);
                    mapper.insert(jbAssistCaseTask);
                    // 创建配合组织任务
                    CaseTask assistCaseTask = new CaseTask();
                    assistCaseTask.setId(utilsClient.getNewTimeId());
                    assistCaseTask.setCaseId(dfpCaseTask.getCaseId());
                    assistCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
                    assistCaseTask.setNodeId(FlowNodeEnum.FLOW_NODE_BLFK.getIndex());
                    assistCaseTask.setNodeName(FlowNodeEnum.FLOW_NODE_BLFK.getDes());
                    assistCaseTask.setNodeShowName(FlowNodeEnum.FLOW_NODE_BLFK.getIndex());
                    assistCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2);
                    // 配合任务,任务候选执行者类型是上一步骤选择
                    assistCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                    assistCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId());
                    assistCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName());
                    assistCaseTask.setHandleUnitId(assignAssistUnitDTO.getUitId());
                    assistCaseTask.setHandleUnitName(assignAssistUnitDTO.getUitName());
                    // 分派的任务,需要签收
                    assistCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1);
                    assistCaseTask.setSignExpireTime(sysClient.getExpireTime(nowDate, SyTimeEnum.SY_TIME_2.getIndex()));
                    assistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1);
                    assistCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    assistCaseTask.setCustId(dfpCaseTask.getCustId());
                    assistCaseTask.setCreateTime(nowDate);
                    assistCaseTask.setUpdateTime(nowDate);
                    mapper.insert(assistCaseTask);
                    // 启动联合处置工作流
                    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);
                    // 通过调度的,任务候选执行者类型是上一步骤选择
                    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);
                    // 任务处理时限
                    if (firstFlowNode.getExpire() != 0) {
                        lhczCaseTask.setExpireTime(DateUtils.addDay(nowDate, firstFlowNode.getExpire()));
                    }
                    lhczCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                    lhczCaseTask.setCustId(dfpCaseTask.getCustId());
                    lhczCaseTask.setCreateTime(nowDate);
                    lhczCaseTask.setUpdateTime(nowDate);
                    mapper.insert(lhczCaseTask);
                }
                // 更新纠纷扩展信息
                CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
@@ -1122,12 +1243,11 @@
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
            CtUserDTO loginUser = custClient.clientGetUserAll(userId);
            List<String> taskIdList = new ArrayList<>();
            List<String> caseIdList = new ArrayList<>();
            for (SignTaskDTO signTaskDTO: signTaskDTOList){
                CaseTask qsCaseTask = mapper.selectById(signTaskDTO.getCaseId());
                CaseTask qsCaseTask = mapper.selectById(signTaskDTO.getCaseTaskId());
                // 更新纠纷任务信息
                CaseTask caseTaskPO = new CaseTask();
                caseTaskPO.setId(qsCaseTask.getId());
                caseTaskPO.setSignStatus(CaseTaskConsts.SIGN_STATUS_2);
                caseTaskPO.setSignTime(nowDate);
                caseTaskPO.setSignUserId(loginUser.getId());
@@ -1139,6 +1259,7 @@
                if (CaseTaskConsts.CASE_TASK_TYPE_1 ==  qsCaseTask.getCaseTaskType()) {
                    // 更新纠纷信息
                    CaseInfo caseInfoPO = new CaseInfo();
                    caseInfoPO.setId(qsCaseTask.getCaseId());
                    caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex());
                    caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_3.getDes());
                    caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
@@ -1160,7 +1281,7 @@
     * @param acceptTaskDTO 受理任务表单
     * @param userId 当前登录用户
     */
    public void webAccept(AcceptTaskDTO acceptTaskDTO, String userId){
    public String webAccept(AcceptTaskDTO acceptTaskDTO, String userId){
        try{
            Date nowDate = DateUtils.getNowDate();
            // 获取当前登录用户
@@ -1233,6 +1354,7 @@
                caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName());
                caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            }
            return blfkCaseTask.getId();
        }catch (Exception e){
            log.error("[CaseTaskService.webAccept]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webAccept", e);
@@ -1252,7 +1374,8 @@
            // 新增结案申请信息
            caseWindupApply.setApplyUnitId(loginUser.getUnitId());
            caseWindupApply.setApplyUnitName(loginUser.getUnitName());
            caseWindupApply.setApplyUserId(loginUser.getTrueName());
            caseWindupApply.setApplyUserId(loginUser.getId());
            caseWindupApply.setApplyUserName(loginUser.getTrueName());
            caseWindupApply.setApplyTime(nowDate);
            caseWindupApply.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            caseWindupApply.setCreateTime(nowDate);
@@ -1479,7 +1602,7 @@
            }
            // 查询配合部门的任务,全部结束流程
            QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>();
            caseTaskQueryWrapper.eq("case_task_id", CaseTaskConsts.CASE_TASK_TYPE_2).eq("case_id", jasqCaseTask.getCaseId());
            caseTaskQueryWrapper.eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).eq("case_id", jasqCaseTask.getCaseId());
            List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper);
            for (CaseTask assistCaseTask: assistCaseTaskList){
                // 完成配合部门当前办理反馈任务
@@ -1690,6 +1813,9 @@
            caseReturn.setReturnUserId(loginUser.getId());
            caseReturn.setReturnUserName(loginUser.getTrueName());
            caseReturn.setReturnTime(nowDate);
            CtUnitDTO zzzxUnit = custClient.getParentZzzxUnit(loginUser.getUnitId());
            caseReturn.setAuditUnitId(zzzxUnit.getId());
            caseReturn.setAuditUnitName(zzzxUnit.getUnitName());
            caseReturn.setReturnStatus(AuditBaseConsts.AUDIT_STATUS_0);
            caseReturn.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
            caseReturn.setCustId(loginUser.getCustId());
@@ -1700,6 +1826,7 @@
            // 完成当前待受理任务
            CaseTask dslCaseTaskPO = new CaseTask();
            dslCaseTaskPO.setId(caseReturn.getCaseTaskId());
            dslCaseTaskPO.setTaskType(CaseTaskConsts.TASK_TYPE_2);
            dslCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
            dslCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
            dslCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
@@ -1716,11 +1843,11 @@
            // 新建回退审核任务
            CaseTask htshCaseTask = new CaseTask();
            htshCaseTask.setId(utilsClient.getNewTimeId());
            htshCaseTask.setCaseId(dslCaseTaskPO.getCaseId());
            htshCaseTask.setCaseId(dslCaseTask.getCaseId());
            htshCaseTask.setFlowableId(htshFlowNode.getFlowableId());
            htshCaseTask.setProcessInstanceId(htshFlowNode.getProcessInstanceId());
            htshCaseTask.setProcessTaskId(htshFlowNode.getProcessTaskId());
            htshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_2);
            htshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
            htshCaseTask.setNodeType(htshFlowNode.getNodeType());
            htshCaseTask.setNodeId(htshFlowNode.getNodeId());
            htshCaseTask.setNodeName(htshFlowNode.getNodeName());
@@ -1793,7 +1920,7 @@
                // 新建待分派任务
                CaseTask dfphCaseTask = new CaseTask();
                dfphCaseTask.setId(utilsClient.getNewTimeId());
                dfphCaseTask.setCaseId(dfphCaseTask.getCaseId());
                dfphCaseTask.setCaseId(htshCaseTask.getCaseId());
                dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId());
                dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId());
                dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId());
@@ -1822,7 +1949,7 @@
                mapper.insert(dfphCaseTask);
                // 更新纠纷信息
                CaseInfo caseInfoPO = new CaseInfo();
                caseInfoPO.setId(dfphCaseTask.getCaseId());
                caseInfoPO.setId(htshCaseTask.getCaseId());
                caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex());
                caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes());
                caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
@@ -1846,7 +1973,8 @@
                sbshCaseTaskPO.setHandleTime(nowDate);
                sbshCaseTaskPO.setUpdateTime(nowDate);
                mapper.updateCaseTask(sbshCaseTaskPO);
                CtUnitDTO returnUnit = custClient.getUnitById(caseReturn.getReturnUnitId());
                CaseReturn btyCaseReturn = caseReturnService.getById(caseReturn.getId());
                CtUnitDTO returnUnit = custClient.getUnitById(btyCaseReturn.getReturnUnitId());
                String operation = FlowableConsts.OPERATION_htsh_bty;
                if (UserBaseConsts.UNIT_GRADE_2 == returnUnit.getUnitGrade()){
                    operation = FlowableConsts.OPERATION_htsh_bty_qj;
@@ -1860,7 +1988,7 @@
                // 新建待分派任务
                CaseTask dslCaseTask = new CaseTask();
                dslCaseTask.setId(utilsClient.getNewTimeId());
                dslCaseTask.setCaseId(dslCaseTask.getCaseId());
                dslCaseTask.setCaseId(htshCaseTask.getCaseId());
                dslCaseTask.setFlowableId(dslFlowNode.getFlowableId());
                dslCaseTask.setProcessInstanceId(dslFlowNode.getProcessInstanceId());
                dslCaseTask.setProcessTaskId(dslFlowNode.getProcessTaskId());
@@ -1873,8 +2001,8 @@
                dslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
                // 受理任务,任务候选执行者类型是上一步骤选择
                dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
                dslCaseTask.setCandeUnitId(caseReturn.getReturnUnitId());
                dslCaseTask.setCandeUnitName(caseReturn.getReturnUnitName());
                dslCaseTask.setCandeUnitId(btyCaseReturn.getReturnUnitId());
                dslCaseTask.setCandeUnitName(btyCaseReturn.getReturnUnitName());
                // 受理后的任务,不需要签收
                dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
                // 任务处理时限
@@ -1920,6 +2048,7 @@
            // 完成当前待受理任务
            CaseTask dslCaseTaskPO = new CaseTask();
            dslCaseTaskPO.setId(caseAppear.getCaseTaskId());
            dslCaseTaskPO.setTaskType(CaseTaskConsts.TASK_TYPE_3);
            dslCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2);
            dslCaseTaskPO.setHandleUnitId(loginUser.getUnitId());
            dslCaseTaskPO.setHandleUnitName(loginUser.getUnitName());
@@ -1936,11 +2065,11 @@
            // 新建上报审核任务
            CaseTask sbshCaseTask = new CaseTask();
            sbshCaseTask.setId(utilsClient.getNewTimeId());
            sbshCaseTask.setCaseId(dslCaseTaskPO.getCaseId());
            sbshCaseTask.setCaseId(dslCaseTask.getCaseId());
            sbshCaseTask.setFlowableId(sbshFlowNode.getFlowableId());
            sbshCaseTask.setProcessInstanceId(sbshFlowNode.getProcessInstanceId());
            sbshCaseTask.setProcessTaskId(sbshFlowNode.getProcessTaskId());
            sbshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_3);
            sbshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
            sbshCaseTask.setNodeType(sbshFlowNode.getNodeType());
            sbshCaseTask.setNodeId(sbshFlowNode.getNodeId());
            sbshCaseTask.setNodeName(sbshFlowNode.getNodeName());
@@ -2012,7 +2141,7 @@
                // 新建待分派任务
                CaseTask dfphCaseTask = new CaseTask();
                dfphCaseTask.setId(utilsClient.getNewTimeId());
                dfphCaseTask.setCaseId(dfphCaseTask.getCaseId());
                dfphCaseTask.setCaseId(sbshCaseTask.getCaseId());
                dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId());
                dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId());
                dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId());
@@ -2041,7 +2170,7 @@
                mapper.insert(dfphCaseTask);
                // 更新纠纷信息
                CaseInfo caseInfoPO = new CaseInfo();
                caseInfoPO.setId(dfphCaseTask.getCaseId());
                caseInfoPO.setId(sbshCaseTask.getCaseId());
                caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex());
                caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes());
                caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex());
@@ -2071,7 +2200,7 @@
                // 新建待分派任务
                CaseTask dfphCaseTask = new CaseTask();
                dfphCaseTask.setId(utilsClient.getNewTimeId());
                dfphCaseTask.setCaseId(dfphCaseTask.getCaseId());
                dfphCaseTask.setCaseId(sbshCaseTask.getCaseId());
                dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId());
                dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId());
                dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId());