From b311ca2f01e9602c1bf8caab04b4d641b314e341 Mon Sep 17 00:00:00 2001
From: liyj <15602261488@163.com>
Date: Sun, 29 Sep 2024 12:48:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/gzdyh_test' into gzdyh_test

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java |  115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 115 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..6a4667f 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,96 @@
         }
     }
 
+    /**
+     * 新增或更新对象
+     * @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());
+            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_1);
+            dsrpjCaseTask.setHandleTime(nowDate);
+            dsrpjCaseTask.setUpdateTime(nowDate);
+            caseTaskService.updateCaseTask(dsrpjCaseTask);
+            // 完成当前当事人评价工作流任务
+            FlowNode dsrpjFlowNode = flowInfoService.completeTask(dsrpjCaseTask.getFlowableId(), dsrpjCaseTask.getProcessTaskId(),
+                    FlowableConsts.OPERATION_forward, userId);
+            // 默认完成结案归档任务
+            CaseTask jagdCaseTask = new CaseTask();
+            jagdCaseTask.setId(utilsClient.getNewTimeId());
+            jagdCaseTask.setCaseId(caseEvaluate.getCaseId());
+            jagdCaseTask.setFlowableId(dsrpjFlowNode.getFlowableId());
+            jagdCaseTask.setProcessInstanceId(dsrpjFlowNode.getProcessInstanceId());
+            jagdCaseTask.setProcessTaskId(dsrpjFlowNode.getProcessTaskId());
+            jagdCaseTask.setTaskType(CaseTaskConsts.TASK_TYPE_1);
+            jagdCaseTask.setNodeType(dsrpjFlowNode.getNodeType());
+            jagdCaseTask.setNodeId(dsrpjFlowNode.getNodeId());
+            jagdCaseTask.setNodeName(dsrpjFlowNode.getNodeName());
+            jagdCaseTask.setFlowId(dsrpjFlowNode.getFlowId());
+            jagdCaseTask.setNodeShowName(dsrpjFlowNode.getNodeShowName());
+            jagdCaseTask.setCaseTaskType(CaseTaskConsts.CASE_TASK_TYPE_1);
+            // 通过调度的,任务候选执行者类型是上一步骤选择
+            jagdCaseTask.setCandeType(CaseTaskConsts.CANDE_TYPE_1);
+            jagdCaseTask.setCandeUnitId(dsrpjCaseTask.getCandeUnitId());
+            jagdCaseTask.setCandeUnitName(dsrpjCaseTask.getCandeUnitName());
+            // 系不需要签收
+            jagdCaseTask.setSignStatus(CaseTaskConsts.SIGN_STATUS_0);
+            jagdCaseTask.setStatus(CaseTaskConsts.TASK_STATUS_2);
+            // 任务处理时限
+            if (dsrpjFlowNode.getExpire() != 0) {
+                jagdCaseTask.setExpireTime(DateUtils.addDay(nowDate, dsrpjFlowNode.getExpire()));
+            }
+            jagdCaseTask.setHandleUnitId(dsrpjCaseTask.getCandeUnitId());
+            jagdCaseTask.setHandleUnitName(dsrpjCaseTask.getCandeUnitName());
+            jagdCaseTask.setHandleUserName("系统自动");
+            jagdCaseTask.setHandleResult(CaseTaskConsts.HANDLE_RESULT_1);
+            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, "系统自动");
+            // 更新纠纷信息
+            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);
+        }
+    }
+
 }

--
Gitblit v1.8.0