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 | 191 +++++++++++++++++++++++++++++++++--------------
1 files changed, 133 insertions(+), 58 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..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
@@ -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;
@@ -17,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;
/**
@@ -43,7 +47,8 @@
private InsProductMapper insProductMapper;
/**
- * 鏌ヨ鍘熸潗鏂欐煴鐘剁粺璁�
+ * 鏌ヨ鐗╂枡灞炴�ф煴鐘剁粺璁�
+ *
* @return searchTime 鏃堕棿
* @return passRate 鍚堟牸鐜�
* @return sum 鎬绘暟
@@ -53,34 +58,45 @@
// 鏍煎紡鍖栧瓧娈�, 閬垮厤鎶ラ敊
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"));
- return dataAnalysisMapper.getRawPassRateByBarChartByWeek(dataAnalysisDto);
- } 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"));
- return dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
+ 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"));
- return dataAnalysisMapper.getRawPassRateByBarChartByYear(dataAnalysisDto);
+// // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾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;
}
return null;
@@ -88,9 +104,9 @@
/**
* 鏌ヨ鍘熸潗鏂欓ゼ鐘跺浘
+ *
* @param dataAnalysisDto
- * @return
- * sum : 鎬绘暟
+ * @return sum : 鎬绘暟
* unQualified : 涓嶅悎鏍兼暟閲�
* qualified : 鍚堟牸鏁伴噺
* passRate : 鍚堟牸鐜�
@@ -100,37 +116,86 @@
// 鏍煎紡鍖栧瓧娈�, 閬垮厤鎶ラ敊
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));
}
+// 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
+ public List<MaterialPropTableDTO> getMaterialPropTable(DataAnalysisDto dataAnalysisDto) {
+ // 鏍煎紡鍖栧瓧娈�, 閬垮厤鎶ラ敊
+ this.formatDataAnalysisDto(dataAnalysisDto);
+ // 鑾峰彇褰撳墠鏃ユ湡
+ DateTime now = DateUtil.date();
+ 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"));
+// }
+
+ return dataAnalysisMapper.getMaterialPropTable(dataAnalysisDto);
+ }
/**
* 鏌ヨ妫�楠岄」鍚嶇О
+ *
* @param dataAnalysisDto
* @return
*/
@@ -151,6 +216,7 @@
/**
* 鏌ヨ鍘熸潗鏂欓」妫�鍒嗘瀽
+ *
* @param dataAnalysisDto
* @return
*/
@@ -202,6 +268,7 @@
/**
* 鏌ヨ妫�娴嬮」鍒嗘瀽鍒楄〃
+ *
* @param dataAnalysisDto
* @return
*/
@@ -214,6 +281,7 @@
/**
* 鏌ヨ椤规鍒嗘瀽鍚堟牸鐜�
+ *
* @param dataAnalysisDto
* @return
*/
@@ -386,6 +454,7 @@
/**
* 鏌ヨ鏈湀涓庝笂鏈堝悎鏍肩巼瀵规瘮
+ *
* @param dataAnalysisDto
* @return
*/
@@ -396,6 +465,7 @@
/**
* 鏌ヨ妫�楠岄」绫诲瀷楗煎浘
+ *
* @param dataAnalysisDto
* @return
*/
@@ -406,6 +476,7 @@
/**
* 璁$畻杩斿洖鏁版嵁
+ *
* @param lastValues
* @return
*/
@@ -473,6 +544,7 @@
/**
* 璁$畻鏋佸樊
+ *
* @param lastValues
* @return
*/
@@ -509,6 +581,7 @@
/**
* 璁$畻骞冲潎鍊�
+ *
* @param values
* @return
*/
@@ -531,6 +604,7 @@
/**
* 璁$畻鏍囧噯鍋忓樊
+ *
* @return
*/
private static BigDecimal computeStandardDeviation(List<String> lastValues) {
@@ -588,6 +662,7 @@
/**
* *****鏍煎紡鍖栧瓧娈�****
+ *
* @param dataAnalysisDto
*/
private void formatDataAnalysisDto(DataAnalysisDto dataAnalysisDto) {
--
Gitblit v1.9.3