From 01ed57def0d052ae87d95022013c64c760082610 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期五, 28 三月 2025 10:34:19 +0800
Subject: [PATCH] 修改温度生成定时任务问题

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java |   64 ++++++++++++++++++++++++++++++--
 1 files changed, 60 insertions(+), 4 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index 4443888..b57a72f 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -939,6 +939,38 @@
             // 鍒ゆ柇鏄惁鏈変笉鍚堟牸, 鏈変笉鍚堟牸涓嶈兘绉诲簱
             // todo: ifs绉诲簱
             insReportService.isRawMaterial(order);
+
+            // 16 鍒ゆ柇褰撳墠鏍峰搧鏄惁涓哄師鏉愭枡, 鍘熸潗鏂欓渶瑕佽繘琛屾暟鎹垎鏋�, 鍒ゆ柇涔嬪墠10鏉℃暟鎹悓涓�涓緵搴斿晢, 鍚屼竴涓楠岄」鐨勫亸宸槸鍚﹁秴杩�10%
+            // 鏌ヨifs淇℃伅鑾峰彇鑾峰彇鍓�10涓緵搴斿晢涓�鏍风殑, 妫�楠岄」涓�鏍蜂俊鎭�
+//            threadPoolTaskExecutor.execute(() -> {
+//
+//                for (InsProduct insProduct : productList) {
+//                    // todo: 鏆傛椂鍒ゆ柇鏄惁鏄�佸寲
+//                    if (insProduct.getInspectionItem().contains("鑰佸寲")) {
+//                        List<InsProductAnalysisDto> insProductAnalysisDtoList = insProductMapper.selectAnalysis(insProduct, ifsInventoryQuantity.getSupplierName());
+//
+//                        if (insProductAnalysisDtoList.size() < 10) {
+//                            continue;
+//                        }
+//
+//                        // 鍒ゆ柇褰撳墠妫�娴嬮」鏄惁鍋忓樊瓒呰繃10%
+//                        List<String> laseValueList = insProductAnalysisDtoList.stream().map(InsProductAnalysisDto::getLastValue)
+//                                .collect(Collectors.toList());
+//
+//                        double deviation = isDeviationOverTenPercent(laseValueList, insProduct.getLastValue());
+//                        // 鍒ゆ柇鍋忓樊鏄惁澶т簬10
+//                        if (deviation > 10) {
+//                            // 鍙戦�侀�氱煡, 骞朵笖娣诲姞鏁版嵁
+//
+//
+//
+//
+//                        }
+//                    }
+//                }
+//            });
+
+
         } else {
             // 淇敼鎴愬搧鐘舵��
             // 鍒ゆ柇鏄惁鏈変笉鍚堟牸
@@ -957,6 +989,33 @@
         return 1;
     }
 
+    /**
+     * *****璁$畻鍋忓樊****
+     * @param data
+     * @param targetStr
+     * @return
+     */
+    public static double isDeviationOverTenPercent(List<String> data, String targetStr) {
+        if (data.isEmpty()) {
+            return 0;
+        }
+        List<Double> doubleData = data.stream()
+                .map(Double::parseDouble)
+                .collect(Collectors.toList());
+        double sum = doubleData.stream().mapToDouble(Double::doubleValue).sum();
+        double average = sum / doubleData.size();
+
+        double target = Double.parseDouble(targetStr);
+        double deviationPercent = Math.abs(target - average) / average * 100;
+
+        return deviationPercent;
+    }
+
+    /**
+     * ******鍘熷璁板綍妯℃澘澶嶅埗*****
+     * @param orderId
+     * @param ids
+     */
     private void templateCopy(Integer orderId, List<Integer> ids) {
         // 鍒犻櫎鍘熸湰妯℃澘
         insOrderStandardTemplateService.remove(Wrappers.<InsOrderStandardTemplate>lambdaQuery()
@@ -1904,10 +1963,6 @@
 
         ConfigureBuilder builder = Configure.builder();
         builder.useSpringEL(true);
-        // 鑾峰彇褰撳墠鏃堕棿
-        LocalDate currentDate = LocalDate.now();
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        String formattedDate = currentDate.format(formatter);
 
         InputStream inputStream = this.getClass().getResourceAsStream("/static/small-report-template.docx");
         XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
@@ -2444,6 +2499,7 @@
         InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx");
         Configure configure = Configure.builder()
                 .bind("deviceList", new HackLoopTableRenderPolicy())
+                .useSpringEL(true)
                 .build();
 
         XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(

--
Gitblit v1.9.3