diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index 2d157333a..e34673924 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -2093,6 +2093,32 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { dto1.put("dataTitle"+(abctitles.size()+bpDefects.size()+5),"0%"); } + // 新增:计算dataTitle13的值 + BigDecimal dataTitle13Value = BigDecimal.ZERO; + try { + // 获取dataTitle9、dataTitle10、dataTitle11的值 + BigDecimal dataTitle9 = new BigDecimal(dto1.getOrDefault("dataTitle9", "0")); + BigDecimal dataTitle10 = new BigDecimal(dto1.getOrDefault("dataTitle10", "0")); + BigDecimal dataTitle11 = new BigDecimal(dto1.getOrDefault("dataTitle11", "0")); + BigDecimal dataTitle8 = new BigDecimal(dto1.getOrDefault("dataTitle8", "1")); + + // 计算公式:dataTitle9×1 + dataTitle10×0.65 + dataTitle11×0.35 + BigDecimal weightedSum = dataTitle9.multiply(BigDecimal.ONE) + .add(dataTitle10.multiply(new BigDecimal("0.65"))) + .add(dataTitle11.multiply(new BigDecimal("0.35"))); + + // 除以dataTitle8并转换为百分比 + if(dataTitle8.compareTo(BigDecimal.ZERO) != 0){ + dataTitle13Value = weightedSum + .multiply(new BigDecimal("100")) + .divide(dataTitle8, 2, BigDecimal.ROUND_HALF_UP); + } + } catch (Exception e) { + System.out.println("计算dataTitle13时出错: " + e.getMessage()); + } + + // 更新dataTitle13的值 + dto1.put("dataTitle" + (abctitles.size() + bpDefects.size() + 2), dataTitle13Value + "%"); dtos.add(dto1); }