From 52a7c9b093bcb05ee128b3ad8338007aad2cfccb Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 27 一月 2026 17:09:26 +0800
Subject: [PATCH] 业务管理:问题修复

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java |  189 ++++++++++++++++++++++++++---------------------
 1 files changed, 105 insertions(+), 84 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java
index 5a9ea09..fd7181d 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java
@@ -18,15 +18,18 @@
 import com.ruoyi.inspect.vo.RawMaterialSupplierVo;
 import com.ruoyi.inspect.vo.RawProductAnalysisVo;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -55,35 +58,43 @@
         // 鏍煎紡鍖栧瓧娈�, 閬垮厤鎶ラ敊
         this.formatDataAnalysisDto(dataAnalysisDto);
         // 鑾峰彇褰撳墠鏃ユ湡
-        DateTime now = DateUtil.date();
-        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
-            return dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
-        } else if (dataAnalysisDto.getDateType().equals("1")) {
-            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
-            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
-            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
-            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
-            DateTime endOfWeek = DateUtil.endOfWeek(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
-            List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByWeek(dataAnalysisDto);
-            return maps;
-        } else if (dataAnalysisDto.getDateType().equals("2")) {
-            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
-            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
-            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
-            DateTime endOfMonth = DateUtil.endOfMonth(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
+        if(ObjectUtils.allNull(dataAnalysisDto.getBeginDate(),dataAnalysisDto.getEndDate())){
+            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            LocalDate endDate = LocalDate.now(ZoneId.of("Asia/Shanghai"));
+            LocalDate startDate = endDate.minusDays(6L);
+            dataAnalysisDto.setBeginDate(startDate.atTime(LocalTime.MIN).format(dateTimeFormatter));
+            dataAnalysisDto.setEndDate(endDate.atTime(LocalTime.MAX).format(dateTimeFormatter));
+        }
+//        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
+//            return dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
+//        } else
+//            if (dataAnalysisDto.getDateType().equals("1")) {
+////            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
+////            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
+////            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
+////            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
+////            DateTime endOfWeek = DateUtil.endOfWeek(now);
+////            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
+////            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
+//            List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByWeek(dataAnalysisDto);
+//            return maps;
+//        } else
+            if (Arrays.asList("1","2").contains(dataAnalysisDto.getDateType())) {
+//            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
+//            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+//            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
+//            DateTime endOfMonth = DateUtil.endOfMonth(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
             List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
             return maps;
         } else if (dataAnalysisDto.getDateType().equals("3")) {
-            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
-            DateTime beginOfYear = DateUtil.beginOfYear(now);
-            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
-            DateTime endOfYear = DateUtil.endOfYear(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
+//            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
+//            DateTime beginOfYear = DateUtil.beginOfYear(now);
+//            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
+//            DateTime endOfYear = DateUtil.endOfYear(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
             List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByYear(dataAnalysisDto);
             return maps;
         }
@@ -105,35 +116,40 @@
         // 鏍煎紡鍖栧瓧娈�, 閬垮厤鎶ラ敊
         this.formatDataAnalysisDto(dataAnalysisDto);
         // 鑾峰彇褰撳墠鏃ユ湡
-        DateTime now = DateUtil.date();
-        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
-
-        } else if (dataAnalysisDto.getDateType().equals("1")) {
-            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
-            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
-            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
-            DateTime endOfWeek = DateUtil.endOfWeek(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
-        } else if (dataAnalysisDto.getDateType().equals("2")) {
-            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
-            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
-            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
-            DateTime endOfMonth = DateUtil.endOfMonth(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
-        } else if (dataAnalysisDto.getDateType().equals("3")) {
-            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
-            DateTime beginOfYear = DateUtil.beginOfYear(now);
-            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
-            DateTime endOfYear = DateUtil.endOfYear(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
+        if(ObjectUtils.allNull(dataAnalysisDto.getBeginDate(),dataAnalysisDto.getEndDate())){
+            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            LocalDate endDate = LocalDate.now(ZoneId.of("Asia/Shanghai"));
+            LocalDate startDate = endDate.minusDays(6L);
+            dataAnalysisDto.setBeginDate(startDate.atTime(LocalTime.MIN).format(dateTimeFormatter));
+            dataAnalysisDto.setEndDate(endDate.atTime(LocalTime.MAX).format(dateTimeFormatter));
         }
-
-        Map<String, Object> rawPassRateByCake = dataAnalysisMapper.getRawPassRateByCake(dataAnalysisDto);
-
-        return rawPassRateByCake;
+//        DateTime now = DateUtil.date();
+//        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
+//
+//        } else
+//            if (dataAnalysisDto.getDateType().equals("1")) {
+//            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
+//            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
+//            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
+//            DateTime endOfWeek = DateUtil.endOfWeek(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
+//        } else if (dataAnalysisDto.getDateType().equals("2")) {
+//            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
+//            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+//            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
+//            DateTime endOfMonth = DateUtil.endOfMonth(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
+//        } else if (dataAnalysisDto.getDateType().equals("3")) {
+//            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
+//            DateTime beginOfYear = DateUtil.beginOfYear(now);
+//            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
+//            DateTime endOfYear = DateUtil.endOfYear(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
+//        }
+        return dataAnalysisMapper.getRawPassRateByCake(dataAnalysisDto);
     }
 
     @Override
@@ -142,34 +158,39 @@
         this.formatDataAnalysisDto(dataAnalysisDto);
         // 鑾峰彇褰撳墠鏃ユ湡
         DateTime now = DateUtil.date();
-        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
-
-        } else if (dataAnalysisDto.getDateType().equals("1")) {
-            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
-            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
-            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
-            DateTime endOfWeek = DateUtil.endOfWeek(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
-        } else if (dataAnalysisDto.getDateType().equals("2")) {
-            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
-            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
-            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
-            DateTime endOfMonth = DateUtil.endOfMonth(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
-        } else if (dataAnalysisDto.getDateType().equals("3")) {
-            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
-            DateTime beginOfYear = DateUtil.beginOfYear(now);
-            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
-            DateTime endOfYear = DateUtil.endOfYear(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
+        if(ObjectUtils.allNull(dataAnalysisDto.getBeginDate(),dataAnalysisDto.getEndDate())){
+            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            LocalDate endDate = LocalDate.now(ZoneId.of("Asia/Shanghai"));
+            LocalDate startDate = endDate.minusDays(6L);
+            dataAnalysisDto.setBeginDate(startDate.atTime(LocalTime.MIN).format(dateTimeFormatter));
+            dataAnalysisDto.setEndDate(endDate.atTime(LocalTime.MAX).format(dateTimeFormatter));
         }
+//        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
+//
+//        } else if (dataAnalysisDto.getDateType().equals("1")) {
+//            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
+//            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
+//            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
+//            DateTime endOfWeek = DateUtil.endOfWeek(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
+//        } else if (dataAnalysisDto.getDateType().equals("2")) {
+//            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
+//            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+//            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
+//            DateTime endOfMonth = DateUtil.endOfMonth(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
+//        } else if (dataAnalysisDto.getDateType().equals("3")) {
+//            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
+//            DateTime beginOfYear = DateUtil.beginOfYear(now);
+//            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
+//            DateTime endOfYear = DateUtil.endOfYear(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
+//        }
 
-        List<MaterialPropTableDTO> rawPassRateByCake = dataAnalysisMapper.getMaterialPropTable(dataAnalysisDto);
-
-        return rawPassRateByCake;
+        return dataAnalysisMapper.getMaterialPropTable(dataAnalysisDto);
     }
 
     /**

--
Gitblit v1.9.3