From 77bd7b9e79a01a31c0eb26e4978dcbdf3b4debe2 Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Tue, 22 Oct 2024 00:10:52 +0800
Subject: [PATCH] fix:解纷态势,镇街显示区问题修改
---
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 208 insertions(+), 0 deletions(-)
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java
index f1086fd..29b9c33 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java
@@ -3,9 +3,23 @@
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.consts.CaseTaskConsts;
+import cn.huge.module.cases.domain.po.CaseInfo;
+import cn.huge.module.cases.domain.po.CaseTask;
+import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.cases.dao.mapper.CaseEvaluateMapper;
import cn.huge.module.cases.domain.po.CaseEvaluate;
+import cn.huge.module.constant.BaseConsts;
+import cn.huge.module.cust.dto.PaUserDTO;
+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.CaseInfoProcessBaseConstsEnum;
+import cn.huge.module.mediate.constant.CaseProcessBaseConstsEnum;
+import cn.huge.module.mediate.constant.CaseStatusBaseConstsEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -39,6 +53,15 @@
@Autowired
private UtilsClientImpl utilsClient;
+
+ @Autowired
+ private CustClientImpl custClient;
+ @Autowired
+ private CaseTaskService caseTaskService;
+ @Autowired
+ private FlowInfoService flowInfoService;
+ @Autowired
+ private CaseInfoService caseInfoService;
/**
* 更新对象
@@ -130,4 +153,189 @@
}
}
+ /**
+ * 新增或更新对象
+ * @param caseEvaluate 实体对象
+ */
+ public void saveCaseEvaluateWechat(CaseEvaluate caseEvaluate,String userId){
+ try{
+ PaUserDTO loginUser = custClient.paclientGetUser(userId);
+ Date nowDate = DateUtils.getNowDate();
+ // 判断是否新增
+ if (IdUtils.checkNewId(caseEvaluate.getId())){
+ caseEvaluate.setId(utilsClient.getNewTimeId());
+ caseEvaluate.setCreateTime(nowDate);
+ caseEvaluate.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+ }
+ caseEvaluate.setEvaluateUserId(loginUser.getId());
+ caseEvaluate.setEvaluateUserName(loginUser.getTrueName());
+ caseEvaluate.setCustId(loginUser.getCustId());
+ caseEvaluate.setUpdateTime(nowDate);
+ this.saveOrUpdate(caseEvaluate);
+ // 查询当事人评价节点任务
+ QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>();
+ caseTaskQueryWrapper.eq("case_id", caseEvaluate.getCaseId())
+ .eq("node_id", FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex())
+ .eq("status", CaseTaskConsts.TASK_STATUS_1);
+ CaseTask dsrpjCaseTask = caseTaskService.getOne(caseTaskQueryWrapper);
+ // 完成当前当事人评价节点任务
+ dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
+ dsrpjCaseTask.setHandleUnitId(dsrpjCaseTask.getCandeUnitId());
+ dsrpjCaseTask.setHandleUnitName(dsrpjCaseTask.getCandeUnitName());
+ dsrpjCaseTask.setHandleUserId(loginUser.getId());
+ dsrpjCaseTask.setHandleUserName(loginUser.getTrueName()+"(当事人)");
+ dsrpjCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
+ dsrpjCaseTask.setHandleTime(nowDate);
+ dsrpjCaseTask.setUpdateTime(nowDate);
+ caseTaskService.updateCaseTask(dsrpjCaseTask);
+ // 完成当前当事人评价工作流节点任务,进入结案归档节点
+ FlowNode jagdFlowNode = flowInfoService.completeTask(dsrpjCaseTask.getFlowableId(), dsrpjCaseTask.getProcessTaskId(),
+ FlowableConsts.OPERATION_forward, userId);
+ // 创建并完成结案归档任务
+ CaseTask jagdCaseTask = new CaseTask();
+ jagdCaseTask.setId(utilsClient.getNewTimeId());
+ jagdCaseTask.setCaseId(caseEvaluate.getCaseId());
+ jagdCaseTask.setFlowableId(jagdFlowNode.getFlowableId());
+ jagdCaseTask.setProcessInstanceId(jagdFlowNode.getProcessInstanceId());
+ jagdCaseTask.setProcessTaskId(jagdFlowNode.getProcessTaskId());
+ jagdCaseTask.setNodeType(jagdFlowNode.getNodeType());
+ jagdCaseTask.setNodeId(jagdFlowNode.getNodeId());
+ jagdCaseTask.setNodeName(jagdFlowNode.getNodeName());
+ jagdCaseTask.setFlowId(jagdFlowNode.getFlowId());
+ jagdCaseTask.setNodeShowName(jagdFlowNode.getNodeShowName());
+ jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
+ // 任务所属单位:结案申请组织
+ caseTaskQueryWrapper.clear();
+ caseTaskQueryWrapper.eq("case_id", caseEvaluate.getCaseId())
+ .eq("node_id", FlowNodeEnum.FLOW_NODE_JASQ.getIndex())
+ .eq("status", CaseTaskConsts.TASK_STATUS_2).orderByDesc("create_time");
+ List<CaseTask> jasqCaseTaskList = caseTaskService.list(caseTaskQueryWrapper);
+ jagdCaseTask.setCandeUnitId(jasqCaseTaskList.get(0).getHandleUnitId());
+ jagdCaseTask.setCandeUnitName(jasqCaseTaskList.get(0).getHandleUnitName());
+ // 受理后的任务,不需要签收
+ jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
+ jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
+ // 任务处理时限
+ if (jagdFlowNode.getExpire() != 0) {
+ jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, jagdFlowNode.getExpire()));
+ }
+ jagdCaseTask.setHandleUnitId(jasqCaseTaskList.get(0).getHandleUnitId());
+ jagdCaseTask.setHandleUnitName(jasqCaseTaskList.get(0).getHandleUnitName());
+ jagdCaseTask.setHandleDeptId(jasqCaseTaskList.get(0).getHandleDeptId());
+ jagdCaseTask.setHandleDeptName(jasqCaseTaskList.get(0).getHandleDeptName());
+ jagdCaseTask.setHandleUserId(jasqCaseTaskList.get(0).getHandleUserId());
+ jagdCaseTask.setHandleUserName(jasqCaseTaskList.get(0).getHandleUserName());
+ jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
+ jagdCaseTask.setHandleTime(nowDate);
+ jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+ jagdCaseTask.setCustId(dsrpjCaseTask.getCustId());
+ jagdCaseTask.setCreateTime(nowDate);
+ jagdCaseTask.setUpdateTime(nowDate);
+ caseTaskService.save(jagdCaseTask);
+ // 结束工作流流程
+ flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(),
+ FlowableConsts.OPERATION_forward, jasqCaseTaskList.get(0).getHandleUserId());
+ // 更新纠纷信息
+ CaseInfo caseInfoPO = new CaseInfo();
+ caseInfoPO.setId(dsrpjCaseTask.getCaseId());
+ caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_7.getIndex());
+ caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_7.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("[CaseEvaluateService.saveCaseEvaluateWechat]调用失败,异常信息:"+e, e);
+ throw new ServiceException("CaseEvaluateService.saveCaseEvaluateWechat", e);
+ }
+ }
+
+
+ /**
+ * 超时跳过评价
+ * @param idList 超时事件编号
+ */
+ public void autoArchive(List<String>idList){
+ try{
+ Date nowDate = DateUtils.getNowDate();
+ // 查询当事人评价任务
+ QueryWrapper<CaseTask> caseTaskQueryWrapper = new QueryWrapper<>();
+ caseTaskQueryWrapper.in("case_id", idList).eq("node_id", FlowNodeEnum.FLOW_NODE_DSRPJ.getIndex());
+ List<CaseTask> dsrpjCaseTaskList = caseTaskService.list(caseTaskQueryWrapper);
+ for(CaseTask dsrpjCaseTask: dsrpjCaseTaskList){
+ // 完成当前当事人评价节点任务
+ dsrpjCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
+ dsrpjCaseTask.setHandleUserId(dsrpjCaseTask.getCandeUserId());
+ dsrpjCaseTask.setHandleUserName(dsrpjCaseTask.getCandeUserName());
+ dsrpjCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
+ dsrpjCaseTask.setHandleIllust("规定时间内未评价");
+ dsrpjCaseTask.setHandleTime(nowDate);
+ dsrpjCaseTask.setUpdateTime(nowDate);
+ caseTaskService.updateCaseTask(dsrpjCaseTask);
+ // 完成当前当事人评价工作流节点任务,进入结案归档节点
+ FlowNode jagdFlowNode = flowInfoService.completeTask(dsrpjCaseTask.getFlowableId(), dsrpjCaseTask.getProcessTaskId(),
+ FlowableConsts.OPERATION_forward, "系统自动");
+ // 创建并完成结案归档任务
+ CaseTask jagdCaseTask = new CaseTask();
+ jagdCaseTask.setId(utilsClient.getNewTimeId());
+ jagdCaseTask.setCaseId(dsrpjCaseTask.getCaseId());
+ jagdCaseTask.setFlowableId(jagdFlowNode.getFlowableId());
+ jagdCaseTask.setProcessInstanceId(jagdFlowNode.getProcessInstanceId());
+ jagdCaseTask.setProcessTaskId(jagdFlowNode.getProcessTaskId());
+ jagdCaseTask.setNodeType(jagdFlowNode.getNodeType());
+ jagdCaseTask.setNodeId(jagdFlowNode.getNodeId());
+ jagdCaseTask.setNodeName(jagdFlowNode.getNodeName());
+ jagdCaseTask.setFlowId(jagdFlowNode.getFlowId());
+ jagdCaseTask.setNodeShowName(jagdFlowNode.getNodeShowName());
+ jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
+ // 任务所属单位:结案申请组织
+ caseTaskQueryWrapper.clear();
+ caseTaskQueryWrapper.eq("case_id", dsrpjCaseTask.getCaseId())
+ .eq("node_id", FlowNodeEnum.FLOW_NODE_JASQ.getIndex())
+ .eq("status", CaseTaskConsts.TASK_STATUS_2).orderByDesc("create_time");
+ List<CaseTask> jasqCaseTaskList = caseTaskService.list(caseTaskQueryWrapper);
+ jagdCaseTask.setCandeUnitId(jasqCaseTaskList.get(0).getHandleUnitId());
+ jagdCaseTask.setCandeUnitName(jasqCaseTaskList.get(0).getHandleUnitName());
+ // 受理后的任务,不需要签收
+ jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
+ jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
+ // 任务处理时限
+ if (jagdFlowNode.getExpire() != 0) {
+ jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, jagdFlowNode.getExpire()));
+ }
+ jagdCaseTask.setHandleUnitId(jasqCaseTaskList.get(0).getHandleUnitId());
+ jagdCaseTask.setHandleUnitName(jasqCaseTaskList.get(0).getHandleUnitName());
+ jagdCaseTask.setHandleDeptId(jasqCaseTaskList.get(0).getHandleDeptId());
+ jagdCaseTask.setHandleDeptName(jasqCaseTaskList.get(0).getHandleDeptName());
+ jagdCaseTask.setHandleUserId(jasqCaseTaskList.get(0).getHandleUserId());
+ jagdCaseTask.setHandleUserName(jasqCaseTaskList.get(0).getHandleUserName());
+ jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_0);
+ jagdCaseTask.setHandleTime(nowDate);
+ jagdCaseTask.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+ jagdCaseTask.setCustId(dsrpjCaseTask.getCustId());
+ jagdCaseTask.setCreateTime(nowDate);
+ jagdCaseTask.setUpdateTime(nowDate);
+ caseTaskService.save(jagdCaseTask);
+ // 结束工作流流程
+ flowInfoService.completeTask(jagdCaseTask.getFlowableId(), jagdCaseTask.getProcessTaskId(),
+ FlowableConsts.OPERATION_jb_zszz, jasqCaseTaskList.get(0).getHandleUserId());
+ // 更新纠纷信息
+ CaseInfo caseInfoPO = new CaseInfo();
+ caseInfoPO.setId(dsrpjCaseTask.getCaseId());
+ caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_7.getIndex());
+ caseInfoPO.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_7.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("[CaseEvaluateService.autoArchive]调用失败,异常信息:"+e, e);
+ throw new ServiceException("CaseEvaluateService.autoArchive", e);
+ }
+ }
}
--
Gitblit v1.8.0