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