From b3654b855129db1b8284606e34af8242120e32e1 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期四, 24 七月 2025 14:28:08 +0800 Subject: [PATCH] yys 添加分析数据算法修改,表新增字段 --- inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | 33 ++++++++++++++++++++++++++------- 1 files changed, 26 insertions(+), 7 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 f91b9bd..7b74ae6 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 @@ -502,18 +502,16 @@ // 娣诲姞宸ユ椂 // 鍒ゆ柇鏄惁鍙槸鍙備笌璁$畻鍊�, 鍙備笌璁$畻鍊煎疄闄呮病鏈夊~鍐� + InsProduct finalInsProduct = insProductMapper.selectById(product.getId()); + InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId()); if (StringUtils.isNotBlank(newResult.getInsValue()) && !newResult.getInsValue().equals("[]")) { threadPoolTaskExecutor.execute(() -> { - InsProduct finalInsProduct = insProductMapper.selectById(product.getId()); - InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId()); this.addAuxiliary(userId, finalInsProduct, insOrder); }); } else { // 鍒ゆ柇鏄惁鏄病鏈夋楠屽�肩殑鍐呭 if (saveInsContextDto.getIsNoTestValue() != null && saveInsContextDto.getIsNoTestValue() == 1) { threadPoolTaskExecutor.execute(() -> { - InsProduct finalInsProduct = insProductMapper.selectById(product.getId()); - InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId()); this.addAuxiliary(userId, finalInsProduct, insOrder); }); } @@ -968,7 +966,7 @@ if (insProduct.getInspectionValueType().equals("1") && insProduct.getInsResult().equals(1)) { List<InsProductDeviationWarningDetail> insProductAnalysisDtoList = insProductMapper.selectAnalysis(insProduct, ifsInventoryQuantity.getSupplierName()); - if (insProductAnalysisDtoList.size() < 10) { + if (CollectionUtils.isEmpty(insProductAnalysisDtoList)) { continue; } @@ -977,8 +975,10 @@ .collect(Collectors.toList()); double deviation = isDeviationOverTenPercent(laseValueList, insProduct.getLastValue()); + // 鍒ゆ柇瑕佹眰鍊兼槸鍚﹀亸宸秴杩�10% + double asked = isDeviationOverTenPercentByAsked(insProduct.getAsk(), insProduct.getLastValue()); // 鍒ゆ柇鍋忓樊鏄惁澶т簬10 - if (deviation > 10) { + if (deviation > 10 || asked > 10) { // 鍒ゆ柇涔嬪墠鏄惁娣诲姞杩�, 娣诲姞杩囦笉闇�瑕佹坊鍔� long count = insProductDeviationWarningService.count(Wrappers.<InsProductDeviationWarning>lambdaQuery() .eq(InsProductDeviationWarning::getInsProductId, insProduct.getId())); @@ -1006,7 +1006,8 @@ deviationWarningDetail.setSupplierName(ifsInventoryQuantity.getSupplierName()); deviationWarningDetail.setTestValue(insProduct.getLastValue()); deviationWarningDetail.setDetectionTime(insProduct.getCreateTime()); - deviationWarningDetail.setIsIssue(1); + deviationWarningDetail.setIsIssue(deviation > 10 ? 1 : 0); + deviationWarningDetail.setIsIssueAsked(asked > 10 ? 1 : 0); insProductAnalysisDtoList.add(deviationWarningDetail); @@ -1069,6 +1070,24 @@ } /** + * *****璁$畻鍋忓樊锛堣姹傚�硷級**** + * @param asked + * @param targetStr + * @return + */ + public static double isDeviationOverTenPercentByAsked(String asked, String targetStr) { + if(!isNumeric(asked)) return 0; + double average = Double.parseDouble(asked); + double target = Double.parseDouble(targetStr); + double deviationPercent = Math.abs(target - average) / average * 100; + + // 淇濈暀涓や綅灏忔暟 + DecimalFormat df = new DecimalFormat("#.00"); + String formatted = df.format(deviationPercent); + return Double.parseDouble(formatted); + } + + /** * ******鍘熷璁板綍妯℃澘澶嶅埗***** * @param orderId * @param ids -- Gitblit v1.9.3