From 92f32acd847ea1700590bc669750f23ef499840e Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 05 九月 2026 13:39:44 +0800
Subject: [PATCH] 清理旧测试结构并贯通最终业务数据链路
---
battery-business/src/main/java/com/battery/business/service/impl/TBatteryGroupServiceImpl.java | 51 ++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 42 insertions(+), 9 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImpl.java b/battery-business/src/main/java/com/battery/business/service/impl/TBatteryGroupServiceImpl.java
similarity index 83%
rename from ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImpl.java
rename to battery-business/src/main/java/com/battery/business/service/impl/TBatteryGroupServiceImpl.java
index d682c17..169a059 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImpl.java
+++ b/battery-business/src/main/java/com/battery/business/service/impl/TBatteryGroupServiceImpl.java
@@ -1,4 +1,4 @@
-package com.ruoyi.system.service.impl;
+package com.battery.business.service.impl;
import java.util.ArrayList;
import java.math.BigDecimal;
@@ -17,11 +17,11 @@
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.system.domain.TBatteryGroup;
-import com.ruoyi.system.domain.TBatteryGroupBattery;
-import com.ruoyi.system.domain.TBatteryGroupRelationField;
-import com.ruoyi.system.mapper.TBatteryGroupMapper;
-import com.ruoyi.system.service.ITBatteryGroupService;
+import com.battery.business.domain.TBatteryGroup;
+import com.battery.business.domain.TBatteryGroupBattery;
+import com.battery.business.domain.TBatteryGroupRelationField;
+import com.battery.business.mapper.TBatteryGroupMapper;
+import com.battery.business.service.ITBatteryGroupService;
/** 电池组管理服务实现。 */
@Service
@@ -44,6 +44,7 @@
for (TBatteryGroup item : groups)
{
item.setTemplateFields(batteryGroupMapper.selectRelationFields(item.getGroupId()));
+ loadSpecFields(item);
}
return groups;
}
@@ -66,6 +67,7 @@
}
group.setBatteries(batteryGroupMapper.selectBatteries(groupId));
group.setTemplateFields(batteryGroupMapper.selectRelationFields(groupId));
+ loadSpecFields(group);
return group;
}
@@ -83,6 +85,7 @@
group.setCreateTime(new Date());
int rows = batteryGroupMapper.insertBatteryGroup(group);
replaceRelations(group);
+ batteryGroupMapper.saveSpecFields(group);
return rows;
}
@@ -114,6 +117,7 @@
throw new ServiceException("电池组不存在或已删除");
}
replaceRelations(group);
+ batteryGroupMapper.saveSpecFields(group);
return rows;
}
@@ -212,9 +216,19 @@
}
if (group.getTemplateId() == null)
{
- if (group.getTemplateFieldRelations() != null && !group.getTemplateFieldRelations().isEmpty())
+ List<TBatteryGroupRelationField> values = group.getTemplateFieldRelations();
+ if (values != null && !values.isEmpty())
{
- throw new ServiceException("未选择模板时不能配置模板字段");
+ List<Long> ids = values.stream().map(TBatteryGroupRelationField::getBatteryGroupFieldId).toList();
+ if (ids.contains(null) || new HashSet<>(ids).size() != ids.size()) throw new ServiceException("字段身份无效或重复");
+ List<TBatteryGroupRelationField> definitions = batteryGroupMapper.selectCurrentFieldDefinitions(ids);
+ if (definitions.size() != ids.size()) throw new ServiceException("字段定义不存在");
+ for (TBatteryGroupRelationField value : values)
+ {
+ if (value.getFieldValue() != null && value.getFieldValue().length() > 500) throw new ServiceException("字段值过长");
+ TBatteryGroupRelationField definition = definitions.stream().filter(item -> item.getBatteryGroupFieldId().equals(value.getBatteryGroupFieldId())).findFirst().orElseThrow();
+ validateFieldValue(definition.getFieldType(), value.getFieldValue());
+ }
}
return;
}
@@ -270,6 +284,25 @@
}
}
+ private void loadSpecFields(TBatteryGroup group)
+ {
+ // 现有表单的固定入口投影到当前字段,不恢复主表专用字段或测试快照。
+ if (group.getTemplateFields() == null) return;
+ for (TBatteryGroupRelationField field : group.getTemplateFields())
+ {
+ if (field.getFieldName() == null) continue;
+ switch (field.getFieldName())
+ {
+ case "Z" -> group.setZ(field.getFieldValue());
+ case "H" -> group.setH(field.getFieldValue());
+ case "F" -> group.setF(field.getFieldValue());
+ case "A" -> group.setA(field.getFieldValue());
+ case "B" -> group.setB(field.getFieldValue());
+ default -> { }
+ }
+ }
+ }
+
private void replaceRelations(TBatteryGroup group)
{
batteryGroupMapper.deleteBatteries(group.getGroupId());
@@ -285,7 +318,7 @@
batteries.add(item);
}
batteryGroupMapper.batchInsertBatteries(batteries);
- if (group.getTemplateId() == null)
+ if (group.getTemplateId() == null && (group.getTemplateFieldRelations() == null || group.getTemplateFieldRelations().isEmpty()))
{
return;
}
--
Gitblit v1.7.1