From 2c7324f3b7862999139075fd35032be885fc9c31 Mon Sep 17 00:00:00 2001 From: wangwh <2397901735@qq.com> Date: Tue, 22 Oct 2024 15:03:47 +0800 Subject: [PATCH] feat:增加网格待办相关功能 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 1711 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 1,164 insertions(+), 547 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 abfbbee..7d3d06d 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,6 @@ 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.WebCaseFlowDTO; @@ -12,6 +11,7 @@ import cn.huge.module.cases.domain.po.CaseAssistApply; import cn.huge.module.cases.domain.po.CaseInfoUnfold; import cn.huge.module.cases.domain.po.*; +import cn.huge.module.cases.utils.TaskUsetimeUtils; import cn.huge.module.client.api.impl.CustClientImpl; import cn.huge.module.client.api.impl.DispClientImpl; import cn.huge.module.client.api.impl.SysClientImpl; @@ -22,7 +22,6 @@ 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.draft.domain.po.CasedraftInfo; import cn.huge.module.draft.service.CasedraftInfoService; import cn.huge.module.mediate.constant.AuditBaseConsts; import cn.huge.module.mediate.constant.AuditBaseConstsEnum; @@ -35,12 +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; @@ -103,6 +109,8 @@ private CaseDismissService caseDismissService; @Autowired private CasedraftInfoService casedraftInfoService; + @Autowired + private CasePersonService casePersonService; /** * 更新对象 @@ -195,12 +203,12 @@ } /** - * 根据纠纷编号查询进行中的配合部门任务 + * 根据纠纷编号查询进行中的配合组织任务 * @param caseId * @return */ public List<CaseTask> listAssistTasking(String caseId){ - // 查询配合部门的任务 + // 查询配合组织的任务 QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); caseTaskQueryWrapper.eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).eq("case_id", caseId) .eq("status", CaseTaskConsts.TASK_STATUS_1); @@ -281,6 +289,12 @@ TabButtonInfoDTO bysl = new TabButtonInfoDTO(); bysl.setId("bysl"); bysl.setName("不予受理"); + TabButtonInfoDTO xqcl = new TabButtonInfoDTO(); + xqcl.setId("xqcl"); + xqcl.setName("处理"); + TabButtonInfoDTO tabcl = new TabButtonInfoDTO(); + tabcl.setId("tabcl"); + tabcl.setName("处理"); // 根据流程显示tab List<TabButtonInfoDTO> tabList = new LinkedList<>(); @@ -313,16 +327,19 @@ || FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex().equals(caseTask.getNodeId())) { tabList.add(dslxq); tabList.add(sqjl); + // 额外单独给详情跳转查看 + daxx.setName("详情"); + tabList.add(daxx); sl.setName("自行受理"); buttonList.add(sl); buttonList.add(jb); - buttonList.add(sb); buttonList.add(bysl); - - // 额外单独给详情跳转查看 - daxx.setName("详情"); - tabList.add(daxx); + buttonList.add(xqcl); + CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId); + if (UserBaseConsts.UNIT_GRADE_1 != ctUnitDTO.getUnitGrade()) { + buttonList.add(sb); + } } // 待受理节点 if (FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex().equals(caseTask.getNodeId()) @@ -330,14 +347,13 @@ || FlowNodeEnum.FLOW_NODE_SJ_DSL.getIndex().equals(caseTask.getNodeId())) { tabList.add(dslxq); tabList.add(sqjl); - - buttonList.add(sl); - buttonList.add(ht); - buttonList.add(bysl); - // 额外单独给详情跳转查看 daxx.setName("详情"); tabList.add(daxx); + + buttonList.add(sl); + buttonList.add(ht); + buttonList.add(xqcl); } // 回退审核节点 if (FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex().equals(caseTask.getNodeId()) @@ -348,10 +364,11 @@ tabList.add(sxxq); tabList.add(sqjl); tabList.add(htsh); - // 额外单独给详情跳转查看 daxx.setName("详情"); tabList.add(daxx); + + buttonList.add(tabcl); } // 上报审核节点 if (FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex().equals(caseTask.getNodeId()) @@ -360,10 +377,11 @@ tabList.add(sxxq); tabList.add(sqjl); tabList.add(sbsh); - // 额外单独给详情跳转查看 daxx.setName("详情"); tabList.add(daxx); + + buttonList.add(tabcl); } // 办理反馈节点 if (FlowNodeEnum.FLOW_NODE_BLFK.getIndex().equals(caseTask.getNodeId())) { @@ -372,37 +390,39 @@ tabList.add(sxbl); tabList.add(lcdb); tabList.add(sqjl); + // 额外单独给详情跳转查看 + daxx.setName("详情"); + tabList.add(daxx); buttonList.add(tjbljl); buttonList.add(lhczsq); buttonList.add(jasq); -// buttonList.add(db); - - // 额外单独给详情跳转查看 - daxx.setName("详情"); - tabList.add(daxx); + buttonList.add(tabcl); } else { tabList.add(sxxq); tabList.add(sxbl); tabList.add(lcdb); tabList.add(sqjl); - - buttonList.add(tjbljl); - // 额外单独给详情跳转查看 daxx.setName("详情"); tabList.add(daxx); + + buttonList.add(tjbljl); + buttonList.add(tabcl); } } // 结案审核节点 - if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(caseTask.getNodeId())) { + if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(caseTask.getNodeId()) + || FlowNodeEnum.FLOW_NODE_JASH_YJ.getIndex().equals(caseTask.getNodeId()) + ||FlowNodeEnum.FLOW_NODE_JASH_EJ.getIndex().equals(caseTask.getNodeId())) { tabList.add(sxxq); tabList.add(sqjl); tabList.add(jash); - // 额外单独给详情跳转查看 daxx.setName("详情"); tabList.add(daxx); + + buttonList.add(tabcl); } // 当事人评价节点 if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(caseTask.getNodeId())) { @@ -421,13 +441,13 @@ if (FlowNodeEnum.FLOW_NODE_DSL.getIndex().equals(caseTask.getNodeId())) { tabList.add(dslxq); tabList.add(sqjl); - - buttonList.add(sl); - buttonList.add(ht); - // 额外单独给详情跳转查看 daxx.setName("详情"); tabList.add(daxx); + + buttonList.add(sl); + buttonList.add(ht); + buttonList.add(tabcl); } } }else { @@ -462,6 +482,12 @@ */ public Map<String, Object> webListCaseFlow(String caseId, String userId){ try{ + // 流程标签展示,1:正常流转/审核同意(√),2:回退/审核不同意(←),3:上报申请(↑),4:不予受理(x) + int SHOW_TASK_TYPE_1 = 1; + int SHOW_TASK_TYPE_2 = 2; + int SHOW_TASK_TYPE_3 = 3; + int SHOW_TASK_TYPE_4 = 4; + Map<String, Object> result = Maps.newHashMap(); LinkedList<WebCaseFlowDTO> handleCaseFlowList = new LinkedList<>(); // 首节点 @@ -475,7 +501,7 @@ lfdj.setNodeShowName(caseInfo.getCanalName()); lfdj.setHandleUnitName(caseInfo.getInputUserName()+"(当事人)"); } - lfdj.setTaskType(CaseTaskConsts.TASK_TYPE_1); + lfdj.setTaskType(SHOW_TASK_TYPE_1); lfdj.setStatus(CaseTaskConsts.TASK_STATUS_2); lfdj.setHandleTime(new Date()); handleCaseFlowList.add(lfdj); @@ -491,36 +517,39 @@ || 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()){ + if (CaseTaskConsts.SIGN_STATUS_2 == caseTask.getSignStatus() && CaseTaskConsts.HANDLE_RESULT_0 == caseTask.getHandleResult()){ WebCaseFlowDTO slWebCaseFlowDTO = new WebCaseFlowDTO(); slWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); slWebCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); slWebCaseFlowDTO.setHandleUserName(caseTask.getSignUserName()); slWebCaseFlowDTO.setHandleTime(caseTask.getSignTime()); slWebCaseFlowDTO.setHandleNotes("已签收"); - slWebCaseFlowDTO.setTaskType(caseTask.getTaskType()); + slWebCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_1); slWebCaseFlowDTO.setStatus(caseTask.getStatus()); handleCaseFlowList.add(slWebCaseFlowDTO); } } // 普通节点 WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); + webCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_1); webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); webCaseFlowDTO.setStatus(caseTask.getStatus()); webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); - webCaseFlowDTO.setTaskType(caseTask.getTaskType()); // 当事人评价/结案归档节点,特殊处理 - if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex()) - || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JAGD.getIndex())){ + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ webCaseFlowDTO.setHandleUserName(null); webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUserName()); + }else if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JAGD.getIndex())){ + webCaseFlowDTO.setHandleUserName(null); + webCaseFlowDTO.setHandleUnitName("系统自动"); }else{ webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); } // 回退申请节点 - if(CaseTaskConsts.TASK_TYPE_2 == caseTask.getTaskType()){ + if(CaseTaskConsts.HANDLE_RESULT_4 == caseTask.getHandleResult()){ + webCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_2); webCaseFlowDTO.setNodeShowName("事件回退"); CaseReturn caseReturn = caseReturnService.getNewByCaseId(caseId, caseTask.getCaseTaskType()); if (StringUtils.isNotEmpty(caseReturn.getReturnContent())) { @@ -531,7 +560,8 @@ } } // 上报申请节点 - if(CaseTaskConsts.TASK_TYPE_3 == caseTask.getTaskType()){ + if(CaseTaskConsts.HANDLE_RESULT_5 == caseTask.getHandleResult()){ + webCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_3); webCaseFlowDTO.setNodeShowName("事件上报"); CaseAppear caseAppear = caseAppearService.getNewByCaseId(caseId); if (StringUtils.isNotEmpty(caseAppear.getAppearContent())) { @@ -542,18 +572,20 @@ } // 审核节点要判断通过/不通过 if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JASH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JASH_YJ.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JASH_EJ.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.setTaskType(SHOW_TASK_TYPE_2); 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()); } @@ -572,9 +604,9 @@ } // 不予受理 if (CaseTaskConsts.HANDLE_RESULT_3 == caseTask.getHandleResult()){ + webCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_4); webCaseFlowDTO.setNodeShowName("不予受理"); webCaseFlowDTO.setHandleNotes(null); - webCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_4); } handleCaseFlowList.add(webCaseFlowDTO); }else { @@ -584,14 +616,14 @@ || 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()){ + if (CaseTaskConsts.SIGN_STATUS_2 == caseTask.getSignStatus() && CaseTaskConsts.HANDLE_RESULT_0 == caseTask.getHandleResult()){ WebCaseFlowDTO slWebCaseFlowDTO = new WebCaseFlowDTO(); + slWebCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_1); slWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); slWebCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); slWebCaseFlowDTO.setHandleUserName(caseTask.getSignUserName()); slWebCaseFlowDTO.setHandleTime(caseTask.getSignTime()); slWebCaseFlowDTO.setHandleNotes("已签收"); - slWebCaseFlowDTO.setTaskType(caseTask.getTaskType()); slWebCaseFlowDTO.setStatus(CaseTaskConsts.TASK_STATUS_2); handleCaseFlowList.add(slWebCaseFlowDTO); } @@ -616,142 +648,168 @@ List<CaseAssistInfo> caseAssistInfoList = caseAssistInfoService.listByCaseId(caseId); if (CollectionUtils.isNotEmpty(caseAssistInfoList)){ LinkedList<WebAssistCaseFlowDTO> assistCaseFlowList = new LinkedList<>(); + int i = 0; for (CaseAssistInfo caseAssistInfo: caseAssistInfoList){ - WebAssistCaseFlowDTO webAssistCaseFlowDTO = new WebAssistCaseFlowDTO(); - webAssistCaseFlowDTO.setUnitId(caseAssistInfo.getAssistUnitId()); if (CaseTaskConsts.ASSIST_STATUS_0 == caseAssistInfo.getAssistStatus()) { + WebAssistCaseFlowDTO webAssistCaseFlowDTO = new WebAssistCaseFlowDTO(); + webAssistCaseFlowDTO.setUnitId(caseAssistInfo.getAssistUnitId()); webAssistCaseFlowDTO.setUnitName(caseAssistInfo.getAssistUnitName()); - }else { - webAssistCaseFlowDTO.setUnitName(caseAssistInfo.getAssistUnitName()+"(已回退)"); - } - LinkedList<WebCaseFlowDTO> caseFlowList = new LinkedList<>(); - caseTaskQueryWrapper.clear(); - caseTaskQueryWrapper.eq("case_id", caseId).eq("cande_unit_id", caseAssistInfo.getAssistUnitId()) - .eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByAsc("id"); - List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper); - for (CaseTask caseTask: assistCaseTaskList){ - // 已结束节点 - 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.getCandeUnitName()); - slWebCaseFlowDTO.setHandleUserName(caseTask.getSignUserName()); - slWebCaseFlowDTO.setHandleTime(caseTask.getSignTime()); - slWebCaseFlowDTO.setHandleNotes("已签收"); - slWebCaseFlowDTO.setTaskType(caseTask.getTaskType()); - slWebCaseFlowDTO.setStatus(caseTask.getStatus()); - caseFlowList.add(slWebCaseFlowDTO); - } - } - // 普通节点 - WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); - webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); - webCaseFlowDTO.setStatus(caseTask.getStatus()); - webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); - webCaseFlowDTO.setTaskType(caseTask.getTaskType()); - // 当事人评价/结案归档节点,特殊处理 - if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex()) - || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JAGD.getIndex())){ - webCaseFlowDTO.setHandleUserName(null); - webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUserName()); - }else{ - webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); - webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); - } - // 回退申请节点 - 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_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); + LinkedList<WebCaseFlowDTO> caseFlowList = new LinkedList<>(); + // 首节点 + WebCaseFlowDTO lfdjAssist = new WebCaseFlowDTO(); + if (CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())){ + lfdjAssist.setNodeShowName("来访登记"); + lfdjAssist.setHandleUserName(caseInfo.getInputUserName()); + lfdjAssist.setHandleUnitName(caseInfo.getInputUnitName()); }else { - // 进行中的节点 - // 待受理并已签收的正常任务节点,需要加多一个签收节点 - 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.getCandeUnitName()); - slWebCaseFlowDTO.setHandleUserName(caseTask.getSignUserName()); - slWebCaseFlowDTO.setHandleTime(caseTask.getSignTime()); - slWebCaseFlowDTO.setHandleNotes("已签收"); - slWebCaseFlowDTO.setTaskType(caseTask.getTaskType()); - slWebCaseFlowDTO.setStatus(CaseTaskConsts.TASK_STATUS_2); - caseFlowList.add(slWebCaseFlowDTO); - } - } - // 正常节点 - WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); - webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); - webCaseFlowDTO.setStatus(caseTask.getStatus()); - // 当事人评价节点,特殊处理 - if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex()) - || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JAGD.getIndex())){ - webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); - }else{ - webCaseFlowDTO.setProcessName(caseTask.getCandeUnitName()); - } - caseFlowList.add(webCaseFlowDTO); + lfdjAssist.setNodeShowName(caseInfo.getCanalName()); + lfdjAssist.setHandleUnitName(caseInfo.getInputUserName()+"(当事人)"); } + lfdjAssist.setTaskType(SHOW_TASK_TYPE_1); + lfdjAssist.setStatus(CaseTaskConsts.TASK_STATUS_2); + lfdjAssist.setHandleTime(new Date()); + caseFlowList.add(lfdjAssist); + // 查询其他节点 + caseTaskQueryWrapper.clear(); + caseTaskQueryWrapper.eq("case_id", caseId).eq("process_instance_id", caseAssistInfo.getProcessInstanceId()) + .eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByAsc("id"); + List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper); + for (CaseTask caseTask: assistCaseTaskList){ + // 已结束节点 + 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.HANDLE_RESULT_0 == caseTask.getHandleResult()){ + WebCaseFlowDTO slWebCaseFlowDTO = new WebCaseFlowDTO(); + slWebCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_1); + slWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + slWebCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); + slWebCaseFlowDTO.setHandleUserName(caseTask.getSignUserName()); + slWebCaseFlowDTO.setHandleTime(caseTask.getSignTime()); + slWebCaseFlowDTO.setHandleNotes("已签收"); + slWebCaseFlowDTO.setStatus(caseTask.getStatus()); + caseFlowList.add(slWebCaseFlowDTO); + } + } + // 普通节点 + WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); + webCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_1); + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); + webCaseFlowDTO.setStatus(caseTask.getStatus()); + webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); + // 当事人评价/结案归档节点,特殊处理 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ + webCaseFlowDTO.setHandleUserName(null); + webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUserName()); + }else if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JAGD.getIndex())){ + webCaseFlowDTO.setHandleUserName(null); + webCaseFlowDTO.setHandleUnitName("系统自动"); + }else{ + webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); + webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); + } + // 回退申请节点 + if(CaseTaskConsts.HANDLE_RESULT_4 == caseTask.getHandleResult()){ + webCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_2); + webCaseFlowDTO.setNodeShowName("事件回退"); + CaseReturn caseReturn = caseReturnService.getNewByCaseId(caseId, caseTask.getCaseTaskType()); + if (StringUtils.isNotEmpty(caseReturn.getReturnContent())) { + webCaseFlowDTO.setHandleNotes("回退理由:" + caseReturn.getReturnContent()); + }else { + webCaseFlowDTO.setHandleNotes("回退理由:-"); + } + } + // 上报申请节点 + if(CaseTaskConsts.HANDLE_RESULT_5 == caseTask.getHandleResult()){ + webCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_3); + 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_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.setTaskType(SHOW_TASK_TYPE_2); + webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex()); + webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes()); + }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 { + // 进行中的节点 + // 待受理并已签收的正常任务节点,需要加多一个签收节点 + 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.HANDLE_RESULT_0 == caseTask.getHandleResult()){ + WebCaseFlowDTO slWebCaseFlowDTO = new WebCaseFlowDTO(); + slWebCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + slWebCaseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); + slWebCaseFlowDTO.setHandleUserName(caseTask.getSignUserName()); + slWebCaseFlowDTO.setHandleTime(caseTask.getSignTime()); + slWebCaseFlowDTO.setHandleNotes("已签收"); + slWebCaseFlowDTO.setTaskType(SHOW_TASK_TYPE_1); + slWebCaseFlowDTO.setStatus(CaseTaskConsts.TASK_STATUS_2); + caseFlowList.add(slWebCaseFlowDTO); + } + } + // 正常节点 + WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setStatus(caseTask.getStatus()); + // 当事人评价节点,特殊处理 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JAGD.getIndex())){ + webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); + }else{ + webCaseFlowDTO.setProcessName(caseTask.getCandeUnitName()); + } + caseFlowList.add(webCaseFlowDTO); + } + } + webAssistCaseFlowDTO.setCaseFlowList(caseFlowList); + assistCaseFlowList.add(webAssistCaseFlowDTO); + }else { + WebAssistCaseFlowDTO webAssistCaseFlowDTO = new WebAssistCaseFlowDTO(); + // i防止提供给前端的unitId重复 + i++; + webAssistCaseFlowDTO.setUnitId(caseAssistInfo.getAssistUnitId()+"_"+i); + webAssistCaseFlowDTO.setUnitName(caseAssistInfo.getAssistUnitName()+"(已回退)"); + LinkedList<WebCaseFlowDTO> caseFlowList = new LinkedList<>(); + webAssistCaseFlowDTO.setCaseFlowList(caseFlowList); + assistCaseFlowList.add(webAssistCaseFlowDTO); } - webAssistCaseFlowDTO.setCaseFlowList(caseFlowList); - assistCaseFlowList.add(webAssistCaseFlowDTO); } result.put("assistCaseFlowList", assistCaseFlowList); } @@ -1113,33 +1171,31 @@ // 目前平台只做镇街、村居级别的调度, if (UserBaseConsts.UNIT_GRADE_3 == caseDispBaseDTO.getTargetUnitGrade()) { // 启动来访登记工作流 - FlowNode firstFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_LFDJ, caseInfo.getId()); - if (UserBaseConsts.UNIT_TYPE_1 == caseDispBaseDTO.getTargetUnitType()){ - // 调度给镇街综治中心,进入第1个节点-镇街综治中心待分派 + FlowNode firstFlowNode = flowInfoService.startFlow(FlowableConsts.getJbFlow(caseInfo.getCanal()), caseInfo.getId()); + if (UserBaseConsts.UNIT_TYPE_101 == caseDispBaseDTO.getTargetUnitType()){ + // 调度给镇街综治中心,进入第1个任务节点-镇街综治中心待分派 CaseTask dfpCaseTask = new CaseTask(); dfpCaseTask.setId(utilsClient.getNewTimeId()); dfpCaseTask.setCaseId(caseInfo.getId()); dfpCaseTask.setFlowableId(firstFlowNode.getFlowableId()); dfpCaseTask.setProcessInstanceId(firstFlowNode.getProcessInstanceId()); dfpCaseTask.setProcessTaskId(firstFlowNode.getProcessTaskId()); - dfpCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); dfpCaseTask.setNodeType(firstFlowNode.getNodeType()); dfpCaseTask.setNodeId(firstFlowNode.getNodeId()); dfpCaseTask.setNodeName(firstFlowNode.getNodeName()); dfpCaseTask.setFlowId(firstFlowNode.getFlowId()); dfpCaseTask.setNodeShowName(firstFlowNode.getNodeShowName()); dfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 通过调度的,任务候选执行者类型是上一步骤选择 - dfpCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + // 任务所属组织:调度目标 dfpCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId()); dfpCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName()); - // 系统给综治中心分派,不需要签收 + // 系统调度给镇街综治中心,不需要签收 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.setStatus(CaseTaskConsts.TASK_STATUS_1); dfpCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); dfpCaseTask.setCustId(caseInfo.getCustId()); dfpCaseTask.setCreateTime(caseInfo.getCreateTime()); @@ -1155,58 +1211,66 @@ 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个节点-镇街综治中心待分派 + // 调度给调解组织,默认通过第1个任务节点-镇街综治中心待分派 CaseTask dfpCaseTask = new CaseTask(); dfpCaseTask.setId(utilsClient.getNewTimeId()); dfpCaseTask.setCaseId(caseInfo.getId()); dfpCaseTask.setFlowableId(firstFlowNode.getFlowableId()); dfpCaseTask.setProcessInstanceId(firstFlowNode.getProcessInstanceId()); dfpCaseTask.setProcessTaskId(firstFlowNode.getProcessTaskId()); - dfpCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); dfpCaseTask.setNodeType(firstFlowNode.getNodeType()); dfpCaseTask.setNodeId(firstFlowNode.getNodeId()); dfpCaseTask.setNodeName(firstFlowNode.getNodeName()); dfpCaseTask.setFlowId(firstFlowNode.getFlowId()); dfpCaseTask.setNodeShowName(firstFlowNode.getNodeShowName()); dfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 通过调度的,任务候选执行者类型是上一步骤选择 - dfpCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - // 系统给综治中心分派,不需要签收 + // 任务所属组织:系统 + dfpCaseTask.setCandeUnitName("系统派单"); + // 调度给调解组织,不需要签收 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.setStatus(CaseTaskConsts.TASK_STATUS_2); dfpCaseTask.setHandleUnitName("系统派单"); - dfpCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dfpCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); dfpCaseTask.setHandleIllust("派单至:"+caseDispBaseDTO.getTargetName()); dfpCaseTask.setHandleTime(caseInfo.getCreateTime()); dfpCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); dfpCaseTask.setCustId(caseInfo.getCustId()); dfpCaseTask.setCreateTime(caseInfo.getCreateTime()); dfpCaseTask.setUpdateTime(caseInfo.getCreateTime()); + // 计算任务耗时、是否超时、超时多少 + dfpCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(dfpCaseTask.getHandleTime(), dfpCaseTask.getCreateTime())); + dfpCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(dfpCaseTask.getHandleTime(), dfpCaseTask.getExpireTime())); + dfpCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(dfpCaseTask.getHandleTime(), dfpCaseTask.getExpireTime())); mapper.insert(dfpCaseTask); - // 完成第1个节点任务 + // 完成第1个工作流节点任务,进入第2个节点任务 FlowNode secondFlowNode = flowInfoService.completeTask(dfpCaseTask.getFlowableId(), dfpCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_jb_zszz, "系统派单"); - // 进入第2个节点-镇街级组织待受理 + // 创建第2个节点任务-调解组织待受理 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()); - // 通过调度的,任务候选执行者类型是上一步骤选择 - dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + // 任务所属组织:调度目标 dslCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId()); dslCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName()); // 系统调度给调解组织,需要签收 @@ -1232,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("添加网格待办失败"); + } } } } @@ -1248,73 +1319,75 @@ */ public String webStartFlowZXSL(CaseInfo caseInfo, CtUserDTO loginUser){ try{ - // 启动自行受理工作流,进入待受理节点 - FlowNode dslFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_ZXSL, caseInfo.getId()); - // 创建并完成待受理任务 + // 启动自行受理工作流,进入待受理任务节点 + FlowNode dslFlowNode = flowInfoService.startFlow(FlowableConsts.getZxslFlow(caseInfo.getCanal()), 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.setStatus(CaseTaskConsts.TASK_STATUS_2); dslCaseTask.setHandleUnitId(loginUser.getUnitId()); dslCaseTask.setHandleUnitName(loginUser.getUnitName()); + dslCaseTask.setHandleDeptId(loginUser.getDeptId()); + dslCaseTask.setHandleDeptName(loginUser.getDeptName()); dslCaseTask.setHandleUserId(loginUser.getId()); dslCaseTask.setHandleUserName(loginUser.getTrueName()); - dslCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dslCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); dslCaseTask.setHandleIllust("自行受理"); dslCaseTask.setHandleTime(caseInfo.getCreateTime()); dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); dslCaseTask.setCustId(caseInfo.getCustId()); dslCaseTask.setCreateTime(caseInfo.getCreateTime()); dslCaseTask.setUpdateTime(caseInfo.getCreateTime()); + // 计算任务耗时、是否超时、超时多少 + dslCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(dslCaseTask.getHandleTime(), dslCaseTask.getCreateTime())); + dslCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(dslCaseTask.getHandleTime(), dslCaseTask.getExpireTime())); + dslCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(dslCaseTask.getHandleTime(), dslCaseTask.getExpireTime())); 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(blfkFlowNode.getFlowableId()); blfkCaseTask.setProcessInstanceId(blfkFlowNode.getProcessInstanceId()); blfkCaseTask.setProcessTaskId(blfkFlowNode.getProcessTaskId()); - blfkCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); 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); + // 任务所属组织:当前登记组织 blfkCaseTask.setCandeUnitId(loginUser.getUnitId()); blfkCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 系统给综治中心分派,不需要签收 + // 受理后的节点任务节点,不需要签收 blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); - blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); // 任务处理时限 if (blfkFlowNode.getExpire() != 0) { blfkCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), blfkFlowNode.getExpire())); } + blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); blfkCaseTask.setCustId(caseInfo.getCustId()); blfkCaseTask.setCreateTime(caseInfo.getCreateTime()); @@ -1337,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); @@ -1354,22 +1435,28 @@ Date nowDate = DateUtils.getNowDate(); // 获取当前登录用户 CtUserDTO loginUser = custClient.clientGetUserAll(userId); - // 查询当前任务 + // 查询当前节点任务 CaseTask caseTask = mapper.selectById(caseDismiss.getCaseTaskId()); - // 结束当前任务 + // 结束当前节点任务 CaseTask caseTaskPO = new CaseTask(); caseTaskPO.setId(caseDismiss.getCaseTaskId()); caseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); caseTaskPO.setHandleUnitId(loginUser.getUnitId()); caseTaskPO.setHandleUnitName(loginUser.getUnitName()); caseTaskPO.setHandleUserId(loginUser.getId()); + caseTaskPO.setHandleDeptId(loginUser.getDeptId()); + caseTaskPO.setHandleDeptName(loginUser.getDeptName()); caseTaskPO.setHandleUserName(loginUser.getTrueName()); caseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_3); caseTaskPO.setHandleContent(caseDismiss.getDisContent()); caseTaskPO.setHandleTime(nowDate); caseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + caseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(caseTaskPO.getHandleTime(), caseTask.getCreateTime())); + caseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(caseTaskPO.getHandleTime(), caseTask.getExpireTime())); + caseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(caseTaskPO.getHandleTime(), caseTask.getExpireTime())); mapper.updateCaseTask(caseTaskPO); - // 结束当前工作流任务 + // 结束当前工作流 flowInfoService.endFlow(caseTask.getProcessInstanceId()); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); @@ -1382,20 +1469,26 @@ caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoPO.setUpdateTime(nowDate); caseInfoService.updateCaseInfo(caseInfoPO); - // 有配合部门,也结束配合部门工作流程 + // 有配合组织,也结束配合组织工作流 List<CaseTask> assistCaseTaskList = this.listAssistTasking(caseDismiss.getCaseId()); for (CaseTask assistCaseTask: assistCaseTaskList){ - // 完成配合部门当前任务 + // 完成配合组织当前节点任务 assistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); assistCaseTask.setHandleUnitId(loginUser.getUnitId()); - assistCaseTask.setHandleUnitName(loginUser.getUnitName()); + assistCaseTask.setHandleUnitName(loginUser.getUnitName()+"(承办部门)"); + assistCaseTask.setHandleDeptId(loginUser.getDeptId()); + assistCaseTask.setHandleDeptName(loginUser.getDeptName()+"(承办部门)"); assistCaseTask.setHandleUserId(loginUser.getId()); - assistCaseTask.setHandleUserName(loginUser.getTrueName()); - assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + assistCaseTask.setHandleUserName(loginUser.getTrueName()+"(承办部门)"); + assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_3); assistCaseTask.setHandleTime(nowDate); assistCaseTask.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + assistCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getCreateTime())); + assistCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime())); + assistCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime())); mapper.updateCaseTask(assistCaseTask); - // 结束配合部门当前工作流任务 + // 结束配合组织当前工作流 flowInfoService.endFlow(assistCaseTask.getProcessInstanceId()); } // 新增不予受理信息 @@ -1410,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); @@ -1426,31 +1521,38 @@ Date nowDate = DateUtils.getNowDate(); // 获取当前登录用户 CtUserDTO loginUser = custClient.clientGetUserAll(userId); - // 查询当前待分派任务 + // 查询交办的组织信息 + CtUnitDTO dslUnitDTO = custClient.getUnitById(assignTaskDTO.getHandleUnitId()); + // 查询当前待分派节点任务 CaseTask dfpCaseTask = mapper.selectById(assignTaskDTO.getCaseTaskId()); - // 完成当前待分派任务 + // 完成当前待分派节点任务 CaseTask dfpCaseTaskPO = new CaseTask(); dfpCaseTaskPO.setId(assignTaskDTO.getCaseTaskId()); dfpCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); dfpCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); dfpCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + dfpCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + dfpCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); dfpCaseTaskPO.setHandleUserId(loginUser.getId()); dfpCaseTaskPO.setHandleUserName(loginUser.getTrueName()); - dfpCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dfpCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); dfpCaseTaskPO.setHandleContent(assignTaskDTO.getAssignContent()); dfpCaseTaskPO.setHandleIllust("派单至:"+assignTaskDTO.getHandleUnitName()); dfpCaseTaskPO.setHandleTime(nowDate); dfpCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + dfpCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(dfpCaseTaskPO.getHandleTime(), dfpCaseTask.getCreateTime())); + dfpCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(dfpCaseTaskPO.getHandleTime(), dfpCaseTask.getExpireTime())); + dfpCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(dfpCaseTaskPO.getHandleTime(), dfpCaseTask.getExpireTime())); mapper.updateCaseTask(dfpCaseTaskPO); - // 查询承办组织信息 - CtUnitDTO dslUnitDTO = custClient.getUnitById(assignTaskDTO.getHandleUnitId()); String flowOperation = null; - // 镇街综治中心待分派 + // 镇街综治中心待分派节点 if (FlowNodeEnum.FLOW_NODE_ZJ_DFP.getIndex().equals(dfpCaseTask.getNodeId())){ flowOperation = FlowableConsts.OPERATION_jb_zszz; } - // 区综治中心待分派 + // 区综治中心待分派节点 if (FlowNodeEnum.FLOW_NODE_QJ_DFP.getIndex().equals(dfpCaseTask.getNodeId())){ + // 查询承办组织信息 if (UserBaseConsts.UNIT_GRADE_2 == dslUnitDTO.getUnitGrade()) { flowOperation = FlowableConsts.OPERATION_jb_zszz; }else { @@ -1458,7 +1560,7 @@ } } - // 市综治中心待分派 + // 市综治中心待分派节点 if (FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex().equals(dfpCaseTask.getNodeId())){ if (UserBaseConsts.UNIT_GRADE_1 == dslUnitDTO.getUnitGrade()) { flowOperation = FlowableConsts.OPERATION_jb_zszz; @@ -1467,41 +1569,40 @@ } } - // 完成当前待分派工作流任务 + // 完成当前待分派工作流节点任务,进入待受理任务节点 FlowNode newFlowNode = flowInfoService.completeTask(dfpCaseTask.getFlowableId(), dfpCaseTask.getProcessTaskId(), flowOperation, userId); - // 新建待受理任务 + // 新建待受理节点任务 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); - // 受理任务,任务候选执行者类型是上一步骤选择 - dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + // 任务所属组织:交办的组织 dslCaseTask.setCandeUnitId(dslUnitDTO.getId()); dslCaseTask.setCandeUnitName(dslUnitDTO.getUnitName()); - // 分派的任务,需要签收 + // 交办的待受理节点任务,需要签收 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.setStatus(CaseTaskConsts.TASK_STATUS_1); dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); dslCaseTask.setCustId(dfpCaseTask.getCustId()); dslCaseTask.setCreateTime(nowDate); 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()); @@ -1512,7 +1613,14 @@ 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())){ // 拼接配合组织编号和名称 String assistUnitId = assignTaskDTO.getAssistUnitList().stream().map(AssignAssistUnitDTO::getUitId). @@ -1521,30 +1629,30 @@ collect(Collectors.joining(BaseConsts.COMMA)); for (AssignAssistUnitDTO assignAssistUnitDTO: assignTaskDTO.getAssistUnitList()){ // 启动联合处置工作流 - FlowNode lhczdfpFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_LHCZ, dfpCaseTask.getCaseId()); - // 新建并完成配合部门待分派任务 + FlowNode lhczdfpFlowNode = flowInfoService.startFlow(FlowableConsts.GZDYH_LHCZ_V1, dfpCaseTask.getCaseId()); + // 新建并完成待分派节点任务 CaseTask lhczdfpCaseTask = new CaseTask(); lhczdfpCaseTask.setId(utilsClient.getNewTimeId()); lhczdfpCaseTask.setCaseId(dfpCaseTask.getCaseId()); lhczdfpCaseTask.setFlowableId(lhczdfpFlowNode.getFlowableId()); lhczdfpCaseTask.setProcessInstanceId(lhczdfpFlowNode.getProcessInstanceId()); lhczdfpCaseTask.setProcessTaskId(lhczdfpFlowNode.getProcessTaskId()); - lhczdfpCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); lhczdfpCaseTask.setNodeType(lhczdfpFlowNode.getNodeType()); lhczdfpCaseTask.setNodeId(lhczdfpFlowNode.getNodeId()); lhczdfpCaseTask.setNodeName(lhczdfpFlowNode.getNodeName()); lhczdfpCaseTask.setFlowId(lhczdfpFlowNode.getFlowId()); lhczdfpCaseTask.setNodeShowName(lhczdfpFlowNode.getNodeShowName()); lhczdfpCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2); - // 通过调度的,任务候选执行者类型是上一步骤选择 - lhczdfpCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - lhczdfpCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId()); - lhczdfpCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName()); - // 不需要签收 + // 任务所属单位:当前操作组织 + lhczdfpCaseTask.setCandeUnitId(loginUser.getUnitId()); + lhczdfpCaseTask.setCandeUnitName(loginUser.getUnitName()); + // 待分派节点任务,不需要签收 lhczdfpCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); lhczdfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); lhczdfpCaseTask.setHandleUnitId(loginUser.getUnitId()); lhczdfpCaseTask.setHandleUnitName(loginUser.getUnitName()); + lhczdfpCaseTask.setHandleDeptId(loginUser.getDeptId()); + lhczdfpCaseTask.setHandleDeptName(loginUser.getDeptName()); lhczdfpCaseTask.setHandleUserId(loginUser.getId()); lhczdfpCaseTask.setHandleUserName(loginUser.getTrueName()); lhczdfpCaseTask.setHandleContent(assignTaskDTO.getAssignContent()); @@ -1558,28 +1666,26 @@ lhczdfpCaseTask.setCreateTime(nowDate); lhczdfpCaseTask.setUpdateTime(nowDate); mapper.insert(lhczdfpCaseTask); - // 完成待分派任务 + // 完成待分派节点任务,进去待受理节点 FlowNode lhczdslFlowNode = flowInfoService.completeTask(lhczdfpCaseTask.getFlowableId(), lhczdfpCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_forward, loginUser.getId()); - // 创建配合部门待受理任务 + // 创建待受理节点任务 CaseTask lhczdslCaseTask = new CaseTask(); lhczdslCaseTask.setId(utilsClient.getNewTimeId()); lhczdslCaseTask.setCaseId(lhczdfpCaseTask.getCaseId()); lhczdslCaseTask.setFlowableId(lhczdslFlowNode.getFlowableId()); lhczdslCaseTask.setProcessInstanceId(lhczdslFlowNode.getProcessInstanceId()); lhczdslCaseTask.setProcessTaskId(lhczdslFlowNode.getProcessTaskId()); - lhczdslCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); lhczdslCaseTask.setNodeType(lhczdslFlowNode.getNodeType()); lhczdslCaseTask.setNodeId(lhczdslFlowNode.getNodeId()); lhczdslCaseTask.setNodeName(lhczdslFlowNode.getNodeName()); lhczdslCaseTask.setFlowId(lhczdslFlowNode.getFlowId()); lhczdslCaseTask.setNodeShowName(lhczdslFlowNode.getNodeShowName()); lhczdslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2); - // 通过调度的,任务候选执行者类型是上一步骤选择 - lhczdslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + // 任务所属单位:交办的配合组织 lhczdslCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId()); lhczdslCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName()); - // 需要签收 + // 交办的待受理节点任务,需要签收 lhczdslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); lhczdslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); // 任务处理时限 @@ -1594,14 +1700,21 @@ // 新增联合处置信息 CaseAssistInfo caseAssistInfoPO = new CaseAssistInfo(); caseAssistInfoPO.setId(utilsClient.getNewTimeId()); - caseAssistInfoPO.setCaseId(dslCaseTask.getCaseId()); + caseAssistInfoPO.setCaseId(lhczdslCaseTask.getCaseId()); + caseAssistInfoPO.setProcessInstanceId(lhczdslCaseTask.getProcessInstanceId()); caseAssistInfoPO.setAssistUnitId(assignAssistUnitDTO.getUitId()); caseAssistInfoPO.setAssistUnitName(assignAssistUnitDTO.getUitName()); caseAssistInfoPO.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_0); - caseAssistInfoPO.setCustId(dslCaseTask.getCustId()); + caseAssistInfoPO.setCustId(lhczdslCaseTask.getCustId()); 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(); @@ -1638,7 +1751,7 @@ caseTaskPO.setHandleIllust("已签收"); caseTaskPO.setUpdateTime(nowDate); mapper.updateCaseTask(caseTaskPO); - // 承办部门签收才更新纠纷信息 + // 承办组织签收才更新纠纷信息 if (CaseTaskConsts.CASE_TASK_TYPE_1 == qsCaseTask.getCaseTaskType()) { // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); @@ -1651,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){ @@ -1669,48 +1786,53 @@ Date nowDate = DateUtils.getNowDate(); // 获取当前登录用户 CtUserDTO loginUser = custClient.clientGetUserAll(userId); - // 查询当前待受理任务 + // 查询当前待受理节点任务 CaseTask dslCaseTask = mapper.selectById(acceptTaskDTO.getCaseTaskId()); - // 完成当前待受理任务 + // 完成当前待受理节点任务 CaseTask dslCaseTaskPO = new CaseTask(); dslCaseTaskPO.setId(acceptTaskDTO.getCaseTaskId()); dslCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); dslCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); dslCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); - dslCaseTaskPO.setHandleUserId(loginUser.getId()); + dslCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + dslCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); + dslCaseTaskPO.setHandleUserId(loginUser.getId());; + dslCaseTaskPO.setHandleUserName(loginUser.getTrueName()); dslCaseTaskPO.setHandleIllust("已受理"); dslCaseTaskPO.setHandleUserName(loginUser.getTrueName()); - dslCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dslCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); dslCaseTaskPO.setHandleTime(nowDate); dslCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + dslCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(dslCaseTaskPO.getHandleTime(), dslCaseTask.getCreateTime())); + dslCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(dslCaseTaskPO.getHandleTime(), dslCaseTask.getExpireTime())); + dslCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(dslCaseTaskPO.getHandleTime(), dslCaseTask.getExpireTime())); mapper.updateCaseTask(dslCaseTaskPO); - // 完成当前待受理工作流任务 + // 完成当前待受理工作流节点任务,机内办理反馈节点 String operation = FlowableConsts.OPERATION_sl; - // 配合部门受理条件改为通过 if (CaseTaskConsts.CASE_TASK_TYPE_2 == dslCaseTask.getCaseTaskType()) { + // 配合组织受理条件改为通过 operation = FlowableConsts.OPERATION_forward; } FlowNode newFlowNode = flowInfoService.completeTask(dslCaseTask.getFlowableId(), dslCaseTask.getProcessTaskId(), operation, userId); - // 新建办理反馈任务 + // 新建办理反馈节点任务 CaseTask blfkCaseTask = new CaseTask(); blfkCaseTask.setId(utilsClient.getNewTimeId()); blfkCaseTask.setCaseId(dslCaseTask.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(dslCaseTask.getCaseTaskType()); - // 受理任务,任务候选执行者类型是上一步骤选择 - blfkCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + // 任务所属单位:当前受理单位 blfkCaseTask.setCandeUnitId(loginUser.getUnitId()); blfkCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 受理后的任务,不需要签收 + // 受理后的节点任务,不需要签收 blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); // 任务处理时限 @@ -1722,7 +1844,11 @@ blfkCaseTask.setCreateTime(nowDate); blfkCaseTask.setUpdateTime(nowDate); mapper.insert(blfkCaseTask); - // 承办部门签收才更新纠纷信息 + + //删除网格待办状态 + this.deleteGridTodo(dslCaseTaskPO); + + // 承办组织受理才更新纠纷信息 if (CaseTaskConsts.CASE_TASK_TYPE_1 == dslCaseTask.getCaseTaskType()) { // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); @@ -1743,7 +1869,7 @@ caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName()); caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); }else { - // 更新配合部门联合处置信息 + // 更新配合组织联合处置信息 QueryWrapper<CaseAssistInfo> caseAssistInfoQueryWrapper = new QueryWrapper<>(); caseAssistInfoQueryWrapper.eq("case_id", blfkCaseTask.getCaseId()) .eq("assist_unit_id", loginUser.getUnitId()).eq("assist_status", CaseTaskConsts.ASSIST_STATUS_0); @@ -1778,59 +1904,73 @@ caseWindupApply.setDeleteStatus(BaseConsts.DELETE_STATUS_0); caseWindupApply.setCreateTime(nowDate); caseWindupApply.setUpdateTime(nowDate); - // 查询办理反馈任务 + // 查询办理反馈节点任务 CaseTask blfkCaseTask = mapper.selectById(caseWindupApply.getCaseTaskId()); - // 完成当前办理反馈任务 + // 完成当前办理反馈节点任务 CaseTask blfkCaseTaskPO = new CaseTask(); blfkCaseTaskPO.setId(caseWindupApply.getCaseTaskId()); blfkCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); blfkCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); blfkCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + blfkCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + blfkCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); blfkCaseTaskPO.setHandleUserId(loginUser.getId()); blfkCaseTaskPO.setHandleUserName(loginUser.getTrueName()); - blfkCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + blfkCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); blfkCaseTaskPO.setHandleTime(nowDate); blfkCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + blfkCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(blfkCaseTaskPO.getHandleTime(), blfkCaseTask.getCreateTime())); + blfkCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(blfkCaseTaskPO.getHandleTime(), blfkCaseTask.getExpireTime())); + blfkCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(blfkCaseTaskPO.getHandleTime(), blfkCaseTask.getExpireTime())); mapper.updateCaseTask(blfkCaseTaskPO); - // 完成当前待受理工作流任务,走结案申请任务 + // 完成当前待受理工作流节点任务,进入结案申请节点 FlowNode jasqFlowNode = flowInfoService.completeTask(blfkCaseTask.getFlowableId(), blfkCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_forward, userId); - // 新建并自动完成结案申请任务 + // 新建并自动完成结案申请节点任务 CaseTask jasqCaseTask = new CaseTask(); jasqCaseTask.setId(utilsClient.getNewTimeId()); jasqCaseTask.setCaseId(blfkCaseTask.getCaseId()); jasqCaseTask.setFlowableId(jasqFlowNode.getFlowableId()); jasqCaseTask.setProcessInstanceId(jasqFlowNode.getProcessInstanceId()); jasqCaseTask.setProcessTaskId(jasqFlowNode.getProcessTaskId()); - jasqCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); jasqCaseTask.setNodeType(jasqFlowNode.getNodeType()); jasqCaseTask.setNodeId(jasqFlowNode.getNodeId()); jasqCaseTask.setNodeName(jasqFlowNode.getNodeName()); jasqCaseTask.setFlowId(jasqFlowNode.getFlowId()); jasqCaseTask.setNodeShowName(jasqFlowNode.getNodeShowName()); jasqCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 受理任务,任务候选执行者类型是上一步骤选择 - jasqCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + // 任务所属单位:当前结案申请组织 jasqCaseTask.setCandeUnitId(loginUser.getUnitId()); jasqCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 受理后的任务,不需要签收 + // 受理后的节点任务,不需要签收 jasqCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 任务处理时限 + if (jasqFlowNode.getExpire() != 0) { + jasqCaseTask.setExpireTime(DateUtils.addDay(nowDate, jasqFlowNode.getExpire())); + } jasqCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); jasqCaseTask.setHandleUnitId(loginUser.getUnitId()); jasqCaseTask.setHandleUnitName(loginUser.getUnitName()); + jasqCaseTask.setHandleDeptId(loginUser.getDeptId()); + jasqCaseTask.setHandleDeptName(loginUser.getDeptName()); jasqCaseTask.setHandleUserId(loginUser.getId()); jasqCaseTask.setHandleUserName(loginUser.getTrueName()); jasqCaseTask.setHandleContent(caseWindupApply.getWindupContent()); - jasqCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + jasqCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); jasqCaseTask.setHandleTime(nowDate); jasqCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); jasqCaseTask.setCustId(blfkCaseTask.getCustId()); jasqCaseTask.setCreateTime(nowDate); jasqCaseTask.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + jasqCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jasqCaseTask.getHandleTime(), jasqCaseTask.getCreateTime())); + jasqCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jasqCaseTask.getHandleTime(), jasqCaseTask.getExpireTime())); + jasqCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jasqCaseTask.getHandleTime(), jasqCaseTask.getExpireTime())); mapper.insert(jasqCaseTask); // 化解成功,自动结案审核通过 if (MediResultBaseConstsEnum.MEDI_RESULT_1.getIndex().equals(caseWindupApply.getMediResult())){ - // 完成当前结案申请工作流任务,走结案审核任务 + // 完成当前结案申请工作流节点任务,走结案审核任务 FlowNode jashFlowNode = flowInfoService.completeTask(jasqCaseTask.getFlowableId(), jasqCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_forward, userId); // 新建并自动完成结案审核任务 @@ -1840,22 +1980,26 @@ jashCaseTask.setFlowableId(jashFlowNode.getFlowableId()); jashCaseTask.setProcessInstanceId(jashFlowNode.getProcessInstanceId()); jashCaseTask.setProcessTaskId(jashFlowNode.getProcessTaskId()); - jashCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); jashCaseTask.setNodeType(jashFlowNode.getNodeType()); jashCaseTask.setNodeId(jashFlowNode.getNodeId()); jashCaseTask.setNodeName(jashFlowNode.getNodeName()); jashCaseTask.setFlowId(jashFlowNode.getFlowId()); jashCaseTask.setNodeShowName(jashFlowNode.getNodeShowName()); jashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 受理任务,任务候选执行者类型是上一步骤选择 - jashCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + // 任务所属单位:结案申请操作组织 jashCaseTask.setCandeUnitId(loginUser.getUnitId()); jashCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 受理后的任务,不需要签收 + // 受理后的节点任务,不需要签收 jashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 任务处理时限 + if (jashFlowNode.getExpire() != 0) { + jashCaseTask.setExpireTime(DateUtils.addDay(nowDate, jashFlowNode.getExpire())); + } jashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); jashCaseTask.setHandleUnitId(loginUser.getUnitId()); jashCaseTask.setHandleUnitName(loginUser.getUnitName()); + jashCaseTask.setHandleDeptId(loginUser.getDeptId()); + jashCaseTask.setHandleDeptName(loginUser.getDeptName()); jashCaseTask.setHandleUserId(loginUser.getId()); jashCaseTask.setHandleUserName(loginUser.getTrueName()); jashCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); @@ -1864,37 +2008,40 @@ jashCaseTask.setCustId(jasqCaseTask.getCustId()); jashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1)); jashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1)); + // 计算任务耗时、是否超时、超时多少 + jashCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jashCaseTask.getHandleTime(), jashCaseTask.getCreateTime())); + jashCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jashCaseTask.getHandleTime(), jashCaseTask.getExpireTime())); + jashCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jashCaseTask.getHandleTime(), jashCaseTask.getExpireTime())); mapper.insert(jashCaseTask); - // 完成当前结案审核工作流任务,走下一个任务 + // 完成当前结案审核工作流任务,走下一个节点 FlowNode nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_jash_ty, userId); - // 走当事人评价节点 + // 下一个节点是当事人评价节点,进入当事人评价节点任务 if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(nextFlowNode.getNodeId())){ - // 新建当事人评价任务 + // 新建当事人评价节点任务 CaseTask dsrpjCaseTask = new CaseTask(); dsrpjCaseTask.setId(utilsClient.getNewTimeId()); dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId()); dsrpjCaseTask.setFlowableId(nextFlowNode.getFlowableId()); dsrpjCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId()); dsrpjCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId()); - dsrpjCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); dsrpjCaseTask.setNodeType(nextFlowNode.getNodeType()); dsrpjCaseTask.setNodeId(nextFlowNode.getNodeId()); dsrpjCaseTask.setNodeName(nextFlowNode.getNodeName()); dsrpjCaseTask.setFlowId(nextFlowNode.getFlowId()); dsrpjCaseTask.setNodeShowName(nextFlowNode.getNodeShowName()); dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 受理任务,任务候选执行者类型是上一步骤选择 - dsrpjCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - dsrpjCaseTask.setCandeUnitId(loginUser.getUnitId()); - dsrpjCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 受理后的任务,不需要签收 + // 任务所属人:当事人 + EvaluatePersonDTO evaluatePersonDTO = casePersonService.getEvaluatePerson(jashCaseTask.getCaseId()); + dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getId()); + dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getName()); + // 受理后的节点任务,不需要签收 dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); - dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); // 任务处理时限 if (nextFlowNode.getExpire() != 0) { dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire())); } + dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); dsrpjCaseTask.setCustId(jashCaseTask.getCustId()); dsrpjCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 2)); @@ -1912,46 +2059,51 @@ caseInfoPO.setUpdateTime(nowDate); caseInfoService.updateCaseInfo(caseInfoPO); } - // 走结案归档节点 + // 下一个节点是结案归档节点,进入结案归档节点任务 if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(nextFlowNode.getNodeId())){ - // 默认完成结案归档任务 + // 创建并完成结案归档节点任务 CaseTask jagdCaseTask = new CaseTask(); jagdCaseTask.setId(utilsClient.getNewTimeId()); jagdCaseTask.setCaseId(jashCaseTask.getCaseId()); jagdCaseTask.setFlowableId(nextFlowNode.getFlowableId()); jagdCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId()); jagdCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId()); - jagdCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); jagdCaseTask.setNodeType(nextFlowNode.getNodeType()); jagdCaseTask.setNodeId(nextFlowNode.getNodeId()); jagdCaseTask.setNodeName(nextFlowNode.getNodeName()); jagdCaseTask.setFlowId(nextFlowNode.getFlowId()); jagdCaseTask.setNodeShowName(nextFlowNode.getNodeShowName()); jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 通过调度的,任务候选执行者类型是上一步骤选择 - jagdCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + // 任务所属单位:结案申请操作组织 jagdCaseTask.setCandeUnitId(loginUser.getUnitId()); jagdCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 系不需要签收 + // 受理后的节点任务,不需要签收 jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); - jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); // 任务处理时限 if (nextFlowNode.getExpire() != 0) { jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire())); } - jagdCaseTask.setHandleUnitId(loginUser.getUnitId()); - jagdCaseTask.setHandleUnitName(loginUser.getUnitName()); - jagdCaseTask.setHandleUserName("系统自动"); - jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + jashCaseTask.setHandleUnitId(loginUser.getUnitId()); + jashCaseTask.setHandleUnitName(loginUser.getUnitName()); + jashCaseTask.setHandleDeptId(loginUser.getDeptId()); + jashCaseTask.setHandleDeptName(loginUser.getDeptName()); + jashCaseTask.setHandleUserId(loginUser.getId()); + jashCaseTask.setHandleUserName(loginUser.getTrueName()); + jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); jagdCaseTask.setHandleTime(nowDate); jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); jagdCaseTask.setCustId(jashCaseTask.getCustId()); jagdCaseTask.setCreateTime(nowDate); jagdCaseTask.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + jagdCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getCreateTime())); + jagdCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime())); + jagdCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime())); mapper.insert(jagdCaseTask); - // 结束工作流流程 + // 完成结案归档工作流节点任务,结束流程 flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(), - FlowableConsts.OPERATION_jb_zszz, "系统自动"); + FlowableConsts.OPERATION_jb_zszz, loginUser.getId()); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); caseInfoPO.setId(jashCaseTask.getCaseId()); @@ -1988,84 +2140,274 @@ caseInfoUnfoldPO.setCloseTime(nowDate); caseInfoUnfoldPO.setUpdateTime(nowDate); caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); - }else {// 化解不成功,走结案审核流程 - // 完成当前结案申请工作流任务,走结案审核任务 + }else {// 化解不成功 + // 完成当前结案申请工作流节点任务 FlowNode jashFlowNode = flowInfoService.completeTask(jasqCaseTask.getFlowableId(), jasqCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_forward, userId); - // 新建结案审核任务 - CaseTask jashCaseTask = new CaseTask(); - jashCaseTask.setId(utilsClient.getNewTimeId()); - jashCaseTask.setCaseId(jasqCaseTask.getCaseId()); - jashCaseTask.setFlowableId(jashFlowNode.getFlowableId()); - jashCaseTask.setProcessInstanceId(jashFlowNode.getProcessInstanceId()); - jashCaseTask.setProcessTaskId(jashFlowNode.getProcessTaskId()); - jashCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); - jashCaseTask.setNodeType(jashFlowNode.getNodeType()); - jashCaseTask.setNodeId(jashFlowNode.getNodeId()); - jashCaseTask.setNodeName(jashFlowNode.getNodeName()); - jashCaseTask.setFlowId(jashFlowNode.getFlowId()); - jashCaseTask.setNodeShowName(jashFlowNode.getNodeShowName()); - jashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 受理任务,任务候选执行者类型是上一步骤选择 - jashCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - jashCaseTask.setCandeUnitId(loginUser.getUnitId()); - jashCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 受理后的任务,不需要签收 - jashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); - jashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); - // 任务处理时限 - if (jashFlowNode.getExpire() != 0) { - jashCaseTask.setExpireTime(DateUtils.addDay(nowDate, jashFlowNode.getExpire())); + // 判断是否自行受理 + CaseInfo caseInfo = caseInfoService.getById(jasqCaseTask.getCaseId()); + if (CaseBaseConsts.ZXSL_STATUS_1 == caseInfo.getZxslStatus()){ + // 自行受理,自行完成结案审核节点,直接进入下一个节点 + // 新建并自动完成结案审核任务 + CaseTask jashCaseTask = new CaseTask(); + jashCaseTask.setId(utilsClient.getNewTimeId()); + jashCaseTask.setCaseId(jasqCaseTask.getCaseId()); + jashCaseTask.setFlowableId(jashFlowNode.getFlowableId()); + jashCaseTask.setProcessInstanceId(jashFlowNode.getProcessInstanceId()); + jashCaseTask.setProcessTaskId(jashFlowNode.getProcessTaskId()); + jashCaseTask.setNodeType(jashFlowNode.getNodeType()); + jashCaseTask.setNodeId(jashFlowNode.getNodeId()); + jashCaseTask.setNodeName(jashFlowNode.getNodeName()); + jashCaseTask.setFlowId(jashFlowNode.getFlowId()); + jashCaseTask.setNodeShowName(jashFlowNode.getNodeShowName()); + jashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 任务所属单位:结案申请操作组织 + jashCaseTask.setCandeUnitId(loginUser.getUnitId()); + jashCaseTask.setCandeUnitName(loginUser.getUnitName()); + // 受理后的节点任务,不需要签收 + jashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 任务处理时限 + if (jashFlowNode.getExpire() != 0) { + jashCaseTask.setExpireTime(DateUtils.addDay(nowDate, jashFlowNode.getExpire())); + } + jashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + jashCaseTask.setHandleUnitId(loginUser.getUnitId()); + jashCaseTask.setHandleUnitName(loginUser.getUnitName()); + jashCaseTask.setHandleDeptId(loginUser.getDeptId()); + jashCaseTask.setHandleDeptName(loginUser.getDeptName()); + jashCaseTask.setHandleUserId(loginUser.getId()); + jashCaseTask.setHandleUserName(loginUser.getTrueName()); + jashCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + jashCaseTask.setHandleTime(DateUtils.addMinute(nowDate, 1)); + jashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + jashCaseTask.setCustId(jasqCaseTask.getCustId()); + jashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1)); + jashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1)); + // 计算任务耗时、是否超时、超时多少 + jashCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jashCaseTask.getHandleTime(), jashCaseTask.getCreateTime())); + jashCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jashCaseTask.getHandleTime(), jashCaseTask.getExpireTime())); + jashCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jashCaseTask.getHandleTime(), jashCaseTask.getExpireTime())); + mapper.insert(jashCaseTask); + // 完成当前结案审核工作流任务,走下一个节点 + FlowNode nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jash_ty, userId); + // 下一个节点是当事人评价节点,进入当事人评价节点任务 + if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(nextFlowNode.getNodeId())){ + // 新建当事人评价节点任务 + CaseTask dsrpjCaseTask = new CaseTask(); + dsrpjCaseTask.setId(utilsClient.getNewTimeId()); + dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId()); + dsrpjCaseTask.setFlowableId(nextFlowNode.getFlowableId()); + dsrpjCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId()); + dsrpjCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId()); + dsrpjCaseTask.setNodeType(nextFlowNode.getNodeType()); + dsrpjCaseTask.setNodeId(nextFlowNode.getNodeId()); + dsrpjCaseTask.setNodeName(nextFlowNode.getNodeName()); + dsrpjCaseTask.setFlowId(nextFlowNode.getFlowId()); + dsrpjCaseTask.setNodeShowName(nextFlowNode.getNodeShowName()); + dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 任务所属人:当事人 + EvaluatePersonDTO evaluatePersonDTO = casePersonService.getEvaluatePerson(jashCaseTask.getCaseId()); + dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getId()); + dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getName()); + // 受理后的节点任务,不需要签收 + dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 任务处理时限 + if (nextFlowNode.getExpire() != 0) { + dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire())); + } + dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dsrpjCaseTask.setCustId(jashCaseTask.getCustId()); + dsrpjCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 2)); + dsrpjCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 2)); + mapper.insert(dsrpjCaseTask); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(jashCaseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_6.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_6.getDes()); + caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); + caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes()); + caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex()); + caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); + caseInfoPO.setUpdateTime(nowDate); + caseInfoService.updateCaseInfo(caseInfoPO); + } + // 下一个节点是结案归档节点,进入结案归档节点任务 + if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(nextFlowNode.getNodeId())){ + // 创建并完成结案归档节点任务 + CaseTask jagdCaseTask = new CaseTask(); + jagdCaseTask.setId(utilsClient.getNewTimeId()); + jagdCaseTask.setCaseId(jashCaseTask.getCaseId()); + jagdCaseTask.setFlowableId(nextFlowNode.getFlowableId()); + jagdCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId()); + jagdCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId()); + jagdCaseTask.setNodeType(nextFlowNode.getNodeType()); + jagdCaseTask.setNodeId(nextFlowNode.getNodeId()); + jagdCaseTask.setNodeName(nextFlowNode.getNodeName()); + jagdCaseTask.setFlowId(nextFlowNode.getFlowId()); + jagdCaseTask.setNodeShowName(nextFlowNode.getNodeShowName()); + jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 任务所属单位:结案申请操作组织 + jagdCaseTask.setCandeUnitId(loginUser.getUnitId()); + jagdCaseTask.setCandeUnitName(loginUser.getUnitName()); + // 受理后的节点任务,不需要签收 + jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 任务处理时限 + if (nextFlowNode.getExpire() != 0) { + jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire())); + } + jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + jagdCaseTask.setHandleUnitId(loginUser.getUnitId()); + jagdCaseTask.setHandleUnitName(loginUser.getUnitName()); + jagdCaseTask.setHandleDeptId(loginUser.getDeptId()); + jagdCaseTask.setHandleDeptName(loginUser.getDeptName()); + jagdCaseTask.setHandleUserId(loginUser.getId()); + jagdCaseTask.setHandleUserName(loginUser.getTrueName()); + jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); + jagdCaseTask.setHandleTime(nowDate); + jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + jagdCaseTask.setCustId(jashCaseTask.getCustId()); + jagdCaseTask.setCreateTime(nowDate); + jagdCaseTask.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + jagdCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getCreateTime())); + jagdCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime())); + jagdCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime())); + mapper.insert(jagdCaseTask); + // 完成结案归档工作流节点任务,结束流程 + flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jb_zszz, loginUser.getId()); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(jashCaseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_7.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_7.getDes()); + caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); + caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes()); + caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex()); + caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); + caseInfoPO.setUpdateTime(nowDate); + caseInfoService.updateCaseInfo(caseInfoPO); + } + // 更新结案申请信息 + caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1); + caseWindupApply.setCaseTaskId(jashCaseTask.getId()); + caseWindupApply.setAuditUnitId(jashCaseTask.getHandleUnitId()); + caseWindupApply.setAuditUnitName(jashCaseTask.getHandleUnitName()); + caseWindupApply.setAuditUserId(jashCaseTask.getHandleUserId()); + caseWindupApply.setAuditUserName(jashCaseTask.getHandleUserName()); + caseWindupApply.setAuditTime(nowDate); + caseWindupApply.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); + caseWindupApply.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes()); + caseWindupApply.setCustId(jashCaseTask.getCustId()); + caseWindupApplyService.save(caseWindupApply); + // 更新纠纷扩展信息 + CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); + caseInfoUnfoldPO.setId(jashCaseTask.getCaseId()); + caseInfoUnfoldPO.setMediResult(caseWindupApply.getMediResult()); + caseInfoUnfoldPO.setMediResultName(caseWindupApply.getMediResultName()); + caseInfoUnfoldPO.setAgreeType(caseWindupApply.getAgreeType()); + caseInfoUnfoldPO.setAgreeTypeName(caseWindupApply.getAgreeTypeName()); + caseInfoUnfoldPO.setAgreeContent(caseWindupApply.getAgreeContent()); + caseInfoUnfoldPO.setWindupContent(caseWindupApply.getWindupContent()); + caseInfoUnfoldPO.setCloseTime(nowDate); + caseInfoUnfoldPO.setUpdateTime(nowDate); + caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); + }else { + // 正常流程,进入结案审核节点 + // 新建结案审核任务 + CaseTask jashCaseTask = new CaseTask(); + jashCaseTask.setId(utilsClient.getNewTimeId()); + jashCaseTask.setCaseId(jasqCaseTask.getCaseId()); + jashCaseTask.setFlowableId(jashFlowNode.getFlowableId()); + jashCaseTask.setProcessInstanceId(jashFlowNode.getProcessInstanceId()); + jashCaseTask.setProcessTaskId(jashFlowNode.getProcessTaskId()); + jashCaseTask.setNodeType(jashFlowNode.getNodeType()); + jashCaseTask.setNodeId(jashFlowNode.getNodeId()); + jashCaseTask.setNodeName(jashFlowNode.getNodeName()); + jashCaseTask.setFlowId(jashFlowNode.getFlowId()); + jashCaseTask.setNodeShowName(jashFlowNode.getNodeShowName()); + jashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 任务所属单位:本级综治中心审核 + CtUnitDTO zzzxCtUnitDTO = custClient.getBjZzzx(loginUser.getUnitId()); + jashCaseTask.setCandeUnitId(zzzxCtUnitDTO.getId()); + jashCaseTask.setCandeUnitName(zzzxCtUnitDTO.getUnitName()); + // 受理后的节点任务,不需要签收 + jashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 任务处理时限 + if (jashFlowNode.getExpire() != 0) { + jashCaseTask.setExpireTime(DateUtils.addDay(nowDate, jashFlowNode.getExpire())); + } + jashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + jashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + jashCaseTask.setCustId(jasqCaseTask.getCustId()); + jashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1)); + jashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1)); + mapper.insert(jashCaseTask); + // 更新结案申请信息 + caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0); + caseWindupApply.setCaseTaskId(jashCaseTask.getId()); + caseWindupApply.setAuditUnitId(jashCaseTask.getCandeUnitId()); + caseWindupApply.setAuditUnitName(jashCaseTask.getCandeUnitName()); + caseWindupApply.setCustId(jashCaseTask.getCustId()); + caseWindupApplyService.save(caseWindupApply); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(jashCaseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_5.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_5.getDes()); + caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); + caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes()); + caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex()); + caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); + caseInfoPO.setUpdateTime(nowDate); + caseInfoService.updateCaseInfo(caseInfoPO); + // 更新纠纷扩展信息 + CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); + caseInfoUnfoldPO.setId(jashCaseTask.getCaseId()); + caseInfoUnfoldPO.setMediResult(caseWindupApply.getMediResult()); + caseInfoUnfoldPO.setMediResultName(caseWindupApply.getMediResultName()); + caseInfoUnfoldPO.setAgreeType(caseWindupApply.getAgreeType()); + caseInfoUnfoldPO.setAgreeTypeName(caseWindupApply.getAgreeTypeName()); + caseInfoUnfoldPO.setAgreeContent(caseWindupApply.getAgreeContent()); + caseInfoUnfoldPO.setWindupContent(caseWindupApply.getWindupContent()); + caseInfoUnfoldPO.setUpdateTime(nowDate); + caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); + + this.createGridToDo(caseInfo, jashCaseTask, GridEnum.GRID_OBJECT_TYPE_4.getIndex(), GridBaseConsts.GRID_TYPE_4); } - jashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); - jashCaseTask.setCustId(jasqCaseTask.getCustId()); - jashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1)); - jashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1)); - mapper.insert(jashCaseTask); - // 更新结案申请信息 - caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0); - caseWindupApply.setCaseTaskId(jashCaseTask.getId()); - caseWindupApply.setAuditUnitId(jashCaseTask.getCandeUnitId()); - caseWindupApply.setAuditUnitName(jashCaseTask.getCandeUnitName()); - caseWindupApply.setCustId(jashCaseTask.getCustId()); - caseWindupApplyService.save(caseWindupApply); - // 更新纠纷信息 - CaseInfo caseInfoPO = new CaseInfo(); - caseInfoPO.setId(jashCaseTask.getCaseId()); - caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_5.getIndex()); - caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_5.getDes()); - caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); - caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes()); - caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex()); - caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); - caseInfoPO.setUpdateTime(nowDate); - caseInfoService.updateCaseInfo(caseInfoPO); - // 更新纠纷扩展信息 - CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); - caseInfoUnfoldPO.setId(jashCaseTask.getCaseId()); - caseInfoUnfoldPO.setMediResult(caseWindupApply.getMediResult()); - caseInfoUnfoldPO.setMediResultName(caseWindupApply.getMediResultName()); - caseInfoUnfoldPO.setAgreeType(caseWindupApply.getAgreeType()); - caseInfoUnfoldPO.setAgreeTypeName(caseWindupApply.getAgreeTypeName()); - caseInfoUnfoldPO.setAgreeContent(caseWindupApply.getAgreeContent()); - caseInfoUnfoldPO.setWindupContent(caseWindupApply.getWindupContent()); - caseInfoUnfoldPO.setUpdateTime(nowDate); - caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); } - // 查询配合部门的任务,全部结束流程 + // 查询联合处置申请单,全部结束申请单 + QueryWrapper<CaseAssistApply> caseAssistApplyQueryWrapper = new QueryWrapper<>(); + caseAssistApplyQueryWrapper.eq("case_id", jasqCaseTask.getCaseId()).eq("apply_status", AuditBaseConsts.AUDIT_STATUS_0); + List<CaseAssistApply> caseAssistApplyList = caseAssistApplyService.list(caseAssistApplyQueryWrapper); + for (CaseAssistApply caseAssistApply: caseAssistApplyList){ + caseAssistApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_2); + caseAssistApply.setUpdateTime(nowDate); + caseAssistApplyService.updateCaseAssistApply(caseAssistApply); + } + // 查询配合组织的任务,全部结束流程 List<CaseTask> assistCaseTaskList = this.listAssistTasking(jasqCaseTask.getCaseId()); for (CaseTask assistCaseTask: assistCaseTaskList){ - // 完成配合部门当前任务 + // 完成配合组织当前任务 assistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); assistCaseTask.setHandleUnitId(loginUser.getUnitId()); assistCaseTask.setHandleUnitName(loginUser.getUnitName()); + assistCaseTask.setHandleDeptId(loginUser.getDeptId()); + assistCaseTask.setHandleDeptName(loginUser.getDeptName()); assistCaseTask.setHandleUserId(loginUser.getId()); assistCaseTask.setHandleUserName(loginUser.getTrueName()); - assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); assistCaseTask.setHandleTime(nowDate); assistCaseTask.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + assistCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getCreateTime())); + assistCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime())); + assistCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime())); mapper.updateCaseTask(assistCaseTask); - // 结束配合部门当前工作流任务 + // 结束配合组织当前工作流任务 flowInfoService.endFlow(assistCaseTask.getProcessInstanceId()); } }catch (Exception e){ @@ -2084,6 +2426,8 @@ Date nowDate = DateUtils.getNowDate(); // 获取当前登录用户 CtUserDTO loginUser = custClient.clientGetUserAll(userId); + // 查询结案申请信息 + CaseWindupApply oldCaseWindupApply = caseWindupApplyService.getById(caseWindupApply.getId()); // 更新结案申请信息 caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1); caseWindupApply.setAuditUserId(loginUser.getId()); @@ -2097,53 +2441,185 @@ CaseTask jashCaseTask = mapper.selectById(caseWindupApply.getCaseTaskId()); // 审核通过, if (AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex().equals(caseWindupApply.getAuditResult())){ - // 完成当前结案审核任务 + // 完成当前结案审核节点任务 CaseTask jashCaseTaskPO = new CaseTask(); jashCaseTaskPO.setId(caseWindupApply.getCaseTaskId()); jashCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); jashCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); jashCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + jashCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + jashCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); jashCaseTaskPO.setHandleUserId(loginUser.getId()); jashCaseTaskPO.setHandleUserName(loginUser.getTrueName()); jashCaseTaskPO.setHandleContent(caseWindupApply.getAuditContent()); jashCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); jashCaseTaskPO.setHandleTime(nowDate); jashCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + jashCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jashCaseTaskPO.getHandleTime(), jashCaseTask.getCreateTime())); + jashCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jashCaseTaskPO.getHandleTime(), jashCaseTask.getExpireTime())); + jashCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jashCaseTaskPO.getHandleTime(), jashCaseTask.getExpireTime())); mapper.updateCaseTask(jashCaseTaskPO); - // 完成当前结案审核工作流任务,走当事人评价任务 - FlowNode nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), - FlowableConsts.OPERATION_jash_ty, userId); - // 走当事人评价节点 + // 根据事项等级,判断是否要上级综治中心审核 + FlowNode nextFlowNode = null; + CaseInfo caseInfo = caseInfoService.getById(jashCaseTask.getCaseId()); + if (CaseBaseConsts.CASE_LEVEL_1 == caseInfo.getCaseLevel()){ + // 一级事件,本级+上级+上上级审核 + if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(jashCaseTask.getNodeId())){ + // 完成本级综治中心审核,进入上级综治中心审核节点 + nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jash_ty_sq, userId); + + }else if (FlowNodeEnum.FLOW_NODE_JASH_YJ.getIndex().equals(jashCaseTask.getNodeId())){ + // 完成上级综治中心审核,进入上上级综治中心审核节点 + nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jash_ty_sq, userId); + }else { + // 完成上上级综治中心审核,审核流程结束,进入下一节点 + nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jash_ty, userId); + } + + }else if (CaseBaseConsts.CASE_LEVEL_2 == caseInfo.getCaseLevel()){ + // 二级事件,本级+上级审核 + String operation = FlowableConsts.OPERATION_jash_ty; + if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(jashCaseTask.getNodeId())){ + // 完成本级综治中心审核,进入上级综治中心审核节点 + nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jash_ty_sq, userId); + }else { + // 完成上级综治中心审核,审核流程结束,进入下一节点 + nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jash_ty, userId); + } + }else { + // 三级事件,自办自结,即本级综治中心审核就行,完成本级综治中心审核,审核流程结束,进入下一节点 + nextFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jash_ty, userId); + } + + // 下一个节点是一级结案审核节点,进入一级结案审核节点任务 + if (FlowNodeEnum.FLOW_NODE_JASH_YJ.getIndex().equals(nextFlowNode.getNodeId())){ + // 新建结案审核节点任务 + CaseTask yjJashCaseTask = new CaseTask(); + yjJashCaseTask.setId(utilsClient.getNewTimeId()); + yjJashCaseTask.setCaseId(jashCaseTask.getCaseId()); + yjJashCaseTask.setFlowableId(nextFlowNode.getFlowableId()); + yjJashCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId()); + yjJashCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId()); + yjJashCaseTask.setNodeType(nextFlowNode.getNodeType()); + yjJashCaseTask.setNodeId(nextFlowNode.getNodeId()); + yjJashCaseTask.setNodeName(nextFlowNode.getNodeName()); + yjJashCaseTask.setFlowId(nextFlowNode.getFlowId()); + yjJashCaseTask.setNodeShowName(nextFlowNode.getNodeShowName()); + yjJashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 任务所属单位:上级级综治中心审核 + CtUnitDTO zzzxCtUnitDTO = custClient.getParentZzzxUnit(loginUser.getUnitId()); + yjJashCaseTask.setCandeUnitId(zzzxCtUnitDTO.getId()); + yjJashCaseTask.setCandeUnitName(zzzxCtUnitDTO.getUnitName()); + // 受理后的节点任务,不需要签收 + yjJashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 任务处理时限 + if (nextFlowNode.getExpire() != 0) { + yjJashCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire())); + } + yjJashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + yjJashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + yjJashCaseTask.setCustId(jashCaseTask.getCustId()); + yjJashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1)); + yjJashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1)); + mapper.insert(yjJashCaseTask); + // 创建新的结案申请记录 + CaseWindupApply newCaseWindupApply = new CaseWindupApply(); + BeanUtils.copyProperties(oldCaseWindupApply, newCaseWindupApply); + newCaseWindupApply.setId(utilsClient.getNewTimeId()); + newCaseWindupApply.setApplyTime(nowDate); + newCaseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0); + newCaseWindupApply.setCaseTaskId(yjJashCaseTask.getId()); + newCaseWindupApply.setAuditUnitId(yjJashCaseTask.getCandeUnitId()); + newCaseWindupApply.setAuditUnitName(yjJashCaseTask.getCandeUnitName()); + newCaseWindupApply.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + newCaseWindupApply.setCreateTime(nowDate); + newCaseWindupApply.setUpdateTime(nowDate); + newCaseWindupApply.setCustId(yjJashCaseTask.getCustId()); + caseWindupApplyService.save(newCaseWindupApply); + } + // 下一个节点是二级结案审核节点,进入二级结案审核节点任务 + if (FlowNodeEnum.FLOW_NODE_JASH_EJ.getIndex().equals(nextFlowNode.getNodeId())){ + // 新建结案审核节点任务 + CaseTask ejJashCaseTask = new CaseTask(); + ejJashCaseTask.setId(utilsClient.getNewTimeId()); + ejJashCaseTask.setCaseId(jashCaseTask.getCaseId()); + ejJashCaseTask.setFlowableId(nextFlowNode.getFlowableId()); + ejJashCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId()); + ejJashCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId()); + ejJashCaseTask.setNodeType(nextFlowNode.getNodeType()); + ejJashCaseTask.setNodeId(nextFlowNode.getNodeId()); + ejJashCaseTask.setNodeName(nextFlowNode.getNodeName()); + ejJashCaseTask.setFlowId(nextFlowNode.getFlowId()); + ejJashCaseTask.setNodeShowName(nextFlowNode.getNodeShowName()); + ejJashCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 任务所属单位:上级级综治中心审核 + CtUnitDTO zzzxCtUnitDTO = custClient.getParentZzzxUnit(loginUser.getUnitId()); + ejJashCaseTask.setCandeUnitId(zzzxCtUnitDTO.getId()); + ejJashCaseTask.setCandeUnitName(zzzxCtUnitDTO.getUnitName()); + // 受理后的节点任务,不需要签收 + ejJashCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 任务处理时限 + if (nextFlowNode.getExpire() != 0) { + ejJashCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire())); + } + ejJashCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + ejJashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + ejJashCaseTask.setCustId(jashCaseTask.getCustId()); + ejJashCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 1)); + ejJashCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 1)); + mapper.insert(ejJashCaseTask); + // 创建新的结案申请记录 + CaseWindupApply newCaseWindupApply = new CaseWindupApply(); + BeanUtils.copyProperties(oldCaseWindupApply, newCaseWindupApply); + newCaseWindupApply.setId(utilsClient.getNewTimeId()); + newCaseWindupApply.setApplyTime(nowDate); + newCaseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0); + newCaseWindupApply.setCaseTaskId(ejJashCaseTask.getId()); + newCaseWindupApply.setAuditUnitId(ejJashCaseTask.getCandeUnitId()); + newCaseWindupApply.setAuditUnitName(ejJashCaseTask.getCandeUnitName()); + newCaseWindupApply.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + newCaseWindupApply.setCreateTime(nowDate); + newCaseWindupApply.setUpdateTime(nowDate); + newCaseWindupApply.setCustId(ejJashCaseTask.getCustId()); + caseWindupApplyService.save(newCaseWindupApply); + } + // 下一个节点是当事人评价节点,进入当事人评价节点任务 if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(nextFlowNode.getNodeId())){ - // 新建当事人评价任务 + // 新建当事人评价节点任务 CaseTask dsrpjCaseTask = new CaseTask(); dsrpjCaseTask.setId(utilsClient.getNewTimeId()); dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId()); dsrpjCaseTask.setFlowableId(nextFlowNode.getFlowableId()); dsrpjCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId()); dsrpjCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId()); - dsrpjCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); dsrpjCaseTask.setNodeType(nextFlowNode.getNodeType()); dsrpjCaseTask.setNodeId(nextFlowNode.getNodeId()); dsrpjCaseTask.setNodeName(nextFlowNode.getNodeName()); dsrpjCaseTask.setFlowId(nextFlowNode.getFlowId()); dsrpjCaseTask.setNodeShowName(nextFlowNode.getNodeShowName()); dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 受理任务,任务候选执行者类型是上一步骤选择 - dsrpjCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - dsrpjCaseTask.setCandeUnitId(loginUser.getUnitId()); - dsrpjCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 受理后的任务,不需要签收 + // 任务所属人:当事人 + EvaluatePersonDTO evaluatePersonDTO = casePersonService.getEvaluatePerson(jashCaseTask.getCaseId()); + dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getId()); + dsrpjCaseTask.setCandeUserId(evaluatePersonDTO.getName()); + // 受理后的节点任务,不需要签收 dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); - dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); // 任务处理时限 if (nextFlowNode.getExpire() != 0) { dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire())); } + dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); 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); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); @@ -2157,46 +2633,51 @@ caseInfoPO.setUpdateTime(nowDate); caseInfoService.updateCaseInfo(caseInfoPO); } - // 走结案归档节点 + // 下一个节点是结案归档节点,进入结案归档节点任务 if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(nextFlowNode.getNodeId())){ - // 默认完成结案归档任务 + // 创建并完成结案归档节点任务 CaseTask jagdCaseTask = new CaseTask(); jagdCaseTask.setId(utilsClient.getNewTimeId()); jagdCaseTask.setCaseId(jashCaseTask.getCaseId()); jagdCaseTask.setFlowableId(nextFlowNode.getFlowableId()); jagdCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId()); jagdCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId()); - jagdCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); jagdCaseTask.setNodeType(nextFlowNode.getNodeType()); jagdCaseTask.setNodeId(nextFlowNode.getNodeId()); jagdCaseTask.setNodeName(nextFlowNode.getNodeName()); jagdCaseTask.setFlowId(nextFlowNode.getFlowId()); jagdCaseTask.setNodeShowName(nextFlowNode.getNodeShowName()); jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 通过调度的,任务候选执行者类型是上一步骤选择 - jagdCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - jagdCaseTask.setCandeUnitId(loginUser.getUnitId()); - jagdCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 系不需要签收 + // 任务所属单位:结案申请操作组织 + jagdCaseTask.setCandeUnitId(oldCaseWindupApply.getApplyUnitId()); + jagdCaseTask.setCandeUnitName(oldCaseWindupApply.getApplyUnitName()); + // 受理后的节点任务,不需要签收 jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); - jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); // 任务处理时限 if (nextFlowNode.getExpire() != 0) { jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire())); } - jagdCaseTask.setHandleUnitId(loginUser.getUnitId()); - jagdCaseTask.setHandleUnitName(loginUser.getUnitName()); - jagdCaseTask.setHandleUserName("系统自动"); - jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + jashCaseTask.setHandleUnitId(loginUser.getUnitId()); + jashCaseTask.setHandleUnitName(loginUser.getUnitName()); + jashCaseTask.setHandleDeptId(loginUser.getDeptId()); + jashCaseTask.setHandleDeptName(loginUser.getDeptName()); + jashCaseTask.setHandleUserId(loginUser.getId()); + jashCaseTask.setHandleUserName(loginUser.getTrueName()); + jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); jagdCaseTask.setHandleTime(nowDate); jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); jagdCaseTask.setCustId(jashCaseTask.getCustId()); jagdCaseTask.setCreateTime(nowDate); jagdCaseTask.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + jagdCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getCreateTime())); + jagdCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime())); + jagdCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jagdCaseTask.getHandleTime(), jagdCaseTask.getExpireTime())); mapper.insert(jagdCaseTask); - // 结束工作流流程 + // 完成结案归档工作流节点任务,结束流程 flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(), - FlowableConsts.OPERATION_jb_zszz, "系统自动"); + FlowableConsts.OPERATION_jb_zszz, loginUser.getId()); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); caseInfoPO.setId(jashCaseTask.getCaseId()); @@ -2217,42 +2698,46 @@ caseInfoUnfoldPO.setUpdateTime(nowDate); caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); }else { - // 审核不通过,回退办理反馈任务 - // 完成当前结案审核任务 + // 审核不通过,回退办理反馈节点任务 + // 完成当前结案审核节点任务 CaseTask jashCaseTaskPO = new CaseTask(); jashCaseTaskPO.setId(caseWindupApply.getCaseTaskId()); jashCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); jashCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); jashCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + jashCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + jashCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); jashCaseTaskPO.setHandleUserId(loginUser.getId()); jashCaseTaskPO.setHandleUserName(loginUser.getTrueName()); jashCaseTaskPO.setHandleContent(caseWindupApply.getAuditContent()); jashCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2); jashCaseTaskPO.setHandleTime(nowDate); jashCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + jashCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(jashCaseTaskPO.getHandleTime(), jashCaseTask.getCreateTime())); + jashCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(jashCaseTaskPO.getHandleTime(), jashCaseTask.getExpireTime())); + jashCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(jashCaseTaskPO.getHandleTime(), jashCaseTask.getExpireTime())); mapper.updateCaseTask(jashCaseTaskPO); - // 完成当前结案审核工作流任务,走办理反馈任务 + // 完成当前结案审核工作流节点任务,走办理反馈节点任务 FlowNode blfkFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_jash_bty, userId); - // 新建办理反馈任务 + // 新建办理反馈节点任务 CaseTask blfkCaseTask = new CaseTask(); blfkCaseTask.setId(utilsClient.getNewTimeId()); blfkCaseTask.setCaseId(jashCaseTask.getCaseId()); blfkCaseTask.setFlowableId(blfkFlowNode.getFlowableId()); blfkCaseTask.setProcessInstanceId(blfkFlowNode.getProcessInstanceId()); blfkCaseTask.setProcessTaskId(blfkFlowNode.getProcessTaskId()); - blfkCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); 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); - blfkCaseTask.setCandeUnitId(loginUser.getUnitId()); - blfkCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 受理后的任务,不需要签收 + // 任务所属单位:结案申请操作组织 + blfkCaseTask.setCandeUnitId(oldCaseWindupApply.getApplyUnitId()); + blfkCaseTask.setCandeUnitName(oldCaseWindupApply.getApplyUnitName()); + // 受理后的节点任务,不需要签收 blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); // 任务处理时限 @@ -2275,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); @@ -2306,45 +2793,47 @@ caseReturn.setCustId(loginUser.getCustId()); caseReturn.setCreateTime(nowDate); caseReturn.setUpdateTime(nowDate); - // 查询待受理任务 - CaseTask dslCaseTask = mapper.selectById(caseReturn.getCaseTaskId()); - // 完成当前待受理任务 - 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()); - dslCaseTaskPO.setHandleUserId(loginUser.getId()); - dslCaseTaskPO.setHandleUserName(loginUser.getTrueName()); - dslCaseTaskPO.setHandleContent(caseReturn.getReturnContent()); - dslCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); - dslCaseTaskPO.setHandleTime(nowDate); - dslCaseTaskPO.setUpdateTime(nowDate); - mapper.updateCaseTask(dslCaseTaskPO); - // 完成当前待受理工作流任务,走回退审核任务 - FlowNode htshFlowNode = flowInfoService.completeTask(dslCaseTask.getFlowableId(), dslCaseTask.getProcessTaskId(), + // 查询待节点任务 + CaseTask thisCaseTask = mapper.selectById(caseReturn.getCaseTaskId()); + // 完成当前节点任务 + CaseTask thisCaseTaskPO = new CaseTask(); + thisCaseTaskPO.setId(caseReturn.getCaseTaskId()); + thisCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); + thisCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); + thisCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + thisCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + thisCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); + thisCaseTaskPO.setHandleUserId(loginUser.getId()); + thisCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + thisCaseTaskPO.setHandleContent(caseReturn.getReturnContent()); + thisCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_4); + thisCaseTaskPO.setHandleTime(nowDate); + thisCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + thisCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(thisCaseTaskPO.getHandleTime(), thisCaseTask.getCreateTime())); + thisCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(thisCaseTaskPO.getHandleTime(), thisCaseTask.getExpireTime())); + thisCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(thisCaseTaskPO.getHandleTime(), thisCaseTask.getExpireTime())); + mapper.updateCaseTask(thisCaseTaskPO); + // 完成当前节点工作流任务,走回退审核任务 + FlowNode htshFlowNode = flowInfoService.completeTask(thisCaseTask.getFlowableId(), thisCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_htsq, userId); - // 新建回退审核任务 + // 新建回退审核节点任务 CaseTask htshCaseTask = new CaseTask(); htshCaseTask.setId(utilsClient.getNewTimeId()); - htshCaseTask.setCaseId(dslCaseTask.getCaseId()); + htshCaseTask.setCaseId(thisCaseTask.getCaseId()); htshCaseTask.setFlowableId(htshFlowNode.getFlowableId()); htshCaseTask.setProcessInstanceId(htshFlowNode.getProcessInstanceId()); htshCaseTask.setProcessTaskId(htshFlowNode.getProcessTaskId()); - htshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); htshCaseTask.setNodeType(htshFlowNode.getNodeType()); htshCaseTask.setNodeId(htshFlowNode.getNodeId()); htshCaseTask.setNodeName(htshFlowNode.getNodeName()); htshCaseTask.setFlowId(htshFlowNode.getFlowId()); htshCaseTask.setNodeShowName(htshFlowNode.getNodeShowName()); - htshCaseTask.setCaseTaskType(dslCaseTask.getCaseTaskType()); - // 受理任务,任务候选执行者类型是上一步骤选择 - htshCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); -// CtUnitDTO ctUnitDTO = custClient.getParentZzzxUnit(loginUser.getUnitId()); - htshCaseTask.setCandeUnitId(loginUser.getUnitId()); - htshCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 受理后的任务,不需要签收 + htshCaseTask.setCaseTaskType(thisCaseTask.getCaseTaskType()); + // 任务所属单位:上级综治中心 + htshCaseTask.setCandeUnitId(zzzxUnit.getId()); + htshCaseTask.setCandeUnitName(zzzxUnit.getUnitName()); + // 受理后的节点任务,不需要签收 htshCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); // 任务处理时限 if (htshFlowNode.getExpire() != 0) { @@ -2360,9 +2849,12 @@ 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.webAppearApply]调用失败,异常信息:"+e, e); - throw new ServiceException("CaseTaskService.webAppearApply", e); + log.error("[CaseTaskService.webReturnApply]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webReturnApply", e); } } @@ -2383,57 +2875,61 @@ caseReturn.setAuditTime(nowDate); caseReturn.setUpdateTime(nowDate); caseReturnService.updateCaseReturn(caseReturn); - // 查询回退审核任务 + // 查询回退审核节点任务 CaseTask htshCaseTask = mapper.selectById(caseReturn.getCaseTaskId()); // 审核通过 if (AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex().equals(caseReturn.getAuditResult())){ - // 完成当前回退审核任务 + // 完成当前回退审核节点任务 CaseTask htshCaseTaskPO = new CaseTask(); htshCaseTaskPO.setId(caseReturn.getCaseTaskId()); htshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); htshCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); htshCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + htshCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + htshCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); htshCaseTaskPO.setHandleUserId(loginUser.getId()); htshCaseTaskPO.setHandleContent(caseReturn.getAuditContent()); htshCaseTaskPO.setHandleUserName(loginUser.getTrueName()); htshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); htshCaseTaskPO.setHandleTime(nowDate); htshCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + htshCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(htshCaseTaskPO.getHandleTime(), htshCaseTask.getCreateTime())); + htshCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(htshCaseTaskPO.getHandleTime(), htshCaseTask.getExpireTime())); + htshCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(htshCaseTaskPO.getHandleTime(), htshCaseTask.getExpireTime())); mapper.updateCaseTask(htshCaseTaskPO); - // 完成当前回退审核任务,承办部门走待分派任务,配合部门结束流程 - FlowNode dfpFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(), + // 完成当前回退审核工作流节点任务,承办组织走待分派节点任务,配合组织结束工作流流程 + FlowNode nextFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_htsh_ty, userId); if (CaseTaskConsts.CASE_TASK_TYPE_1 == htshCaseTask.getCaseTaskType()) { - // 新建待分派任务 - CaseTask dfphCaseTask = new CaseTask(); - dfphCaseTask.setId(utilsClient.getNewTimeId()); - dfphCaseTask.setCaseId(htshCaseTask.getCaseId()); - dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId()); - dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId()); - dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId()); - dfphCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); - dfphCaseTask.setNodeType(dfpFlowNode.getNodeType()); - dfphCaseTask.setNodeId(dfpFlowNode.getNodeId()); - dfphCaseTask.setNodeName(dfpFlowNode.getNodeName()); - dfphCaseTask.setFlowId(dfpFlowNode.getFlowId()); - dfphCaseTask.setNodeShowName(dfpFlowNode.getNodeShowName()); - dfphCaseTask.setCaseTaskType(htshCaseTask.getCaseTaskType()); - // 受理任务,任务候选执行者类型是上一步骤选择 - dfphCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - dfphCaseTask.setCandeUnitId(loginUser.getUnitId()); - dfphCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 受理后的任务,不需要签收 - dfphCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 新建下一个节点任务 + CaseTask nextCaseTask = new CaseTask(); + nextCaseTask.setId(utilsClient.getNewTimeId()); + nextCaseTask.setCaseId(htshCaseTask.getCaseId()); + nextCaseTask.setFlowableId(nextFlowNode.getFlowableId()); + nextCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId()); + nextCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId()); + nextCaseTask.setNodeType(nextFlowNode.getNodeType()); + nextCaseTask.setNodeId(nextFlowNode.getNodeId()); + nextCaseTask.setNodeName(nextFlowNode.getNodeName()); + nextCaseTask.setFlowId(nextFlowNode.getFlowId()); + nextCaseTask.setNodeShowName(nextFlowNode.getNodeShowName()); + nextCaseTask.setCaseTaskType(htshCaseTask.getCaseTaskType()); + // 任务所属单位:回退审核操作组织 + nextCaseTask.setCandeUnitId(loginUser.getUnitId()); + nextCaseTask.setCandeUnitName(loginUser.getUnitName()); + // 受理后的节点任务,不需要签收 + nextCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); // 任务处理时限 - if (dfpFlowNode.getExpire() != 0) { - dfphCaseTask.setExpireTime(DateUtils.addDay(nowDate, dfpFlowNode.getExpire())); + if (nextFlowNode.getExpire() != 0) { + nextCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire())); } - dfphCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); - dfphCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); - dfphCaseTask.setCustId(dfphCaseTask.getCustId()); - dfphCaseTask.setCreateTime(nowDate); - dfphCaseTask.setUpdateTime(nowDate); - mapper.insert(dfphCaseTask); + nextCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + nextCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + nextCaseTask.setCustId(nextCaseTask.getCustId()); + nextCaseTask.setCreateTime(nowDate); + nextCaseTask.setUpdateTime(nowDate); + mapper.insert(nextCaseTask); // 更新纠纷信息 CaseInfo caseInfoPO = new CaseInfo(); caseInfoPO.setId(htshCaseTask.getCaseId()); @@ -2445,89 +2941,121 @@ caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoPO.setUpdateTime(nowDate); caseInfoService.updateCaseInfo(caseInfoPO); - // 有配合部门,也结束配合部门工作流程 + // 有配合组织,结束配合组织工作流程 List<CaseTask> assistCaseTaskList = this.listAssistTasking(htshCaseTask.getCaseId()); for (CaseTask assistCaseTask: assistCaseTaskList){ - // 完成配合部门当前任务 + // 完成配合组织当前任务 assistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); assistCaseTask.setHandleUnitId(loginUser.getUnitId()); - assistCaseTask.setHandleUnitName(loginUser.getUnitName()); + assistCaseTask.setHandleUnitName(loginUser.getUnitName()+"(承办部门)"); + assistCaseTask.setHandleDeptId(loginUser.getDeptId()); + assistCaseTask.setHandleDeptName(loginUser.getDeptName()+"(承办部门)"); assistCaseTask.setHandleUserId(loginUser.getId()); - assistCaseTask.setHandleUserName(loginUser.getTrueName()); - assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + assistCaseTask.setHandleUserName(loginUser.getTrueName()+"(承办部门)"); + assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0); assistCaseTask.setHandleTime(nowDate); assistCaseTask.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + assistCaseTask.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getCreateTime())); + assistCaseTask.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime())); + assistCaseTask.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(assistCaseTask.getHandleTime(), assistCaseTask.getExpireTime())); mapper.updateCaseTask(assistCaseTask); - // 结束配合部门当前工作流任务 + // 结束配合组织当前工作流任务 flowInfoService.endFlow(assistCaseTask.getProcessInstanceId()); + // 更新联合处置信息 + UpdateWrapper<CaseAssistInfo> caseAssistInfoUpdateWrapper = new UpdateWrapper<>(); + caseAssistInfoUpdateWrapper.eq("case_id", htshCaseTask.getCaseId()) + .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 { // 更新联合处置信息 QueryWrapper<CaseAssistInfo> caseAssistInfoQueryWrapper = new QueryWrapper<>(); - caseAssistInfoQueryWrapper.eq("case_id", htshCaseTask.getCaseId()).eq("assist_unit_id", htshCaseTask.getCandeUnitId()).eq("assist_status", CaseTaskConsts.ASSIST_STATUS_0); + caseAssistInfoQueryWrapper.eq("case_id", htshCaseTask.getCaseId()) + .eq("assist_unit_id", htshCaseTask.getCandeUnitId()) + .eq("assist_status", CaseTaskConsts.ASSIST_STATUS_0); CaseAssistInfo caseAssistInfo = caseAssistInfoService.getOne(caseAssistInfoQueryWrapper); if (ObjectUtils.isNotEmpty(caseAssistInfo)){ caseAssistInfo.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_1); caseAssistInfoService.updateCaseAssistInfo(caseAssistInfo); } + this.deleteGridTodo(htshCaseTaskPO); } }else { // 审核不通过 - // 完成当前回退审核任务 + // 完成当前回退审核节点任务 CaseTask htshCaseTaskPO = new CaseTask(); htshCaseTaskPO.setId(caseReturn.getCaseTaskId()); htshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); htshCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); htshCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + htshCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + htshCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); htshCaseTaskPO.setHandleUserId(loginUser.getId()); htshCaseTaskPO.setHandleUserName(loginUser.getTrueName()); htshCaseTaskPO.setHandleContent(caseReturn.getAuditContent()); htshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2); htshCaseTaskPO.setHandleTime(nowDate); htshCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + htshCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(htshCaseTaskPO.getHandleTime(), htshCaseTask.getCreateTime())); + htshCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(htshCaseTaskPO.getHandleTime(), htshCaseTask.getExpireTime())); + htshCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(htshCaseTaskPO.getHandleTime(), htshCaseTask.getExpireTime())); mapper.updateCaseTask(htshCaseTaskPO); + // 查询回退申请信息 CaseReturn btyCaseReturn = caseReturnService.getById(caseReturn.getId()); + // 查询回退申请组织信息 CtUnitDTO returnUnit = custClient.getUnitById(btyCaseReturn.getReturnUnitId()); - String operation = FlowableConsts.OPERATION_htsh_bty; + FlowNode nextFlowNode = null; if (UserBaseConsts.UNIT_GRADE_2 == returnUnit.getUnitGrade()){ - operation = FlowableConsts.OPERATION_htsh_bty_qj; + // 区级组织回退,完成当前回退审核节点任务,进入下一个节点 + nextFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_htsh_bty_qj, userId); + }else if(UserBaseConsts.UNIT_GRADE_1 == returnUnit.getUnitGrade()){ + // 市级组织回退,完成当前回退审核节点任务,进入下一个节点 + nextFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_htsh_bty_sj, userId); + }else { + // 完成当前回退审核节点任务,进入下一个节点 + nextFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_htsh_bty, userId); } - if(UserBaseConsts.UNIT_GRADE_1 == returnUnit.getUnitGrade()){ - operation = FlowableConsts.OPERATION_htsh_bty_sj; - } - // 完成当前上报审核任务,走待受理任务 - FlowNode dslFlowNode = flowInfoService.completeTask(htshCaseTask.getFlowableId(), htshCaseTask.getProcessTaskId(), - operation, userId); - // 新建待分派任务 - CaseTask dslCaseTask = new CaseTask(); - dslCaseTask.setId(utilsClient.getNewTimeId()); - dslCaseTask.setCaseId(htshCaseTask.getCaseId()); - 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(htshCaseTask.getCaseTaskType()); - // 受理任务,任务候选执行者类型是上一步骤选择 - dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - dslCaseTask.setCandeUnitId(btyCaseReturn.getReturnUnitId()); - dslCaseTask.setCandeUnitName(btyCaseReturn.getReturnUnitName()); - // 受理后的任务,不需要签收 - dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 新建下一个节点任务 + CaseTask nextCaseTask = new CaseTask(); + nextCaseTask.setId(utilsClient.getNewTimeId()); + nextCaseTask.setCaseId(htshCaseTask.getCaseId()); + nextCaseTask.setFlowableId(nextFlowNode.getFlowableId()); + nextCaseTask.setProcessInstanceId(nextFlowNode.getProcessInstanceId()); + nextCaseTask.setProcessTaskId(nextFlowNode.getProcessTaskId()); + nextCaseTask.setNodeType(nextFlowNode.getNodeType()); + nextCaseTask.setNodeId(nextFlowNode.getNodeId()); + nextCaseTask.setNodeName(nextFlowNode.getNodeName()); + nextCaseTask.setFlowId(nextFlowNode.getFlowId()); + nextCaseTask.setNodeShowName(nextFlowNode.getNodeShowName()); + nextCaseTask.setCaseTaskType(htshCaseTask.getCaseTaskType()); + // 任务所属组织:回退申请组织 + nextCaseTask.setCandeUnitId(btyCaseReturn.getReturnUnitId()); + nextCaseTask.setCandeUnitName(btyCaseReturn.getReturnUnitName()); + // 受理后的节点任务,不需要签收 + nextCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); // 任务处理时限 - if (dslFlowNode.getExpire() != 0) { - dslCaseTask.setExpireTime(DateUtils.addDay(nowDate, dslFlowNode.getExpire())); + if (nextFlowNode.getExpire() != 0) { + nextCaseTask.setExpireTime(DateUtils.addDay(nowDate, nextFlowNode.getExpire())); } - dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); - dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); - dslCaseTask.setCustId(dslCaseTask.getCustId()); - dslCaseTask.setCreateTime(nowDate); - dslCaseTask.setUpdateTime(nowDate); - mapper.insert(dslCaseTask); + nextCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + nextCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + nextCaseTask.setCustId(htshCaseTask.getCustId()); + 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); @@ -2556,44 +3084,47 @@ caseAppear.setCustId(loginUser.getCustId()); caseAppear.setCreateTime(nowDate); caseAppear.setUpdateTime(nowDate); - // 查询待受理任务 - CaseTask dslCaseTask = mapper.selectById(caseAppear.getCaseTaskId()); - // 完成当前待受理任务 - 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()); - dslCaseTaskPO.setHandleUserId(loginUser.getId()); - dslCaseTaskPO.setHandleUserName(loginUser.getTrueName()); - dslCaseTaskPO.setHandleContent(caseAppear.getAppearContent()); - dslCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); - dslCaseTaskPO.setHandleTime(nowDate); - dslCaseTaskPO.setUpdateTime(nowDate); - mapper.updateCaseTask(dslCaseTaskPO); - // 完成当前待受理工作流任务,走上报审核任务 - FlowNode sbshFlowNode = flowInfoService.completeTask(dslCaseTask.getFlowableId(), dslCaseTask.getProcessTaskId(), + // 查询当前节点任务 + CaseTask thisCaseTask = mapper.selectById(caseAppear.getCaseTaskId()); + // 完成当前当前节点任务 + CaseTask thisCaseTaskPO = new CaseTask(); + thisCaseTaskPO.setId(caseAppear.getCaseTaskId()); + thisCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); + thisCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); + thisCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + thisCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + thisCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); + thisCaseTaskPO.setHandleUserId(loginUser.getId()); + thisCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + thisCaseTaskPO.setHandleContent(caseAppear.getAppearContent()); + thisCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_5); + thisCaseTaskPO.setHandleTime(nowDate); + thisCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + thisCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(thisCaseTaskPO.getHandleTime(), thisCaseTask.getCreateTime())); + thisCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(thisCaseTaskPO.getHandleTime(), thisCaseTask.getExpireTime())); + thisCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(thisCaseTaskPO.getHandleTime(), thisCaseTask.getExpireTime())); + mapper.updateCaseTask(thisCaseTaskPO); + // 完成当前待受理工作流节点任务,走上报审核任务 + FlowNode sbshFlowNode = flowInfoService.completeTask(thisCaseTask.getFlowableId(), thisCaseTask.getProcessTaskId(), FlowableConsts.OPERATION_sb, userId); // 新建上报审核任务 CaseTask sbshCaseTask = new CaseTask(); sbshCaseTask.setId(utilsClient.getNewTimeId()); - sbshCaseTask.setCaseId(dslCaseTask.getCaseId()); + sbshCaseTask.setCaseId(thisCaseTask.getCaseId()); sbshCaseTask.setFlowableId(sbshFlowNode.getFlowableId()); sbshCaseTask.setProcessInstanceId(sbshFlowNode.getProcessInstanceId()); sbshCaseTask.setProcessTaskId(sbshFlowNode.getProcessTaskId()); - sbshCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); sbshCaseTask.setNodeType(sbshFlowNode.getNodeType()); sbshCaseTask.setNodeId(sbshFlowNode.getNodeId()); sbshCaseTask.setNodeName(sbshFlowNode.getNodeName()); sbshCaseTask.setFlowId(sbshFlowNode.getFlowId()); sbshCaseTask.setNodeShowName(sbshFlowNode.getNodeShowName()); sbshCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 受理任务,任务候选执行者类型是上一步骤选择 - sbshCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + // 任务所属单位,上报审核组织 sbshCaseTask.setCandeUnitId(caseAppear.getAuditUnitId()); sbshCaseTask.setCandeUnitName(caseAppear.getAuditUnitName()); - // 受理后的任务,不需要签收 + // 受理后的节点任务,不需要签收 sbshCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); // 任务处理时限 if (sbshFlowNode.getExpire() != 0) { @@ -2608,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); @@ -2631,22 +3165,28 @@ caseAppear.setAuditTime(nowDate); caseAppear.setUpdateTime(nowDate); caseAppearService.updateCaseAppear(caseAppear); - // 查询上报审核任务 + // 查询上报审核节点任务 CaseTask sbshCaseTask = mapper.selectById(caseAppear.getCaseTaskId()); // 审核通过 if (AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex().equals(caseAppear.getAuditResult())){ - // 完成当前上报审核任务 + // 完成当前上报审核节点任务 CaseTask sbshCaseTaskPO = new CaseTask(); sbshCaseTaskPO.setId(caseAppear.getCaseTaskId()); sbshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); sbshCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); sbshCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + sbshCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + sbshCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); sbshCaseTaskPO.setHandleUserId(loginUser.getId()); sbshCaseTaskPO.setHandleContent(caseAppear.getAuditContent()); sbshCaseTaskPO.setHandleUserName(loginUser.getTrueName()); sbshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); sbshCaseTaskPO.setHandleTime(nowDate); sbshCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + sbshCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getCreateTime())); + sbshCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getExpireTime())); + sbshCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getExpireTime())); mapper.updateCaseTask(sbshCaseTaskPO); // 完成当前上报审核任务,走待分派任务 FlowNode dfpFlowNode = flowInfoService.completeTask(sbshCaseTask.getFlowableId(), sbshCaseTask.getProcessTaskId(), @@ -2658,18 +3198,16 @@ dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId()); dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId()); dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId()); - dfphCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); dfphCaseTask.setNodeType(dfpFlowNode.getNodeType()); dfphCaseTask.setNodeId(dfpFlowNode.getNodeId()); dfphCaseTask.setNodeName(dfpFlowNode.getNodeName()); dfphCaseTask.setFlowId(dfpFlowNode.getFlowId()); dfphCaseTask.setNodeShowName(dfpFlowNode.getNodeShowName()); dfphCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 受理任务,任务候选执行者类型是上一步骤选择 - dfphCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + // 任务所属单位:上报审核组织 dfphCaseTask.setCandeUnitId(loginUser.getUnitId()); dfphCaseTask.setCandeUnitName(loginUser.getUnitName()); - // 受理后的任务,不需要签收 + // 受理后的节点任务,不需要签收 dfphCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); dfphCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); // 任务处理时限 @@ -2692,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 { // 审核不通过 // 完成当前上报审核任务 @@ -2700,12 +3242,18 @@ sbshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); sbshCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); sbshCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + sbshCaseTaskPO.setHandleDeptId(loginUser.getDeptId()); + sbshCaseTaskPO.setHandleDeptName(loginUser.getDeptName()); sbshCaseTaskPO.setHandleUserId(loginUser.getId()); sbshCaseTaskPO.setHandleUserName(loginUser.getTrueName()); sbshCaseTaskPO.setHandleContent(caseAppear.getAuditContent()); sbshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2); sbshCaseTaskPO.setHandleTime(nowDate); sbshCaseTaskPO.setUpdateTime(nowDate); + // 计算任务耗时、是否超时、超时多少 + sbshCaseTaskPO.setUsetimeHour(TaskUsetimeUtils.getUsetimeHour(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getCreateTime())); + sbshCaseTaskPO.setOvertimeStatus(TaskUsetimeUtils.getOvertimeStatus(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getExpireTime())); + sbshCaseTaskPO.setOvertimeHour(TaskUsetimeUtils.getOvertimeHour(sbshCaseTaskPO.getHandleTime(), sbshCaseTask.getExpireTime())); mapper.updateCaseTask(sbshCaseTaskPO); // 完成当前上报审核任务,走待分派任务 FlowNode dfpFlowNode = flowInfoService.completeTask(sbshCaseTask.getFlowableId(), sbshCaseTask.getProcessTaskId(), @@ -2717,18 +3265,17 @@ dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId()); dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId()); dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId()); - dfphCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); dfphCaseTask.setNodeType(dfpFlowNode.getNodeType()); dfphCaseTask.setNodeId(dfpFlowNode.getNodeId()); dfphCaseTask.setNodeName(dfpFlowNode.getNodeName()); dfphCaseTask.setFlowId(dfpFlowNode.getFlowId()); dfphCaseTask.setNodeShowName(dfpFlowNode.getNodeShowName()); dfphCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); - // 受理任务,任务候选执行者类型是上一步骤选择 - dfphCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); - dfphCaseTask.setCandeUnitId(caseAppear.getAppearUnitId()); - dfphCaseTask.setCandeUnitName(caseAppear.getAppearUnitName()); - // 受理后的任务,不需要签收 + // 任务所属单位:上报申请组织 + CaseAppear caseAppearBO = caseAppearService.getById(caseAppear.getId()); + dfphCaseTask.setCandeUnitId(caseAppearBO.getAppearUnitId()); + dfphCaseTask.setCandeUnitName(caseAppearBO.getAppearUnitName()); + // 受理后的节点任务,不需要签收 dfphCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); dfphCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); // 任务处理时限 @@ -2740,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); @@ -2773,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); + } + } } -- Gitblit v1.8.0