From 3a73d5c21bb96dde33c97a6d4d50f4632678b329 Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Wed, 09 Oct 2024 20:32:35 +0800
Subject: [PATCH] web查询个人来访记录

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CasePersonService.java            |    9 ++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CasePersonCountBO.java          |   20 +++++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAgentService.java             |    5 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CasePersonMapper.xml       |   10 ++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAgentMapper.xml        |    8 ++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java |   68 +++++++++++++++++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml         |    6 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java              |   99 ++++++++++++++++++++++++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseAgentMapper.java           |    3 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CasePersonMapper.java          |    7 +
 10 files changed, 235 insertions(+), 0 deletions(-)

diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
index 8490553..be07a0b 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
@@ -5,6 +5,7 @@
 import cn.huge.base.common.utils.ReturnFailUtils;
 import cn.huge.base.common.utils.ReturnSucUtils;
 import cn.huge.base.config.CurrentUser;
+import cn.huge.module.cases.domain.bo.CasePersonCountBO;
 import cn.huge.module.cases.domain.dto.*;
 import cn.huge.module.cases.domain.po.CaseInfo;
 import cn.huge.module.cases.service.CaseInfoService;
@@ -755,4 +756,71 @@
             return ReturnFailUtils.getRepInfo();
         }
     }
+
+    /**
+     * 个人查询
+     * @url {ctx}/api/web/caseInfo/pagePerson
+     * @param page 页码
+     * @param size 每页数量
+     * @return Object
+     */
+    @GetMapping("/pagePerson")
+    public Object pagePerson(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size, @RequestParam(value = "certiNo") String certiNo) {
+        try {
+            Map<String, Object> terms = getParameterAll();
+            Sort sort = null;
+            String sortName = null;
+            String sortColmnStr = request.getParameter("sortColmn");
+            String sortTypeStr = request.getParameter("sortType");
+            int sortColmn = 1;
+            int sortType = 1;
+            if (StringUtils.isNotBlank(sortColmnStr)) {
+                sortColmn = Integer.valueOf(sortColmnStr);
+            }
+            if (StringUtils.isNotBlank(sortTypeStr)) {
+                sortType = Integer.valueOf(sortTypeStr);
+            }
+            switch (sortColmn) {
+                case 1:
+                    sortName = "a.create_time";
+                    break;
+                case 2:
+                    sortName = "b.close_time";
+                    break;
+            }
+            switch (sortType) {
+                case 1:
+                    sort = Sort.by(Sort.Direction.ASC, sortName);
+                    break;
+                case 2:
+                    sort = Sort.by(Sort.Direction.DESC, sortName);
+                    break;
+            }
+            if (ObjectUtils.isEmpty(sort)) {
+                sort = Sort.by(Sort.Direction.DESC, "a.create_time");
+            }
+            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
+            Page<CasePageDTO> caseInfoPage = service.pagePerson(pageRequest, terms,certiNo);
+            return ReturnSucUtils.getRepInfo( "处理成功", caseInfoPage);
+        } catch (Exception e) {
+            log.error("Controller接口[CaseInfoWebController.pageQueryAll]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+    /**
+     * 个人查询统计
+     * @url {ctx}/api/web/caseInfo/countPerson
+     * @return Object
+     */
+    @GetMapping("/countPerson")
+    public Object countPerson(@RequestParam(value = "certiNo") String certiNo) {
+        try {
+            CasePersonCountBO casePersonCountBO = service.countPerson(certiNo);
+            return ReturnSucUtils.getRepInfo( "处理成功", casePersonCountBO);
+        } catch (Exception e) {
+            log.error("Controller接口[CaseInfoWebController.pageQueryAll]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseAgentMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseAgentMapper.java
index 21e65e6..be6f524 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseAgentMapper.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CaseAgentMapper.java
@@ -1,6 +1,7 @@
 package cn.huge.module.cases.dao.mapper;
 
 import cn.huge.module.cases.domain.po.CaseAgent;
+import cn.huge.module.cases.domain.po.CasePerson;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.data.domain.PageRequest;
@@ -67,4 +68,6 @@
      * @return List<String>
      */
     List<String> listIdByCaseId(@Param("caseId") String caseId);
+
+    List<CaseAgent> listByCertiNo(@Param("certiNo") String certiNo);
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CasePersonMapper.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CasePersonMapper.java
index 1950d7f..0e650c1 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CasePersonMapper.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/CasePersonMapper.java
@@ -67,4 +67,11 @@
      * @return List<String>
      */
     List<String> listIdByCaseId(@Param("caseId") String caseId);
+    /**
+     * 根据证件编号查询人员
+     * @param certiNo 证件编号
+     * @return List<String>
+     */
+    List<CasePerson> listByCertiNo(@Param("certiNo") String certiNo);
+
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAgentMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAgentMapper.xml
index 8795500..33ac591 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAgentMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseAgentMapper.xml
@@ -435,4 +435,12 @@
         <include refid="table-name" />
         where case_id = #{caseId}
     </select>
+
+    <select id="listByCertiNo" resultMap="dataResult">
+        select
+            a.case_id,a.certi_no,a.per_type
+        from
+            dyh_case_agent a INNER JOIN dyh_case_info b ON a.case_id = b.id
+        where a.certi_no = #{certiNo} and b.delete_status = 0
+    </select>
 </mapper> 
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
index 0508102..68ae3d9 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
@@ -297,6 +297,12 @@
         <if test="terms != null">
             <where>
                 and delete_status = 0
+                <if test="terms.ids != null and terms.ids.size > 0">
+                    and a.id in
+                    <foreach collection="terms.ids" item="id" index="index" open="(" separator="," close=")">
+                        #{id}
+                    </foreach>
+                </if>
                 <if test="terms.status != null and terms.status !=''">
                     and a.status = #{terms.status}
                 </if>
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CasePersonMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CasePersonMapper.xml
index 27a66ab..df5e756 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CasePersonMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CasePersonMapper.xml
@@ -441,4 +441,14 @@
         <include refid="table-name" />
         where case_id = #{caseId}
     </select>
+
+    <!--  根据纠纷编号查询人员编号  -->
+    <select id="listByCertiNo" resultMap="dataResult">
+        select
+        a.case_id,a.certi_no,a.per_type
+        from
+            dyh_case_person a INNER JOIN dyh_case_info b ON a.case_id = b.id
+        where a.certi_no = #{certiNo} and b.delete_status = 0
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CasePersonCountBO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CasePersonCountBO.java
new file mode 100644
index 0000000..a0945c3
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/bo/CasePersonCountBO.java
@@ -0,0 +1,20 @@
+package cn.huge.module.cases.domain.bo;
+
+import lombok.Data;
+
+/**
+ * @author zhouxiantao
+ * @create 2024-10-09 19:55
+ */
+@Data
+public class CasePersonCountBO {
+    private Integer totalNum = 0;//来访总数
+    private Integer zzzxNum = 0;//综治中心数
+    private Integer xfNum = 0;//信访数
+    private Integer wlNum = 0;//网络数据
+    private Integer ottfNum = 0;//12345数量
+    private Integer plaintiffNum = 0;//申请方当事人数
+    private Integer defendantNum = 0;//被申请方当事人数
+    private Integer pagentsNum = 0;//申请方代理人数
+    private Integer dagentsNum = 0;//被申请方代理人数
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAgentService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAgentService.java
index ad2d568..6b3bef3 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAgentService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseAgentService.java
@@ -3,6 +3,7 @@
 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.domain.po.CasePerson;
 import cn.huge.module.client.api.impl.UtilsClientImpl;
 import cn.huge.module.cases.dao.mapper.CaseAgentMapper;
 import cn.huge.module.cases.domain.po.CaseAgent;
@@ -139,4 +140,8 @@
         return mapper.listIdByCaseId(caseId);
     }
 
+    public List<CaseAgent> listByCertiNo(String certiNo){
+        return mapper.listByCertiNo(certiNo);
+    }
+
 }
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 0584249..e6b6067 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
@@ -4,6 +4,7 @@
 import cn.huge.base.common.utils.*;
 import cn.huge.module.cases.domain.bo.CaseAgentBO;
 import cn.huge.module.cases.domain.bo.CasePersonBO;
+import cn.huge.module.cases.domain.bo.CasePersonCountBO;
 import cn.huge.module.cases.domain.dto.*;
 
 import cn.huge.module.cases.domain.dto.CaseAreaDTO;
@@ -981,6 +982,7 @@
         return new PageImpl<CasePageDTO>(content, page, total);
     }
 
+
     public CaseStatisticsBaseDTO statistics(Map<String, Object> terms) throws IOException {
         Object canal = null;
         if(ObjectUtils.isNotEmpty(terms.get("canal"))){
@@ -1191,4 +1193,101 @@
         List<QueAreaDTO> queAreaDTOS = sysClient.listByParentId(parentId);
         return queAreaDTOS;
     }
+
+    public Page<CasePageDTO> pagePerson(PageRequest page, Map<String, Object> terms,String certiNo) {
+        QueryWrapper<CasePerson> personWrapper = new QueryWrapper<>();
+        personWrapper.select("case_id,certi_no");
+        personWrapper.eq("certi_no", certiNo);
+        List<CasePerson> personList = personService.list(personWrapper);
+        List<String> ids = new ArrayList<>();
+        if(ObjectUtils.isNotEmpty(personList)){
+            for (CasePerson casePerson : personList) {
+                ids.add(casePerson.getCaseId());
+            }
+        }
+        QueryWrapper<CaseAgent> agentWrapper = new QueryWrapper<>();
+        agentWrapper.select("case_id,certi_no");
+        agentWrapper.in("certi_no", certiNo);
+        List<CaseAgent> agentList = agentService.list(agentWrapper);
+        if(ObjectUtils.isNotEmpty(agentList)){
+            for (CaseAgent caseAgent : agentList) {
+                ids.add(caseAgent.getCaseId());
+            }
+        }
+        if(ObjectUtils.isEmpty(ids)){
+            return new PageImpl<CasePageDTO>(new ArrayList<>(), page, 0);
+        }
+        terms.put("ids", ids);
+        long total = mapper.countTermsAll(terms);
+        List<CasePageDTO> content = mapper.pageTermsAll(page, terms);
+        if (ObjectUtils.isNotEmpty(content)) {
+            for (CasePageDTO casePageDTO : content) {
+                if(ObjectUtils.isNotEmpty(casePageDTO.getQueRoadName())){
+                    casePageDTO.setAreaName(casePageDTO.getQueRoadName());
+                }else if(ObjectUtils.isNotEmpty(casePageDTO.getAreaName())){
+                    casePageDTO.setAreaName(casePageDTO.getAreaName());
+                }else if(ObjectUtils.isNotEmpty(casePageDTO.getQueCityName())){
+                    casePageDTO.setAreaName(casePageDTO.getQueCityName());
+                }
+                if(ObjectUtils.isNotEmpty(casePageDTO.getCaseLevel())){
+                    switch (casePageDTO.getCaseLevel()){
+                        case "1":
+                            casePageDTO.setCaseLevel("一级");
+                            break;
+                        case "2":
+                            casePageDTO.setCaseLevel("二级");
+                            break;
+                        case "3":
+                            casePageDTO.setCaseLevel("三级");
+                            break;
+                    }
+                }
+            }
+        }
+        return new PageImpl<CasePageDTO>(content, page, total);
+    }
+
+    public CasePersonCountBO countPerson(String certiNo){
+        CasePersonCountBO casePersonCountBO = new CasePersonCountBO();
+
+        Integer plaintiffNum = 0;//申请方当事人数
+        Integer defendantNum = 0;//被申请方当事人数
+        Integer pagentsNum = 0;//申请方代理人数
+        Integer dagentsNum = 0;//被申请方代理人数
+
+        List<CasePerson> personList = personService.listByCertiNo(certiNo);
+        List<String> ids = new ArrayList<>();
+        if(ObjectUtils.isNotEmpty(personList)){
+            for (CasePerson casePerson : personList) {
+                ids.add(casePerson.getCaseId());
+                if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){
+                    plaintiffNum++;
+                }
+                if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){
+                    defendantNum++;
+                }
+            }
+        }
+
+        List<CaseAgent> agentList = agentService.listByCertiNo(certiNo);
+        if(ObjectUtils.isNotEmpty(agentList)){
+            for (CaseAgent caseAgent : agentList) {
+                ids.add(caseAgent.getCaseId());
+                if(CaseBaseConstsEnum.PERSON_TYPE_3.getIndex().equals(caseAgent.getPerType())){
+                    pagentsNum++;
+                }
+                if(CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())){
+                    dagentsNum++;
+                }
+            }
+        }
+        casePersonCountBO.setDagentsNum(dagentsNum);
+        casePersonCountBO.setPagentsNum(pagentsNum);
+        casePersonCountBO.setDefendantNum(defendantNum);
+        casePersonCountBO.setPlaintiffNum(plaintiffNum);
+        casePersonCountBO.setTotalNum(ids.size());
+        casePersonCountBO.setZzzxNum(ids.size());
+        return casePersonCountBO;
+    }
+
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CasePersonService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CasePersonService.java
index 9f99be6..b4f686f 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CasePersonService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CasePersonService.java
@@ -141,4 +141,13 @@
     public List<String> listIdByCaseId(String caseId){
         return mapper.listIdByCaseId(caseId);
     }
+
+    /**
+     * 根据证件编号查询人员
+     * @param certiNo 证件编号
+     * @return List<String>
+     */
+    public List<CasePerson> listByCertiNo(String certiNo){
+        return mapper.listByCertiNo(certiNo);
+    }
 }

--
Gitblit v1.8.0