From e282e3bb247adc903e201e85239a504548efa7c6 Mon Sep 17 00:00:00 2001
From: wangwh <2397901735@qq.com>
Date: Tue, 10 Sep 2024 14:26:20 +0800
Subject: [PATCH] 1、修改查询下级所有组织接口 2、首页相关接口

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java |  118 +++++++++++++++++++----------------------------------------
 1 files changed, 38 insertions(+), 80 deletions(-)

diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
index 4fd77c6..2a86069 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -22,6 +22,7 @@
 import cn.huge.module.draft.service.CasedraftInfoService;
 import cn.huge.module.mediate.dto.WechatBindCaseDTO;
 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 org.apache.commons.collections.CollectionUtils;
@@ -74,6 +75,9 @@
 
     @Autowired
     private SysClientImpl sysClient;
+
+    @Autowired
+    private CaseTaskService caseTaskService;
 
     /**
     * 更新对象
@@ -194,8 +198,10 @@
             caseInfo.setDagents(dagents.toString());
             caseInfo.setCaseRef(utilsClient.createCaseRef());
             caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_1.getIndex());
-            caseInfo.setCaseDes(CaseBaseConstsEnum.CASE_CANAL_1.getDes());
-            //todo case_title生成、经纬度转换、来访形式
+            caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_1.getDes());
+            caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_1.getIndex());
+            caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_1.getDes());
+            //todo case_title生成、经纬度转换
             if(0 == registerSaveDTO.getOperateType()){
                 caseInfo.setInputUnitId(loginUser.getUnitId());
                 caseInfo.setInputUnitName(loginUser.getUnitName());
@@ -204,26 +210,27 @@
                 caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
                 caseInfo.setCreateTime(nowDate);
                 caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
-
-                CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
-                caseInfoUnfold.setId(utilsClient.getNewTimeId());
-                caseInfoUnfold.setCaseId(caseInfo.getId());
-                caseInfoUnfold.setCreateTime(nowDate);
-                caseInfoUnfold.setUpdateTime(nowDate);
-
                 // 删除草稿案件
                 if(1 == registerSaveDTO.getIsDraft() ){
                     draftInfoService.removeDraftInfo(registerSaveDTO.getId());
                 }
-
-                //判断是否自行受理
-                if(1 == registerSaveDTO.getIsSelfAccept()){
-                    //todo 流程接口修改status、status_name、process、process_name
-                    caseInfoUnfold.setMediateUnitId(loginUser.getUnitId());
-                    caseInfoUnfold.setMediateUnitName(loginUser.getUnitName());
-                }
+                // 新增纠纷信息
                 this.save(caseInfo);
+                // 新增纠纷信息扩展表
+                CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
+                caseInfoUnfold.setId(caseInfo.getId());
+                caseInfoUnfold.setCreateTime(nowDate);
+                caseInfoUnfold.setUpdateTime(nowDate);
                 caseInfoUnfoldService.save(caseInfoUnfold);
+                // 启动工作流
+                // 判断是否自行受理
+                if(1 == registerSaveDTO.getIsSelfAccept()){
+                    // 自行受理流程
+                    caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
+                }else {
+                    // 自动调度流程
+                    caseTaskService.webStartFlowLFDJ(caseInfo);
+                }
             }else if(1 == registerSaveDTO.getOperateType()){
                 this.updateById(caseInfo);
             }
@@ -530,7 +537,6 @@
             StringBuffer defendants = new StringBuffer();
             StringBuffer pagents = new StringBuffer();
             StringBuffer dagents = new StringBuffer();
-            int peopleNum = 0;
 
             CaseInfo caseInfo = new CaseInfo();
             CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
@@ -551,21 +557,20 @@
             caseInfo.setProcessName("来访登记");
             //todo case_ref生成、case_title生成
 
-            caseInfoUnfold.setId(utilsClient.getNewTimeId());
-            caseInfoUnfold.setCaseId(caseInfo.getId());
+            caseInfoUnfold.setId(caseInfo.getId());
             caseInfoUnfold.setCreateTime(nowDate);
             caseInfoUnfold.setUpdateTime(nowDate);
 
             // 常规登记-保存当事人
-            peopleNum += this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
-            caseInfo.setPeopleNum(peopleNum);
+            this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
             caseInfo.setPlaintiffs(plaintiffs.toString());
             caseInfo.setPagents(pagents.toString());
             caseInfo.setDefendants(defendants.toString());
             caseInfo.setDagents(dagents.toString());
-            //todo 流程接口修改status、status_name、process、process_name
-
             this.saveOrUpdate(caseInfo);
+
+            // 启动工作流-自动调度流程
+            caseTaskService.webStartFlowLFDJ(caseInfo);
             return registerSaveDTO.getId();
         }catch (Exception e){
             log.error("service方法[CaseInfoService.caseRegisterWechat]调用异常:"+e, e);
@@ -585,25 +590,17 @@
     private int saveCasePersonWechat(RegisterSaveDTO registerSaveDTO, StringBuffer plaintiffs, StringBuffer pagents,
                                StringBuffer defendants, StringBuffer dagents,PaUserDTO loginUser){
         int peopleNum = 0;
-        List<String> newPersonIdList = new ArrayList<>();
-        List<String> newAgentIdList = new ArrayList<>();
         // 保存申请人
         List<CasePerson> personList = registerSaveDTO.getPersonList();
         if (CollectionUtils.isNotEmpty(personList)) {
             for (CasePerson casePerson : personList) {
-                if(ObjectUtils.isEmpty(casePerson.getId())){
-                    casePerson.setId(utilsClient.getNewTimeCaseId());
-                }
-                newPersonIdList.add(casePerson.getId());
+                casePerson.setId(utilsClient.getNewTimeCaseId());
                 casePerson.setCaseId(registerSaveDTO.getId());
-//                casePerson.setPerType(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex());
-//                casePerson.setPerTypeName(CaseBaseConstsEnum.PERSON_TYPE_1.getDes());
                 casePerson.setPartyUserId(loginUser.getId());
                 casePerson.setCustId(registerSaveDTO.getCustId());
                 casePerson.setCreateTime(registerSaveDTO.getUpdateTime());
                 casePerson.setUpdateTime(registerSaveDTO.getUpdateTime());
                 //todo 绑定当事人小程序
-
                 personService.saveOrUpdate(casePerson);
 
                 //添加申请方和被申请方人名组合
@@ -627,18 +624,13 @@
             List<CaseAgent> agentList = registerSaveDTO.getAgentList();
             if (CollectionUtils.isNotEmpty(agentList)) {
                 for(CaseAgent caseAgent: agentList){
-                    newAgentIdList.add(caseAgent.getId());
-                    if(ObjectUtils.isEmpty(caseAgent.getId())){
-                        caseAgent.setId(utilsClient.getNewTimeCaseId());
-                    }
+                    caseAgent.setId(utilsClient.getNewTimeCaseId());
                     caseAgent.setPartyUserId(loginUser.getId());
                     caseAgent.setCaseId(registerSaveDTO.getId());
                     caseAgent.setAgentTypeName(CaseBaseConstsEnum.getDes(caseAgent.getAgentType()));
-
                     caseAgent.setCustId(registerSaveDTO.getCustId());
                     caseAgent.setCreateTime(registerSaveDTO.getUpdateTime());
                     caseAgent.setUpdateTime(registerSaveDTO.getUpdateTime());
-
                     agentService.saveOrUpdate(caseAgent);
 
                     if (StringUtils.isNotEmpty(pagents.toString())) {
@@ -648,33 +640,6 @@
                 }
                 //todo 绑定当事人小程序
             }
-        }
-
-        // 删除冗余的申请人
-        if (CollectionUtils.isNotEmpty(newPersonIdList)) {
-            List<String> oldPersonIdList = personService.listIdByCaseId(registerSaveDTO.getId());
-            for (String oldPersonId : oldPersonIdList) {
-                if (!newPersonIdList.contains(oldPersonId)) {
-                    personService.removeById(oldPersonId);
-                }
-            }
-        }else{
-            QueryWrapper<CasePerson> casePersonQueryWrapper = new QueryWrapper<>();
-            casePersonQueryWrapper.eq("case_id", registerSaveDTO.getId());
-            personService.remove(casePersonQueryWrapper);
-        }
-        //删除冗余的代理人
-        if(CollectionUtils.isNotEmpty(newAgentIdList)){
-            List<String> oldAgentIdList = agentService.listIdByCaseId(registerSaveDTO.getId());
-            for(String oldAgentId: oldAgentIdList){
-                if(!newAgentIdList.contains(oldAgentId)){
-                    agentService.removeById(oldAgentId);
-                }
-            }
-        }else{
-            QueryWrapper<CaseAgent> caseAgentQueryWrapper = new QueryWrapper<>();
-            caseAgentQueryWrapper.eq("case_id", registerSaveDTO.getId());
-            agentService.remove(caseAgentQueryWrapper);
         }
 
         return peopleNum;
@@ -706,14 +671,18 @@
      * @return Page
      */
     public Page<CaseInfoWeChatDTO> pageQueryWechat(String userId, PageRequest page, Map<String, Object> terms){
+        PaUserDTO loginUser = custClient.paclientGetUser(userId);
         List<CaseInfoWeChatDTO> list = new ArrayList<>();
         String personType = terms.get("personType")+"";
         if(ObjectUtils.isEmpty(personType)){
             throw new RuntimeException("请选择人员类型");
         }
+        if(ObjectUtils.isEmpty(loginUser.getIdcard())){
+            return new PageImpl<CaseInfoWeChatDTO>(list, page, 0);
+        }
         QueryWrapper<CasePerson> personWrapper = new QueryWrapper<>();
         personWrapper.select("case_id");
-        personWrapper.eq("party_user_id", userId);
+        personWrapper.eq("certi_no", loginUser.getIdcard());
         if("1".equals(personType)){
             personWrapper.eq("per_type",CaseBaseConstsEnum.PERSON_TYPE_1.getIndex());
         }else {
@@ -724,26 +693,15 @@
             return new PageImpl<CaseInfoWeChatDTO>(list, page, 0);
         }
         List<String> ids = casePersonList.stream().map(CasePerson::getCaseId).collect(Collectors.toList());
-        terms.put("idList",ids);
+        terms.put("ids",ids);
         long total = mapper.countTerms(terms);
         List<CaseInfo> content = mapper.pageTerms(page, terms);
         if(ObjectUtils.isNotEmpty(content)){
             for(CaseInfo caseInfo: content){
                 CaseInfoWeChatDTO caseInfoWeChatDTO = new CaseInfoWeChatDTO();
                 BeanUtils.copyProperties(caseInfo, caseInfoWeChatDTO);
-                if(ObjectUtils.isNotEmpty(caseInfo) && caseInfo.getProcess().equals(1) || caseInfo.getProcess().equals(2)){
-                    caseInfoWeChatDTO.setProcessStatus(1);
-                    caseInfoWeChatDTO.setProcessStatusName("待受理");
-                }else if(ObjectUtils.isNotEmpty(caseInfo) && caseInfo.getProcess().equals(3) || caseInfo.getProcess().equals(4)){
-                    caseInfoWeChatDTO.setProcessStatus(2);
-                    caseInfoWeChatDTO.setProcessStatusName("办理中");
-                }else if(ObjectUtils.isNotEmpty(caseInfo) && caseInfo.getProcess().equals(5) || caseInfo.getProcess().equals(6)){
-                    caseInfoWeChatDTO.setProcessStatus(3);
-                    caseInfoWeChatDTO.setProcessStatusName("已结案");
-                }else{
-                    caseInfoWeChatDTO.setProcessStatus(4);
-                    caseInfoWeChatDTO.setProcessStatusName("不予受理");
-                }
+                caseInfoWeChatDTO.setProcessStatus(caseInfo.getInfoProcess());
+                caseInfoWeChatDTO.setProcessStatusName(caseInfo.getInfoProcessName());
                 QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>();
                 personWrapper1.eq("case_id", caseInfo.getId());
                 List<CasePerson> casePersonList1 = personService.list(personWrapper1);

--
Gitblit v1.8.0