forked from gzzfw/backEnd/gz-dyh

wangwh
2024-10-22 2c7324f3b7862999139075fd35032be885fc9c31
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java
@@ -34,13 +34,19 @@
import cn.huge.module.flow.domain.po.FlowNode;
import cn.huge.module.flow.service.FlowInfoService;
import cn.huge.module.mediate.constant.*;
import cn.huge.module.sys.constant.GridBaseConsts;
import cn.huge.module.sys.constant.GridEnum;
import cn.huge.module.sys.constant.SyTimeEnum;
import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO;
import cn.huge.module.sys.vo.GridTaskVo;
import cn.huge.module.sys.vo.GridToDoBacthVo;
import cn.huge.module.sys.vo.GridToDoVo;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Maps;
import lombok.extern.java.Log;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -1205,6 +1211,13 @@
                        caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                        caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                        caseInfoService.updateCaseInfo(caseInfoPO);
                        try {
                            //添加网格待办
                            this.createGridToDo(caseInfo, dfpCaseTask, GridEnum.GRID_OBJECT_TYPE_1.getIndex(), GridBaseConsts.GRID_TYPE_1);
                        }catch (Exception e){
                            log.error("添加网格待办失败");
                        }
                    }else {
                        // 调度给调解组织,默认通过第1个任务节点-镇街综治中心待分派
                        CaseTask dfpCaseTask = new CaseTask();
@@ -1283,6 +1296,13 @@
                        caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex());
                        caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                        caseInfoService.updateCaseInfo(caseInfoPO);
                        try {
                            //添加网格待办
                            this.createGridToDo(caseInfo, dslCaseTask, GridEnum.GRID_OBJECT_TYPE_3.getIndex(), GridBaseConsts.GRID_TYPE_3);
                        }catch (Exception e){
                            log.error("添加网格待办失败");
                        }
                    }
                }
            }
@@ -1390,6 +1410,14 @@
            caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId());
            caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName());
            caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
            try {
                //添加网格待办
                this.createGridToDo(caseInfo, blfkCaseTask, GridEnum.GRID_OBJECT_TYPE_3.getIndex(), GridBaseConsts.GRID_TYPE_3);
            }catch (Exception e){
                log.error("添加网格待办失败");
            }
            return blfkCaseTask.getId();
        }catch (Exception e){
            log.error("[CaseTaskService.webStartFlowZXSL]调用失败,异常信息:"+e, e);
@@ -1475,6 +1503,8 @@
            caseDismiss.setCreateTime(nowDate);
            caseDismiss.setUpdateTime(nowDate);
            caseDismissService.save(caseDismiss);
            //删除网格待办
            this.deleteGridTodo(caseTask);
        }catch (Exception e){
            log.error("[CaseTaskService.webAssign]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webAssign", e);
@@ -1572,6 +1602,7 @@
            dslCaseTask.setUpdateTime(nowDate);
            mapper.insert(dslCaseTask);
            // 更新纠纷信息
            CaseInfo caseInfo = caseInfoService.getCaseInfo(dslCaseTask.getCaseId());
            CaseInfo caseInfoPO = new CaseInfo();
            caseInfoPO.setId(dslCaseTask.getCaseId());
            caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex());
@@ -1582,6 +1613,12 @@
            caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
            caseInfoPO.setUpdateTime(nowDate);
            caseInfoService.updateCaseInfo(caseInfoPO);
            try {
                this.taskFlowGridToDo(caseInfo, dslCaseTask, assignTaskDTO.getCaseTaskId(), GridEnum.GRID_OBJECT_TYPE_2.getIndex(), GridBaseConsts.GRID_TYPE_2);
            }catch (Exception e){
                log.error("添加网格待办失败");
            }
            // 交办配合组织
            if (CollectionUtils.isNotEmpty(assignTaskDTO.getAssistUnitList())){
@@ -1672,6 +1709,12 @@
                    caseAssistInfoPO.setCreateTime(nowDate);
                    caseAssistInfoPO.setUpdateTime(nowDate);
                    caseAssistInfoService.save(caseAssistInfoPO);
                    try {
                        this.createGridToDo(caseInfo, lhczdslCaseTask, GridEnum.GRID_OBJECT_TYPE_2.getIndex(), GridBaseConsts.GRID_TYPE_2);
                    }catch (Exception e){
                        log.error("添加网格待办失败");
                    }
                }
                // 更新纠纷扩展信息
                CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold();
@@ -1721,6 +1764,10 @@
                    caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                    caseInfoPO.setUpdateTime(nowDate);
                    caseInfoService.updateCaseInfo(caseInfoPO);
                }
                CaseInfo caseInfo = caseInfoService.getCaseInfo(qsCaseTask.getCaseId());
                if(ObjectUtils.isNotEmpty(caseInfo)){
                    this.taskFlowGridToDo(caseInfo, caseTaskPO, caseTaskPO.getId(), GridEnum.GRID_OBJECT_TYPE_3.getIndex(), GridBaseConsts.GRID_TYPE_3);
                }
            }
        }catch (Exception e){
@@ -1797,6 +1844,10 @@
            blfkCaseTask.setCreateTime(nowDate);
            blfkCaseTask.setUpdateTime(nowDate);
            mapper.insert(blfkCaseTask);
            //删除网格待办状态
            this.deleteGridTodo(dslCaseTaskPO);
            // 承办组织受理才更新纠纷信息
            if (CaseTaskConsts.CASE_TASK_TYPE_1 ==  dslCaseTask.getCaseTaskType()) {
                // 更新纠纷信息
@@ -2324,6 +2375,8 @@
                    caseInfoUnfoldPO.setWindupContent(caseWindupApply.getWindupContent());
                    caseInfoUnfoldPO.setUpdateTime(nowDate);
                    caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO);
                    this.createGridToDo(caseInfo, jashCaseTask, GridEnum.GRID_OBJECT_TYPE_4.getIndex(), GridBaseConsts.GRID_TYPE_4);
                }
            }
            // 查询联合处置申请单,全部结束申请单
@@ -2707,6 +2760,8 @@
                caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                caseInfoPO.setUpdateTime(nowDate);
                caseInfoService.updateCaseInfo(caseInfoPO);
                this.deleteGridTodo(jashCaseTaskPO);
            }
        }catch (Exception e){
            log.error("[CaseTaskService.webWindupApply]调用失败,异常信息:"+e, e);
@@ -2794,6 +2849,9 @@
            caseReturn.setCaseTaskId(htshCaseTask.getId());
            caseReturn.setCaseTaskType(htshCaseTask.getCaseTaskType());
            caseReturnService.save(caseReturn);
            //添加网格审核任务
            CaseInfo caseInfo = caseInfoService.getCaseInfo(thisCaseTask.getCaseId());
            this.createGridToDo(caseInfo, htshCaseTask, GridEnum.GRID_OBJECT_TYPE_4.getIndex(), GridBaseConsts.GRID_TYPE_4);
        }catch (Exception e){
            log.error("[CaseTaskService.webReturnApply]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webReturnApply", e);
@@ -2910,6 +2968,10 @@
                                .eq("process_instance_id", assistCaseTask.getProcessInstanceId())
                                .eq("assist_status", CaseTaskConsts.ASSIST_STATUS_0).set("assist_status", CaseTaskConsts.ASSIST_STATUS_2);
                        caseAssistInfoService.update(caseAssistInfoUpdateWrapper);
                        //修改网格待办
                        CaseInfo caseInfo = caseInfoService.getCaseInfo(htshCaseTask.getCaseId());
                        this.taskFlowGridToDo(caseInfo, assistCaseTask, htshCaseTaskPO.getId(), GridEnum.GRID_OBJECT_TYPE_1.getIndex(), GridBaseConsts.GRID_TYPE_1);
                    }
                }else {
                    // 更新联合处置信息
@@ -2922,6 +2984,7 @@
                        caseAssistInfo.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_1);
                        caseAssistInfoService.updateCaseAssistInfo(caseAssistInfo);
                    }
                    this.deleteGridTodo(htshCaseTaskPO);
                }
            }else {
                // 审核不通过
@@ -2990,6 +3053,9 @@
                nextCaseTask.setCreateTime(nowDate);
                nextCaseTask.setUpdateTime(nowDate);
                mapper.insert(nextCaseTask);
                //修改网格待办
                CaseInfo caseInfo = caseInfoService.getCaseInfo(htshCaseTask.getCaseId());
                this.taskFlowGridToDo(caseInfo, nextCaseTask, htshCaseTaskPO.getId(), GridEnum.GRID_OBJECT_TYPE_3.getIndex(), GridBaseConsts.GRID_TYPE_3);
            }
        }catch (Exception e){
            log.error("[CaseTaskService.webReturnAudit]调用失败,异常信息:"+e, e);
@@ -3073,6 +3139,9 @@
            // 新增上报申请信息
            caseAppear.setCaseTaskId(sbshCaseTask.getId());
            caseAppearService.save(caseAppear);
            //添加网格审核任务
            CaseInfo caseInfo = caseInfoService.getCaseInfo(thisCaseTask.getCaseId());
            this.createGridToDo(caseInfo, sbshCaseTask, GridEnum.GRID_OBJECT_TYPE_4.getIndex(), GridBaseConsts.GRID_TYPE_4);
        }catch (Exception e){
            log.error("[CaseTaskService.webAppearApply]调用失败,异常信息:"+e, e);
            throw new ServiceException("CaseTaskService.webAppearApply", e);
@@ -3161,6 +3230,10 @@
                caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes());
                caseInfoPO.setUpdateTime(nowDate);
                caseInfoService.updateCaseInfo(caseInfoPO);
                //网格待办任务处理
                CaseInfo caseInfo = caseInfoService.getCaseInfo(sbshCaseTask.getCaseId());
                this.taskFlowGridToDo(caseInfo, dfphCaseTask, sbshCaseTaskPO.getId(), GridEnum.GRID_OBJECT_TYPE_1.getIndex(), GridBaseConsts.GRID_TYPE_1);
            }else {
                // 审核不通过
                // 完成当前上报审核任务
@@ -3214,6 +3287,10 @@
                dfphCaseTask.setCreateTime(nowDate);
                dfphCaseTask.setUpdateTime(nowDate);
                mapper.insert(dfphCaseTask);
                //网格待办任务处理
                CaseInfo caseInfo = caseInfoService.getCaseInfo(sbshCaseTask.getCaseId());
                this.taskFlowGridToDo(caseInfo, dfphCaseTask, sbshCaseTaskPO.getId(), GridEnum.GRID_OBJECT_TYPE_1.getIndex(), GridBaseConsts.GRID_TYPE_1);
            }
        }catch (Exception e){
            log.error("[CaseTaskService.webAppearAudit]调用失败,异常信息:"+e, e);
@@ -3247,4 +3324,70 @@
        }
    }
    public void deleteGridTodo(CaseTask caseTask) {
        try {
            //删除网格待办任务
            GridTaskVo gridTaskVo = new GridTaskVo();
            gridTaskVo.setCaseId(caseTask.getCaseId());
            gridTaskVo.setCaseTaskId(caseTask.getId());
            sysClient.deleteTaskTodo(gridTaskVo);
        } catch (Exception e) {
            log.error("添加网格待办失败");
        }
    }
    public void createGridToDo(CaseInfo caseInfo, CaseTask caseTask, String gridObjType, String noticeTypeName){
        try {
            //添加网格待办
            GridToDoBacthVo gridToDoBacthVo = new GridToDoBacthVo();
            gridToDoBacthVo.setObjId(caseTask.getId());
            gridToDoBacthVo.setObjType(gridObjType);
            gridToDoBacthVo.setTodoType(GridEnum.GRID_TODO_TYPE_5.getIndex());
            gridToDoBacthVo.setTitle(noticeTypeName + caseInfo.getPlaintiffs() + "和" + caseInfo.getDefendants()+"的"+caseInfo.getCaseTypeName()+"事件");
            gridToDoBacthVo.setLimitTime(String.valueOf(caseTask.getExpireTime()));
            sysClient.createTaskToDo(gridToDoBacthVo, caseTask.getCandeUnitId());
        } catch (Exception e) {
            log.error("添加网格待办失败");
            log.error(e.getMessage(), e);
        }
    }
    public void updateGridToDo(CaseInfo caseInfo, CaseTask caseTask, String previousTaskId, String gridObjType, String noticeTypeName) {
        try {
            //添加网格待办
            GridToDoVo gridToDoVo = new GridToDoVo();
            gridToDoVo.setObjId(caseTask.getId());
            gridToDoVo.setObjType(gridObjType);
            gridToDoVo.setTodoType(GridEnum.GRID_TODO_TYPE_5.getIndex());
            gridToDoVo.setTitle(noticeTypeName + caseInfo.getPlaintiffs() + "和" + caseInfo.getDefendants() + "的" + caseInfo.getCaseTypeName() + "事件");
            gridToDoVo.setLimitTime(String.valueOf(caseTask.getExpireTime()));
            gridToDoVo.setCaseId(caseInfo.getId());
            sysClient.updateTaskTodo(gridToDoVo, previousTaskId);
        } catch (Exception e) {
            log.error("添加网格待办失败");
            log.error(e.getMessage(), e);
        }
    }
    public void taskFlowGridToDo(CaseInfo caseInfo, CaseTask caseTask, String previousTaskId, String gridObjType, String noticeTypeName) {
        try {
            //删除网格待办任务
            GridTaskVo gridTaskVo = new GridTaskVo();
            gridTaskVo.setCaseId(caseInfo.getId());
            gridTaskVo.setCaseTaskId(previousTaskId);
            sysClient.deleteTaskTodo(gridTaskVo);
            //添加网格待办
            GridToDoVo gridToDoVo = new GridToDoVo();
            gridToDoVo.setObjId(caseTask.getId());
            gridToDoVo.setObjType(gridObjType);
            gridToDoVo.setTodoType(GridEnum.GRID_TODO_TYPE_5.getIndex());
            gridToDoVo.setTitle(noticeTypeName + caseInfo.getPlaintiffs() + "和" + caseInfo.getDefendants() + "的" + caseInfo.getCaseTypeName() + "事件");
            gridToDoVo.setLimitTime(String.valueOf(caseTask.getExpireTime()));
            gridToDoVo.setCaseId(caseInfo.getId());
            sysClient.updateTaskTodo(gridToDoVo, previousTaskId);
        } catch (Exception e) {
            log.error("添加网格待办失败");
            log.error(e.getMessage(), e);
        }
    }
}