From 53d08825c45bfc86c0a560b9eaef627c37163b16 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 14 五月 2025 15:46:23 +0800
Subject: [PATCH] 用户端统计分析接口-第二部分

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java  |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml                                    |   13 ++++++
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/StaticsController.java      |   10 ++++-
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java |   13 ++++--
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java         |    8 ++--
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java       |   33 ++++++++++++++++
 6 files changed, 68 insertions(+), 11 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java
index 6b38359..6287912 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java
@@ -168,7 +168,7 @@
         AnalyticStatisticsOneVo analyticStatisticsOneVo = complaintService.analyticStatisticsOne(query,complaints,simpleDateFormat);
 
         // 第二部分数据
-        List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query,complaints,simpleDateFormat);
+        List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query.getTime(),complaints,simpleDateFormat);
 
         // 第三部分数据
         List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos =complaintService.analyticStatisticsThree(query,complaints);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/StaticsController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/StaticsController.java
index 9ba9a84..cd6558c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/StaticsController.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/StaticsController.java
@@ -9,6 +9,7 @@
 import com.panzhihua.sangeshenbian.model.query.AnalyticStatisticsQuery;
 import com.panzhihua.sangeshenbian.model.query.AppStaticsQuery;
 import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsOneVo;
+import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsTwoVo;
 import com.panzhihua.sangeshenbian.model.vo.RegionVO;
 import com.panzhihua.sangeshenbian.service.IdentityInformationService;
 import com.panzhihua.sangeshenbian.service.impl.StaticsService;
@@ -36,7 +37,6 @@
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class StaticsController extends BaseController {
     private final StaticsService staticsService;
-    private final IdentityInformationService identityInformationService;
 
     @GetMapping("/region-tree")
     @ApiOperation("获取区域树")
@@ -45,9 +45,15 @@
         return R.ok(staticsService.queryRegionTree(loginUserInfo));
     }
     @PostMapping("/part-one")
-    @ApiOperation("获取统计分析-第一部分")
+    @ApiOperation("获取统计分析-第一部分(处理满意率+诉求单量统计上面部分)")
     public R<AnalyticStatisticsOneVo> queryStaticsPartOne(@RequestBody AppStaticsQuery query) {
         LoginUserInfoVO loginUserInfo = getLoginUserInfo();
         return R.ok(staticsService.queryStaticsPartOne(query,loginUserInfo));
     }
+    @PostMapping("/part-two")
+    @ApiOperation("获取统计分析-第二部分(诉求单量统计柱状图)")
+    public R<List<AnalyticStatisticsTwoVo>> queryStaticsPartTwo(@RequestBody AppStaticsQuery query) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        return R.ok(staticsService.queryStaticsPartTwo(query,loginUserInfo));
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
index 56e4035..e337d79 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
@@ -187,12 +187,13 @@
 
     /**
      * 数据统计第二部分
-     * @param query
+     *
+     * @param time
      * @param complaints
      * @param simpleDateFormat
      * @return
      */
-    List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(@Valid AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat);
+    List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(String time, List<Complaint> complaints, SimpleDateFormat simpleDateFormat);
 
 
     /**+
@@ -212,8 +213,7 @@
 
     /**
      * 查询党员或上级对应的诉求列表
-     * @param targetId
-     * @param accountLevel
+     * @param query
      * @param loginUserInfo
      * @return
      */
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
index 599e05a..6446212 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -1551,12 +1551,17 @@
         return vo;
     }
 
+    public static void main(String[] args) {
+        String time = "2022-02-02 - 2023-02-02";
+        String[] split = time.split(" - ");
+        System.out.println(split[0]);
+    }
     @Override
-    public List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat) {
+    public List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(String time, List<Complaint> complaints, SimpleDateFormat simpleDateFormat) {
         ArrayList<AnalyticStatisticsTwoVo> list = new ArrayList<>();
         try {
-            if (StringUtils.isNotEmpty(query.getTime())) {
-                String[] split = query.getTime().split(" - ");
+            if (StringUtils.isNotEmpty(time)) {
+                String[] split = time.split(" - ");
                 Date parse = simpleDateFormat.parse(split[0] + " 00:00:00");
                 Date parse1 = simpleDateFormat.parse(split[1] + " 23:59:59");
                 complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= parse1.getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList());
@@ -1587,7 +1592,7 @@
                 }
 
             } else {
-                String time = DateUtils.getBeforeDay(6) + " 00:00:00";
+                time = DateUtils.getBeforeDay(6) + " 00:00:00";
                 Date parse = simpleDateFormat.parse(time);
                 // 近7天数据
                 complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= new Date().getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList());
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java
index 9feb7bb..e8450f8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/StaticsService.java
@@ -1,8 +1,11 @@
 package com.panzhihua.sangeshenbian.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import com.beust.jcommander.internal.Lists;
+import com.fasterxml.jackson.databind.ser.std.ObjectArraySerializer;
 import com.panzhihua.common.exceptions.ServiceException;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.sangeshenbian.dao.SystemUserMapper;
 import com.panzhihua.sangeshenbian.model.entity.ComAct;
@@ -12,6 +15,7 @@
 import com.panzhihua.sangeshenbian.model.entity.SystemUserLevel;
 import com.panzhihua.sangeshenbian.model.query.AppStaticsQuery;
 import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsOneVo;
+import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsTwoVo;
 import com.panzhihua.sangeshenbian.model.vo.RegionVO;
 import com.panzhihua.sangeshenbian.service.IBcRegionService;
 import com.panzhihua.sangeshenbian.service.IComActService;
@@ -26,7 +30,9 @@
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @author mitao
@@ -139,4 +145,31 @@
         List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo);
         return  complaintService.analyticStatisticsOne(null, complaints, simpleDateFormat);
     }
+
+    public List<AnalyticStatisticsTwoVo> queryStaticsPartTwo(AppStaticsQuery query, LoginUserInfoVO loginUserInfo) {
+        List<Complaint> complaints = complaintService.queryCompliantList(query,loginUserInfo);
+        //时间范围
+        String time = "";
+        if (Objects.nonNull(query.getTimeType())) {
+            Date now = new Date();
+            Date start = null;
+            switch (query.getTimeType()) {
+                case 2:
+                    start = DateUtils.addDay(now, -15);
+                    break;
+                case 3:
+                    start = DateUtils.addDay(now, -30);
+                    break;
+                default:
+                    start = DateUtils.addDay(now, -7);
+                    break;
+            }
+            //格式化
+            String startStr = DateUtils.format(start, DateUtils.yyyyMMdd_format);
+            String endStr = DateUtils.format(now, DateUtils.yyyyMMdd_format);
+            time = startStr + " - " + endStr;
+        }
+        return complaintService.analyticStatisticsTwo(time, complaints, simpleDateFormat);
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
index 7b584c7..ce5d6c6 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
@@ -720,6 +720,19 @@
             <if test="5 == accountLevel">
                 and (sc.party_member_id = #{targetId} || sc.id in (select complaint_id from sgsb_complaint_audit_record where audit_type = 3 and audit_status = 1 and report_type = #{accountLevel} and superior_id = #{targetId}))
             </if>
+            <if test="query.timeType !=null">
+                <choose>
+                    <when test="query.timeType == 1">
+                        and date_sub(curdate(), INTERVAL 7 DAY) &lt;= date(sc.create_time)
+                    </when>
+                    <when test="query.timeType == 2">
+                        and date_sub(curdate(), INTERVAL 15 DAY) &lt;= date(sc.create_time)
+                    </when>
+                    <when test="query.timeType == 3">
+                        and date_sub(curdate(), INTERVAL 30 DAY) &lt;= date(sc.create_time)
+                    </when>
+                </choose>
+            </if>
         </where>
         ORDER BY sc.create_time DESC
     </select>

--
Gitblit v1.7.1