交叉判定等级为0和4判定bug修复

This commit is contained in:
2026-01-07 16:41:32 +08:00
parent 2b59974442
commit 18bece858d

View File

@@ -861,7 +861,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
// 查找匹配的允差区间
private ConfigAssayMethodProjectAssessmentDO findMatchingRule(List<ConfigAssayMethodProjectAssessmentDO> rules, BigDecimal value) {
if (rules == null || rules.isEmpty()) return null;
// 特殊处理 level=0 和 level=4
for (ConfigAssayMethodProjectAssessmentDO rule : rules) {
if (rule.getAssessmentLevel() == 0) {
@@ -869,19 +869,17 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
.filter(r -> r.getAssessmentLevel() == 1)
.findFirst()
.orElse(rule);
// if (value.compareTo(new BigDecimal(next.getMinimumValue())) >= 0 && value.compareTo(new BigDecimal(next.getMaximumValue())) <= 0) {
// return next;
// }
return next;
if (value.compareTo(new BigDecimal(rule.getMinimumValue())) >= 0 && value.compareTo(new BigDecimal(rule.getMaximumValue())) <= 0) {
return next;
}
} else if (rule.getAssessmentLevel() == 4) {
ConfigAssayMethodProjectAssessmentDO prev = rules.stream()
.filter(r -> r.getAssessmentLevel() == 3)
.findFirst()
.orElse(rule);
// if (value.compareTo(new BigDecimal(prev.getMinimumValue())) >= 0 && value.compareTo(new BigDecimal(prev.getMaximumValue())) <= 0) {
// return prev;
// }
return prev;
if (value.compareTo(new BigDecimal(rule.getMinimumValue())) >= 0 && value.compareTo(new BigDecimal(rule.getMaximumValue())) <= 0) {
return prev;
}
} else {
if (value.compareTo(new BigDecimal(rule.getMinimumValue())) >= 0 && value.compareTo(new BigDecimal(rule.getMaximumValue())) <= 0) {
return rule;