From 8a87336ca8f99ccb79c8eeb3e3796c2e41d207e7 Mon Sep 17 00:00:00 2001 From: liyj <15602261488@163.com> Date: Tue, 24 Sep 2024 19:03:07 +0800 Subject: [PATCH] 1、流程督办,当时人评价节点优化 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 2542 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 2,419 insertions(+), 123 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 3e92f05..e01eeed 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,28 +3,57 @@ 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.domain.dto.CaseFlowDTO; +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; import cn.huge.module.cases.domain.dto.TabButtonDTO; import cn.huge.module.cases.domain.dto.TabButtonInfoDTO; +import cn.huge.module.cases.domain.po.CaseAssistApply; +import cn.huge.module.cases.domain.po.CaseInfoUnfold; +import cn.huge.module.cases.domain.po.*; import cn.huge.module.client.api.impl.CustClientImpl; +import cn.huge.module.client.api.impl.DispClientImpl; +import cn.huge.module.client.api.impl.SysClientImpl; import cn.huge.module.client.api.impl.UtilsClientImpl; import cn.huge.module.cases.dao.mapper.CaseTaskMapper; import cn.huge.module.cases.domain.po.CaseTask; +import cn.huge.module.constant.BaseConsts; +import cn.huge.module.cust.constant.UserBaseConsts; +import cn.huge.module.cust.dto.CtUnitDTO; import cn.huge.module.cust.dto.CtUserDTO; -import cn.huge.module.mediate.constant.CaseBaseConsts; +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; +import cn.huge.module.disp.constant.DispBaseConstsEnum; +import cn.huge.module.disp.dto.CaseDispBaseDTO; +import cn.huge.module.disp.dto.DispCaseBaseDTO; +import cn.huge.module.cases.consts.CaseTaskConsts; +import cn.huge.module.flow.consts.FlowNodeEnum; +import cn.huge.module.flow.consts.FlowableConsts; +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.SyTimeEnum; +import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Maps; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.PostConstruct; import java.util.*; +import java.util.stream.Collectors; /** * @title: 纠纷任务表业务逻辑处理 @@ -43,13 +72,37 @@ private CaseTaskMapper mapper; @Autowired + private CaseSuperviseService superviseService; + @Autowired private UtilsClientImpl utilsClient; - @Autowired private CustClientImpl custClient; - @Autowired - private CaseSuperviseService superviseService; + private DispClientImpl dispClient; + @Autowired + private FlowInfoService flowInfoService; + @Autowired + private CaseInfoService caseInfoService; + @Autowired + private SysClientImpl sysClient; + @Autowired + private CaseInfoUnfoldService caseInfoUnfoldService; + @Autowired + private CaseWindupApplyService caseWindupApplyService; + @Autowired + private CaseAssistApplyService caseAssistApplyService; + @Autowired + private CaseAppearService caseAppearService; + @Autowired + private CaseReturnService caseReturnService; + @Autowired + private CaseEvaluateService caseEvaluateService; + @Autowired + private CaseAssistInfoService caseAssistInfoService; + @Autowired + private CaseDismissService caseDismissService; + @Autowired + private CasedraftInfoService casedraftInfoService; /** * 更新对象 @@ -142,111 +195,250 @@ } /** + * 根据纠纷编号查询进行中的配合部门任务 + * @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); + List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper); + return assistCaseTaskList; + } + + /** * web端-任务出来页面-初始化tab和按钮 * @param caseTaskId * @return */ public TabButtonDTO webGetTabButton(String caseTaskId, String userId){ try{ - // 临时给前端联调数据 - TabButtonDTO tabButtonDTO = new TabButtonDTO(); - List<TabButtonInfoDTO> tabList = new LinkedList<>(); + // 定义tab TabButtonInfoDTO sxxq = new TabButtonInfoDTO(); sxxq.setId("sxxq"); sxxq.setName("事项详情"); - tabList.add(sxxq); - TabButtonInfoDTO dslxq = new TabButtonInfoDTO(); dslxq.setId("dslxq"); dslxq.setName("详情"); - tabList.add(dslxq); - TabButtonInfoDTO sxbl = new TabButtonInfoDTO(); sxbl.setId("sxbl"); sxbl.setName("事项办理"); - tabList.add(sxbl); - TabButtonInfoDTO sqjl = new TabButtonInfoDTO(); sqjl.setId("sqjl"); sqjl.setName("申请记录"); - tabList.add(sqjl); - TabButtonInfoDTO htsh = new TabButtonInfoDTO(); htsh.setId("htsh"); htsh.setName("回退审核"); - tabList.add(htsh); - TabButtonInfoDTO sbsh = new TabButtonInfoDTO(); sbsh.setId("sbsh"); sbsh.setName("上报审核"); - tabList.add(sbsh); - TabButtonInfoDTO jash = new TabButtonInfoDTO(); jash.setId("jash"); jash.setName("结案审核"); - tabList.add(jash); - TabButtonInfoDTO lhczsh = new TabButtonInfoDTO(); lhczsh.setId("lhczsh"); lhczsh.setName("联合处置申请审核"); - tabList.add(lhczsh); - TabButtonInfoDTO lcdb = new TabButtonInfoDTO(); lcdb.setId("lcdb"); lcdb.setName("流程督办"); - tabList.add(lcdb); - TabButtonInfoDTO daxx = new TabButtonInfoDTO(); daxx.setId("daxx"); daxx.setName("档案信息"); - tabList.add(daxx); - tabButtonDTO.setTabList(tabList); + TabButtonInfoDTO byslxq = new TabButtonInfoDTO(); + byslxq.setId("byslxq"); + byslxq.setName("详情"); - List<TabButtonInfoDTO> buttonList = new LinkedList<>(); + // 定义button TabButtonInfoDTO tjbljl = new TabButtonInfoDTO(); tjbljl.setId("tjbljl"); tjbljl.setName("添加办理记录"); - buttonList.add(tjbljl); - TabButtonInfoDTO lhczsq = new TabButtonInfoDTO(); lhczsq.setId("lhczsq"); lhczsq.setName("联合处置申请"); - buttonList.add(lhczsq); - TabButtonInfoDTO jasq = new TabButtonInfoDTO(); jasq.setId("jasq"); jasq.setName("结案申请"); - buttonList.add(jasq); - TabButtonInfoDTO db = new TabButtonInfoDTO(); db.setId("db"); db.setName("督办"); - buttonList.add(db); - TabButtonInfoDTO sl = new TabButtonInfoDTO(); sl.setId("sl"); sl.setName("受理"); - buttonList.add(sl); - TabButtonInfoDTO ht = new TabButtonInfoDTO(); ht.setId("ht"); ht.setName("回退"); - buttonList.add(ht); - TabButtonInfoDTO zxsl = new TabButtonInfoDTO(); zxsl.setId("zxsl"); zxsl.setName("自行受理"); - buttonList.add(zxsl); - TabButtonInfoDTO jb = new TabButtonInfoDTO(); jb.setId("jb"); jb.setName("交办"); - buttonList.add(jb); - TabButtonInfoDTO sb = new TabButtonInfoDTO(); sb.setId("sb"); sb.setName("上报"); - buttonList.add(sb); + TabButtonInfoDTO bysl = new TabButtonInfoDTO(); + bysl.setId("bysl"); + bysl.setName("不予受理"); + + // 根据流程显示tab + List<TabButtonInfoDTO> tabList = new LinkedList<>(); + // 根据流程显示button + List<TabButtonInfoDTO> buttonList = new LinkedList<>(); + // 查询当前任务信息 + CaseTask caseTask = mapper.selectById(caseTaskId); + if (ObjectUtils.isNotEmpty(caseTask)) { + // 已完成任务 + if (CaseTaskConsts.TASK_STATUS_2 == caseTask.getStatus()){ + // 不予受理 + if (ObjectUtils.isNotEmpty(caseTask.getHandleResult()) && CaseTaskConsts.HANDLE_RESULT_3 == caseTask.getHandleResult()){ + tabList.add(byslxq); + tabList.add(sqjl); + }else { + // 正常任务 + CaseInfo caseInfo = caseInfoService.getById(caseTask.getCaseId()); + if (CaseProcessBaseConstsEnum.CASE_PROCESS_6.getIndex() != caseInfo.getProcess()){ + daxx.setName("详情"); + } + tabList.add(daxx); + tabList.add(lcdb); + tabList.add(sqjl); + } + }else { + // 进行中任务 + // 待分派节点 + if (FlowNodeEnum.FLOW_NODE_ZJ_DFP.getIndex().equals(caseTask.getNodeId()) + || FlowNodeEnum.FLOW_NODE_QJ_DFP.getIndex().equals(caseTask.getNodeId()) + || FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex().equals(caseTask.getNodeId())) { + tabList.add(dslxq); + tabList.add(sqjl); + + sl.setName("自行受理"); + buttonList.add(sl); + buttonList.add(jb); + buttonList.add(sb); + buttonList.add(bysl); + + // 额外单独给详情跳转查看 + daxx.setName("详情"); + tabList.add(daxx); + } + // 待受理节点 + if (FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex().equals(caseTask.getNodeId()) + || FlowNodeEnum.FLOW_NODE_QJ_DSL.getIndex().equals(caseTask.getNodeId()) + || 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); + } + // 回退审核节点 + if (FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex().equals(caseTask.getNodeId()) + || FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex().equals(caseTask.getNodeId()) + || FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex().equals(caseTask.getNodeId()) + || FlowNodeEnum.FLOW_NODE_HTSH.getIndex().equals(caseTask.getNodeId())) { + sxxq.setName("详情"); + tabList.add(sxxq); + tabList.add(sqjl); + tabList.add(htsh); + + // 额外单独给详情跳转查看 + daxx.setName("详情"); + tabList.add(daxx); + } + // 上报审核节点 + if (FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex().equals(caseTask.getNodeId()) + || FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex().equals(caseTask.getNodeId())) { + sxxq.setName("详情"); + tabList.add(sxxq); + tabList.add(sqjl); + tabList.add(sbsh); + + // 额外单独给详情跳转查看 + daxx.setName("详情"); + tabList.add(daxx); + } + // 办理反馈节点 + if (FlowNodeEnum.FLOW_NODE_BLFK.getIndex().equals(caseTask.getNodeId())) { + if (CaseTaskConsts.CASE_TASK_TYPE_1 == caseTask.getCaseTaskType()) { + tabList.add(sxxq); + tabList.add(sxbl); + tabList.add(lcdb); + tabList.add(sqjl); + + buttonList.add(tjbljl); + buttonList.add(lhczsq); + buttonList.add(jasq); +// buttonList.add(db); + + // 额外单独给详情跳转查看 + daxx.setName("详情"); + tabList.add(daxx); + } else { + tabList.add(sxxq); + tabList.add(sxbl); + tabList.add(lcdb); + tabList.add(sqjl); + + buttonList.add(tjbljl); + + // 额外单独给详情跳转查看 + daxx.setName("详情"); + tabList.add(daxx); + } + } + // 结案审核节点 + if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(caseTask.getNodeId())) { + tabList.add(sxxq); + tabList.add(sqjl); + tabList.add(jash); + + // 额外单独给详情跳转查看 + daxx.setName("详情"); + tabList.add(daxx); + } + // 当事人评价节点 + if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(caseTask.getNodeId())) { + daxx.setName("详情"); + tabList.add(daxx); + tabList.add(lcdb); + tabList.add(sqjl); + } + // 结案归档节点 + if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(caseTask.getNodeId())) { + tabList.add(daxx); + tabList.add(lcdb); + tabList.add(sqjl); + } + // 联合处置-待受理 + 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); + } + } + }else { + daxx.setName("详情"); + tabList.add(daxx); + tabList.add(lcdb); + tabList.add(sqjl); + } + // 封装数据 + TabButtonDTO tabButtonDTO = new TabButtonDTO(); + tabButtonDTO.setTabList(tabList); tabButtonDTO.setButtonList(buttonList); return tabButtonDTO; }catch (Exception e){ @@ -262,77 +454,297 @@ */ public Map<String, Object> webListCaseFlow(String caseId, String userId){ try{ - // 临时给前端联调数据 Map<String, Object> result = Maps.newHashMap(); - - List<CaseFlowDTO> handleCaseFlowList = new LinkedList<>(); - CaseFlowDTO lfdj = new CaseFlowDTO(); - lfdj.setNodeShowName("来访登记"); - lfdj.setHandleUnitName("白云区新市综治中心"); - lfdj.setHandleUserName("李晓明"); - lfdj.setTaskType(1); - lfdj.setStatus(2); + LinkedList<WebCaseFlowDTO> handleCaseFlowList = new LinkedList<>(); + // 首节点 + WebCaseFlowDTO lfdj = new WebCaseFlowDTO(); + CaseInfo caseInfo = caseInfoService.getById(caseId); + if (CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())){ + lfdj.setNodeShowName("来访登记"); + lfdj.setHandleUserName(caseInfo.getInputUserName()); + lfdj.setHandleUnitName(caseInfo.getInputUnitName()); + }else { + lfdj.setNodeShowName(caseInfo.getCanalName()); + lfdj.setHandleUnitName(caseInfo.getInputUserName()+"(当事人)"); + } + lfdj.setTaskType(CaseTaskConsts.TASK_TYPE_1); + lfdj.setStatus(CaseTaskConsts.TASK_STATUS_2); lfdj.setHandleTime(new Date()); handleCaseFlowList.add(lfdj); + // 查询承办组织任务 + QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); + caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_1).orderByAsc("id"); + List<CaseTask> handleCaseTaskList = mapper.selectList(caseTaskQueryWrapper); + for (CaseTask caseTask: handleCaseTaskList){ + // 已结束节点 + 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()); + handleCaseFlowList.add(slWebCaseFlowDTO); + } + } + // 普通节点 + WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); + webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); + webCaseFlowDTO.setStatus(caseTask.getStatus()); + webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); + webCaseFlowDTO.setTaskType(caseTask.getTaskType()); + // 回退申请节点 + if(CaseTaskConsts.TASK_TYPE_2 == caseTask.getTaskType()){ + webCaseFlowDTO.setNodeShowName("事件回退"); + CaseReturn caseReturn = caseReturnService.getNewByCaseId(caseId, caseTask.getCaseTaskType()); + if (StringUtils.isNotEmpty(caseReturn.getReturnContent())) { + webCaseFlowDTO.setHandleNotes("回退理由:" + caseReturn.getReturnContent()); + }else { + webCaseFlowDTO.setHandleNotes("回退理由:-"); - CaseFlowDTO xtpd = new CaseFlowDTO(); - xtpd.setNodeShowName("事件流转"); - xtpd.setHandleUnitName("系统派单"); - xtpd.setHandleTime(new Date()); - xtpd.setHandleNotes("派单至:白云区新市司法所"); - xtpd.setTaskType(1); - xtpd.setStatus(2); - handleCaseFlowList.add(xtpd); - - CaseFlowDTO sjlz = new CaseFlowDTO(); - sjlz.setNodeShowName("事件流转"); - sjlz.setHandleUnitName("白云区新市司法所"); - sjlz.setHandleUserName("赵菲菲"); - sjlz.setHandleTime(new Date()); - sjlz.setHandleNotes("已签收"); - sjlz.setTaskType(1); - sjlz.setStatus(2); - handleCaseFlowList.add(sjlz); - - CaseFlowDTO sjht = new CaseFlowDTO(); - sjht.setNodeShowName("事件回退"); - sjht.setHandleUnitName("白云区新市司法所"); - sjht.setHandleUserName("赵菲菲"); - sjht.setHandleTime(new Date()); - sjht.setTaskType(2); - sjht.setStatus(2); - handleCaseFlowList.add(sjht); - - CaseFlowDTO htsh = new CaseFlowDTO(); - htsh.setNodeShowName("回退审核"); - htsh.setHandleUnitName("白云区新市综治中心"); - htsh.setHandleUserName("李晓明"); - htsh.setHandleTime(new Date()); - htsh.setAuditResult("24_00004-1"); - htsh.setAuditResultName("通过"); - htsh.setHandleTime(new Date()); - htsh.setTaskType(1); - htsh.setStatus(2); - handleCaseFlowList.add(htsh); - - CaseFlowDTO dsl = new CaseFlowDTO(); - dsl.setProcessName("待受理"); - dsl.setHandleUnitName("白云区新市综治中心"); - dsl.setTaskType(1); - dsl.setStatus(1); - handleCaseFlowList.add(dsl); + } + } + // 上报申请节点 + if(CaseTaskConsts.TASK_TYPE_3 == caseTask.getTaskType()){ + webCaseFlowDTO.setNodeShowName("事件上报"); + CaseAppear caseAppear = caseAppearService.getNewByCaseId(caseId); + if (StringUtils.isNotEmpty(caseAppear.getAppearContent())) { + webCaseFlowDTO.setHandleNotes("上报理由:" + caseAppear.getAppearContent()); + }else { + webCaseFlowDTO.setHandleNotes("上报意见:-" ); + } + } + // 当事人评价节点,特殊处理 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); + webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUserName()); + webCaseFlowDTO.setHandleUserName(null); + }else{ + webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); + } + // 审核节点要判断通过/不通过 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JASH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex())){ + // 处理不通过,任务类型就是回退 + if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) { + webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex()); + webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes()); + webCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_2); + }else{ + // 处理通过 + webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); + webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes()); + } + // 临时加上 + webCaseFlowDTO.setHandleNotes("审核结果:"+webCaseFlowDTO.getAuditResultName()); + } + // 结案申请,需要展示化解结果 + if (FlowNodeEnum.FLOW_NODE_JASQ.getIndex().equals(caseTask.getNodeId())){ + CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseTask.getCaseId()); + if (ObjectUtils.isNotEmpty(caseInfoUnfold)){ + webCaseFlowDTO.setMediResult(caseInfoUnfold.getMediResult()); + webCaseFlowDTO.setMediResultName(caseInfoUnfold.getMediResultName()); + // 临时加上 + webCaseFlowDTO.setHandleNotes("化解结果:"+webCaseFlowDTO.getMediResultName()); + } + } + // 不予受理 + if (CaseTaskConsts.HANDLE_RESULT_3 == caseTask.getHandleResult()){ + webCaseFlowDTO.setNodeShowName("不予受理"); + webCaseFlowDTO.setHandleNotes(null); + webCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_4); + } + handleCaseFlowList.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.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); + handleCaseFlowList.add(slWebCaseFlowDTO); + } + } + // 正常节点 + WebCaseFlowDTO webCaseFlowDTO = new WebCaseFlowDTO(); + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setStatus(caseTask.getStatus()); + // 当事人评价节点,特殊处理 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ + webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); + }else{ + webCaseFlowDTO.setProcessName(caseTask.getCandeUnitName()); + } + handleCaseFlowList.add(webCaseFlowDTO); + } + } result.put("handleCaseFlowList", handleCaseFlowList); - List<CaseFlowDTO> assistCaseFlowList = new LinkedList<>(); - CaseFlowDTO xtpd2 = new CaseFlowDTO(); - xtpd2.setNodeShowName("事件流转"); - xtpd2.setHandleUnitName("联合处置申请"); - xtpd2.setHandleTime(new Date()); - xtpd2.setHandleNotes("联合处置申请:白云区永平司法所"); - xtpd2.setTaskType(1); - xtpd2.setStatus(2); - assistCaseFlowList.add(xtpd2); - result.put("assistCaseFlowList", assistCaseFlowList); + // 查询配合组织流程 + List<CaseAssistInfo> caseAssistInfoList = caseAssistInfoService.listByCaseId(caseId); + if (CollectionUtils.isNotEmpty(caseAssistInfoList)){ + LinkedList<WebAssistCaseFlowDTO> assistCaseFlowList = new LinkedList<>(); + for (CaseAssistInfo caseAssistInfo: caseAssistInfoList){ + WebAssistCaseFlowDTO webAssistCaseFlowDTO = new WebAssistCaseFlowDTO(); + webAssistCaseFlowDTO.setUnitId(caseAssistInfo.getAssistUnitId()); + if (CaseTaskConsts.ASSIST_STATUS_0 == caseAssistInfo.getAssistStatus()) { + 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.setHandleUserName(caseTask.getHandleUserName()); + webCaseFlowDTO.setHandleTime(caseTask.getHandleTime()); + webCaseFlowDTO.setStatus(caseTask.getStatus()); + webCaseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); + webCaseFlowDTO.setTaskType(caseTask.getTaskType()); + // 回退申请节点 + if(CaseTaskConsts.TASK_TYPE_2 == caseTask.getTaskType()){ + webCaseFlowDTO.setNodeShowName("事件回退"); + CaseReturn caseReturn = caseReturnService.getNewByCaseId(caseId, caseTask.getCaseTaskType()); + if (StringUtils.isNotEmpty(caseReturn.getReturnContent())) { + webCaseFlowDTO.setHandleNotes("回退理由:" + caseReturn.getReturnContent()); + }else { + webCaseFlowDTO.setHandleNotes("回退理由:-"); + + } + } + // 上报申请节点 + if(CaseTaskConsts.TASK_TYPE_3 == caseTask.getTaskType()){ + webCaseFlowDTO.setNodeShowName("事件上报"); + CaseAppear caseAppear = caseAppearService.getNewByCaseId(caseId); + if (StringUtils.isNotEmpty(caseAppear.getAppearContent())) { + webCaseFlowDTO.setHandleNotes("上报理由:" + caseAppear.getAppearContent()); + }else { + webCaseFlowDTO.setHandleNotes("上报意见:-" ); + } + } + // 当事人评价节点,特殊处理 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())){ + webCaseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); + }else{ + webCaseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); + } + // 审核节点要判断通过/不通过 + if (caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_JASH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex()) + || caseTask.getNodeId().equals(FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex())){ + // 处理不通过,任务类型就是回退 + if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) { + webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex()); + webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes()); + webCaseFlowDTO.setTaskType(CaseTaskConsts.TASK_TYPE_2); + }else{ + // 处理通过 + webCaseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); + webCaseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes()); + } + // 临时加上 + webCaseFlowDTO.setHandleNotes("审核结果:"+webCaseFlowDTO.getAuditResultName()); + } + // 结案申请,需要展示化解结果 + if (FlowNodeEnum.FLOW_NODE_JASQ.getIndex().equals(caseTask.getNodeId())){ + CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseTask.getCaseId()); + if (ObjectUtils.isNotEmpty(caseInfoUnfold)){ + webCaseFlowDTO.setMediResult(caseInfoUnfold.getMediResult()); + webCaseFlowDTO.setMediResultName(caseInfoUnfold.getMediResultName()); + // 临时加上 + webCaseFlowDTO.setHandleNotes("化解结果:"+webCaseFlowDTO.getMediResultName()); + } + } + caseFlowList.add(webCaseFlowDTO); + }else { + // 进行中的节点 + // 待受理并已签收的正常任务节点,需要加多一个签收节点 + 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())){ + webCaseFlowDTO.setProcessName(caseTask.getNodeShowName()); + }else{ + webCaseFlowDTO.setProcessName(caseTask.getCandeUnitName()); + } + caseFlowList.add(webCaseFlowDTO); + } + } + webAssistCaseFlowDTO.setCaseFlowList(caseFlowList); + assistCaseFlowList.add(webAssistCaseFlowDTO); + } + result.put("assistCaseFlowList", assistCaseFlowList); + } return result; }catch (Exception e){ log.error("[CaseTaskService.webGetTabButton]调用失败,异常信息:"+e, e); @@ -341,19 +753,1903 @@ } /** - * 按条件统计 + * 获取首页统计数量 * @param userId 用户编号 * @return long */ - public Map<String, Long> getCountList(String userId){ - CtUserDTO loginUser = custClient.clientGetUserAll(userId); - Map<String, Object> terms = new HashMap<>(); - terms.put("candeUnitId", loginUser.getUnitId()); - terms.put("candeDeptId", loginUser.getDeptId()); - mapper.countTaskList(terms); - superviseService.countCaseSuperviseList(0,loginUser.getUnitId()); - Map<String, Long> result = new HashMap<>(); - return result; + public FrontPageCountDTO getCountList(String userId){ + try { + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + Map<String, Object> terms = new HashMap<>(); + terms.put("candeUnitId", loginUser.getUnitId()); + terms.put("candeDeptId", loginUser.getDeptId()); + FrontPageCountDTO frontPageCountDTO = mapper.countTaskList(terms); + long supervise = superviseService.countCaseSuperviseList(0,loginUser.getUnitId()); + frontPageCountDTO.setSupervise(supervise); + long countApplyReview = caseWindupApplyService.countApplyReview(loginUser.getUnitId()); + long countReturnReview = caseReturnService.countReturnReview(loginUser.getUnitId()); + long countAppearReview = caseAppearService.countAppearReview(loginUser.getUnitId()); + long countAssistReview = caseAssistApplyService.countAssistReview(loginUser.getUnitId()); + frontPageCountDTO.setReturnReview(countReturnReview); + frontPageCountDTO.setAppearReview(countAppearReview); + frontPageCountDTO.setWindupReview(countApplyReview); + frontPageCountDTO.setAssistReview(countAssistReview); + frontPageCountDTO.setWaitReview(countApplyReview+countReturnReview+countAppearReview+countAssistReview); + // 已办 + Map<String, Object> ybTerms = new HashMap<>(); + ybTerms.put("handleUnitId", loginUser.getUnitId()); + long alreadyDone = mapper.countMyTaskYb(ybTerms); + frontPageCountDTO.setAlreadyDone(alreadyDone); + // 已办 + Map<String, Object> cgTerms = new HashMap<>(); + cgTerms.put("inputUnitId", loginUser.getUnitId()); + long caseDraft = casedraftInfoService.countTerms(cgTerms); + frontPageCountDTO.setCaseDraft(caseDraft); + return frontPageCountDTO; + }catch (Exception e) { + log.error("[CaseTaskService.getCountList]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.getCountList", e); + } + } + + /** + * 首页-查询待办任务-待/已分派 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListFPDTO> pageMyTaskFp(PageRequest page, Map<String, Object> terms){ + try { + long total = mapper.countMyTaskFp(terms); + List<FrontPageListFPDTO> frontPageListFPDTOList = mapper.pageMyTaskFp(page, terms); + return new PageImpl<FrontPageListFPDTO>(frontPageListFPDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskFp]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskFp", e); + } + + } + + /** + * 首页-查询待办任务-待/已签收 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListQSDTO> pageMyTaskQs(PageRequest page, Map<String, Object> terms){ + try { + long total = mapper.countMyTaskQs(terms); + List<FrontPageListQSDTO> frontPageListDTOList = mapper.pageMyTaskQs(page, terms); + return new PageImpl<FrontPageListQSDTO>(frontPageListDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskQs", e); + } + } + + /** + * 首页-查询待办任务-待/已受理 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListSLDTO> pageMyTaskSl(PageRequest page, Map<String, Object> terms){ + try { + long total = mapper.countMyTaskSl(terms); + List<FrontPageListSLDTO> frontPageListDTOList = mapper.pageMyTaskSl(page, terms); + return new PageImpl<FrontPageListSLDTO>(frontPageListDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskSl]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskSl", e); + } + } + + /** + * 首页-查询待办任务-办理中 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListBLZDTO> pageMyTaskBlz(PageRequest page, Map<String, Object> terms){ + try { + long total = mapper.countMyTaskBlz(terms); + List<FrontPageListBLZDTO> frontPageListBLZDTOList = mapper.pageMyTaskBlz(page, terms); + Date now = DateUtils.getNowDate(); + for(FrontPageListBLZDTO frontPageListBLZDTO: frontPageListBLZDTOList){ + long milliseconds1 = frontPageListBLZDTO.getTurnaroundTime().getTime(); + long milliseconds2 = now.getTime(); + long diff = milliseconds2 - milliseconds1; + long daysBetween = diff / (24 * 60 * 60 * 1000); + frontPageListBLZDTO.setProcessingDays(daysBetween); + } + return new PageImpl<FrontPageListBLZDTO>(frontPageListBLZDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskBlz]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskBlz", e); + } + } + + /** + * 首页-查询待办任务-办理任务 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListJADTO> pageMyTaskJa(PageRequest page, Map<String, Object> terms){ + try { + long total = caseWindupApplyService.countMyTaskJa(terms); + List<FrontPageListJADTO> frontPageListJADTOList = caseWindupApplyService.listMyTaskJa(page, terms); + return new PageImpl<FrontPageListJADTO>(frontPageListJADTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskJa]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskJa", e); + } + } + + /** + * 首页-待审核分页查询 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListDTO> pageMyTaskSh(PageRequest page, int type, Map<String, Object> terms){ + try { + long total = 0; + List<FrontPageListDTO> frontPageListDTOList = new ArrayList<>(); + if(1 == type){ + total = caseReturnService.countMyTaskReturnReview(terms); + frontPageListDTOList = caseReturnService.pageMyTaskReturnReview(page,terms); + }else if(2 == type){ + total = caseAppearService.countMyTaskAppearReview(terms); + frontPageListDTOList = caseAppearService.pageMyTaskAppearReview(page, terms); + }else if(3 == type){ + total = caseWindupApplyService.countMyTaskApplyReview(terms); + frontPageListDTOList = caseWindupApplyService.listMyTaskApplyReview(page, terms); + }else if(4 == type){ + total = caseAssistApplyService.countMyTaskAssistReview(terms); + frontPageListDTOList = caseAssistApplyService.pageMyTaskAssistReview(page, terms); + } + return new PageImpl<FrontPageListDTO>(frontPageListDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskQs", e); + } + } + + /** + * 首页-待审核分页查询 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListWSQDDTO> pageMyTaskShWSQD(PageRequest page, Map<String, Object> terms){ + try { + long total = mapper.countMyTaskShWSQD(terms); + List<FrontPageListWSQDDTO> frontPageListWSQDDTOList = mapper.pageMyTaskShWSQD(page,terms); + return new PageImpl<FrontPageListWSQDDTO>(frontPageListWSQDDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskQs", e); + } + } + + /** + * 首页-待审核分页查询 + * @param caseId 事项编号 + * @return Page + */ + public List<Object> listMyApplyRecord(String caseId){ + try { + QueryWrapper<CaseReturn> caseReturnQueryWrapper = new QueryWrapper<>(); + caseReturnQueryWrapper.eq("case_id", caseId); + List<CaseReturn>caseReturnList = caseReturnService.list(caseReturnQueryWrapper); + + QueryWrapper<CaseAppear> caseAppearQueryWrapper = new QueryWrapper<>(); + caseAppearQueryWrapper.eq("case_id", caseId); + List<CaseAppear>caseAppearList = caseAppearService.list(caseAppearQueryWrapper); + + QueryWrapper<CaseWindupApply> caseWindupApplyQueryWrapper = new QueryWrapper<>(); + caseWindupApplyQueryWrapper.eq("case_id", caseId); + List<CaseWindupApply>caseWindupApplyList = caseWindupApplyService.list(caseWindupApplyQueryWrapper); + + QueryWrapper<CaseAssistApply> caseAssistApplyQueryWrapper = new QueryWrapper<>(); + caseAssistApplyQueryWrapper.eq("case_id", caseId); + List<CaseAssistApply>caseAssistApplyList = caseAssistApplyService.list(caseAssistApplyQueryWrapper); + List<SortUtilDTO> sortUtilDTOList = new ArrayList<>(); + + List<String> idList = new ArrayList<>(); + String ids = new String(); + idList.addAll(caseReturnList.stream().map(CaseReturn:: getId).collect(Collectors.toList())); + idList.addAll(caseAppearList.stream().map(CaseAppear:: getId).collect(Collectors.toList())); + idList.addAll(caseWindupApplyList.stream().map(CaseWindupApply:: getId).collect(Collectors.toList())); + idList.addAll(caseAssistApplyList.stream().map(CaseAssistApply:: getId).collect(Collectors.toList())); + ids = idList.stream().map(String::valueOf).collect(Collectors.joining("','")); + List<FileIdTypeInfoBaseDTO> fileIdTypeInfoBaseDTOList = new ArrayList<>(); + if(StringUtils.isNotBlank(ids)){ + Map terms = new HashMap(); + terms.put("mainId", caseId); + terms.put("ownerIds", "'" + ids + "'"); + fileIdTypeInfoBaseDTOList = sysClient.listIdTypeInfoByOwnerIdList(terms); + } + + for(CaseReturn caseReturn: caseReturnList){ + SortUtilDTO sortUtilDTO = new SortUtilDTO(); + sortUtilDTO.setObject(caseReturn); + sortUtilDTO.setDate(caseReturn.getCreateTime()); + sortUtilDTO.setType("回退申请"); + sortUtilDTOList.add(sortUtilDTO); + for(FileIdTypeInfoBaseDTO fileIdTypeInfoBaseDTO: fileIdTypeInfoBaseDTOList){ + if(caseReturn.getId().equals(fileIdTypeInfoBaseDTO.getOwnerId())){ + sortUtilDTO.setFileList(fileIdTypeInfoBaseDTO.getFileList()); + } + } + } + for(CaseAppear caseAppear: caseAppearList){ + SortUtilDTO sortUtilDTO = new SortUtilDTO(); + sortUtilDTO.setObject(caseAppear); + sortUtilDTO.setDate(caseAppear.getCreateTime()); + sortUtilDTO.setType("上报申请"); + sortUtilDTOList.add(sortUtilDTO); + for(FileIdTypeInfoBaseDTO fileIdTypeInfoBaseDTO: fileIdTypeInfoBaseDTOList){ + if(caseAppear.getId().equals(fileIdTypeInfoBaseDTO.getOwnerId())){ + sortUtilDTO.setFileList(fileIdTypeInfoBaseDTO.getFileList()); + } + } + } + for(CaseWindupApply caseWindupApply: caseWindupApplyList){ + SortUtilDTO sortUtilDTO = new SortUtilDTO(); + sortUtilDTO.setObject(caseWindupApply); + sortUtilDTO.setDate(caseWindupApply.getCreateTime()); + sortUtilDTO.setType("结案申请"); + sortUtilDTOList.add(sortUtilDTO); + for(FileIdTypeInfoBaseDTO fileIdTypeInfoBaseDTO: fileIdTypeInfoBaseDTOList){ + if(caseWindupApply.getId().equals(fileIdTypeInfoBaseDTO.getOwnerId())){ + sortUtilDTO.setFileList(fileIdTypeInfoBaseDTO.getFileList()); + } + } + } + for(CaseAssistApply caseAssistApply: caseAssistApplyList){ + SortUtilDTO sortUtilDTO = new SortUtilDTO(); + sortUtilDTO.setObject(caseAssistApply); + sortUtilDTO.setDate(caseAssistApply.getCreateTime()); + sortUtilDTO.setType("联合处置申请"); + sortUtilDTOList.add(sortUtilDTO); + for(FileIdTypeInfoBaseDTO fileIdTypeInfoBaseDTO: fileIdTypeInfoBaseDTOList){ + if(caseAssistApply.getId().equals(fileIdTypeInfoBaseDTO.getOwnerId())){ + sortUtilDTO.setFileList(fileIdTypeInfoBaseDTO.getFileList()); + } + } + } + sortUtilDTOList.sort(Comparator.comparing(SortUtilDTO::getDate)); + List<Object> resultList = new ArrayList<>(); + for(SortUtilDTO sortUtilDTO: sortUtilDTOList){ + resultList.add(sortUtilDTO); + } + return resultList; + }catch (Exception e) { + log.error("[CaseTaskService.listMyApplyRecord]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.listMyApplyRecord", e); + } + } + + /** + * wechat端-查询流程进度 + * @param caseId 纠纷编号 + * @return + */ + public List<WechatCaseFlowDTO> wechatListCaseFlow(String caseId, String userId){ + // 封装办理流程 + List<WechatCaseFlowDTO> list = new ArrayList<>(); + CaseInfo caseInfo = caseInfoService.getById(caseId); + // 提交申请 + WechatCaseFlowDTO tjsq = new WechatCaseFlowDTO(); + tjsq.setProcessName("提交申请"); + tjsq.setVisitWayName(caseInfo.getVisitWayName()); + tjsq.setShowTime(caseInfo.getCreateTime()); + tjsq.setCaseTypeName(caseInfo.getCaseTypeName()); + tjsq.setProcessStep(1); + list.add(tjsq); + CaseInfoUnfold caseInfoUnfold = caseInfoUnfoldService.getById(caseId); + // 办理中 + if (caseInfo.getInfoProcess() >= CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_2.getIndex()){ + WechatCaseFlowDTO sxbl = new WechatCaseFlowDTO(); + sxbl.setProcessName("事项办理"); + sxbl.setShowTime(caseInfoUnfold.getAcceptTime()); + sxbl.setMediateUnitName(caseInfoUnfold.getMediateUnitName()); + sxbl.setProcessStep(2); + list.add(sxbl); + } + // 已结案 + if (caseInfo.getInfoProcess() >= CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_3.getIndex()){ + WechatCaseFlowDTO sxbj = new WechatCaseFlowDTO(); + sxbj.setProcessName("事项办结"); + sxbj.setShowTime(caseInfoUnfold.getCloseTime()); + sxbj.setMediResult(caseInfoUnfold.getMediResult()); + sxbj.setMediResultName(caseInfoUnfold.getMediResultName()); + sxbj.setProcessStep(3); + list.add(sxbj); + } + // 评价 + QueryWrapper<CaseEvaluate> caseEvaluateQueryWrapper = new QueryWrapper<>(); + caseEvaluateQueryWrapper.eq("case_id", caseId).orderByDesc("create_time"); + List<CaseEvaluate> caseEvaluateList = caseEvaluateService.list(caseEvaluateQueryWrapper); + if (CollectionUtils.isNotEmpty(caseEvaluateList)){ + CaseEvaluate caseEvaluate = caseEvaluateList.get(0); + WechatCaseFlowDTO sxpj = new WechatCaseFlowDTO(); + sxpj.setProcessName("事项评价"); + sxpj.setShowTime(caseEvaluate.getCreateTime()); + sxpj.setEvaluateUserName(caseEvaluate.getEvaluateUserName()); + sxpj.setEvaluateGrade(caseEvaluate.getEvaluateGrade()); + sxpj.setEvaluateRemark(caseEvaluate.getEvaluateRemark()); + sxpj.setProcessStep(4); + list.add(sxpj); + } + return list; + } + + /** + * web端大厅来访登记-提交纠纷事件-通过自动调度启动工作流 + * @param caseInfo + */ + public void webStartFlowLFDJ(CaseInfo caseInfo){ + try{ + DispCaseBaseDTO dispCaseBaseDTO = new DispCaseBaseDTO(); + BeanUtils.copyProperties(caseInfo, dispCaseBaseDTO); + dispCaseBaseDTO.setCaseId(caseInfo.getId()); + CaseDispBaseDTO caseDispBaseDTO = dispClient.sysDisp(dispCaseBaseDTO); + log.info(JSON.toJSONString(caseDispBaseDTO)); + // 目前平台只能调度给组织 + if (DispBaseConstsEnum.TARGET_TYPE_1.getIndex().equals(caseDispBaseDTO.getTargetType())) { + // 目前平台只做镇街、村居级别的调度, + 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个节点-镇街综治中心待分派 + 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.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dfpCaseTask.setCustId(caseInfo.getCustId()); + dfpCaseTask.setCreateTime(caseInfo.getCreateTime()); + dfpCaseTask.setUpdateTime(caseInfo.getUpdateTime()); + mapper.insert(dfpCaseTask); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(caseInfo.getId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.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()); + caseInfoService.updateCaseInfo(caseInfoPO); + }else { + // 调度给调解组织,默认通过第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.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + dfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + // 任务处理时限 + if (firstFlowNode.getExpire() != 0) { + dfpCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire())); + } + dfpCaseTask.setHandleUnitName("系统派单"); + dfpCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dfpCaseTask.setHandleIllust("派单至:"+caseDispBaseDTO.getTargetName()); + dfpCaseTask.setHandleTime(caseInfo.getCreateTime()); + dfpCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dfpCaseTask.setCustId(caseInfo.getCustId()); + dfpCaseTask.setCreateTime(caseInfo.getCreateTime()); + dfpCaseTask.setUpdateTime(caseInfo.getCreateTime()); + mapper.insert(dfpCaseTask); + // 完成第1个节点任务 + FlowNode secondFlowNode = flowInfoService.completeTask(dfpCaseTask.getFlowableId(), dfpCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jb_zszz, "系统派单"); + // 进入第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()); + // 系统调度给调解组织,需要签收 + dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); + dslCaseTask.setSignExpireTime(sysClient.getExpireTime(caseInfo.getCreateTime(), SyTimeEnum.SY_TIME_2.getIndex())); + // 任务处理时限 + if (firstFlowNode.getExpire() != 0) { + dslCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), firstFlowNode.getExpire())); + } + dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dslCaseTask.setCustId(caseInfo.getCustId()); + dslCaseTask.setCreateTime(caseInfo.getCreateTime()); + dslCaseTask.setUpdateTime(caseInfo.getUpdateTime()); + mapper.insert(dslCaseTask); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(caseInfo.getId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_2.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_2.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()); + caseInfoService.updateCaseInfo(caseInfoPO); + } + } + } + }catch (Exception e){ + log.error("[CaseTaskService.webStartFlowLFDJ]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webStartFlowLFDJ", e); + } + } + + /** + * web端大厅来访登记-自行受理-启动自行受理流程 + * @param caseInfo + * @param loginUser + */ + public String webStartFlowZXSL(CaseInfo caseInfo, CtUserDTO loginUser){ + try{ + // 启动自行受理工作流,进入待受理节点 + FlowNode dslFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_ZXSL, caseInfo.getId()); + // 创建并完成待受理任务 + CaseTask dslCaseTask = new CaseTask(); + dslCaseTask.setId(utilsClient.getNewTimeId()); + dslCaseTask.setCaseId(caseInfo.getId()); + dslCaseTask.setFlowableId(dslFlowNode.getFlowableId()); + dslCaseTask.setProcessInstanceId(dslFlowNode.getProcessInstanceId()); + dslCaseTask.setProcessTaskId(dslFlowNode.getProcessTaskId()); + dslCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + dslCaseTask.setNodeType(dslFlowNode.getNodeType()); + dslCaseTask.setNodeId(dslFlowNode.getNodeId()); + dslCaseTask.setNodeName(dslFlowNode.getNodeName()); + dslCaseTask.setFlowId(dslFlowNode.getFlowId()); + dslCaseTask.setNodeShowName(dslFlowNode.getNodeShowName()); + dslCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 自行受理,任务候选执行者类型是上一步骤选择 + dslCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + dslCaseTask.setCandeUnitId(loginUser.getUnitId()); + dslCaseTask.setCandeUnitName(loginUser.getUnitName()); + // 自行受理,不需要签收 + dslCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + dslCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + // 任务处理时限 + if (dslFlowNode.getExpire() != 0) { + dslCaseTask.setExpireTime(DateUtils.addDay(caseInfo.getCreateTime(), dslFlowNode.getExpire())); + } + dslCaseTask.setHandleUnitId(loginUser.getUnitId()); + dslCaseTask.setHandleUnitName(loginUser.getUnitName()); + dslCaseTask.setHandleUserId(loginUser.getId()); + dslCaseTask.setHandleUserName(loginUser.getTrueName()); + dslCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dslCaseTask.setHandleIllust("自行受理"); + dslCaseTask.setHandleTime(caseInfo.getCreateTime()); + dslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dslCaseTask.setCustId(caseInfo.getCustId()); + dslCaseTask.setCreateTime(caseInfo.getCreateTime()); + dslCaseTask.setUpdateTime(caseInfo.getCreateTime()); + mapper.insert(dslCaseTask); + // 完成待受理任务,走办理反馈节点 + FlowNode blfkFlowNode = flowInfoService.completeTask(dslCaseTask.getFlowableId(), dslCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_forward, loginUser.getId()); + // 进入第1个节点-办理反馈 + CaseTask blfkCaseTask = new CaseTask(); + blfkCaseTask.setId(utilsClient.getNewTimeId()); + blfkCaseTask.setCaseId(caseInfo.getId()); + blfkCaseTask.setFlowableId(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.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + blfkCaseTask.setCustId(caseInfo.getCustId()); + blfkCaseTask.setCreateTime(caseInfo.getCreateTime()); + blfkCaseTask.setUpdateTime(caseInfo.getUpdateTime()); + mapper.insert(blfkCaseTask); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(caseInfo.getId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_4.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_4.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()); + caseInfoService.updateCaseInfo(caseInfoPO); + // 更新纠纷扩展信息 + CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); + caseInfoUnfoldPO.setId(blfkCaseTask.getCaseId()); + caseInfoUnfoldPO.setAcceptTime(blfkCaseTask.getCreateTime()); + caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId()); + caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName()); + caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); + return blfkCaseTask.getId(); + }catch (Exception e){ + log.error("[CaseTaskService.webStartFlowZXSL]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webStartFlowZXSL", e); + } + } + + /** + * web端任务处理-不予受理 + * @param caseDismiss 不予受理表单 + * @param userId 当前登录用户 + */ + public void webDismiss(CaseDismiss caseDismiss, String userId){ + try{ + 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.setHandleUserName(loginUser.getTrueName()); + caseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_3); + caseTaskPO.setHandleContent(caseDismiss.getDisContent()); + caseTaskPO.setHandleTime(nowDate); + caseTaskPO.setUpdateTime(nowDate); + mapper.updateCaseTask(caseTaskPO); + // 结束当前工作流任务 + flowInfoService.endFlow(caseTask.getProcessInstanceId()); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(caseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_8.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_8.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); + // 有配合部门,也结束配合部门工作流程 + 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.setHandleUserId(loginUser.getId()); + assistCaseTask.setHandleUserName(loginUser.getTrueName()); + assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + assistCaseTask.setHandleTime(nowDate); + assistCaseTask.setUpdateTime(nowDate); + mapper.updateCaseTask(assistCaseTask); + // 结束配合部门当前工作流任务 + flowInfoService.endFlow(assistCaseTask.getProcessInstanceId()); + } + // 新增不予受理信息 + caseDismiss.setCaseTaskTime(caseTask.getCreateTime()); + caseDismiss.setDisUnitId(loginUser.getUnitId()); + caseDismiss.setDisUnitName(loginUser.getUnitName()); + caseDismiss.setDisUserId(loginUser.getId()); + caseDismiss.setDisUserName(loginUser.getTrueName()); + caseDismiss.setDisTime(nowDate); + caseDismiss.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + caseDismiss.setCustId(caseTask.getCustId()); + caseDismiss.setCreateTime(nowDate); + caseDismiss.setUpdateTime(nowDate); + caseDismissService.save(caseDismiss); + }catch (Exception e){ + log.error("[CaseTaskService.webAssign]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webAssign", e); + } + } + + /** + * web端任务处理-交办 + * @param assignTaskDTO 交办任务表单 + * @param userId 当前登录用户 + */ + public void webAssign(AssignTaskDTO assignTaskDTO, String userId){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 获取当前登录用户 + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + // 查询当前待分派任务 + 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.setHandleUserId(loginUser.getId()); + dfpCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + dfpCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dfpCaseTaskPO.setHandleContent(assignTaskDTO.getAssignContent()); + dfpCaseTaskPO.setHandleIllust("派单至:"+assignTaskDTO.getHandleUnitName()); + dfpCaseTaskPO.setHandleTime(nowDate); + dfpCaseTaskPO.setUpdateTime(nowDate); + 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 { + flowOperation = FlowableConsts.OPERATION_jb_zzzx; + } + + } + // 市综治中心待分派 + if (FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex().equals(dfpCaseTask.getNodeId())){ + if (UserBaseConsts.UNIT_GRADE_1 == dslUnitDTO.getUnitGrade()) { + flowOperation = FlowableConsts.OPERATION_jb_zszz; + }else { + flowOperation = FlowableConsts.OPERATION_jb_zzzx; + } + + } + // 完成当前待分派工作流任务 + 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.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dslCaseTask.setCustId(dfpCaseTask.getCustId()); + dslCaseTask.setCreateTime(nowDate); + dslCaseTask.setUpdateTime(nowDate); + mapper.insert(dslCaseTask); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(dslCaseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_3.getDes()); + caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); + 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 (CollectionUtils.isNotEmpty(assignTaskDTO.getAssistUnitList())){ + // 拼接配合组织编号和名称 + String assistUnitId = assignTaskDTO.getAssistUnitList().stream().map(AssignAssistUnitDTO::getUitId). + collect(Collectors.joining(BaseConsts.COMMA)); + String assistUnitName = assignTaskDTO.getAssistUnitList().stream().map(AssignAssistUnitDTO::getUitName). + collect(Collectors.joining(BaseConsts.COMMA)); + for (AssignAssistUnitDTO assignAssistUnitDTO: assignTaskDTO.getAssistUnitList()){ + // 启动联合处置工作流 + FlowNode lhczdfpFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_LHCZ, 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.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + lhczdfpCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + lhczdfpCaseTask.setHandleUnitId(loginUser.getUnitId()); + lhczdfpCaseTask.setHandleUnitName(loginUser.getUnitName()); + lhczdfpCaseTask.setHandleUserId(loginUser.getId()); + lhczdfpCaseTask.setHandleUserName(loginUser.getTrueName()); + lhczdfpCaseTask.setHandleContent(assignTaskDTO.getAssignContent()); + lhczdfpCaseTask.setHandleIllust("交办至:"+assistUnitName); + // 任务处理时限 + if (lhczdfpFlowNode.getExpire() != 0) { + lhczdfpCaseTask.setExpireTime(DateUtils.addDay(nowDate, lhczdfpFlowNode.getExpire())); + } + lhczdfpCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + lhczdfpCaseTask.setCustId(dfpCaseTask.getCustId()); + 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); + // 任务处理时限 + if (lhczdslFlowNode.getExpire() != 0) { + lhczdslCaseTask.setExpireTime(DateUtils.addDay(nowDate, lhczdslFlowNode.getExpire())); + } + lhczdslCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + lhczdslCaseTask.setCustId(lhczdfpCaseTask.getCustId()); + lhczdslCaseTask.setCreateTime(nowDate); + lhczdslCaseTask.setUpdateTime(nowDate); + mapper.insert(lhczdslCaseTask); + // 新增联合处置信息 + CaseAssistInfo caseAssistInfoPO = new CaseAssistInfo(); + caseAssistInfoPO.setId(utilsClient.getNewTimeId()); + caseAssistInfoPO.setCaseId(dslCaseTask.getCaseId()); + caseAssistInfoPO.setAssistUnitId(assignAssistUnitDTO.getUitId()); + caseAssistInfoPO.setAssistUnitName(assignAssistUnitDTO.getUitName()); + caseAssistInfoPO.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_0); + caseAssistInfoPO.setCustId(dslCaseTask.getCustId()); + caseAssistInfoPO.setCreateTime(nowDate); + caseAssistInfoPO.setUpdateTime(nowDate); + caseAssistInfoService.save(caseAssistInfoPO); + } + // 更新纠纷扩展信息 + CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); + caseInfoUnfoldPO.setId(dslCaseTask.getCaseId()); + caseInfoUnfoldPO.setAssistUnitId(assistUnitId); + caseInfoUnfoldPO.setAssistUnitName(assistUnitName); + caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); + } + }catch (Exception e){ + log.error("[CaseTaskService.webAssign]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webAssign", e); + } + } + + /** + * web端任务处理-签收 + * @param signTaskDTOList 签收任务表单 + * @param userId 当前登录用户 + */ + public void webSign(List<SignTaskDTO> signTaskDTOList, String userId){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 获取当前登录用户 + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + for (SignTaskDTO signTaskDTO: signTaskDTOList){ + CaseTask qsCaseTask = mapper.selectById(signTaskDTO.getCaseTaskId()); + // 更新纠纷任务信息 + CaseTask caseTaskPO = new CaseTask(); + caseTaskPO.setId(qsCaseTask.getId()); + caseTaskPO.setSignStatus(CaseTaskConsts.SIGN_STATUS_2); + caseTaskPO.setSignTime(nowDate); + caseTaskPO.setSignUserId(loginUser.getId()); + caseTaskPO.setSignUserName(loginUser.getTrueName()); + caseTaskPO.setHandleIllust("已签收"); + caseTaskPO.setUpdateTime(nowDate); + mapper.updateCaseTask(caseTaskPO); + // 承办部门签收才更新纠纷信息 + if (CaseTaskConsts.CASE_TASK_TYPE_1 == qsCaseTask.getCaseTaskType()) { + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(qsCaseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_3.getDes()); + caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); + 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); + } + } + }catch (Exception e){ + log.error("[CaseTaskService.webSign]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webSign", e); + } + } + + /** + * web端任务处理-受理 + * @param acceptTaskDTO 受理任务表单 + * @param userId 当前登录用户 + */ + public String webAccept(AcceptTaskDTO acceptTaskDTO, String userId){ + try{ + 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.setHandleIllust("已受理"); + dslCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + dslCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dslCaseTaskPO.setHandleTime(nowDate); + dslCaseTaskPO.setUpdateTime(nowDate); + 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); + // 任务处理时限 + if (newFlowNode.getExpire() != 0) { + blfkCaseTask.setExpireTime(DateUtils.addDay(nowDate, newFlowNode.getExpire())); + } + blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + blfkCaseTask.setCustId(dslCaseTask.getCustId()); + blfkCaseTask.setCreateTime(nowDate); + blfkCaseTask.setUpdateTime(nowDate); + mapper.insert(blfkCaseTask); + // 承办部门签收才更新纠纷信息 + if (CaseTaskConsts.CASE_TASK_TYPE_1 == dslCaseTask.getCaseTaskType()) { + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(blfkCaseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_4.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_4.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(blfkCaseTask.getCaseId()); + caseInfoUnfoldPO.setAcceptTime(nowDate); + caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId()); + 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); + CaseAssistInfo caseAssistInfoPO = caseAssistInfoService.getOne(caseAssistInfoQueryWrapper); + caseAssistInfoPO.setCaseTaskId(blfkCaseTask.getId()); + caseAssistInfoPO.setAcceptTime(nowDate); + caseAssistInfoService.updateCaseAssistInfo(caseAssistInfoPO); + } + return blfkCaseTask.getId(); + }catch (Exception e){ + log.error("[CaseTaskService.webAccept]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webAccept", e); + } + } + + /** + * web端任务处理-结案申请 + * @param caseWindupApply 结案申请表单 + * @param userId 当前登录用户 + */ + public void webWindupApply(CaseWindupApply caseWindupApply, String userId){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 获取当前登录用户 + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + // 新增结案申请信息 + caseWindupApply.setApplyUnitId(loginUser.getUnitId()); + caseWindupApply.setApplyUnitName(loginUser.getUnitName()); + caseWindupApply.setApplyUserId(loginUser.getId()); + caseWindupApply.setApplyUserName(loginUser.getTrueName()); + caseWindupApply.setApplyTime(nowDate); + 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.setHandleUserId(loginUser.getId()); + blfkCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + blfkCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + blfkCaseTaskPO.setHandleTime(nowDate); + blfkCaseTaskPO.setUpdateTime(nowDate); + 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); + jasqCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + jasqCaseTask.setHandleUnitId(loginUser.getUnitId()); + jasqCaseTask.setHandleUnitName(loginUser.getUnitName()); + jasqCaseTask.setHandleUserId(loginUser.getId()); + jasqCaseTask.setHandleUserName(loginUser.getTrueName()); + jasqCaseTask.setHandleContent(caseWindupApply.getWindupContent()); + jasqCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + jasqCaseTask.setHandleTime(nowDate); + jasqCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + jasqCaseTask.setCustId(blfkCaseTask.getCustId()); + jasqCaseTask.setCreateTime(nowDate); + jasqCaseTask.setUpdateTime(nowDate); + mapper.insert(jasqCaseTask); + // 化解成功,自动结案审核通过 + if (MediResultBaseConstsEnum.MEDI_RESULT_1.getIndex().equals(caseWindupApply.getMediResult())){ + // 完成当前结案申请工作流任务,走结案审核任务 + 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_2); + jashCaseTask.setHandleUnitId(loginUser.getUnitId()); + jashCaseTask.setHandleUnitName(loginUser.getUnitName()); + 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)); + mapper.insert(jashCaseTask); + // 完成当前结案审核工作流任务,走当事人评价任务 + FlowNode dsrpjFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jash_ty, userId); + // 新建当事人评价任务 + CaseTask dsrpjCaseTask = new CaseTask(); + dsrpjCaseTask.setId(utilsClient.getNewTimeId()); + dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId()); + dsrpjCaseTask.setFlowableId(dsrpjFlowNode.getFlowableId()); + dsrpjCaseTask.setProcessInstanceId(dsrpjFlowNode.getProcessInstanceId()); + dsrpjCaseTask.setProcessTaskId(dsrpjFlowNode.getProcessTaskId()); + dsrpjCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + dsrpjCaseTask.setNodeType(dsrpjFlowNode.getNodeType()); + dsrpjCaseTask.setNodeId(dsrpjFlowNode.getNodeId()); + dsrpjCaseTask.setNodeName(dsrpjFlowNode.getNodeName()); + dsrpjCaseTask.setFlowId(dsrpjFlowNode.getFlowId()); + dsrpjCaseTask.setNodeShowName(dsrpjFlowNode.getNodeShowName()); + dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 受理任务,任务候选执行者类型是上一步骤选择 + dsrpjCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + dsrpjCaseTask.setCandeUnitId(loginUser.getUnitId()); + dsrpjCaseTask.setCandeUnitName(loginUser.getUnitName()); + // 受理后的任务,不需要签收 + dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (dsrpjFlowNode.getExpire() != 0) { + dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, dsrpjFlowNode.getExpire())); + } + dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dsrpjCaseTask.setCustId(jashCaseTask.getCustId()); + dsrpjCaseTask.setCreateTime(DateUtils.addMinute(nowDate, 2)); + dsrpjCaseTask.setUpdateTime(DateUtils.addMinute(nowDate, 2)); + mapper.insert(dsrpjCaseTask); + // 更新结案申请信息 + 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); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(dsrpjCaseTask.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); + // 更新纠纷扩展信息 + CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); + caseInfoUnfoldPO.setId(dsrpjCaseTask.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 {// 化解不成功,走结案审核流程 + // 完成当前结案申请工作流任务,走结案审核任务 + 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())); + } + 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); + } + // 查询配合部门的任务,全部结束流程 + 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.setHandleUserId(loginUser.getId()); + assistCaseTask.setHandleUserName(loginUser.getTrueName()); + assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + assistCaseTask.setHandleTime(nowDate); + assistCaseTask.setUpdateTime(nowDate); + mapper.updateCaseTask(assistCaseTask); + // 结束配合部门当前工作流任务 + flowInfoService.endFlow(assistCaseTask.getProcessInstanceId()); + } + }catch (Exception e){ + log.error("[CaseTaskService.webWindupApply]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webWindupApply", e); + } + } + + /** + * web端任务处理-结案审核 + * @param caseWindupApply 结案审核表单 + * @param userId 当前登录用户 + */ + public void webWindupAudit(CaseWindupApply caseWindupApply, String userId){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 获取当前登录用户 + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + // 更新结案申请信息 + caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1); + caseWindupApply.setAuditUserId(loginUser.getId()); + caseWindupApply.setAuditUserName(loginUser.getTrueName()); + caseWindupApply.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + caseWindupApply.setCustId(loginUser.getCustId()); + caseWindupApply.setAuditTime(nowDate); + caseWindupApply.setUpdateTime(nowDate); + caseWindupApplyService.updateCaseWindupApply(caseWindupApply); + // 查询结案审核任务 + 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.setHandleUserId(loginUser.getId()); + jashCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + jashCaseTaskPO.setHandleContent(caseWindupApply.getAuditContent()); + jashCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + jashCaseTaskPO.setHandleTime(nowDate); + jashCaseTaskPO.setUpdateTime(nowDate); + mapper.updateCaseTask(jashCaseTaskPO); + // 完成当前结案审核工作流任务,走当事人评价任务 + FlowNode dsrpjFlowNode = flowInfoService.completeTask(jashCaseTask.getFlowableId(), jashCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_jash_ty, userId); + // 新建当事人评价任务 + CaseTask dsrpjCaseTask = new CaseTask(); + dsrpjCaseTask.setId(utilsClient.getNewTimeId()); + dsrpjCaseTask.setCaseId(jashCaseTask.getCaseId()); + dsrpjCaseTask.setFlowableId(dsrpjFlowNode.getFlowableId()); + dsrpjCaseTask.setProcessInstanceId(dsrpjFlowNode.getProcessInstanceId()); + dsrpjCaseTask.setProcessTaskId(dsrpjFlowNode.getProcessTaskId()); + dsrpjCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + dsrpjCaseTask.setNodeType(dsrpjFlowNode.getNodeType()); + dsrpjCaseTask.setNodeId(dsrpjFlowNode.getNodeId()); + dsrpjCaseTask.setNodeName(dsrpjFlowNode.getNodeName()); + dsrpjCaseTask.setFlowId(dsrpjFlowNode.getFlowId()); + dsrpjCaseTask.setNodeShowName(dsrpjFlowNode.getNodeShowName()); + dsrpjCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 受理任务,任务候选执行者类型是上一步骤选择 + dsrpjCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + dsrpjCaseTask.setCandeUnitId(loginUser.getUnitId()); + dsrpjCaseTask.setCandeUnitName(loginUser.getUnitName()); + // 受理后的任务,不需要签收 + dsrpjCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (dsrpjFlowNode.getExpire() != 0) { + dsrpjCaseTask.setExpireTime(DateUtils.addDay(nowDate, dsrpjFlowNode.getExpire())); + } + dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dsrpjCaseTask.setCustId(jashCaseTask.getCustId()); + dsrpjCaseTask.setCreateTime(nowDate); + dsrpjCaseTask.setUpdateTime(nowDate); + mapper.insert(dsrpjCaseTask); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(dsrpjCaseTask.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); + // 更新纠纷扩展信息 + CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); + caseInfoUnfoldPO.setId(dsrpjCaseTask.getCaseId()); + caseInfoUnfoldPO.setCloseTime(nowDate); + 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.setHandleUserId(loginUser.getId()); + jashCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + jashCaseTaskPO.setHandleContent(caseWindupApply.getAuditContent()); + jashCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2); + jashCaseTaskPO.setHandleTime(nowDate); + jashCaseTaskPO.setUpdateTime(nowDate); + 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.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (blfkFlowNode.getExpire() != 0) { + blfkCaseTask.setExpireTime(DateUtils.addDay(nowDate, blfkFlowNode.getExpire())); + } + blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + blfkCaseTask.setCustId(jashCaseTask.getCustId()); + blfkCaseTask.setCreateTime(nowDate); + blfkCaseTask.setUpdateTime(nowDate); + mapper.insert(blfkCaseTask); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(blfkCaseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_4.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_4.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); + } + }catch (Exception e){ + log.error("[CaseTaskService.webWindupApply]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webWindupApply", e); + } + } + + /** + * web端任务处理-回退申请 + * @param caseReturn 回退申请表单 + * @param userId 当前登录用户 + */ + public void webReturnApply(CaseReturn caseReturn, String userId){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 获取当前登录用户 + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + // 创建回退申请信息 + caseReturn.setReturnUnitId(loginUser.getUnitId()); + caseReturn.setReturnUnitName(loginUser.getUnitName()); + caseReturn.setReturnUserId(loginUser.getId()); + caseReturn.setReturnUserName(loginUser.getTrueName()); + caseReturn.setReturnTime(nowDate); + CtUnitDTO zzzxUnit = custClient.getParentZzzxUnit(loginUser.getUnitId()); + caseReturn.setAuditUnitId(zzzxUnit.getId()); + caseReturn.setAuditUnitName(zzzxUnit.getUnitName()); + caseReturn.setReturnStatus(AuditBaseConsts.AUDIT_STATUS_0); + caseReturn.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + caseReturn.setCustId(loginUser.getCustId()); + 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(), + FlowableConsts.OPERATION_htsq, userId); + // 新建回退审核任务 + CaseTask htshCaseTask = new CaseTask(); + htshCaseTask.setId(utilsClient.getNewTimeId()); + htshCaseTask.setCaseId(dslCaseTask.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.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + // 任务处理时限 + if (htshFlowNode.getExpire() != 0) { + htshCaseTask.setExpireTime(DateUtils.addDay(nowDate, htshFlowNode.getExpire())); + } + htshCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + htshCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + htshCaseTask.setCustId(htshCaseTask.getCustId()); + htshCaseTask.setCreateTime(nowDate); + htshCaseTask.setUpdateTime(nowDate); + mapper.insert(htshCaseTask); + // 新增回退申请信息 + caseReturn.setCaseTaskId(htshCaseTask.getId()); + caseReturn.setCaseTaskType(htshCaseTask.getCaseTaskType()); + caseReturnService.save(caseReturn); + }catch (Exception e){ + log.error("[CaseTaskService.webAppearApply]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webAppearApply", e); + } + } + + /** + * web端任务处理-回退审核 + * @param caseReturn 回退审核表单 + * @param userId 当前登录用户 + */ + public void webReturnAudit(CaseReturn caseReturn, String userId){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 获取当前登录用户 + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + // 更新回退申请信息 + caseReturn.setReturnStatus(AuditBaseConsts.AUDIT_STATUS_1); + caseReturn.setAuditUserId(loginUser.getId()); + caseReturn.setAuditUserName(loginUser.getTrueName()); + 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.setHandleUserId(loginUser.getId()); + htshCaseTaskPO.setHandleContent(caseReturn.getAuditContent()); + htshCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + htshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + htshCaseTaskPO.setHandleTime(nowDate); + htshCaseTaskPO.setUpdateTime(nowDate); + mapper.updateCaseTask(htshCaseTaskPO); + // 完成当前回退审核任务,承办部门走待分派任务,配合部门结束流程 + FlowNode dfpFlowNode = 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); + // 任务处理时限 + if (dfpFlowNode.getExpire() != 0) { + dfphCaseTask.setExpireTime(DateUtils.addDay(nowDate, dfpFlowNode.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); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(htshCaseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes()); + caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); + 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); + // 有配合部门,也结束配合部门工作流程 + 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.setHandleUserId(loginUser.getId()); + assistCaseTask.setHandleUserName(loginUser.getTrueName()); + assistCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + assistCaseTask.setHandleTime(nowDate); + assistCaseTask.setUpdateTime(nowDate); + mapper.updateCaseTask(assistCaseTask); + // 结束配合部门当前工作流任务 + flowInfoService.endFlow(assistCaseTask.getProcessInstanceId()); + } + }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); + CaseAssistInfo caseAssistInfo = caseAssistInfoService.getOne(caseAssistInfoQueryWrapper); + if (ObjectUtils.isNotEmpty(caseAssistInfo)){ + caseAssistInfo.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_1); + caseAssistInfoService.updateCaseAssistInfo(caseAssistInfo); + } + } + }else { + // 审核不通过 + // 完成当前回退审核任务 + CaseTask htshCaseTaskPO = new CaseTask(); + htshCaseTaskPO.setId(caseReturn.getCaseTaskId()); + htshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); + htshCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); + htshCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + htshCaseTaskPO.setHandleUserId(loginUser.getId()); + htshCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + htshCaseTaskPO.setHandleContent(caseReturn.getAuditContent()); + htshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2); + htshCaseTaskPO.setHandleTime(nowDate); + htshCaseTaskPO.setUpdateTime(nowDate); + mapper.updateCaseTask(htshCaseTaskPO); + CaseReturn btyCaseReturn = caseReturnService.getById(caseReturn.getId()); + CtUnitDTO returnUnit = custClient.getUnitById(btyCaseReturn.getReturnUnitId()); + String operation = FlowableConsts.OPERATION_htsh_bty; + if (UserBaseConsts.UNIT_GRADE_2 == returnUnit.getUnitGrade()){ + operation = FlowableConsts.OPERATION_htsh_bty_qj; + } + 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); + // 任务处理时限 + if (dslFlowNode.getExpire() != 0) { + dslCaseTask.setExpireTime(DateUtils.addDay(nowDate, dslFlowNode.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); + } + }catch (Exception e){ + log.error("[CaseTaskService.webReturnAudit]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webReturnAudit", e); + } + } + + /** + * web端任务处理-上报 + * @param caseAppear 上报表单 + * @param userId 当前登录用户 + */ + public void webAppearApply(CaseAppear caseAppear, String userId){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 获取当前登录用户 + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + // 创建上报信息 + caseAppear.setAppearUnitId(loginUser.getUnitId()); + caseAppear.setAppearUnitName(loginUser.getUnitName()); + caseAppear.setAppearUserId(loginUser.getId()); + caseAppear.setAppearUserName(loginUser.getTrueName()); + caseAppear.setAppearTime(nowDate); + caseAppear.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0); + caseAppear.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + 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(), + FlowableConsts.OPERATION_sb, userId); + // 新建上报审核任务 + CaseTask sbshCaseTask = new CaseTask(); + sbshCaseTask.setId(utilsClient.getNewTimeId()); + sbshCaseTask.setCaseId(dslCaseTask.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) { + sbshCaseTask.setExpireTime(DateUtils.addDay(nowDate, sbshFlowNode.getExpire())); + } + sbshCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + sbshCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + sbshCaseTask.setCustId(sbshCaseTask.getCustId()); + sbshCaseTask.setCreateTime(nowDate); + sbshCaseTask.setUpdateTime(nowDate); + mapper.insert(sbshCaseTask); + // 新增上报申请信息 + caseAppear.setCaseTaskId(sbshCaseTask.getId()); + caseAppearService.save(caseAppear); + }catch (Exception e){ + log.error("[CaseTaskService.webAppearApply]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webAppearApply", e); + } + } + + /** + * web端任务处理-上报审核 + * @param caseAppear 上报审核表单 + * @param userId 当前登录用户 + */ + public void webAppearAudit(CaseAppear caseAppear, String userId){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 获取当前登录用户 + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + // 更新上报信息 + caseAppear.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_1); + caseAppear.setAuditUserId(loginUser.getId()); + caseAppear.setAuditUserName(loginUser.getTrueName()); + 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.setHandleUserId(loginUser.getId()); + sbshCaseTaskPO.setHandleContent(caseAppear.getAuditContent()); + sbshCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + sbshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + sbshCaseTaskPO.setHandleTime(nowDate); + sbshCaseTaskPO.setUpdateTime(nowDate); + mapper.updateCaseTask(sbshCaseTaskPO); + // 完成当前上报审核任务,走待分派任务 + FlowNode dfpFlowNode = flowInfoService.completeTask(sbshCaseTask.getFlowableId(), sbshCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_sbsh_ty, userId); + // 新建待分派任务 + CaseTask dfphCaseTask = new CaseTask(); + dfphCaseTask.setId(utilsClient.getNewTimeId()); + dfphCaseTask.setCaseId(sbshCaseTask.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(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); + // 任务处理时限 + if (dfpFlowNode.getExpire() != 0) { + dfphCaseTask.setExpireTime(DateUtils.addDay(nowDate, dfpFlowNode.getExpire())); + } + dfphCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dfphCaseTask.setCustId(dfphCaseTask.getCustId()); + dfphCaseTask.setCreateTime(nowDate); + dfphCaseTask.setUpdateTime(nowDate); + mapper.insert(dfphCaseTask); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(sbshCaseTask.getCaseId()); + caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex()); + caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes()); + caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); + 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); + }else { + // 审核不通过 + // 完成当前上报审核任务 + CaseTask sbshCaseTaskPO = new CaseTask(); + sbshCaseTaskPO.setId(caseAppear.getCaseTaskId()); + sbshCaseTaskPO.setStatus(CaseTaskConsts.TASK_STATUS_2); + sbshCaseTaskPO.setHandleUnitId(loginUser.getUnitId()); + sbshCaseTaskPO.setHandleUnitName(loginUser.getUnitName()); + sbshCaseTaskPO.setHandleUserId(loginUser.getId()); + sbshCaseTaskPO.setHandleUserName(loginUser.getTrueName()); + sbshCaseTaskPO.setHandleContent(caseAppear.getAuditContent()); + sbshCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_2); + sbshCaseTaskPO.setHandleTime(nowDate); + sbshCaseTaskPO.setUpdateTime(nowDate); + mapper.updateCaseTask(sbshCaseTaskPO); + // 完成当前上报审核任务,走待分派任务 + FlowNode dfpFlowNode = flowInfoService.completeTask(sbshCaseTask.getFlowableId(), sbshCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_sbsh_bty, userId); + // 新建待分派任务 + CaseTask dfphCaseTask = new CaseTask(); + dfphCaseTask.setId(utilsClient.getNewTimeId()); + dfphCaseTask.setCaseId(sbshCaseTask.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(CaseTaskConsts.CASE_TASK_TYPE_1); + // 受理任务,任务候选执行者类型是上一步骤选择 + dfphCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + dfphCaseTask.setCandeUnitId(caseAppear.getAppearUnitId()); + dfphCaseTask.setCandeUnitName(caseAppear.getAppearUnitName()); + // 受理后的任务,不需要签收 + dfphCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + dfphCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + // 任务处理时限 + if (dfpFlowNode.getExpire() != 0) { + dfphCaseTask.setExpireTime(DateUtils.addDay(nowDate, dfpFlowNode.getExpire())); + } + dfphCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dfphCaseTask.setCustId(dfphCaseTask.getCustId()); + dfphCaseTask.setCreateTime(nowDate); + dfphCaseTask.setUpdateTime(nowDate); + mapper.insert(dfphCaseTask); + } + }catch (Exception e){ + log.error("[CaseTaskService.webAppearAudit]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webAppearAudit", e); + } + } + + /** + * 按条件查询 + * @param terms 条件 + * @return List + */ + public List<SignTaskDTO> listIdByTerms(Map<String, Object> terms){ + return mapper.listIdByTerms(terms); + } + + /** + * web端-工作台-已办事项 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<FrontPageListYBDTO> pageMyTaskYb(PageRequest page, Map<String, Object> terms){ + try { + long total = mapper.countMyTaskYb(terms); + List<FrontPageListYBDTO> frontPageListYBDTOList = mapper.pageMyTaskYb(page, terms); + return new PageImpl<FrontPageListYBDTO>(frontPageListYBDTOList, page, total); + }catch (Exception e) { + log.error("[CaseTaskService.pageMyTaskYb]调用失败,异常信息:" + e, e); + throw new ServiceException("CaseTaskService.pageMyTaskYb", e); + } } } -- Gitblit v1.8.0