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