From 0c9a434ca2d0521d726f9539ba0f6b2dfb52841c Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 23 五月 2025 22:40:06 +0800
Subject: [PATCH] bug修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java |   40 +++++++++++++++++++++++++++-------------
 1 files changed, 27 insertions(+), 13 deletions(-)

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 5e9b046..5e16562 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
@@ -258,7 +258,7 @@
         //page = baseMapper.selectComplaintPage(page, query, targetId, isSuperior);
         page = baseMapper.selectComplaintPage1(page, query, accountLevel, targetId);
 
-        for (ComplaintVO s : page.getRecords()) {
+     /*   for (ComplaintVO s : page.getRecords()) {
             buttonPermission(s, systemUserByPhone, loginUserInfoVO);
             Integer auditButtonStatus = s.getAuditButtonStatus();
 
@@ -267,7 +267,7 @@
             if (!targetId.equals(reporterId) && !targetId.equals(superiorId) && (s.getStatus() == 5)) {
                 s.setStatus(0);
             }
-        }
+        }*/
         return page;
     }
 
@@ -1101,6 +1101,11 @@
         }
         //审核不通过
         if (complaintAuditRecord.getAuditType().equals(1) && complaintAuditRecord.getAuditStatus().equals(0) && dto.getAuditResult().equals(2)) {
+            Complaint complaint = getById(complaintAuditRecord.getComplaintId());
+            // 设置为正在办理
+            complaint.setStatus(0);
+            updateById(complaint);
+
             complaintAuditRecord.setRejectReason(dto.getRejectReason());
             complaintAuditRecord.setAuditStatus(2);
             complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId());
@@ -1463,13 +1468,13 @@
         } else {
             lastYearMonth = LocalDate.now().minusMonths(1).getYear() + "-" + LocalDate.now().minusMonths(1).getMonth().getValue();
         }
-
-
+        // 要根据驳回表来改状态
+        List<Long> ids = complaints.stream().map(Complaint::getId).collect(Collectors.toList());
+        complaints = this.baseMapper.getStatusForList(ids);
         AnalyticStatisticsOneVo vo = new AnalyticStatisticsOneVo();
 
         // 诉求单量总计
         vo.setAllTotal(complaints.size());
-
         // 诉求单量本月
         int thisMonthTotal = (int) complaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(nowYearMonth)).count();
         vo.setThisMonthTotal(thisMonthTotal);
@@ -1491,7 +1496,7 @@
         vo.setPostponeTransactTotal(postponeTransactTotal);
 
         // 已办结
-        int completeTransactTotal = (int) complaints.stream().filter(e -> e.getStatus() == 3).count();
+        int completeTransactTotal = (int) complaints.stream().filter(e -> e.getStatus() == 3 || e.getStatus() == 8).count();
         vo.setCompleteTransactTotal(completeTransactTotal);
 
         // 超时办理总量
@@ -1521,8 +1526,12 @@
             List<Complaint> lastMonthAverageTimeComplaints = complaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(lastYearMonth)).collect(Collectors.toList());
             if (lastMonthAverageTimeComplaints.size() > 0) {
                 double lastMonthAverageTime = lastMonthAverageTimeComplaints.stream().mapToDouble(v -> v.getHandlingDay() == null ? 0 : v.getHandlingDay()).average().getAsDouble();
-                lastMonthAverageTime = BigDecimal.valueOf(lastMonthAverageTime).setScale(2, RoundingMode.HALF_UP).doubleValue();
-                vo.setLastMonthCompareAverageTime(vo.getThisMonthAverageTime() - lastMonthAverageTime);
+                BigDecimal lastMonthAverageTime1 = BigDecimal.valueOf(lastMonthAverageTime).setScale(2, RoundingMode.HALF_UP);
+
+                vo.setLastMonthCompareAverageTime( new BigDecimal(vo.getThisMonthAverageTime()).subtract(lastMonthAverageTime1).setScale(2,RoundingMode.HALF_UP).doubleValue());
+            }else {
+                vo.setLastMonthCompareAverageTime( new BigDecimal(vo.getThisMonthAverageTime()).setScale(2,RoundingMode.HALF_UP).doubleValue());
+
             }
 
         }
@@ -1556,6 +1565,7 @@
         }
         return vo;
     }
+
 
     public static void main(String[] args) {
         String time = "2022-02-02 - 2023-02-02";
@@ -1604,7 +1614,7 @@
                 // 近7天数据
                 complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= new Date().getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList());
 
-                for (int i = 6; i > 0; i--) {
+                for (int i = 6; i >= 0; i--) {
                     // 获取前7天的时间
                     String day = DateUtils.getBeforeDay(i);
                     List<Complaint> complaintList = complaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(day)).collect(Collectors.toList());
@@ -1653,14 +1663,18 @@
         AnalyticStatisticsFourVo vo = new AnalyticStatisticsFourVo();
         // 0:不满意 1:一般 2:满意 3:非常满意
         long count = complaints.stream().filter(e -> e.getCommentRate() != null && e.getCommentRate() == 0).count();
+        vo.setDissatisfactionNum((int) count);
         long count1 = complaints.stream().filter(e -> e.getCommentRate() != null && e.getCommentRate() == 1).count();
+        vo.setGeneralSatisfactionNum((int) count1);
         long count2 = complaints.stream().filter(e -> e.getCommentRate() != null && e.getCommentRate() == 2).count();
+        vo.setSatisfactionRateNum((int) count2);
         long count3 = complaints.stream().filter(e -> e.getCommentRate() != null && e.getCommentRate() == 3).count();
+        vo.setGreatSatisfactionNum((int) count3);
         if (complaints.size() > 0) {
-            vo.setDissatisfactionRate(BigDecimal.valueOf(count).divide(BigDecimal.valueOf(complaints.size()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).doubleValue());
-            vo.setGeneralSatisfactionRate(BigDecimal.valueOf(count1).divide(BigDecimal.valueOf(complaints.size()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).doubleValue());
-            vo.setSatisfactionRate(BigDecimal.valueOf(count2).divide(BigDecimal.valueOf(complaints.size()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).doubleValue());
-            vo.setGreatSatisfactionRate(BigDecimal.valueOf(count3).divide(BigDecimal.valueOf(complaints.size()), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).doubleValue());
+            vo.setDissatisfactionRate(BigDecimal.valueOf(count).divide(BigDecimal.valueOf(complaints.size()),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2,RoundingMode.HALF_UP).doubleValue());
+            vo.setGeneralSatisfactionRate(BigDecimal.valueOf(count1).divide(BigDecimal.valueOf(complaints.size()),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2,RoundingMode.HALF_UP).doubleValue());
+            vo.setSatisfactionRate(BigDecimal.valueOf(count2).divide(BigDecimal.valueOf(complaints.size()),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2,RoundingMode.HALF_UP).doubleValue());
+            vo.setGreatSatisfactionRate(BigDecimal.valueOf(count3).divide(BigDecimal.valueOf(complaints.size()),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2,RoundingMode.HALF_UP).doubleValue());
         }
         return vo;
     }

--
Gitblit v1.7.1