| | |
| | | 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.dto.*; |
| | | import cn.huge.module.cases.domain.po.*; |
| | | import cn.huge.module.client.api.impl.CustClientImpl; |
| | | import cn.huge.module.client.api.impl.DispClientImpl; |
| | |
| | | import cn.huge.module.cust.dto.CtUserDTO; |
| | | import cn.huge.module.mediate.constant.AuditBaseConsts; |
| | | import cn.huge.module.mediate.constant.AuditBaseConstsEnum; |
| | | import cn.huge.module.mediate.constant.CaseBaseConsts; |
| | | import cn.huge.module.disp.constant.DispBaseConstsEnum; |
| | | import cn.huge.module.disp.dto.CaseDispBaseDTO; |
| | | import cn.huge.module.disp.dto.DispCaseBaseDTO; |
| | |
| | | import org.apache.commons.collections.CollectionUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.domain.Sort; |
| | | import org.springframework.stereotype.Service; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.data.domain.Page; |
| | |
| | | import org.springframework.data.domain.PageRequest; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | | import java.time.temporal.ChronoUnit; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | throw new ServiceException("CaseTaskService.pageMyTaskQs", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 首页-待审核分页查询 |
| | | * @param caseId 事项编号 |
| | | * @return Page |
| | | */ |
| | | public List<Object> listMyApplyRecord(String caseId){ |
| | | try { |
| | | QueryWrapper<CaseReturn> caseReturnQueryWrapper = new QueryWrapper<>(); |
| | | caseReturnQueryWrapper.eq("case_id", caseId); |
| | | List<CaseReturn>caseReturnList = caseReturnService.list(caseReturnQueryWrapper); |
| | | |
| | | QueryWrapper<CaseAppear> caseAppearQueryWrapper = new QueryWrapper<>(); |
| | | caseAppearQueryWrapper.eq("case_id", caseId); |
| | | List<CaseAppear>caseAppearList = caseAppearService.list(caseAppearQueryWrapper); |
| | | |
| | | QueryWrapper<CaseWindupApply> caseWindupApplyQueryWrapper = new QueryWrapper<>(); |
| | | caseWindupApplyQueryWrapper.eq("case_id", caseId); |
| | | List<CaseWindupApply>caseWindupApplyList = caseWindupApplyService.list(caseWindupApplyQueryWrapper); |
| | | |
| | | QueryWrapper<CaseAssistApply> caseAssistApplyQueryWrapper = new QueryWrapper<>(); |
| | | caseAssistApplyQueryWrapper.eq("case_id", caseId); |
| | | List<CaseAssistApply>caseAssistApplyList = caseAssistApplyService.list(caseAssistApplyQueryWrapper); |
| | | List<SortUtilDTO> sortUtilDTOList = new ArrayList<>(); |
| | | for(CaseReturn caseReturn: caseReturnList){ |
| | | SortUtilDTO sortUtilDTO = new SortUtilDTO(); |
| | | sortUtilDTO.setObject(caseReturn); |
| | | sortUtilDTO.setDate(caseReturn.getCreateTime()); |
| | | sortUtilDTO.setType("回退申请"); |
| | | sortUtilDTOList.add(sortUtilDTO); |
| | | } |
| | | for(CaseAppear caseAppear: caseAppearList){ |
| | | SortUtilDTO sortUtilDTO = new SortUtilDTO(); |
| | | sortUtilDTO.setObject(caseAppear); |
| | | sortUtilDTO.setDate(caseAppear.getCreateTime()); |
| | | sortUtilDTO.setType("上报申请"); |
| | | sortUtilDTOList.add(sortUtilDTO); |
| | | } |
| | | for(CaseWindupApply caseWindupApply: caseWindupApplyList){ |
| | | SortUtilDTO sortUtilDTO = new SortUtilDTO(); |
| | | sortUtilDTO.setObject(caseWindupApply); |
| | | sortUtilDTO.setDate(caseWindupApply.getCreateTime()); |
| | | sortUtilDTO.setType("结案申请"); |
| | | sortUtilDTOList.add(sortUtilDTO); |
| | | } |
| | | for(CaseAssistApply caseAssistApply: caseAssistApplyList){ |
| | | SortUtilDTO sortUtilDTO = new SortUtilDTO(); |
| | | sortUtilDTO.setObject(caseAssistApply); |
| | | sortUtilDTO.setDate(caseAssistApply.getCreateTime()); |
| | | sortUtilDTO.setType("联合处置申请"); |
| | | sortUtilDTOList.add(sortUtilDTO); |
| | | } |
| | | sortUtilDTOList.sort(Comparator.comparing(SortUtilDTO::getDate)); |
| | | List<Object> resultList = new ArrayList<>(); |
| | | for(SortUtilDTO sortUtilDTO: sortUtilDTOList){ |
| | | resultList.add(sortUtilDTO); |
| | | } |
| | | return resultList; |
| | | }catch (Exception e) { |
| | | log.error("[CaseTaskService.pageMyTaskQs]调用失败,异常信息:" + e, e); |
| | | throw new ServiceException("CaseTaskService.pageMyTaskQs", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * wechat端-查询流程进度 |
| | | * @param caseId 纠纷编号 |
| | |
| | | */ |
| | | public void webStartFlowZXSL(CaseInfo caseInfo, CtUserDTO loginUser){ |
| | | try{ |
| | | // 启动自行手里工作流 |
| | | // 启动自行受理工作流 |
| | | FlowNode firstFlowNode = flowInfoService.startFlow(FlowableConsts.FLOWABLE_ID_ZXSL, caseInfo.getId()); |
| | | // 进入第1个节点-办理反馈 |
| | | CaseTask blfkCaseTask = new CaseTask(); |
| | |
| | | CtUserDTO loginUser = custClient.clientGetUserAll(userId); |
| | | List<String> taskIdList = new ArrayList<>(); |
| | | List<String> caseIdList = new ArrayList<>(); |
| | | |
| | | // 更新纠纷任务信息 |
| | | CaseTask caseTaskPO = new CaseTask(); |
| | | caseTaskPO.setSignStatus(CaseTaskConsts.SIGN_STATUS_2); |
| | | caseTaskPO.setSignTime(nowDate); |
| | | caseTaskPO.setSignUserId(loginUser.getId()); |
| | | caseTaskPO.setSignUserName(loginUser.getTrueName()); |
| | | caseTaskPO.setHandleIllust("已签收"); |
| | | caseTaskPO.setUpdateTime(nowDate); |
| | | |
| | | // 更新纠纷信息 |
| | | CaseInfo caseInfoPO = new CaseInfo(); |
| | | 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); |
| | | |
| | | for(SignTaskDTO signTaskDTO: signTaskDTOList){ |
| | | taskIdList.add(signTaskDTO.getCaseTaskId()); |
| | | caseIdList.add(signTaskDTO.getCaseId()); |
| | | for (SignTaskDTO signTaskDTO: signTaskDTOList){ |
| | | CaseTask qsCaseTask = mapper.selectById(signTaskDTO.getCaseId()); |
| | | // 更新纠纷任务信息 |
| | | CaseTask caseTaskPO = new CaseTask(); |
| | | 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.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); |
| | | } |
| | | } |
| | | mapper.updateCaseTaskList(caseTaskPO, taskIdList); |
| | | caseInfoService.updateCaseInfoList(caseInfoPO, caseIdList); |
| | | }catch (Exception e){ |
| | | log.error("[CaseTaskService.webSign]调用失败,异常信息:"+e, e); |
| | | throw new ServiceException("CaseTaskService.webSign", e); |
| | |
| | | blfkCaseTask.setNodeName(newFlowNode.getNodeName()); |
| | | blfkCaseTask.setFlowId(newFlowNode.getFlowId()); |
| | | blfkCaseTask.setNodeShowName(newFlowNode.getNodeShowName()); |
| | | blfkCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1); |
| | | blfkCaseTask.setCaseTaskType(dslCaseTask.getCaseTaskType()); |
| | | // 受理任务,任务候选执行者类型是上一步骤选择 |
| | | blfkCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1); |
| | | blfkCaseTask.setCandeUnitId(loginUser.getUnitId()); |
| | |
| | | blfkCaseTask.setCreateTime(nowDate); |
| | | blfkCaseTask.setUpdateTime(nowDate); |
| | | mapper.insert(blfkCaseTask); |
| | | // 更新纠纷信息 |
| | | CaseInfo caseInfoPO = new CaseInfo(); |
| | | caseInfoPO.setId(blfkCaseTask.getCaseId()); |
| | | caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_4.getIndex()); |
| | | caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_4.getDes()); |
| | | caseInfoPO.setProcess(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getIndex()); |
| | | caseInfoPO.setProcessName(CaseProcessBaseConstsEnum.getByStatus(caseInfoPO.getStatus()).getDes()); |
| | | caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex()); |
| | | caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); |
| | | caseInfoService.updateCaseInfo(caseInfoPO); |
| | | // 更新纠纷扩展信息 |
| | | CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); |
| | | caseInfoUnfoldPO.setId(blfkCaseTask.getCaseId()); |
| | | caseInfoUnfoldPO.setAcceptTime(nowDate); |
| | | caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId()); |
| | | caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName()); |
| | | caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); |
| | | // 承办部门签收才更新纠纷信息 |
| | | 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()); |
| | | caseInfoService.updateCaseInfo(caseInfoPO); |
| | | // 更新纠纷扩展信息 |
| | | CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); |
| | | caseInfoUnfoldPO.setId(blfkCaseTask.getCaseId()); |
| | | caseInfoUnfoldPO.setAcceptTime(nowDate); |
| | | caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId()); |
| | | caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName()); |
| | | caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("[CaseTaskService.webAccept]调用失败,异常信息:"+e, e); |
| | | throw new ServiceException("CaseTaskService.webAccept", e); |
| | |
| | | caseInfoUnfoldPO.setUpdateTime(nowDate); |
| | | caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); |
| | | } |
| | | // 查询配合部门的任务,全部结束流程 |
| | | QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>(); |
| | | caseTaskQueryWrapper.eq("case_task_type", CaseTaskConsts.CASE_TASK_TYPE_2).eq("case_id", jasqCaseTask.getCaseId()); |
| | | List<CaseTask> assistCaseTaskList = mapper.selectList(caseTaskQueryWrapper); |
| | | for (CaseTask assistCaseTask: assistCaseTaskList){ |
| | | // 完成配合部门当前办理反馈任务 |
| | | assistCaseTask.setId(caseWindupApply.getCaseTaskId()); |
| | | 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.completeTask(assistCaseTask.getFlowableId(), assistCaseTask.getProcessTaskId(), |
| | | FlowableConsts.OPERATION_forward, userId); |
| | | |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("[CaseTaskService.webWindupApply]调用失败,异常信息:"+e, e); |
| | | throw new ServiceException("CaseTaskService.webWindupApply", e); |
| | |
| | | } |
| | | |
| | | /** |
| | | * web端任务处理-上报 |
| | | * web端任务处理-回退申请 |
| | | * @param caseReturn 回退申请表单 |
| | | * @param userId 当前登录用户 |
| | | */ |
| | |
| | | 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()); |
| | |
| | | // 新建待分派任务 |
| | | CaseTask dfphCaseTask = new CaseTask(); |
| | | dfphCaseTask.setId(utilsClient.getNewTimeId()); |
| | | dfphCaseTask.setCaseId(dfphCaseTask.getCaseId()); |
| | | dfphCaseTask.setCaseId(htshCaseTask.getCaseId()); |
| | | dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId()); |
| | | dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId()); |
| | | dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId()); |
| | |
| | | mapper.insert(dfphCaseTask); |
| | | // 更新纠纷信息 |
| | | CaseInfo caseInfoPO = new CaseInfo(); |
| | | caseInfoPO.setId(dfphCaseTask.getCaseId()); |
| | | 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()); |
| | |
| | | // 新建待分派任务 |
| | | CaseTask dfphCaseTask = new CaseTask(); |
| | | dfphCaseTask.setId(utilsClient.getNewTimeId()); |
| | | dfphCaseTask.setCaseId(dfphCaseTask.getCaseId()); |
| | | dfphCaseTask.setCaseId(sbshCaseTask.getCaseId()); |
| | | dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId()); |
| | | dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId()); |
| | | dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId()); |
| | |
| | | mapper.insert(dfphCaseTask); |
| | | // 更新纠纷信息 |
| | | CaseInfo caseInfoPO = new CaseInfo(); |
| | | caseInfoPO.setId(dfphCaseTask.getCaseId()); |
| | | 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()); |
| | |
| | | // 新建待分派任务 |
| | | CaseTask dfphCaseTask = new CaseTask(); |
| | | dfphCaseTask.setId(utilsClient.getNewTimeId()); |
| | | dfphCaseTask.setCaseId(dfphCaseTask.getCaseId()); |
| | | dfphCaseTask.setCaseId(sbshCaseTask.getCaseId()); |
| | | dfphCaseTask.setFlowableId(dfpFlowNode.getFlowableId()); |
| | | dfphCaseTask.setProcessInstanceId(dfpFlowNode.getProcessInstanceId()); |
| | | dfphCaseTask.setProcessTaskId(dfpFlowNode.getProcessTaskId()); |