From bc684a5f99b82ff46b0dc87cc4917ca1b4b88fe1 Mon Sep 17 00:00:00 2001 From: liyj <1003249715@qq.com> Date: Mon, 09 Sep 2024 22:20:12 +0800 Subject: [PATCH] 1、流程优化 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 1170 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 1,062 insertions(+), 108 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 6d85073..63e49c9 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,26 +3,43 @@ 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.domain.dto.TabButtonDTO; -import cn.huge.module.cases.domain.dto.TabButtonInfoDTO; +import cn.huge.base.common.utils.ObjectUtils; +import cn.huge.module.cases.domain.dto.*; +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.mediate.constant.CaseBaseConsts; +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.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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Maps; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.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: 纠纷任务表业务逻辑处理 @@ -41,7 +58,23 @@ private CaseTaskMapper mapper; @Autowired + private CaseSuperviseService superviseService; + @Autowired private UtilsClientImpl utilsClient; + @Autowired + private CustClientImpl custClient; + @Autowired + private DispClientImpl dispClient; + @Autowired + private FlowInfoService flowInfoService; + @Autowired + private CaseInfoService caseInfoService; + @Autowired + private SysClientImpl sysClient; + @Autowired + private CaseInfoUnfoldService caseInfoUnfoldService; + @Autowired + private CaseWindupApplyService caseWindupApplyService; /** * 更新对象 @@ -140,105 +173,180 @@ */ public TabButtonDTO webGetTabButton(String caseTaskId, String userId){ try{ - // 临时给前端联调数据 - TabButtonDTO tabButtonDTO = new TabButtonDTO(); - List<TabButtonInfoDTO> tabList = new LinkedList<>(); + // 查询当前任务信息 + CaseTask caseTask = mapper.selectById(caseTaskId); + // 定义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); - 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); + // 根据流程显示tab + List<TabButtonInfoDTO> tabList = new LinkedList<>(); + // 根据流程显示button + List<TabButtonInfoDTO> buttonList = new LinkedList<>(); + if (ObjectUtils.isNotEmpty(caseTask)) { + if (FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex().equals(caseTask.getNodeId())) { + tabList.add(dslxq); + tabList.add(sqjl); + + buttonList.add(zxsl); + buttonList.add(jb); + buttonList.add(sb); + } + if (FlowNodeEnum.FLOW_NODE_ZJ_DSL.getIndex().equals(caseTask.getNodeId())) { + tabList.add(dslxq); + tabList.add(sqjl); + + buttonList.add(sl); + buttonList.add(ht); + } + if (FlowNodeEnum.FLOW_NODE_ZJ_HTSH.getIndex().equals(caseTask.getNodeId())) { + sxxq.setName("详情"); + tabList.add(sxxq); + tabList.add(sqjl); + tabList.add(htsh); + } + if (FlowNodeEnum.FLOW_NODE_QJ_SBSH.getIndex().equals(caseTask.getNodeId())) { + sxxq.setName("详情"); + tabList.add(sxxq); + tabList.add(sqjl); + tabList.add(sbsh); + } + if (FlowNodeEnum.FLOW_NODE_QJ_DFP.getIndex().equals(caseTask.getNodeId())) { + tabList.add(dslxq); + tabList.add(sqjl); + + buttonList.add(zxsl); + buttonList.add(jb); + buttonList.add(sb); + } + if (FlowNodeEnum.FLOW_NODE_QJ_DSL.getIndex().equals(caseTask.getNodeId())) { + tabList.add(dslxq); + tabList.add(sqjl); + + buttonList.add(sl); + buttonList.add(ht); + } + if (FlowNodeEnum.FLOW_NODE_QJ_HTSH.getIndex().equals(caseTask.getNodeId())) { + sxxq.setName("详情"); + tabList.add(sxxq); + tabList.add(sqjl); + tabList.add(htsh); + } + if (FlowNodeEnum.FLOW_NODE_SJ_SBSH.getIndex().equals(caseTask.getNodeId())) { + sxxq.setName("详情"); + tabList.add(sxxq); + tabList.add(sqjl); + tabList.add(sbsh); + } + if (FlowNodeEnum.FLOW_NODE_SJ_DFP.getIndex().equals(caseTask.getNodeId())) { + tabList.add(dslxq); + tabList.add(sqjl); + + buttonList.add(zxsl); + buttonList.add(jb); + } + if (FlowNodeEnum.FLOW_NODE_SJ_DSL.getIndex().equals(caseTask.getNodeId())) { + tabList.add(dslxq); + tabList.add(sqjl); + + buttonList.add(sl); + buttonList.add(ht); + } + if (FlowNodeEnum.FLOW_NODE_SJ_HTSH.getIndex().equals(caseTask.getNodeId())) { + sxxq.setName("详情"); + tabList.add(sxxq); + tabList.add(sqjl); + tabList.add(htsh); + } + if (FlowNodeEnum.FLOW_NODE_BLFK.getIndex().equals(caseTask.getNodeId())) { + tabList.add(sxxq); + tabList.add(sxbl); + tabList.add(sqjl); + + buttonList.add(tjbljl); + buttonList.add(lhczsq); + buttonList.add(jasq); + } + if (FlowNodeEnum.FLOW_NODE_JASH.getIndex().equals(caseTask.getNodeId())) { + tabList.add(sxxq); + tabList.add(sqjl); + tabList.add(jash); + } + if (FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex().equals(caseTask.getNodeId())) { + daxx.setName("信息"); + tabList.add(daxx); + tabList.add(lcdb); + tabList.add(sqjl); + } + if (FlowNodeEnum.FLOW_NODE_JAGD.getIndex().equals(caseTask.getNodeId())) { + tabList.add(daxx); + tabList.add(lcdb); + tabList.add(sqjl); + } + }else { + tabList.add(sxxq); + tabList.add(sqjl); + tabList.add(lhczsh); + } + // 封装数据 + TabButtonDTO tabButtonDTO = new TabButtonDTO(); + tabButtonDTO.setTabList(tabList); tabButtonDTO.setButtonList(buttonList); return tabButtonDTO; }catch (Exception e){ @@ -254,76 +362,64 @@ */ 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(); + CaseInfo caseInfo = caseInfoService.getById(caseId); lfdj.setNodeShowName("来访登记"); - lfdj.setHandleUnitName("白云区新市综治中心"); - lfdj.setHandleUserName("李晓明"); - lfdj.setTaskType(1); - lfdj.setStatus(2); + lfdj.setHandleUnitName(caseInfo.getInputUnitName()); + lfdj.setHandleUserName(caseInfo.getInputUserName()); + lfdj.setTaskType(CaseTaskConsts.TASK_TYPE_1); + lfdj.setStatus(CaseTaskConsts.TASK_STATUS_2); lfdj.setHandleTime(new Date()); handleCaseFlowList.add(lfdj); + // 查询承办组织任务 + QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); + caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_1).orderByDesc("create_time"); + List<CaseTask> handleCaseTaskList = mapper.selectList(caseTaskQueryWrapper); - 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); + for (CaseTask caseTask: handleCaseTaskList){ + CaseFlowDTO caseFlowDTO = new CaseFlowDTO(); + if (CaseTaskConsts.TASK_STATUS_1 == caseTask.getStatus()){ + caseFlowDTO.setProcessName(caseInfo.getProcessName()); + caseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); + caseFlowDTO.setTaskType(caseTask.getTaskType()); + caseFlowDTO.setStatus(caseTask.getStatus()); + }else { + caseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + caseFlowDTO.setHandleUnitName(caseTask.getHandleUnitName()); + caseFlowDTO.setHandleUserName(caseTask.getHandleUserName()); + caseFlowDTO.setHandleTime(caseTask.getHandleTime()); + caseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); + if (CaseTaskConsts.HANDLE_RESULT_1 == caseTask.getHandleResult()) { + caseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_1.getIndex()); + caseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_1.getDes()); + } + if (CaseTaskConsts.HANDLE_RESULT_2 == caseTask.getHandleResult()) { + caseFlowDTO.setAuditResult(AuditBaseConstsEnum.AUDIT_RESULT_2.getIndex()); + caseFlowDTO.setAuditResultName(AuditBaseConstsEnum.AUDIT_RESULT_2.getDes()); + } + } + handleCaseFlowList.add(caseFlowDTO); + } 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); + caseTaskQueryWrapper.clear(); + caseTaskQueryWrapper.eq("case_id", caseId).eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).orderByDesc("create_time"); + List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper); + for (CaseTask caseTask: assistCaseTaskList){ + CaseFlowDTO caseFlowDTO = new CaseFlowDTO(); + caseFlowDTO.setNodeShowName(caseTask.getNodeShowName()); + caseFlowDTO.setHandleUnitName(caseTask.getCandeUnitName()); + caseFlowDTO.setHandleTime(caseTask.getHandleTime()); + caseFlowDTO.setHandleNotes(caseTask.getHandleIllust()); + caseFlowDTO.setTaskType(caseTask.getTaskType()); + caseFlowDTO.setStatus(caseTask.getStatus()); + assistCaseFlowList.add(caseFlowDTO); + } result.put("assistCaseFlowList", assistCaseFlowList); return result; }catch (Exception e){ @@ -332,4 +428,862 @@ } } + /** + * 按条件统计 + * @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; + } + + /** + * wechat端-查询流程进度 + * @param caseId 纠纷编号 + * @return + */ + public List<CaseFlowDTO> wechatListCaseFlow(String caseId, String userId){ + try{ + // 临时给前端联调数据 + List<CaseFlowDTO> list = new ArrayList<>(); + QueryWrapper<CaseTask> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("case_id", caseId); + queryWrapper.orderByAsc("create_time"); + List<CaseTask> caseTasks = mapper.selectList(queryWrapper); + if(ObjectUtils.isNotEmpty(caseTasks)){ + for (CaseTask caseTask : caseTasks) { + CaseFlowDTO caseFlowDTO = new CaseFlowDTO(); + BeanUtils.copyProperties(caseTask, caseFlowDTO); + list.add(caseFlowDTO); + } + } + return list; + }catch (Exception e){ + log.error("[CaseTaskService.wechatListCaseFlow]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.wechatListCaseFlow", e); + } + } + + /** + * 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); + // 目前平台只能调度给组织 + 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); + 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_1); + 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 sdlCaseTask = new CaseTask(); + sdlCaseTask.setId(utilsClient.getNewTimeId()); + sdlCaseTask.setCaseId(caseInfo.getId()); + sdlCaseTask.setFlowableId(secondFlowNode.getFlowableId()); + sdlCaseTask.setProcessInstanceId(secondFlowNode.getProcessInstanceId()); + sdlCaseTask.setProcessTaskId(secondFlowNode.getProcessTaskId()); + sdlCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + sdlCaseTask.setNodeType(secondFlowNode.getNodeType()); + sdlCaseTask.setNodeId(secondFlowNode.getNodeId()); + sdlCaseTask.setNodeName(secondFlowNode.getNodeName()); + sdlCaseTask.setFlowId(secondFlowNode.getFlowId()); + sdlCaseTask.setNodeShowName(secondFlowNode.getNodeShowName()); + sdlCaseTask.setCaseTaskType(dfpCaseTask.getCaseTaskType()); + // 通过调度的,任务候选执行者类型是上一步骤选择 + sdlCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + sdlCaseTask.setCandeUnitId(caseDispBaseDTO.getTargetId()); + sdlCaseTask.setCandeUnitName(caseDispBaseDTO.getTargetName()); + // 系统调度给调解组织,需要签收 + sdlCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); + sdlCaseTask.setSignExpireTime(sysClient.getExpireTime(caseInfo.getCreateTime(), SyTimeEnum.SY_TIME_2.getIndex())); + sdlCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + sdlCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + sdlCaseTask.setCustId(caseInfo.getCustId()); + sdlCaseTask.setCreateTime(caseInfo.getCreateTime()); + sdlCaseTask.setUpdateTime(caseInfo.getUpdateTime()); + mapper.insert(sdlCaseTask); + // 更新纠纷信息 + 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 void webStartFlowZXSL(CaseInfo caseInfo, CtUserDTO loginUser){ + try{ + + }catch (Exception e){ + log.error("[CaseTaskService.webStartFlowZXSL]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webStartFlowZXSL", 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 blfkCaseTask = new CaseTask(); + blfkCaseTask.setId(utilsClient.getNewTimeId()); + blfkCaseTask.setCaseId(dfpCaseTask.getCaseId()); + blfkCaseTask.setFlowableId(newFlowNode.getFlowableId()); + blfkCaseTask.setProcessInstanceId(newFlowNode.getProcessInstanceId()); + blfkCaseTask.setProcessTaskId(newFlowNode.getProcessTaskId()); + blfkCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + blfkCaseTask.setNodeType(newFlowNode.getNodeType()); + blfkCaseTask.setNodeId(newFlowNode.getNodeId()); + blfkCaseTask.setNodeName(newFlowNode.getNodeName()); + blfkCaseTask.setFlowId(newFlowNode.getFlowId()); + blfkCaseTask.setNodeShowName(newFlowNode.getNodeShowName()); + blfkCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); + // 受理任务,任务候选执行者类型是上一步骤选择 + blfkCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + blfkCaseTask.setCandeUnitId(dslUnitDTO.getId()); + blfkCaseTask.setCandeUnitName(dslUnitDTO.getUnitName()); + // 分派的任务,需要签收 + blfkCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); + blfkCaseTask.setSignExpireTime(sysClient.getExpireTime(nowDate, SyTimeEnum.SY_TIME_2.getIndex())); + blfkCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + blfkCaseTask.setCustId(dfpCaseTask.getCustId()); + blfkCaseTask.setCreateTime(nowDate); + blfkCaseTask.setUpdateTime(nowDate); + mapper.insert(blfkCaseTask); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(blfkCaseTask.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()); + 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::getUitId). + collect(Collectors.joining(BaseConsts.COMMA)); + for (AssignAssistUnitDTO assignAssistUnitDTO: assignTaskDTO.getAssistUnitList()){ + // 创建交办配合组织任务 + CaseTask jbAssistCaseTask = new CaseTask(); + jbAssistCaseTask.setId(utilsClient.getNewTimeId()); + jbAssistCaseTask.setCaseId(dfpCaseTask.getCaseId()); + jbAssistCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + jbAssistCaseTask.setNodeName("交办配合部门"); + jbAssistCaseTask.setNodeShowName("交办配合部门"); + jbAssistCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2); + // 配合任务,任务候选执行者类型是上一步骤选择 + jbAssistCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + jbAssistCaseTask.setCandeUnitId(loginUser.getUnitId()); + jbAssistCaseTask.setCandeUnitName(loginUser.getUnitName()); + jbAssistCaseTask.setHandleUnitId(loginUser.getUnitId()); + jbAssistCaseTask.setHandleUnitName(loginUser.getUnitId()); + jbAssistCaseTask.setHandleUserId(loginUser.getId()); + jbAssistCaseTask.setHandleUserName(loginUser.getTrueName()); + jbAssistCaseTask.setHandleContent(assignTaskDTO.getAssignContent()); + jbAssistCaseTask.setHandleIllust("派单至:"+assignTaskDTO.getHandleUnitName()); + jbAssistCaseTask.setHandleTime(nowDate); + // 不需要签收 + jbAssistCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0); + jbAssistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2); + jbAssistCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + jbAssistCaseTask.setCustId(dfpCaseTask.getCustId()); + jbAssistCaseTask.setCreateTime(nowDate); + jbAssistCaseTask.setUpdateTime(nowDate); + mapper.insert(jbAssistCaseTask); + // 创建配合组织任务 + CaseTask assistCaseTask = new CaseTask(); + assistCaseTask.setId(utilsClient.getNewTimeId()); + assistCaseTask.setCaseId(dfpCaseTask.getCaseId()); + assistCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1); + assistCaseTask.setNodeId(FlowNodeEnum.FLOW_NODE_BLFK.getIndex()); + assistCaseTask.setNodeName(FlowNodeEnum.FLOW_NODE_BLFK.getDes()); + assistCaseTask.setNodeShowName(FlowNodeEnum.FLOW_NODE_BLFK.getIndex()); + assistCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_2); + // 配合任务,任务候选执行者类型是上一步骤选择 + assistCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); + assistCaseTask.setCandeUnitId(assignAssistUnitDTO.getUitId()); + assistCaseTask.setCandeUnitName(assignAssistUnitDTO.getUitName()); + assistCaseTask.setHandleUnitId(assignAssistUnitDTO.getUitId()); + assistCaseTask.setHandleUnitName(assignAssistUnitDTO.getUitName()); + // 分派的任务,需要签收 + assistCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_1); + assistCaseTask.setSignExpireTime(sysClient.getExpireTime(nowDate, SyTimeEnum.SY_TIME_2.getIndex())); + assistCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_1); + assistCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + assistCaseTask.setCustId(dfpCaseTask.getCustId()); + assistCaseTask.setCreateTime(nowDate); + assistCaseTask.setUpdateTime(nowDate); + mapper.insert(assistCaseTask); + } + // 更新纠纷扩展信息 + CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); + caseInfoUnfoldPO.setId(blfkCaseTask.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 signTaskDTO 签收任务表单 + * @param userId 当前登录用户 + */ + public void webSign(SignTaskDTO signTaskDTO, String userId){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 获取当前登录用户 + CtUserDTO loginUser = custClient.clientGetUserAll(userId); + // 更新纠纷任务信息 + CaseTask caseTaskPO = new CaseTask(); + caseTaskPO.setId(signTaskDTO.getCaseTaskId()); + 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); + // 更新纠纷信息 + CaseInfo caseInfoPO = new CaseInfo(); + caseInfoPO.setId(signTaskDTO.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 void 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.setHandleUserName(loginUser.getTrueName()); + dslCaseTaskPO.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1); + dslCaseTaskPO.setHandleTime(nowDate); + dslCaseTaskPO.setUpdateTime(nowDate); + mapper.updateCaseTask(dslCaseTaskPO); + // 完成当前待受理工作流任务 + FlowNode newFlowNode = flowInfoService.completeTask(dslCaseTask.getFlowableId(), dslCaseTask.getProcessTaskId(), + FlowableConsts.OPERATION_sl, 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(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); + blfkCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + blfkCaseTask.setCustId(dslCaseTask.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()); + 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); + }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.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.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(nowDate); + jashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + jashCaseTask.setCustId(jasqCaseTask.getCustId()); + jashCaseTask.setCreateTime(nowDate); + jashCaseTask.setUpdateTime(nowDate); + 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); + dsrpjCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + dsrpjCaseTask.setCustId(jashCaseTask.getCustId()); + dsrpjCaseTask.setCreateTime(nowDate); + dsrpjCaseTask.setUpdateTime(nowDate); + 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); + jashCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0); + jashCaseTask.setCustId(jasqCaseTask.getCustId()); + jashCaseTask.setCreateTime(nowDate); + jashCaseTask.setUpdateTime(nowDate); + 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.setCloseTime(nowDate); + caseInfoUnfoldPO.setUpdateTime(nowDate); + caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); + } + }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.setAuditTime(nowDate); + caseWindupApply.setUpdateTime(nowDate); + caseWindupApplyService.saveCaseWindupApply(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.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); + 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.setMediResult(caseWindupApply.getMediResult()); + caseInfoUnfoldPO.setMediResultName(caseWindupApply.getMediResultName()); + caseInfoUnfoldPO.setAgreeType(caseWindupApply.getAgreeType()); + caseInfoUnfoldPO.setAgreeTypeName(caseWindupApply.getAgreeTypeName()); + caseInfoUnfoldPO.setAgreeContent(caseWindupApply.getAgreeContent()); + caseInfoUnfoldPO.setWindupContent(caseWindupApply.getWindupContent()); + caseInfoUnfoldPO.setCloseTime(nowDate); + caseInfoUnfoldPO.setUpdateTime(nowDate); + caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); + }else { + // 审核不通过,回退办理反馈任务 + // 完成当前结案审核任务 + CaseTask 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.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); + 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); + // 更新纠纷扩展信息 + CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); + caseInfoUnfoldPO.setId(blfkCaseTask.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); + } + }catch (Exception e){ + log.error("[CaseTaskService.webWindupApply]调用失败,异常信息:"+e, e); + throw new ServiceException("CaseTaskService.webWindupApply", e); + } + } + } -- Gitblit v1.8.0