From 544afa4dabaccb0248bf0b6fcfdc7b9b6c2ea9f2 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 13 一月 2026 17:56:38 +0800
Subject: [PATCH] 合格率统计重构:根据物料属性分类返回对应的合格/不合格数据量

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java |   68 ++++++++++++++++++++++++++++++---
 1 files changed, 61 insertions(+), 7 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 33b9b28..5a9ea09 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
@@ -9,6 +9,7 @@
 import com.ruoyi.common.constant.InsOrderTypeConstants;
 import com.ruoyi.framework.exception.ErrorException;
 import com.ruoyi.inspect.dto.DataAnalysisDto;
+import com.ruoyi.inspect.dto.MaterialPropTableDTO;
 import com.ruoyi.inspect.dto.SampleProductRawAnalysisDto;
 import com.ruoyi.inspect.mapper.DataAnalysisMapper;
 import com.ruoyi.inspect.mapper.InsProductMapper;
@@ -43,7 +44,8 @@
     private InsProductMapper insProductMapper;
 
     /**
-     * 鏌ヨ鍘熸潗鏂欐煴鐘剁粺璁�
+     * 鏌ヨ鐗╂枡灞炴�ф煴鐘剁粺璁�
+     *
      * @return searchTime  鏃堕棿
      * @return passRate  鍚堟牸鐜�
      * @return sum  鎬绘暟
@@ -64,7 +66,8 @@
             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"));
-            return dataAnalysisMapper.getRawPassRateByBarChartByWeek(dataAnalysisDto);
+            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);
@@ -72,7 +75,8 @@
             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"));
-            return dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
+            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);
@@ -80,7 +84,8 @@
             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.getRawPassRateByBarChartByYear(dataAnalysisDto);
+            List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByYear(dataAnalysisDto);
+            return maps;
         }
 
         return null;
@@ -88,9 +93,9 @@
 
     /**
      * 鏌ヨ鍘熸潗鏂欓ゼ鐘跺浘
+     *
      * @param dataAnalysisDto
-     * @return
-     * sum          : 鎬绘暟
+     * @return sum          : 鎬绘暟
      * unQualified  : 涓嶅悎鏍兼暟閲�
      * qualified  : 鍚堟牸鏁伴噺
      * passRate  : 鍚堟牸鐜�
@@ -125,12 +130,51 @@
             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);
+
+        Map<String, Object> rawPassRateByCake = dataAnalysisMapper.getRawPassRateByCake(dataAnalysisDto);
+
+        return rawPassRateByCake;
     }
 
+    @Override
+    public List<MaterialPropTableDTO> getMaterialPropTable(DataAnalysisDto dataAnalysisDto) {
+        // 鏍煎紡鍖栧瓧娈�, 閬垮厤鎶ラ敊
+        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"));
+        }
+
+        List<MaterialPropTableDTO> rawPassRateByCake = dataAnalysisMapper.getMaterialPropTable(dataAnalysisDto);
+
+        return rawPassRateByCake;
+    }
 
     /**
      * 鏌ヨ妫�楠岄」鍚嶇О
+     *
      * @param dataAnalysisDto
      * @return
      */
@@ -151,6 +195,7 @@
 
     /**
      * 鏌ヨ鍘熸潗鏂欓」妫�鍒嗘瀽
+     *
      * @param dataAnalysisDto
      * @return
      */
@@ -202,6 +247,7 @@
 
     /**
      * 鏌ヨ妫�娴嬮」鍒嗘瀽鍒楄〃
+     *
      * @param dataAnalysisDto
      * @return
      */
@@ -214,6 +260,7 @@
 
     /**
      * 鏌ヨ椤规鍒嗘瀽鍚堟牸鐜�
+     *
      * @param dataAnalysisDto
      * @return
      */
@@ -386,6 +433,7 @@
 
     /**
      * 鏌ヨ鏈湀涓庝笂鏈堝悎鏍肩巼瀵规瘮
+     *
      * @param dataAnalysisDto
      * @return
      */
@@ -396,6 +444,7 @@
 
     /**
      * 鏌ヨ妫�楠岄」绫诲瀷楗煎浘
+     *
      * @param dataAnalysisDto
      * @return
      */
@@ -406,6 +455,7 @@
 
     /**
      * 璁$畻杩斿洖鏁版嵁
+     *
      * @param lastValues
      * @return
      */
@@ -473,6 +523,7 @@
 
     /**
      * 璁$畻鏋佸樊
+     *
      * @param lastValues
      * @return
      */
@@ -509,6 +560,7 @@
 
     /**
      * 璁$畻骞冲潎鍊�
+     *
      * @param values
      * @return
      */
@@ -531,6 +583,7 @@
 
     /**
      * 璁$畻鏍囧噯鍋忓樊
+     *
      * @return
      */
     private static BigDecimal computeStandardDeviation(List<String> lastValues) {
@@ -588,6 +641,7 @@
 
     /**
      * *****鏍煎紡鍖栧瓧娈�****
+     *
      * @param dataAnalysisDto
      */
     private void formatDataAnalysisDto(DataAnalysisDto dataAnalysisDto) {

--
Gitblit v1.9.3