From 54e10aee11aa4a10926df02782ca07d41eeb9b98 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期二, 06 十月 2026 16:19:07 +0800
Subject: [PATCH] fix(holiday): 加大折线图纵向间距并同步 Word 尺寸

---
 traffic-audit-server/src/test/java/com/trafficaudit/holiday/service/HolidayVehicleAdjustmentServiceTest.java |   85 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 85 insertions(+), 0 deletions(-)

diff --git a/traffic-audit-server/src/test/java/com/trafficaudit/holiday/service/HolidayVehicleAdjustmentServiceTest.java b/traffic-audit-server/src/test/java/com/trafficaudit/holiday/service/HolidayVehicleAdjustmentServiceTest.java
new file mode 100644
index 0000000..4239b6d
--- /dev/null
+++ b/traffic-audit-server/src/test/java/com/trafficaudit/holiday/service/HolidayVehicleAdjustmentServiceTest.java
@@ -0,0 +1,85 @@
+package com.trafficaudit.holiday.service;
+
+import com.trafficaudit.holiday.HolidayConstants;
+import com.trafficaudit.holiday.entity.HolidayVehicleAdjustment;
+import com.trafficaudit.holiday.entity.HolidayVehicleFlow;
+import com.trafficaudit.holiday.mapper.HolidayVehicleAdjustmentMapper;
+import com.trafficaudit.holiday.mapper.HolidayVehicleFlowMapper;
+import org.junit.jupiter.api.Test;
+
+import java.lang.reflect.Field;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+class HolidayVehicleAdjustmentServiceTest {
+
+    @Test
+    void listAddsOriginalNationalProvincialValueAndLeavesMissingSourceBlank() throws Exception {
+        HolidayVehicleAdjustment adjusted = adjustment("2025-10-04", "337.5009");
+        HolidayVehicleAdjustment missingSource = adjustment("2025-10-05", "330.0000");
+
+        HolidayVehicleAdjustmentMapper adjustmentMapper = mock(HolidayVehicleAdjustmentMapper.class);
+        HolidayVehicleFlowMapper vehicleFlowMapper = mock(HolidayVehicleFlowMapper.class);
+        when(adjustmentMapper.selectList(any())).thenReturn(Arrays.asList(adjusted, missingSource));
+        when(vehicleFlowMapper.selectList(any())).thenReturn(Collections.singletonList(
+                vehicleFlow("2025-10-04", HolidayConstants.ROAD_NATIONAL_PROVINCIAL, "350.0000")));
+
+        HolidayVehicleAdjustmentService service = new HolidayVehicleAdjustmentService();
+        inject(service, "adjustmentMapper", adjustmentMapper);
+        inject(service, "vehicleFlowMapper", vehicleFlowMapper);
+
+        List<HolidayVehicleAdjustment> rows = service.list(2025);
+
+        assertEquals(0, new BigDecimal("350.0000").compareTo(rows.get(0).getOriginalValue()));
+        assertNull(rows.get(1).getOriginalValue());
+    }
+
+    @Test
+    void findOriginalValueReturnsMatchedValueAndNullWhenMissing() throws Exception {
+        HolidayVehicleFlowMapper vehicleFlowMapper = mock(HolidayVehicleFlowMapper.class);
+        when(vehicleFlowMapper.selectOne(any()))
+                .thenReturn(vehicleFlow("2025-10-04", HolidayConstants.ROAD_NATIONAL_PROVINCIAL, "337.9501"))
+                .thenReturn(null);
+
+        HolidayVehicleAdjustmentService service = new HolidayVehicleAdjustmentService();
+        inject(service, "vehicleFlowMapper", vehicleFlowMapper);
+
+        assertEquals(0, new BigDecimal("337.9501")
+                .compareTo(service.findOriginalValue(2025, LocalDate.of(2025, 10, 4))));
+        assertNull(service.findOriginalValue(2025, LocalDate.of(2025, 10, 5)));
+        assertThrows(IllegalArgumentException.class,
+                () -> service.findOriginalValue(2025, LocalDate.of(2024, 10, 4)));
+    }
+    private static HolidayVehicleAdjustment adjustment(String date, String adjustedValue) {
+        HolidayVehicleAdjustment row = new HolidayVehicleAdjustment();
+        row.setYear(LocalDate.parse(date).getYear());
+        row.setFlowDate(LocalDate.parse(date));
+        row.setAdjustedValue(new BigDecimal(adjustedValue));
+        return row;
+    }
+
+    private static HolidayVehicleFlow vehicleFlow(String date, String roadCategory, String value) {
+        HolidayVehicleFlow row = new HolidayVehicleFlow();
+        row.setYear(LocalDate.parse(date).getYear());
+        row.setFlowDate(LocalDate.parse(date));
+        row.setRoadCategory(roadCategory);
+        row.setVehicleCount(new BigDecimal(value));
+        return row;
+    }
+
+    private static void inject(Object target, String fieldName, Object value) throws Exception {
+        Field field = target.getClass().getDeclaredField(fieldName);
+        field.setAccessible(true);
+        field.set(target, value);
+    }
+}

--
Gitblit v1.9.1