From 1ebf951a1d9676647957e7a319ae281b4a52dd1f Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 02 八月 2024 18:45:40 +0800 Subject: [PATCH] 数采公式优化+任务切换sql语法错误+检验下单页面展示的数量和里面的数量不一致 --- cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java | 68 ++++++++++++++++++---------------- 1 files changed, 36 insertions(+), 32 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java index 4dab601..eddd73d 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java @@ -264,8 +264,8 @@ //鐒跺悗鎻愬彇鍏紡 String strs = formula.substring(0,formula.indexOf("(")); String upperStr = strs.toUpperCase(); - if (upperStr.equals("")) { - throw new ErrorException(formula + "閲岄潰鐨勫叕寮忔病鏈夊嚱鏁�"); + if (upperStr.matches(".*\\d.*")){ + upperStr=""; } System.out.println(upperStr); //鐒跺悗鑾峰彇鏈�澶栭潰鎷彿閲岄潰鐨勫��,鍐嶆牴鎹�","鍒嗗壊 @@ -332,36 +332,40 @@ } // 鏍规嵁鍑芥暟鍚嶇О杩涜鐩稿簲璁$畻 BigDecimal finalResult; - switch (upperStr) { - case "MAX": - finalResult = results.stream().max(BigDecimal::compareTo) - .orElseThrow(() -> new IllegalArgumentException("鏃犳硶璁$畻MAX鍊�")); - break; - case "MIN": - finalResult = results.stream().min(BigDecimal::compareTo) - .orElseThrow(() -> new IllegalArgumentException("鏃犳硶璁$畻MIN鍊�")); - break; - case "SUM": - finalResult = results.stream().reduce(BigDecimal.ZERO, BigDecimal::add); - break; - case "ABS": - finalResult = results.stream().map(BigDecimal::abs).reduce(BigDecimal.ZERO, BigDecimal::add); - break; - case "AVERAGE": - finalResult = results.stream().reduce(BigDecimal.ZERO, BigDecimal::divide) - .divide(BigDecimal.valueOf(results.size()), 2, BigDecimal.ROUND_HALF_UP); - break; - case "MEDIAN": - int size = results.size(); - if (size % 2 == 1) { - finalResult = results.get(size / 2); - } else { - BigDecimal sum = results.get(size / 2 - 1).add(results.get(size / 2)); - finalResult = sum.divide(BigDecimal.valueOf(2), 2, BigDecimal.ROUND_HALF_UP); - } - break; - default: - throw new UnsupportedOperationException("鏆備笉鏀寔鍑芥暟: " + upperStr); + if (upperStr.equals("")||upperStr==null) { + finalResult=results.get(0); + }else { + switch (upperStr) { + case "MAX": + finalResult = results.stream().max(BigDecimal::compareTo) + .orElseThrow(() -> new IllegalArgumentException("鏃犳硶璁$畻MAX鍊�")); + break; + case "MIN": + finalResult = results.stream().min(BigDecimal::compareTo) + .orElseThrow(() -> new IllegalArgumentException("鏃犳硶璁$畻MIN鍊�")); + break; + case "SUM": + finalResult = results.stream().reduce(BigDecimal.ZERO, BigDecimal::add); + break; + case "ABS": + finalResult = results.stream().map(BigDecimal::abs).reduce(BigDecimal.ZERO, BigDecimal::add); + break; + case "AVERAGE": + finalResult = results.stream().reduce(BigDecimal.ZERO, BigDecimal::divide) + .divide(BigDecimal.valueOf(results.size()), 2, BigDecimal.ROUND_HALF_UP); + break; + case "MEDIAN": + int size = results.size(); + if (size % 2 == 1) { + finalResult = results.get(size / 2); + } else { + BigDecimal sum = results.get(size / 2 - 1).add(results.get(size / 2)); + finalResult = sum.divide(BigDecimal.valueOf(2), 2, BigDecimal.ROUND_HALF_UP); + } + break; + default: + throw new UnsupportedOperationException("鏆備笉鏀寔鍑芥暟: " + upperStr); + } } System.out.println(results); System.out.println("璁$畻缁撴灉: " + finalResult); -- Gitblit v1.9.3