From ab555253a4e8c07342bf25ee8779010745f69f16 Mon Sep 17 00:00:00 2001 From: liyj <1003249715@qq.com> Date: Wed, 18 Sep 2024 10:44:42 +0800 Subject: [PATCH] 1、联合处置流程优化3 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoUnfoldWebController.java | 5 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java | 2 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 124 ++++++++++++++++++++++++++---- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoUnfoldService.java | 44 ++++++++-- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistInfoService.java | 11 ++ 5 files changed, 154 insertions(+), 32 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoUnfoldWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoUnfoldWebController.java index 61c899e..192fc26 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoUnfoldWebController.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoUnfoldWebController.java @@ -389,9 +389,10 @@ * @return Object */ @GetMapping("/choosePrincipal") - public Object choosePrincipal(@RequestParam(value = "caseId") String caseId, @RequestParam(value = "userId") String userId) { + public Object choosePrincipal(@RequestParam(value = "caseId") String caseId, @RequestParam(value = "caseTaskId") String caseTaskId, + @RequestParam(value = "userId") String userId) { try { - service.choosePrincipal(caseId, userId); + service.choosePrincipal(caseId, caseTaskId, userId); return ReturnSucUtils.getRepInfo(); } catch (Exception e) { return ReturnFailUtils.getRepInfo(e.getMessage()); diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistInfoService.java index 28bd646..26844d0 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistInfoService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAssistInfoService.java @@ -143,4 +143,15 @@ return caseAssistInfo; } + /** + * 根据案件编号查询 + * @param caseId + * @return + */ + public List<CaseAssistInfo> listByCaseId(String caseId){ + QueryWrapper<CaseAssistInfo> caseAssistInfoQueryWrapper = new QueryWrapper<>(); + caseAssistInfoQueryWrapper.eq("case_id", caseId); + return mapper.selectList(caseAssistInfoQueryWrapper); + } + } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java index d9cb6d9..5d61d90 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseFeedbackService.java @@ -169,8 +169,8 @@ */ public Map<String, Object> getFeedbackInfo(String caseId, String caseTaskId, String userId){ Map<String, Object> result = Maps.newHashMap(); - CaseTask caseTask = caseTaskService.getById(caseTaskId); CaseInfoUnfold caseInfoUnfold = unfoldService.getById(caseId); + CaseTask caseTask = caseTaskService.getById(caseTaskId); // 承办部门查询扩展表 if (CaseTaskConsts.CASE_TASK_TYPE_1 == caseTask.getCaseTaskType()) { if (ObjectUtils.isNotEmpty(caseInfoUnfold)) { diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoUnfoldService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoUnfoldService.java index 1852d1a..24c7c05 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoUnfoldService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoUnfoldService.java @@ -4,8 +4,11 @@ import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.IdUtils; import cn.huge.base.common.utils.ObjectUtils; +import cn.huge.module.cases.consts.CaseTaskConsts; import cn.huge.module.cases.domain.po.CaseAssistApply; import cn.huge.module.cases.domain.dto.TransactResultDTO; +import cn.huge.module.cases.domain.po.CaseAssistInfo; +import cn.huge.module.cases.domain.po.CaseTask; import cn.huge.module.client.api.impl.CustClientImpl; import cn.huge.module.client.api.impl.SysClientImpl; import cn.huge.module.client.api.impl.UtilsClientImpl; @@ -62,6 +65,12 @@ @Autowired private SysClientImpl sysClient; + + @Autowired + private CaseTaskService caseTaskService; + + @Autowired + private CaseAssistInfoService caseAssistInfoService; /** * 更新对象 @@ -155,19 +164,34 @@ /** * PC端-选择经办人 - * @param caseId 对象 + * @param caseId 纠纷编号 + * @param caseTaskId 办理反馈任务编号 * @param userId 条件 */ - public void choosePrincipal(String caseId, String userId){ + public void choosePrincipal(String caseId, String caseTaskId, String userId){ try{ - // 获取当前登录用户 - CtUserDTO loginUser = custClient.clientGetUserAll(userId); - CaseInfoUnfold CaseInfoUnfold = new CaseInfoUnfold(); - CaseInfoUnfold.setId(caseId); - CaseInfoUnfold.setMediatorId(loginUser.getId()); - CaseInfoUnfold.setMediator(loginUser.getTrueName()); - CaseInfoUnfold.setMediatorMobile(loginUser.getMobile()); - mapper.updateCaseInfoUnfold(CaseInfoUnfold); + Date nowDate = DateUtils.getNowDate(); + // 获取经办人信息 + CtUserDTO ctUserDTO = custClient.clientGetUser(userId); + CaseTask caseTask = caseTaskService.getById(caseTaskId); + // 承办部门,更新扩展表 + if (CaseTaskConsts.CASE_TASK_TYPE_1 == caseTask.getCaseTaskType()) { + CaseInfoUnfold CaseInfoUnfold = new CaseInfoUnfold(); + CaseInfoUnfold.setId(caseId); + CaseInfoUnfold.setMediatorId(ctUserDTO.getId()); + CaseInfoUnfold.setMediator(ctUserDTO.getTrueName()); + CaseInfoUnfold.setMediatorMobile(ctUserDTO.getMobile()); + CaseInfoUnfold.setUpdateTime(nowDate); + mapper.updateCaseInfoUnfold(CaseInfoUnfold); + }else { + // 配合部门,更新联合处置信息表 + CaseAssistInfo caseAssistInfo = caseAssistInfoService.getByCaseTaskId(caseTaskId); + caseAssistInfo.setAssistUserId(ctUserDTO.getId()); + caseAssistInfo.setAssistUserName(ctUserDTO.getTrueName()); + caseAssistInfo.setUpdateTime(nowDate); + caseAssistInfoService.updateCaseAssistInfo(caseAssistInfo); + + } }catch (Exception e){ log.error("[CaseInfoUnfoldService.choosePrincipal]调用失败,异常信息:"+e, e); throw new ServiceException("CaseInfoUnfoldService.choosePrincipal", e); diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java index 8099665..068cffb 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java @@ -518,32 +518,118 @@ result.put("handleCaseFlowList", handleCaseFlowList); // 查询配合组织流程 - CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId); - if (StringUtils.isNotEmpty(caseInfoUnfold.getAssistUnitId())){ + List<CaseAssistInfo> caseAssistInfoList = caseAssistInfoService.listByCaseId(caseId); + if (CollectionUtils.isNotEmpty(caseAssistInfoList)){ LinkedList<WebAssistCaseFlowDTO> assistCaseFlowList = new LinkedList<>(); - String[] unitIdList = caseInfoUnfold.getAssistUnitId().split(BaseConsts.COMMA); - String[] unitNameList = caseInfoUnfold.getAssistUnitName().split(BaseConsts.COMMA); - for (int i=0; i<unitIdList.length; i++){ - String unitId = unitIdList[i]; - String unitName = unitNameList[i]; + for (CaseAssistInfo caseAssistInfo: caseAssistInfoList){ WebAssistCaseFlowDTO webAssistCaseFlowDTO = new WebAssistCaseFlowDTO(); - webAssistCaseFlowDTO.setUnitId(unitId); - webAssistCaseFlowDTO.setUnitName(unitName); - i ++; + webAssistCaseFlowDTO.setUnitId(caseAssistInfo.getAssistUserId()); + webAssistCaseFlowDTO.setUnitName(caseAssistInfo.getAssistUserName()); LinkedList<WebCaseFlowDTO> caseFlowList = new LinkedList<>(); caseTaskQueryWrapper.clear(); - caseTaskQueryWrapper.eq("case_id", caseId).eq("cande_unit_id", unitId) + caseTaskQueryWrapper.eq("case_id", caseId).eq("cande_unit_id", caseAssistInfo.getAssistUserId()) .eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByDesc("create_time"); List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper); for (CaseTask caseTask: assistCaseTaskList){ - 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()); - caseFlowList.add(webCaseFlowDTO); + // 已结束节点 + 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()); + caseFlowList.add(slWebCaseFlowDTO); + } + } + // 普通节点 + 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, caseTask.getCaseTaskType()); + if (StringUtils.isNotEmpty(caseReturn.getReturnContent())) { + webCaseFlowDTO.setHandleNotes("回退理由:" + caseReturn.getReturnContent()); + }else { + webCaseFlowDTO.setHandleNotes("回退理由:-"); + + } + } + // 上报申请节点 + 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("上报意见:-" ); + } + } + // 当事人评价节点,特殊处理 + 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()); + } + // 临时加上 + webCaseFlowDTO.setHandleNotes("审核结果:"+webCaseFlowDTO.getAuditResultName()); + } + // 结案申请,需要展示化解结果 + 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()); + } + } + caseFlowList.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()); + } + caseFlowList.add(webCaseFlowDTO); + } } webAssistCaseFlowDTO.setCaseFlowList(caseFlowList); assistCaseFlowList.add(webAssistCaseFlowDTO); -- Gitblit v1.8.0