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