zhuo
2025-03-27 3c901b2289729b8d13689a52faaffb3cd1124594
修改标准库查询bug
已修改5个文件
已添加1个文件
110 ■■■■■ 文件已修改
basic-server/src/main/resources/mapper/StandardProductListMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductAnalysisDto.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsProductMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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);
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;
}
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);
}
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()
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>