yeg
2026-08-27 65ba1bb7615d5c900cff9c18995ad99e3a73d11a
fix: preserve battery group field types
3个文件已修改
30 ■■■■■ 已修改文件
ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TBatteryGroupFieldServiceImplTest.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupFieldServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TBatteryGroupFieldServiceImplTest.java
@@ -75,15 +75,27 @@
    }
    @Test
    void insertShouldRejectUnsupportedFieldType()
    void insertShouldAcceptExistingFieldTypes()
    {
        field.setFieldId(null);
        field.setFieldType("number");
        when(batteryGroupFieldMapper.insertBatteryGroupField(any(TBatteryGroupField.class))).thenReturn(1);
        assertEquals(1, batteryGroupFieldService.insertBatteryGroupField(field));
        verify(batteryGroupFieldMapper).insertBatteryGroupField(field);
    }
    @Test
    void insertShouldRejectUnsupportedFieldType()
    {
        field.setFieldId(null);
        field.setFieldType("boolean");
        ServiceException exception = assertThrows(ServiceException.class,
                () -> batteryGroupFieldService.insertBatteryGroupField(field));
        assertEquals("字段类型仅支持text(文字)", exception.getMessage());
        assertEquals("字段类型仅支持text、number、time或remark", exception.getMessage());
        verify(batteryGroupFieldMapper, never()).insertBatteryGroupField(any(TBatteryGroupField.class));
    }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupFieldServiceImpl.java
@@ -2,6 +2,7 @@
import java.util.Date;
import java.util.List;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -21,7 +22,7 @@
{
    private static final String NORMAL = "0";
    private static final String DISABLED = "1";
    private static final String TEXT = "text";
    private static final Set<String> SUPPORTED_FIELD_TYPES = Set.of("text", "number", "time", "remark");
    @Autowired
    private TBatteryGroupFieldMapper batteryGroupFieldMapper;
@@ -147,9 +148,9 @@
        {
            throw new ServiceException("字段类型不能为空");
        }
        if (!TEXT.equals(field.getFieldType()))
        if (!SUPPORTED_FIELD_TYPES.contains(field.getFieldType()))
        {
            throw new ServiceException("字段类型仅支持text(文字)");
            throw new ServiceException("字段类型仅支持text、number、time或remark");
        }
        if (field.getRemark() != null && field.getRemark().length() > 500)
        {
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImpl.java
@@ -26,18 +26,21 @@
    @Autowired
    private TBatteryGroupMapper batteryGroupMapper;
    /** 按查询条件返回未删除的电池组列表。 */
    @Override
    public List<TBatteryGroup> selectBatteryGroupList(TBatteryGroup group)
    {
        return batteryGroupMapper.selectBatteryGroupList(group);
    }
    /** 返回已有电池组的创建人选项。 */
    @Override
    public List<Map<String, Object>> selectBatteryGroupCreatorOptions()
    {
        return batteryGroupMapper.selectBatteryGroupCreatorOptions();
    }
    /** 返回电池组及其电池号、模板字段和值。 */
    @Override
    public TBatteryGroup selectBatteryGroupById(Long groupId)
    {
@@ -51,6 +54,7 @@
        return group;
    }
    /** 新增电池组并原子写入电池号和可选模板字段值。 */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int insertBatteryGroup(TBatteryGroup group)
@@ -67,6 +71,7 @@
        return rows;
    }
    /** 更新电池组并原子替换电池号和可选模板字段值。 */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int updateBatteryGroup(TBatteryGroup group)
@@ -97,6 +102,7 @@
        return rows;
    }
    /** 启用或禁用电池组,存在进行中测试时禁止禁用。 */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int updateBatteryGroupStatus(TBatteryGroup group)
@@ -116,6 +122,7 @@
        return batteryGroupMapper.updateBatteryGroupStatus(group);
    }
    /** 逻辑删除电池组及关系,存在进行中测试时拒绝删除。 */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int deleteBatteryGroupByIds(Long[] groupIds, String updateBy)