From 76f9639e3c0e14cc6a4e05d3a3212799ea1c48fb Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 29 八月 2026 09:31:40 +0800
Subject: [PATCH] 实现 Ticket05 共享字段与电池组持久化

---
 ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImplTest.java |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImplTest.java b/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImplTest.java
index 88a70bc..d47148e 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImplTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImplTest.java
@@ -71,7 +71,8 @@
         group.setTemplateId(5L);
         TBatteryGroupRelationField relation = new TBatteryGroupRelationField();
         relation.setBatteryGroupFieldId(7L);
-        relation.setFieldValue("72Ah");
+        relation.setFieldValue("72");
+        relation.setFieldType("number");
         group.setTemplateFieldRelations(Collections.singletonList(relation));
 
         when(batteryGroupMapper.selectBatteryGroupById(12L)).thenReturn(current);
@@ -88,7 +89,34 @@
         verify(batteryGroupMapper).updateBatteryGroup(group);
         ArgumentCaptor<List<TBatteryGroupRelationField>> captor = ArgumentCaptor.forClass(List.class);
         verify(batteryGroupMapper).batchInsertRelationFields(captor.capture());
-        assertEquals("72Ah", captor.getValue().get(0).getFieldValue());
+        assertEquals("72", captor.getValue().get(0).getFieldValue());
         assertEquals("1", group.getStatus());
     }
+
+    @Test
+    void insertShouldRejectInvalidTypedFieldValue()
+    {
+        TBatteryGroup group = new TBatteryGroup();
+        group.setGroupName("样品组");
+        group.setModel("M-01");
+        group.setBatteryNos(Collections.singletonList("BAT-01"));
+        group.setTemplateId(5L);
+        TBatteryGroupRelationField relation = new TBatteryGroupRelationField();
+        relation.setBatteryGroupFieldId(7L);
+        relation.setFieldValue("72Ah");
+        group.setTemplateFieldRelations(Collections.singletonList(relation));
+        TBatteryGroupRelationField validField = new TBatteryGroupRelationField();
+        validField.setBatteryGroupFieldId(7L);
+        validField.setFieldType("number");
+        when(batteryGroupMapper.selectBatteryGroupByName("样品组")).thenReturn(null);
+        when(batteryGroupMapper.selectBatteryByNo("BAT-01", null)).thenReturn(null);
+        when(batteryGroupMapper.selectTemplate(5L)).thenReturn(new TBatteryGroup());
+        when(batteryGroupMapper.selectTemplateFieldIds(5L)).thenReturn(Collections.singletonList(7L));
+        when(batteryGroupMapper.selectValidTemplateFields(5L, Collections.singletonList(7L)))
+                .thenReturn(Collections.singletonList(validField));
+
+        org.junit.jupiter.api.Assertions.assertThrows(com.ruoyi.common.exception.ServiceException.class,
+                () -> batteryGroupService.insertBatteryGroup(group));
+        verify(batteryGroupMapper, never()).insertBatteryGroup(any(TBatteryGroup.class));
+    }
 }

--
Gitblit v1.7.1