From 9b540b646aa7171d3d3ba707457b86445dc71dc7 Mon Sep 17 00:00:00 2001 From: liyj <1003249715@qq.com> Date: Mon, 09 Sep 2024 20:04:23 +0800 Subject: [PATCH] 1、事件流转相关接口优化 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 823 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 814 insertions(+), 9 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 a362a4f..ad778e5 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 @@ -4,30 +4,45 @@ import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.IdUtils; import cn.huge.base.common.utils.ObjectUtils; -import cn.huge.module.cases.domain.dto.CaseFlowDTO; -import cn.huge.module.cases.domain.dto.TabButtonDTO; -import cn.huge.module.cases.domain.dto.TabButtonInfoDTO; +import cn.huge.module.cases.domain.dto.*; +import cn.huge.module.cases.domain.po.CaseInfo; +import cn.huge.module.cases.domain.po.CaseInfoUnfold; +import cn.huge.module.cases.domain.po.CaseWindupApply; 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.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: 纠纷任务表业务逻辑处理 @@ -46,13 +61,23 @@ 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; /** * 更新对象 @@ -385,4 +410,784 @@ 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.setHandleContent("派单至:"+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.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())){ + for (AssignAssistUnitDTO assignAssistUnitDTO: assignTaskDTO.getAssistUnitList()){ + // 创建配合组织任务 + 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.getIndex()); + assistCaseTask.setFlowId(newFlowNode.getFlowId()); + 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.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); + } + // 拼接配合组织编号和名称 + 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)); + + } + }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.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(blfkCaseTaskPO.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(blfkCaseTaskPO.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(blfkCaseTaskPO.getCustId()); + jashCaseTask.setCreateTime(nowDate); + jashCaseTask.setUpdateTime(nowDate); + mapper.insert(jashCaseTask); + // 更新结案申请信息 + caseWindupApply.setApplyStatus(AuditBaseConsts.AUDIT_STATUS_0); + caseWindupApply.setCaseTaskId(jashCaseTask.getId()); + caseWindupApply.setAuditUnitId(jashCaseTask.getHandleUnitId()); + caseWindupApply.setAuditUnitName(jashCaseTask.getHandleUnitName()); + 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