From 3c901b2289729b8d13689a52faaffb3cd1124594 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期四, 27 三月 2025 13:25:08 +0800
Subject: [PATCH] 修改标准库查询bug

---
 inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductAnalysisDto.java              |   29 ++++++++++++++
 basic-server/src/main/resources/mapper/StandardProductListMapper.xml                       |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java                |    9 ++++
 cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java |    4 +-
 inspect-server/src/main/resources/mapper/InsProductMapper.xml                              |   17 ++++++++
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java   |   49 ++++++++++++++++++++++++
 6 files changed, 107 insertions(+), 3 deletions(-)

diff --git a/basic-server/src/main/resources/mapper/StandardProductListMapper.xml b/basic-server/src/main/resources/mapper/StandardProductListMapper.xml
index cd27a11..2f380a4 100644
--- a/basic-server/src/main/resources/mapper/StandardProductListMapper.xml
+++ b/basic-server/src/main/resources/mapper/StandardProductListMapper.xml
@@ -33,7 +33,7 @@
         INSERT INTO standard_product_list (id, inspection_item, inspection_item_en, inspection_item_subclass, inspection_item_subclass_en, factory, laboratory, sample_type, sample, model, son_laboratory, unit, price, man_hour, man_hour_group, inspection_item_type, inspection_value_type, checkout_number, section, cores, method, method_s, man_day, bsm, ask, tell, standard_method_list_id, template_id, state, dic, tree, structure_item_parameter_id, inspection_item_class, inspection_item_class_en, radius, radius_list, rates, sort, conductor_material, conductor_type)
         VALUES
         <foreach item="item" collection="productLists" open="(" separator="),(" close=")">
-            #{item.id}, #{item.inspectionItem}, #{item.inspectionItemEn}, #{item.inspectionItemSubclass}, #{item.inspectionItemSubclassEn}, #{item.factory}, #{item.sonLaboratory}, #{item.sampleType}, #{item.sample}, #{item.model}, #{item.sonLaboratory}, #{item.unit}, #{item.price}, #{item.manHour}, #{item.manHourGroup}, #{item.inspectionItemType}, #{item.inspectionValueType}, #{item.checkoutNumber}, #{item.section}, #{item.cores}, #{item.method}, #{item.methodS}, #{item.manDay}, #{item.bsm}, #{item.ask}, #{item.tell}, #{item.standardMethodListId}, #{item.templateId}, #{item.state}, #{item.dic}, #{item.tree}, #{item.structureItemParameterId},
+            #{item.id}, #{item.inspectionItem}, #{item.inspectionItemEn}, #{item.inspectionItemSubclass}, #{item.inspectionItemSubclassEn}, #{item.factory}, #{item.laboratory}, #{item.sampleType}, #{item.sample}, #{item.model}, #{item.sonLaboratory}, #{item.unit}, #{item.price}, #{item.manHour}, #{item.manHourGroup}, #{item.inspectionItemType}, #{item.inspectionValueType}, #{item.checkoutNumber}, #{item.section}, #{item.cores}, #{item.method}, #{item.methodS}, #{item.manDay}, #{item.bsm}, #{item.ask}, #{item.tell}, #{item.standardMethodListId}, #{item.templateId}, #{item.state}, #{item.dic}, #{item.tree}, #{item.structureItemParameterId},
             #{item.inspectionItemClass}, #{item.inspectionItemClassEn}, #{item.radius}, #{item.radiusList}, #{item.rates}, #{item.sort}, #{item.conductorMaterial}, #{item.conductorType}
         </foreach>
 
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java
index 0074e0c..4f429a8 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java
@@ -385,7 +385,7 @@
             info.setCreateUser(user.getName());
             info.setMessageType("6");
             info.setTheme("CNAS璐ㄩ噺鐩戠潱璁板綍瀹℃壒閫氱煡");
-            info.setContent("鐩戠潱椤圭洰涓�: " + superviseDetails.getSuperviseProject() + " 鐩戠潱璁板綍甯﹀鎵�");
+            info.setContent("鐩戠潱椤圭洰涓�: " + superviseDetails.getSuperviseProject() + " 鐩戠潱璁板綍寰呭鎵�");
             info.setSenderId(userId);
             // 鎺ユ敹浜�
             info.setConsigneeId(qualitySuperviseDetailsRecord.getRatifyUserId());
@@ -399,7 +399,7 @@
                 String message = "";
                 message += "CNAS璐ㄩ噺鐩戠潱璁板綍瀹℃壒閫氱煡";
                 message += "\n璇峰幓杩囩▼瑕佹眰-璐ㄩ噺鐩戠潱璁″垝";
-                message += "\n" + "鐩戠潱椤圭洰涓�: " + superviseDetails.getSuperviseProject() + " 鐩戠潱璁板綍甯﹀鎵�";
+                message += "\n" + "鐩戠潱椤圭洰涓�: " + superviseDetails.getSuperviseProject() + " 鐩戠潱璁板綍寰呭鎵�";
                 //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡
                 try {
                     WxCpUtils.inform(people.getAccount(), message, null);
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductAnalysisDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductAnalysisDto.java
new file mode 100644
index 0000000..84fd850
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductAnalysisDto.java
@@ -0,0 +1,29 @@
+package com.ruoyi.inspect.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 妫�娴嬮」鍒嗘瀽缁撴灉鏁版嵁
+ *
+ * @Author zhuo
+ * @Date 2025/3/26
+ */
+@Data
+public class InsProductAnalysisDto {
+
+    @ApiModelProperty("妫�娴嬮」id")
+    private Integer insProductId;
+
+    @ApiModelProperty("妫�娴嬬粨鏋�")
+    @TableField("`last_value`")
+    private String lastValue;
+
+    @ApiModelProperty("璁㈠崟id")
+    private Integer insOrderId;
+
+    @ApiModelProperty("鏍峰搧id")
+    private Integer insSampleId;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java
index 66334f8..16af37f 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.inspect.dto.InsProductAnalysisDto;
 import com.ruoyi.inspect.dto.ProductResultDto2;
 import com.ruoyi.inspect.dto.SampleProductRawAnalysisDto;
 import com.ruoyi.inspect.pojo.InsProduct;
@@ -67,6 +68,14 @@
      * @return
      */
     List<InsProduct> selectProductByOrderId(Integer orderId);
+
+    /**
+     * 鏌ヨ鍚屼竴鍨嬪彿, 鍚屼竴鍘傚, 鍚屼竴妫�娴嬮」鐨勬娴嬫暟鎹�
+     * @param insProduct
+     * @param supplierName
+     * @return
+     */
+    List<InsProductAnalysisDto> selectAnalysis(@Param("insProduct") InsProduct insProduct, @Param("supplierName") String supplierName);
 }
 
 
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 9b7da32..d69da06 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,28 @@
             // 鍒ゆ柇鏄惁鏈変笉鍚堟牸, 鏈変笉鍚堟牸涓嶈兘绉诲簱
             // 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());
+//
+//                        // 鍒ゆ柇褰撳墠妫�娴嬮」鏄惁鍋忓樊瓒呰繃10%
+//                        List<String> laseValueList = insProductAnalysisDtoList.stream().map(InsProductAnalysisDto::getLastValue)
+//                                .collect(Collectors.toList());
+//
+//
+//
+//
+//                    }
+//                }
+//            });
+
+
         } else {
             // 淇敼鎴愬搧鐘舵��
             // 鍒ゆ柇鏄惁鏈変笉鍚堟牸
@@ -957,6 +979,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()
diff --git a/inspect-server/src/main/resources/mapper/InsProductMapper.xml b/inspect-server/src/main/resources/mapper/InsProductMapper.xml
index 908cc0e..e566513 100644
--- a/inspect-server/src/main/resources/mapper/InsProductMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsProductMapper.xml
@@ -149,4 +149,21 @@
                  left join ins_sample is2 on is2.id = ip.ins_sample_id
         where is2.ins_order_id = #{orderId}
     </select>
+    <select id="selectAnalysis" resultType="com.ruoyi.inspect.dto.InsProductAnalysisDto">
+        select ip.id insProductId,
+               ip.`last_value`,
+               io.id insOrderId,
+               is2.id insSampleId
+        from ins_product ip
+                 left join ins_sample is2 on is2.id = ip.ins_sample_id
+                 left join ins_order io on io.id = is2.ins_order_id
+                 left join ifs_inventory_quantity iiq on iiq.id = io.ifs_inventory_id
+        where concat(ip.inspection_item, ip.inspection_item_subclass) = concat(#{insProduct.inspectionItem}, #{insProduct.inspectionItemSubclass})
+          and ip.model = #{insProduct.model}
+          and iiq.supplier_name = #{supplierName}
+          and io.state = 4
+          and ip.ins_result = 1
+        order by io.first_submit_date desc
+        limit 10
+    </select>
 </mapper>

--
Gitblit v1.9.3