From 8d642e0225cfeed0da8b916618c7139c9a98ec4c Mon Sep 17 00:00:00 2001 From: wangwh <2397901735@qq.com> Date: Thu, 12 Sep 2024 11:33:07 +0800 Subject: [PATCH] 联合处置申请接口 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 475 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 400 insertions(+), 75 deletions(-) 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 8c8a2b8..253193e 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 @@ -3,7 +3,14 @@ import cn.huge.base.common.exception.ServiceException; import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.IdUtils; +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.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; @@ -11,10 +18,14 @@ import cn.huge.module.client.api.impl.SysClientImpl; import cn.huge.module.client.api.impl.UtilsClientImpl; import cn.huge.module.cases.dao.mapper.CaseTaskMapper; +import cn.huge.module.cases.domain.po.CaseTask; import cn.huge.module.constant.BaseConsts; import cn.huge.module.cust.constant.UserBaseConsts; import cn.huge.module.cust.dto.CtUnitDTO; 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; @@ -25,12 +36,14 @@ import cn.huge.module.flow.service.FlowInfoService; import cn.huge.module.mediate.constant.*; import cn.huge.module.sys.constant.SyTimeEnum; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; 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; @@ -38,6 +51,8 @@ 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; @@ -75,6 +90,21 @@ private CaseInfoUnfoldService caseInfoUnfoldService; @Autowired private CaseWindupApplyService caseWindupApplyService; + + @Autowired + private CaseWindupApplyMapper caseWindupApplyMapper; + + @Autowired + private CaseReturnMapper caseReturnMapper; + + @Autowired + private CaseAppearMapper caseAppearMapper; + + @Autowired + private CaseAssistApplyMapper caseAssistApplyMapper; + + @Autowired + private CaseAssistApplyService assistApplyService; /** * 更新对象 @@ -185,9 +215,9 @@ TabButtonInfoDTO sxbl = new TabButtonInfoDTO(); sxbl.setId("sxbl"); sxbl.setName("事项办理"); - TabButtonInfoDTO sqjl = new TabButtonInfoDTO(); - sqjl.setId("sqjl"); - sqjl.setName("申请记录"); +// TabButtonInfoDTO sqjl = new TabButtonInfoDTO(); +// sqjl.setId("sqjl"); +// sqjl.setName("申请记录"); TabButtonInfoDTO htsh = new TabButtonInfoDTO(); htsh.setId("htsh"); htsh.setName("回退审核"); @@ -242,7 +272,7 @@ if (ObjectUtils.isNotEmpty(caseTask)) { if (FlowNodeEnum.FLOW_NODE_ZJ_DFP.getIndex().equals(caseTask.getNodeId())) { tabList.add(dslxq); - tabList.add(sqjl); +// tabList.add(sqjl); buttonList.add(zxsl); buttonList.add(jb); @@ -250,7 +280,7 @@ } if (FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex().equals(caseTask.getNodeId())) { tabList.add(dslxq); - tabList.add(sqjl); +// tabList.add(sqjl); buttonList.add(sl); buttonList.add(ht); @@ -258,18 +288,18 @@ if (FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex().equals(caseTask.getNodeId())) { sxxq.setName("详情"); tabList.add(sxxq); - tabList.add(sqjl); +// tabList.add(sqjl); tabList.add(htsh); } if (FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex().equals(caseTask.getNodeId())) { sxxq.setName("详情"); tabList.add(sxxq); - tabList.add(sqjl); +// tabList.add(sqjl); tabList.add(sbsh); } if (FlowNodeEnum.FLOW_NODE_QJ_DFP.getIndex().equals(caseTask.getNodeId())) { tabList.add(dslxq); - tabList.add(sqjl); +// tabList.add(sqjl); buttonList.add(zxsl); buttonList.add(jb); @@ -277,7 +307,7 @@ } if (FlowNodeEnum.FLOW_NODE_QJ_DSL.getIndex().equals(caseTask.getNodeId())) { tabList.add(dslxq); - tabList.add(sqjl); +// tabList.add(sqjl); buttonList.add(sl); buttonList.add(ht); @@ -285,25 +315,25 @@ if (FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex().equals(caseTask.getNodeId())) { sxxq.setName("详情"); tabList.add(sxxq); - tabList.add(sqjl); +// tabList.add(sqjl); tabList.add(htsh); } if (FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex().equals(caseTask.getNodeId())) { sxxq.setName("详情"); tabList.add(sxxq); - tabList.add(sqjl); +// tabList.add(sqjl); tabList.add(sbsh); } if (FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex().equals(caseTask.getNodeId())) { tabList.add(dslxq); - tabList.add(sqjl); +// tabList.add(sqjl); buttonList.add(zxsl); buttonList.add(jb); } if (FlowNodeEnum.FLOW_NODE_SJ_DSL.getIndex().equals(caseTask.getNodeId())) { tabList.add(dslxq); - tabList.add(sqjl); +// tabList.add(sqjl); buttonList.add(sl); buttonList.add(ht); @@ -311,13 +341,13 @@ if (FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex().equals(caseTask.getNodeId())) { sxxq.setName("详情"); tabList.add(sxxq); - tabList.add(sqjl); +// tabList.add(sqjl); tabList.add(htsh); } if (FlowNodeEnum.FLOW_NODE_BLFK.getIndex().equals(caseTask.getNodeId())) { tabList.add(sxxq); tabList.add(sxbl); - tabList.add(sqjl); +// tabList.add(sqjl); buttonList.add(tjbljl); buttonList.add(lhczsq); @@ -325,23 +355,23 @@ } if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(caseTask.getNodeId())) { tabList.add(sxxq); - tabList.add(sqjl); +// tabList.add(sqjl); tabList.add(jash); } if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(caseTask.getNodeId())) { daxx.setName("信息"); tabList.add(daxx); tabList.add(lcdb); - tabList.add(sqjl); +// tabList.add(sqjl); } if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(caseTask.getNodeId())) { tabList.add(daxx); tabList.add(lcdb); - tabList.add(sqjl); +// tabList.add(sqjl); } }else { tabList.add(sxxq); - tabList.add(sqjl); +// tabList.add(sqjl); tabList.add(lhczsh); } // 封装数据 @@ -363,26 +393,37 @@ public Map<String, Object> webListCaseFlow(String caseId, String userId){ try{ Map<String, Object> result = Maps.newHashMap(); - List<CaseFlowDTO> handleCaseFlowList = new LinkedList<>(); + LinkedList<CaseFlowDTO> handleCaseFlowList = new LinkedList<>(); // 首节点 CaseFlowDTO lfdj = new CaseFlowDTO(); CaseInfo caseInfo = caseInfoService.getById(caseId); - lfdj.setNodeShowName("来访登记"); - lfdj.setHandleUnitName(caseInfo.getInputUnitName()); - lfdj.setHandleUserName(caseInfo.getInputUserName()); + if (CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())){ + lfdj.setNodeShowName("来访登记"); + lfdj.setHandleUserName(caseInfo.getInputUserName()); + lfdj.setHandleUnitName(caseInfo.getInputUnitName()); + }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); lfdj.setHandleTime(new Date()); handleCaseFlowList.add(lfdj); // 查询承办组织任务 QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); - caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_1).orderByDesc("create_time"); + 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()){ - caseFlowDTO.setProcessName(caseInfo.getProcessName()); + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ + caseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + caseFlowDTO.setProcessName(caseTask.getNodeShowName()); + }else{ + caseFlowDTO.setProcessName(caseInfo.getProcessName()); + } caseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); caseFlowDTO.setTaskType(caseTask.getTaskType()); caseFlowDTO.setStatus(caseTask.getStatus()); @@ -392,21 +433,92 @@ caseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); caseFlowDTO.setHandleTime(caseTask.getHandleTime()); caseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); + caseFlowDTO.setTaskType(caseTask.getTaskType()); + // todo 审核不通过、通过的展示,有调解结果的 if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) { - caseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); - caseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes()); + } if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) { - caseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex()); - caseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes()); + } + 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()){ + 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()); + }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()); + } + 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()); + } + 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 (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) { + + } + blfkCaseFlowDTO.setStatus(caseTask.getStatus()); + } + handleCaseFlowList.add(blfkCaseFlowDTO); + } } result.put("handleCaseFlowList", handleCaseFlowList); // 查询配合组织流程 - List<CaseFlowDTO> assistCaseFlowList = new LinkedList<>(); + LinkedList<CaseFlowDTO> 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); @@ -429,21 +541,186 @@ } /** - * 按条件统计 + * 获取首页统计数量 * @param userId 用户编号 * @return long */ - public Map<String, Long> getCountList(String userId){ - CtUserDTO loginUser = custClient.clientGetUserAll(userId); - Map<String, Object> terms = new HashMap<>(); - terms.put("candeUnitId", loginUser.getUnitId()); - terms.put("candeDeptId", loginUser.getDeptId()); - mapper.countTaskList(terms); - superviseService.countCaseSuperviseList(0,loginUser.getUnitId()); - Map<String, Long> result = new HashMap<>(); - return result; + public FrontPageCountDTO getCountList(String userId){ + try { + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + Map<String, Object> terms = new HashMap<>(); + terms.put("candeUnitId", loginUser.getUnitId()); + terms.put("candeDeptId", loginUser.getDeptId()); + FrontPageCountDTO frontPageCountDTO = mapper.countTaskList(terms); + long supervise = superviseService.countCaseSuperviseList(0,loginUser.getUnitId()); + frontPageCountDTO.setSupervise(supervise); + long countApplyReview = caseWindupApplyMapper.countApplyReview(loginUser.getUnitId()); + long countReturnReview = caseReturnMapper.countReturnReview(loginUser.getUnitId()); + long countAppearReview = caseAppearMapper.countAppearReview(loginUser.getUnitId()); + long countAssistReview = caseAssistApplyMapper.countAssistReview(loginUser.getUnitId()); + frontPageCountDTO.setWaitReview(countApplyReview+countReturnReview+countAppearReview+countAssistReview); + return frontPageCountDTO; + }catch (Exception e) { + log.error("[CaseTaskService.getCountList]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.getCountList", e); + } } + /** + * 首页-查询待办任务-受分派 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListDTO> pageMyTaskFp(PageRequest page, Map<String, Object> terms){ + try { + long total = mapper.countMyTaskFp(terms); + List<FrontPageListDTO> frontPageListDTOList = mapper.pageMyTaskFp(page, terms); + return new PageImpl<FrontPageListDTO>(frontPageListDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskFp]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskFp", e); + } + + } + + /** + * 首页-查询待办任务-受签收 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListDTO> pageMyTaskQs(PageRequest page, Map<String, Object> terms){ + try { + long total = mapper.countMyTaskQs(terms); + List<FrontPageListDTO> frontPageListDTOList = mapper.pageMyTaskQs(page, terms); + return new PageImpl<FrontPageListDTO>(frontPageListDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskQs", e); + } + } + + /** + * 首页-查询待办任务-受待理 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListDTO> pageMyTaskSl(PageRequest page, Map<String, Object> terms){ + try { + long total = mapper.countMyTaskSl(terms); + List<FrontPageListDTO> frontPageListDTOList = mapper.pageMyTaskSl(page, terms); + return new PageImpl<FrontPageListDTO>(frontPageListDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskQs", e); + } + } + + /** + * 首页-查询待办任务-办理中 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListDTO> pageMyTaskBlz(PageRequest page, Map<String, Object> terms){ + try { + long total = mapper.countMyTaskProcessing(terms); + List<FrontPageListDTO> frontPageListDTOList = mapper.pageMyTaskProcessing(page, terms); + List<String> caseIdList = new ArrayList<>(); + Date now = DateUtils.getNowDate(); + for(FrontPageListDTO frontPageListDTO: frontPageListDTOList){ + long milliseconds1 = frontPageListDTO.getTurnaroundTime().getTime(); + long milliseconds2 = now.getTime(); + long diff = milliseconds2 - milliseconds1; + long daysBetween = diff / (24 * 60 * 60 * 1000); + frontPageListDTO.setProcessingDays(daysBetween); + caseIdList.add(frontPageListDTO.getCaseId()); + } + if(CollectionUtils.isNotEmpty(caseIdList)){ + QueryWrapper<CaseInfoUnfold> unfoldQueryWrapper = new QueryWrapper<>(); + unfoldQueryWrapper.in("id", caseIdList); + List<CaseInfoUnfold> unfoldList = caseInfoUnfoldService.list(unfoldQueryWrapper); + for(CaseInfoUnfold unfold: unfoldList){ + for(FrontPageListDTO frontPageListDTO: frontPageListDTOList){ + if(frontPageListDTO.getCaseId().equals(unfold.getId())){ + frontPageListDTO.setOrganizingUnit(unfold.getMediateUnitId()); + frontPageListDTO.setCooperatingUnit(unfold.getAssistUnitName()); + } + } + } + } + + return new PageImpl<FrontPageListDTO>(frontPageListDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskQs", e); + } + } + + /** + * 首页-查询待办任务-办理任务 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListDTO> pageMyTaskBl(PageRequest page, Map<String, Object> terms){ + try { + long total = caseWindupApplyMapper.countMySubmitApplyReview(terms); + List<FrontPageListDTO> frontPageListDTOList = caseWindupApplyMapper.pageMySubmitApplyReview(page, terms); + + List<String> caseIdList = new ArrayList<>(); + caseIdList = frontPageListDTOList.stream().map(FrontPageListDTO ::getCaseId).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(caseIdList)){ + QueryWrapper<CaseInfoUnfold> unfoldQueryWrapper = new QueryWrapper<>(); + unfoldQueryWrapper.in("id", caseIdList); + List<CaseInfoUnfold> unfoldList = caseInfoUnfoldService.list(unfoldQueryWrapper); + for(CaseInfoUnfold unfold: unfoldList){ + for(FrontPageListDTO frontPageListDTO: frontPageListDTOList){ + if(frontPageListDTO.getCaseId().equals(unfold.getId())){ + frontPageListDTO.setOrganizingUnit(unfold.getMediateUnitId()); + frontPageListDTO.setCooperatingUnit(unfold.getAssistUnitName()); + } + } + } + } + return new PageImpl<FrontPageListDTO>(frontPageListDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskQs", e); + } + } + + /** + * 首页-待审核分页查询 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListDTO> pageMyTaskSh(PageRequest page, int type, Map<String, Object> terms){ + try { + long total = 0; + List<FrontPageListDTO> frontPageListDTOList = new ArrayList<>(); + if(1 == type){ + total = caseReturnMapper.countMyTaskReturnReview(terms); + frontPageListDTOList = caseReturnMapper.pageMyTaskReturnReview(page,terms); + }else if(2 == type){ + total = caseAppearMapper.countMyTaskAppearReview(terms); + frontPageListDTOList = caseAppearMapper.pageMyTaskAppearReview(page, terms); + }else if(3 == type){ + total = caseWindupApplyMapper.countMyTaskApplyReview(terms); + frontPageListDTOList = caseWindupApplyMapper.pageMyTaskApplyReview(page, terms); + }else if(4 == type){ + total = caseAssistApplyMapper.countMyTaskAssistReview(terms); + frontPageListDTOList = caseAssistApplyMapper.pageMyTaskAssistReview(page, terms); + } + return new PageImpl<FrontPageListDTO>(frontPageListDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskQs", e); + } + } /** * wechat端-查询流程进度 * @param caseId 纠纷编号 @@ -481,6 +758,7 @@ BeanUtils.copyProperties(caseInfo, dispCaseBaseDTO); dispCaseBaseDTO.setCaseId(caseInfo.getId()); CaseDispBaseDTO caseDispBaseDTO = dispClient.sysDisp(dispCaseBaseDTO); + log.info(JSON.toJSONString(caseDispBaseDTO)); // 目前平台只能调度给组织 if (DispBaseConstsEnum.TARGET_TYPE_1.getIndex().equals(caseDispBaseDTO.getTargetType())) { // 目前平台只做镇街、村居级别的调度, @@ -509,6 +787,10 @@ // 系统给综治中心分派,不需要签收 dfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); dfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (firstFlowNode.getExpire() != 0) { + dfpCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire())); + } dfpCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); dfpCaseTask.setCustId(caseInfo.getCustId()); dfpCaseTask.setCreateTime(caseInfo.getCreateTime()); @@ -543,7 +825,7 @@ dfpCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); // 系统给综治中心分派,不需要签收 dfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); - dfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + dfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); dfpCaseTask.setHandleUnitName("系统派单"); dfpCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); dfpCaseTask.setHandleIllust("派单至:"+caseDispBaseDTO.getTargetName()); @@ -577,6 +859,10 @@ // 系统调度给调解组织,需要签收 sdlCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); sdlCaseTask.setSignExpireTime(sysClient.getExpireTime(caseInfo.getCreateTime(), SyTimeEnum.SY_TIME_2.getIndex())); + // 任务处理时限 + if (firstFlowNode.getExpire() != 0) { + sdlCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire())); + } sdlCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); sdlCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); sdlCaseTask.setCustId(caseInfo.getCustId()); @@ -671,35 +957,39 @@ FlowNode newFlowNode = flowInfoService.completeTask(dfpCaseTask.getFlowableId(), dfpCaseTask.getProcessTaskId(), flowOperation, userId); // 新建待受理任务 - CaseTask blfkCaseTask = new CaseTask(); - blfkCaseTask.setId(utilsClient.getNewTimeId()); - blfkCaseTask.setCaseId(dfpCaseTask.getCaseId()); - blfkCaseTask.setFlowableId(newFlowNode.getFlowableId()); - blfkCaseTask.setProcessInstanceId(newFlowNode.getProcessInstanceId()); - blfkCaseTask.setProcessTaskId(newFlowNode.getProcessTaskId()); - blfkCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); - blfkCaseTask.setNodeType(newFlowNode.getNodeType()); - blfkCaseTask.setNodeId(newFlowNode.getNodeId()); - blfkCaseTask.setNodeName(newFlowNode.getNodeName()); - blfkCaseTask.setFlowId(newFlowNode.getFlowId()); - blfkCaseTask.setNodeShowName(newFlowNode.getNodeShowName()); - blfkCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + CaseTask dslCaseTask = new CaseTask(); + dslCaseTask.setId(utilsClient.getNewTimeId()); + dslCaseTask.setCaseId(dfpCaseTask.getCaseId()); + dslCaseTask.setFlowableId(newFlowNode.getFlowableId()); + dslCaseTask.setProcessInstanceId(newFlowNode.getProcessInstanceId()); + dslCaseTask.setProcessTaskId(newFlowNode.getProcessTaskId()); + dslCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + dslCaseTask.setNodeType(newFlowNode.getNodeType()); + dslCaseTask.setNodeId(newFlowNode.getNodeId()); + dslCaseTask.setNodeName(newFlowNode.getNodeName()); + dslCaseTask.setFlowId(newFlowNode.getFlowId()); + dslCaseTask.setNodeShowName(newFlowNode.getNodeShowName()); + dslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); // 受理任务,任务候选执行者类型是上一步骤选择 - blfkCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - blfkCaseTask.setCandeUnitId(dslUnitDTO.getId()); - blfkCaseTask.setCandeUnitName(dslUnitDTO.getUnitName()); + dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + dslCaseTask.setCandeUnitId(dslUnitDTO.getId()); + dslCaseTask.setCandeUnitName(dslUnitDTO.getUnitName()); // 分派的任务,需要签收 - blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); - blfkCaseTask.setSignExpireTime(sysClient.getExpireTime(nowDate, SyTimeEnum.SY_TIME_2.getIndex())); - blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); - blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); - blfkCaseTask.setCustId(dfpCaseTask.getCustId()); - blfkCaseTask.setCreateTime(nowDate); - blfkCaseTask.setUpdateTime(nowDate); - mapper.insert(blfkCaseTask); + dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); + dslCaseTask.setSignExpireTime(sysClient.getExpireTime(nowDate, SyTimeEnum.SY_TIME_2.getIndex())); + dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (newFlowNode.getExpire() != 0) { + dslCaseTask.setExpireTime(DateUtils.addDay(nowDate, newFlowNode.getExpire())); + } + dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dslCaseTask.setCustId(dfpCaseTask.getCustId()); + dslCaseTask.setCreateTime(nowDate); + dslCaseTask.setUpdateTime(nowDate); + mapper.insert(dslCaseTask); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); - caseInfoPO.setId(blfkCaseTask.getCaseId()); + caseInfoPO.setId(dslCaseTask.getCaseId()); caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex()); caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_3.getDes()); caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); @@ -769,7 +1059,7 @@ } // 更新纠纷扩展信息 CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); - caseInfoUnfoldPO.setId(blfkCaseTask.getCaseId()); + caseInfoUnfoldPO.setId(dslCaseTask.getCaseId()); caseInfoUnfoldPO.setAssistUnitId(assistUnitId); caseInfoUnfoldPO.setAssistUnitName(assistUnitName); caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); @@ -836,6 +1126,7 @@ dslCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); dslCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); dslCaseTaskPO.setHandleUserId(loginUser.getId()); + dslCaseTaskPO.setHandleIllust("已受理"); dslCaseTaskPO.setHandleUserName(loginUser.getTrueName()); dslCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); dslCaseTaskPO.setHandleTime(nowDate); @@ -865,6 +1156,10 @@ // 受理后的任务,不需要签收 blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (newFlowNode.getExpire() != 0) { + blfkCaseTask.setExpireTime(DateUtils.addDay(nowDate, newFlowNode.getExpire())); + } blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); blfkCaseTask.setCustId(dslCaseTask.getCustId()); blfkCaseTask.setCreateTime(nowDate); @@ -991,11 +1286,11 @@ jashCaseTask.setHandleUserId(loginUser.getId()); jashCaseTask.setHandleUserName(loginUser.getTrueName()); jashCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); - jashCaseTask.setHandleTime(nowDate); + jashCaseTask.setHandleTime(DateUtils.addMinute(nowDate, 1)); jashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); jashCaseTask.setCustId(jasqCaseTask.getCustId()); - jashCaseTask.setCreateTime(nowDate); - jashCaseTask.setUpdateTime(nowDate); + jashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1)); + jashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1)); mapper.insert(jashCaseTask); // 完成当前结案审核工作流任务,走当事人评价任务 FlowNode dsrpjFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), @@ -1021,10 +1316,14 @@ // 受理后的任务,不需要签收 dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (dsrpjFlowNode.getExpire() != 0) { + dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, dsrpjFlowNode.getExpire())); + } dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); dsrpjCaseTask.setCustId(jashCaseTask.getCustId()); - dsrpjCaseTask.setCreateTime(nowDate); - dsrpjCaseTask.setUpdateTime(nowDate); + dsrpjCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 2)); + dsrpjCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 2)); mapper.insert(dsrpjCaseTask); // 更新结案申请信息 caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1); @@ -1086,10 +1385,14 @@ // 受理后的任务,不需要签收 jashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); jashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (jashFlowNode.getExpire() != 0) { + jashCaseTask.setExpireTime(DateUtils.addDay(nowDate, jashFlowNode.getExpire())); + } jashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); jashCaseTask.setCustId(jasqCaseTask.getCustId()); - jashCaseTask.setCreateTime(nowDate); - jashCaseTask.setUpdateTime(nowDate); + jashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1)); + jashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1)); mapper.insert(jashCaseTask); // 更新结案申请信息 caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0); @@ -1144,7 +1447,7 @@ caseWindupApply.setAuditUserName(loginUser.getTrueName()); caseWindupApply.setAuditTime(nowDate); caseWindupApply.setUpdateTime(nowDate); - caseWindupApplyService.saveCaseWindupApply(caseWindupApply); + caseWindupApplyService.updateCaseWindupApply(caseWindupApply); // 查询结案审核任务 CaseTask jashCaseTask = mapper.selectById(caseWindupApply.getCaseTaskId()); // 审核通过, @@ -1185,6 +1488,10 @@ // 受理后的任务,不需要签收 dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (dsrpjFlowNode.getExpire() != 0) { + dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, dsrpjFlowNode.getExpire())); + } dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); dsrpjCaseTask.setCustId(jashCaseTask.getCustId()); dsrpjCaseTask.setCreateTime(nowDate); @@ -1251,6 +1558,10 @@ // 受理后的任务,不需要签收 blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (blfkFlowNode.getExpire() != 0) { + blfkCaseTask.setExpireTime(DateUtils.addDay(nowDate, blfkFlowNode.getExpire())); + } blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); blfkCaseTask.setCustId(jashCaseTask.getCustId()); blfkCaseTask.setCreateTime(nowDate); @@ -1286,4 +1597,18 @@ } } + /** + * web端任务处理-上报 + * @param caseAppear 上报表单 + * @param userId 当前登录用户 + */ + public void webAppearApply(CaseAppear caseAppear, String userId){ + try{ + + }catch (Exception e){ + log.error("[CaseTaskService.webWindupApply]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webWindupApply", e); + } + } + } -- Gitblit v1.8.0