From ced20d8410d47258d8ecdca40e894c7466866f77 Mon Sep 17 00:00:00 2001
From: zhizhijie <zhizhijie@users.noreply.gitee.com>
Date: 星期五, 04 九月 2026 17:13:01 +0800
Subject: [PATCH] docs: 拍板记录(1-6月累计/同比口径、7月列留空)与 09-04 工作日结(扩列改造列入明早待办)
---
traffic-audit-server/src/main/java/com/trafficaudit/auditengine/service/AuditEngineService.java | 36 ++++++++++++++++++++++++++++--------
1 files changed, 28 insertions(+), 8 deletions(-)
diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/auditengine/service/AuditEngineService.java b/traffic-audit-server/src/main/java/com/trafficaudit/auditengine/service/AuditEngineService.java
index 29bffc1..5d343bb 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/auditengine/service/AuditEngineService.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/auditengine/service/AuditEngineService.java
@@ -631,6 +631,8 @@
.eq(InvestmentSystem::getReportPeriod, reportPeriod))) {
sysMap.computeIfAbsent(normInvestName(s.getProjectName()), k -> new ArrayList<>()).add(s);
}
+ // 鍚屾姤琛ㄦ湡鎶曡祫绯荤粺鍩哄噯鏁存湡缂哄け鏃讹紝涓嶅仛"椤圭洰缂哄け鏍稿疄"锛堢己澶�=鍩哄噯鏈鍏ワ紝涓嶇瓑浜庨」鐩笉瀛樺湪锛夛紝閬垮厤鏁磋〃璇姤
+ boolean benchmarkMissing = sysMap.isEmpty();
// 骞傜瓑锛氬彧娓呴櫎 INVEST 瑙勫垯鐨勬棫瀹℃牳缁撴灉
List<Long> ruleIds = new ArrayList<>();
@@ -647,6 +649,7 @@
String projectName = project == null ? "鏈煡椤圭洰" : project.getProjectName();
InvestmentSystem sys = findInvestSystem(sysMap, projectName);
for (AuditRule rule : rules) {
+ if (benchmarkMissing && "EXISTENCE_SYS".equals(rule.getCompareType())) continue;
AuditResult result = checkInvestRule(rule, monthly, projectName, sys);
if (result != null) {
result.setRuleName(rule.getRuleName());
@@ -1538,6 +1541,7 @@
case "RULE_I001":
case "RULE_I002":
case "RULE_I003":
+ case "RULE_I004":
return investSystemMapper.selectCount(new LambdaQueryWrapper<InvestmentSystem>()
.eq(InvestmentSystem::getReportPeriod, period)) == 0;
default:
@@ -1675,15 +1679,29 @@
return null;
}
- /** 鏁板�艰寖鍥存鏌ワ紙濡� 鏁磋溅鍚ㄤ綅 4鈮や笖鈮�40锛� */
+ /** 鏁板�艰寖鍥存鏌ワ紱鏁磋溅鍚ㄤ綅鎸夆�滃钩鍧囧惃浣�=鏁磋溅鍚ㄤ綅/鏁磋溅鏁扳�濆彛寰勫垽瀹� 4~40 */
private AuditResult checkOutRange(AuditRule rule, H2032EnterpriseMonthly report) {
String[] bounds = rule.getThreshold().split(",");
if (bounds.length < 2) return null;
- double value = getH2032FieldValue(report, rule.getCheckField());
+ String field = rule.getCheckField();
+ String label = h2032FieldLabel(field);
+ double value;
+ if ("tonsWhole".equals(field)) {
+ double vehicles = report.getVehicleWhole() == null ? 0.0 : report.getVehicleWhole().doubleValue();
+ double tons = nvl(report.getTonsWhole());
+ if (vehicles > 0) {
+ value = tons / vehicles;
+ label = "鏁磋溅骞冲潎鍚ㄤ綅(鏁磋溅鍚ㄤ綅/鏁磋溅鏁�)";
+ } else {
+ value = tons; // 鏃犳暣杞︽暟浣嗘湁鍚ㄤ綅鏃朵粛鎸夊師鍚ㄤ綅鍒ゅ畾
+ }
+ } else {
+ value = getH2032FieldValue(report, field);
+ }
double low = Double.parseDouble(bounds[0].trim());
double high = Double.parseDouble(bounds[1].trim());
if (value > 0 && (value < low || value > high)) {
- return buildResult(rule, report, h2032FieldLabel(rule.getCheckField()) + "=" + fmt(value),
+ return buildResult(rule, report, label + "=" + fmt(value),
"鑼冨洿 " + fmt(low) + "~" + fmt(high), "瓒呭嚭鑼冨洿");
}
return null;
@@ -1801,18 +1819,20 @@
}
private String fmt(double v) {
- if (v == Math.floor(v) && !Double.isInfinite(v)) {
+ if (v == Math.floor(v) && !Double.isInfinite(v) && Math.abs(v) < 1e15) {
return String.valueOf((long) v);
}
- return String.valueOf(Math.round(v * 100.0) / 100.0);
+ return java.math.BigDecimal.valueOf(v).setScale(2, java.math.RoundingMode.HALF_UP)
+ .stripTrailingZeros().toPlainString();
}
/** 鍗犳瘮/灏忔暟鍊硷細淇濈暀 4 浣嶅皬鏁� */
private String fmt4(double v) {
- if (v == Math.floor(v) && !Double.isInfinite(v)) {
+ if (v == Math.floor(v) && !Double.isInfinite(v) && Math.abs(v) < 1e15) {
return String.valueOf((long) v);
}
- return String.valueOf(Math.round(v * 10000.0) / 10000.0);
+ return java.math.BigDecimal.valueOf(v).setScale(4, java.math.RoundingMode.HALF_UP)
+ .stripTrailingZeros().toPlainString();
}
// ========== H2031 鏃呭瀹℃牳 ==========
@@ -2021,4 +2041,4 @@
result.setStatus("PENDING");
return result;
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.1