From ebd47e950c8d45f5cc21336f4996857de58e0ea6 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期四, 27 八月 2026 22:51:35 +0800
Subject: [PATCH] fix: persist battery group configuration
---
ruoyi-admin/src/test/java/com/ruoyi/config/FlywayMigrationContractTest.java | 5 +
ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImplTest.java | 38 ++++++++++++
ruoyi-admin/src/test/java/com/ruoyi/config/BatterySelectionMapperContractTest.java | 38 ++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/domain/TBatteryGroupRelationField.java | 2
ruoyi-system/src/main/resources/mapper/system/TBatteryGroupMapper.xml | 9 +-
ruoyi-system/src/main/resources/mapper/system/TBatteryGroupFieldMapper.xml | 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TBatteryGroupFieldController.java | 13 ++--
ruoyi-admin/src/main/resources/db/migration/V11__persist_battery_group_field_values.sql | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupFieldServiceImpl.java | 7 ++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImpl.java | 34 +++++++++--
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TBatteryGroupTemplateController.java | 8 +-
11 files changed, 136 insertions(+), 21 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TBatteryGroupFieldController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TBatteryGroupFieldController.java
index aaf5b77..4d67aa2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TBatteryGroupFieldController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TBatteryGroupFieldController.java
@@ -33,7 +33,7 @@
private ITBatteryGroupFieldService batteryGroupFieldService;
/** 分页查询电池组字段列表。 */
- @PreAuthorize("@ss.hasPermi('system:batteryGroupField:list')")
+ @PreAuthorize("@ss.hasPermi('system:batteryGroup:list')")
@GetMapping("/list")
public TableDataInfo list(TBatteryGroupField field)
{
@@ -43,7 +43,7 @@
}
/** 查询电池组字段详情。 */
- @PreAuthorize("@ss.hasPermi('system:batteryGroupField:query')")
+ @PreAuthorize("@ss.hasPermi('system:batteryGroup:query')")
@GetMapping(value = "/{fieldId}")
public AjaxResult getInfo(@PathVariable Long fieldId)
{
@@ -51,16 +51,17 @@
}
/** 新增电池组字段。 */
- @PreAuthorize("@ss.hasPermi('system:batteryGroupField:add')")
+ @PreAuthorize("@ss.hasPermi('system:batteryGroup:add')")
@Log(title = "电池组字段管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody TBatteryGroupField field)
{
+ field.setCreateBy(getUsername());
return toAjax(batteryGroupFieldService.insertBatteryGroupField(field));
}
/** 编辑电池组字段基础资料。 */
- @PreAuthorize("@ss.hasPermi('system:batteryGroupField:edit')")
+ @PreAuthorize("@ss.hasPermi('system:batteryGroup:edit')")
@Log(title = "电池组字段管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody TBatteryGroupField field)
@@ -70,7 +71,7 @@
}
/** 启用或禁用电池组字段。 */
- @PreAuthorize("@ss.hasPermi('system:batteryGroupField:edit')")
+ @PreAuthorize("@ss.hasPermi('system:batteryGroup:edit')")
@Log(title = "电池组字段管理", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus")
public AjaxResult changeStatus(@RequestBody TBatteryGroupField field)
@@ -80,7 +81,7 @@
}
/** 批量逻辑删除电池组字段。 */
- @PreAuthorize("@ss.hasPermi('system:batteryGroupField:remove')")
+ @PreAuthorize("@ss.hasPermi('system:batteryGroup:remove')")
@Log(title = "电池组字段管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{fieldIds}")
public AjaxResult remove(@PathVariable Long[] fieldIds)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TBatteryGroupTemplateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TBatteryGroupTemplateController.java
index 8c30d93..817ad13 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TBatteryGroupTemplateController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TBatteryGroupTemplateController.java
@@ -31,7 +31,7 @@
private ITBatteryGroupTemplateService batteryGroupTemplateService;
/** 查询模板下拉选项。 */
- @PreAuthorize("@ss.hasPermi('system:batteryGroupTemplate:list')")
+ @PreAuthorize("@ss.hasPermi('system:batteryGroup:list')")
@GetMapping("/options")
public AjaxResult options()
{
@@ -40,7 +40,7 @@
}
/** 查询模板详情及字段关系。 */
- @PreAuthorize("@ss.hasPermi('system:batteryGroupTemplate:query')")
+ @PreAuthorize("@ss.hasPermi('system:batteryGroup:list')")
@GetMapping("/{templateId}")
public AjaxResult getInfo(@PathVariable Long templateId)
{
@@ -48,7 +48,7 @@
}
/** 新增电池组模板。 */
- @PreAuthorize("@ss.hasPermi('system:batteryGroupTemplate:add')")
+ @PreAuthorize("@ss.hasPermi('system:batteryGroup:add')")
@Log(title = "电池组模板管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody TBatteryGroupTemplate template)
@@ -58,7 +58,7 @@
}
/** 编辑电池组模板并替换字段关系。 */
- @PreAuthorize("@ss.hasPermi('system:batteryGroupTemplate:edit')")
+ @PreAuthorize("@ss.hasPermi('system:batteryGroup:edit')")
@Log(title = "电池组模板管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody TBatteryGroupTemplate template)
diff --git a/ruoyi-admin/src/main/resources/db/migration/V11__persist_battery_group_field_values.sql b/ruoyi-admin/src/main/resources/db/migration/V11__persist_battery_group_field_values.sql
new file mode 100644
index 0000000..f171c6d
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/db/migration/V11__persist_battery_group_field_values.sql
@@ -0,0 +1,2 @@
+ALTER TABLE t_battery_group_relation_field
+ ADD COLUMN field_value VARCHAR(500) NULL COMMENT '电池组模板字段值' AFTER battery_group_field_id;
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/config/BatterySelectionMapperContractTest.java b/ruoyi-admin/src/test/java/com/ruoyi/config/BatterySelectionMapperContractTest.java
new file mode 100644
index 0000000..455bad7
--- /dev/null
+++ b/ruoyi-admin/src/test/java/com/ruoyi/config/BatterySelectionMapperContractTest.java
@@ -0,0 +1,38 @@
+package com.ruoyi.config;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import org.junit.jupiter.api.Test;
+
+/** 电池组写入与测试选项查询的 Mapper 契约。 */
+class BatterySelectionMapperContractTest
+{
+ @Test
+ void batteryGroupBatteriesFeedEnabledTestOptions()
+ {
+ String groupMapper = resource("mapper/system/TBatteryGroupMapper.xml");
+ String testMapper = resource("mapper/system/TTestMapper.xml");
+
+ assertTrue(groupMapper.contains("insert into t_battery_group_battery"));
+ assertTrue(testMapper.contains("id=\"selectEnabledBatteryOptions\""));
+ assertTrue(testMapper.contains("from t_battery_group_battery battery"));
+ assertTrue(testMapper.contains("battery_group.status = '0'"));
+ assertTrue(testMapper.contains("battery.battery_no batteryNo"));
+ assertTrue(groupMapper.contains("t.test_status not in ('COMPLETED', 'TERMINATED')"));
+ }
+
+ private static String resource(String path)
+ {
+ try (InputStream stream = BatterySelectionMapperContractTest.class.getClassLoader().getResourceAsStream(path))
+ {
+ if (stream == null) throw new AssertionError("缺少资源 " + path);
+ return new String(stream.readAllBytes(), StandardCharsets.UTF_8);
+ }
+ catch (Exception exception)
+ {
+ throw new AssertionError("无法读取资源 " + path, exception);
+ }
+ }
+}
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/config/FlywayMigrationContractTest.java b/ruoyi-admin/src/test/java/com/ruoyi/config/FlywayMigrationContractTest.java
index f9236f0..0bab1a8 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/config/FlywayMigrationContractTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/config/FlywayMigrationContractTest.java
@@ -89,6 +89,11 @@
assertTrue(v10.contains("collector_id"));
assertTrue(v10.contains("fk_test_battery_collector"));
assertFalse(v10.matches("(?s).*\\bINSERT\\s+INTO\\b.*"));
+
+ String v11 = resource("db/migration/V11__persist_battery_group_field_values.sql");
+ assertTrue(v11.contains("ALTER TABLE t_battery_group_relation_field"));
+ assertTrue(v11.contains("field_value VARCHAR(500)"));
+ assertFalse(v11.matches("(?s).*\\bINSERT\\s+INTO\\b.*"));
}
private static String sha256(String path)
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 6477e04..88a70bc 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
@@ -9,6 +9,7 @@
import static org.mockito.Mockito.when;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -18,6 +19,7 @@
import org.mockito.junit.jupiter.MockitoExtension;
import com.ruoyi.system.domain.TBatteryGroup;
import com.ruoyi.system.domain.TBatteryGroupBattery;
+import com.ruoyi.system.domain.TBatteryGroupRelationField;
import com.ruoyi.system.mapper.TBatteryGroupMapper;
/** 电池组 Service 单元测试。 */
@@ -53,4 +55,40 @@
.map(TBatteryGroupBattery::getBatteryNo).toList());
verify(batteryGroupMapper, never()).batchInsertRelationFields(anyList());
}
+
+ @Test
+ void updateShouldPersistStatusAndTemplateFieldValue()
+ {
+ TBatteryGroup current = new TBatteryGroup();
+ current.setGroupId(12L);
+ current.setStatus("0");
+ TBatteryGroup group = new TBatteryGroup();
+ group.setGroupId(12L);
+ group.setGroupName("样品组");
+ group.setModel("M-01");
+ group.setStatus("1");
+ group.setBatteryNos(Collections.singletonList("BAT-01"));
+ group.setTemplateId(5L);
+ TBatteryGroupRelationField relation = new TBatteryGroupRelationField();
+ relation.setBatteryGroupFieldId(7L);
+ relation.setFieldValue("72Ah");
+ group.setTemplateFieldRelations(Collections.singletonList(relation));
+
+ when(batteryGroupMapper.selectBatteryGroupById(12L)).thenReturn(current);
+ when(batteryGroupMapper.countTestingByGroupId(12L)).thenReturn(0);
+ when(batteryGroupMapper.selectBatteryByNo("BAT-01", 12L)).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(relation));
+ when(batteryGroupMapper.updateBatteryGroup(group)).thenReturn(1);
+
+ assertEquals(1, batteryGroupService.updateBatteryGroup(group));
+
+ 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("1", group.getStatus());
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TBatteryGroupRelationField.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TBatteryGroupRelationField.java
index 7812623..2d46732 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TBatteryGroupRelationField.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TBatteryGroupRelationField.java
@@ -12,6 +12,7 @@
private Long batteryGroupFieldId;
private String fieldName;
private String fieldType;
+ private String fieldValue;
private String delFlag;
public Long getRelationId() { return relationId; } public void setRelationId(Long v) { relationId = v; }
public Long getGroupId() { return groupId; } public void setGroupId(Long v) { groupId = v; }
@@ -19,5 +20,6 @@
public Long getBatteryGroupFieldId() { return batteryGroupFieldId; } public void setBatteryGroupFieldId(Long v) { batteryGroupFieldId = v; }
public String getFieldName() { return fieldName; } public void setFieldName(String v) { fieldName = v; }
public String getFieldType() { return fieldType; } public void setFieldType(String v) { fieldType = v; }
+ public String getFieldValue() { return fieldValue; } public void setFieldValue(String v) { fieldValue = v; }
public String getDelFlag() { return delFlag; } public void setDelFlag(String v) { delFlag = v; }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupFieldServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupFieldServiceImpl.java
index 7c17381..bfd2f78 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupFieldServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupFieldServiceImpl.java
@@ -62,7 +62,11 @@
public int insertBatteryGroupField(TBatteryGroupField field)
{
validateField(field, false);
- field.setStatus(NORMAL);
+ if (StringUtils.isEmpty(field.getStatus()))
+ {
+ field.setStatus(NORMAL);
+ }
+ validateStatus(field.getStatus());
field.setDelFlag(0L);
field.setCreateTime(new Date());
return batteryGroupFieldMapper.insertBatteryGroupField(field);
@@ -73,6 +77,7 @@
public int updateBatteryGroupField(TBatteryGroupField field)
{
validateField(field, true);
+ validateStatus(field.getStatus());
field.setUpdateTime(new Date());
return batteryGroupFieldMapper.updateBatteryGroupField(field);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImpl.java
index 795f7b0..fdc318f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBatteryGroupServiceImpl.java
@@ -22,7 +22,6 @@
public class TBatteryGroupServiceImpl implements ITBatteryGroupService
{
private static final String ENABLED = "0";
- private static final String TESTING = "1";
@Autowired
private TBatteryGroupMapper batteryGroupMapper;
@@ -56,13 +55,13 @@
@Transactional(rollbackFor = Exception.class)
public int insertBatteryGroup(TBatteryGroup group)
{
- validate(group, false);
- group.setGroupName(StringUtils.trim(group.getGroupName()));
- group.setCreateTime(new Date());
if (StringUtils.isEmpty(group.getStatus()))
{
group.setStatus(ENABLED);
}
+ validate(group, false);
+ group.setGroupName(StringUtils.trim(group.getGroupName()));
+ group.setCreateTime(new Date());
int rows = batteryGroupMapper.insertBatteryGroup(group);
replaceRelations(group);
return rows;
@@ -76,10 +75,16 @@
{
throw new ServiceException("电池组ID不能为空");
}
- if (batteryGroupMapper.selectBatteryGroupById(group.getGroupId()) == null)
+ TBatteryGroup current = batteryGroupMapper.selectBatteryGroupById(group.getGroupId());
+ if (current == null)
{
throw new ServiceException("电池组不存在");
}
+ if (StringUtils.isEmpty(group.getStatus()))
+ {
+ group.setStatus(current.getStatus());
+ }
+ validateStatusChange(group, current.getStatus());
validate(group, true);
group.setGroupName(StringUtils.trim(group.getGroupName()));
group.setUpdateTime(new Date());
@@ -100,7 +105,7 @@
{
throw new ServiceException("电池组ID和目标状态不能为空");
}
- if (TESTING.equals(group.getStatus()) || !ENABLED.equals(group.getStatus()) && !"1".equals(group.getStatus()))
+ if (!ENABLED.equals(group.getStatus()) && !"1".equals(group.getStatus()))
{
throw new ServiceException("电池组状态不正确");
}
@@ -155,6 +160,10 @@
{
throw new ServiceException("电池组型号不能为空");
}
+ if (!ENABLED.equals(group.getStatus()) && !"1".equals(group.getStatus()))
+ {
+ throw new ServiceException("电池组状态不正确");
+ }
TBatteryGroup existing = batteryGroupMapper.selectBatteryGroupByName(StringUtils.trim(group.getGroupName()));
if (existing != null && (group.getGroupId() == null || !group.getGroupId().equals(existing.getGroupId())))
{
@@ -198,6 +207,10 @@
if (relation == null || relation.getBatteryGroupFieldId() == null || !fieldIds.add(relation.getBatteryGroupFieldId()))
{
throw new ServiceException("模板字段关系不正确");
+ }
+ if (relation.getFieldValue() != null && relation.getFieldValue().length() > 500)
+ {
+ throw new ServiceException("模板字段值长度不能超过500个字符");
}
}
}
@@ -258,4 +271,13 @@
}
batteryGroupMapper.batchInsertRelationFields(relations);
}
+
+ private void validateStatusChange(TBatteryGroup group, String currentStatus)
+ {
+ if ("1".equals(group.getStatus()) && !"1".equals(currentStatus)
+ && batteryGroupMapper.countTestingByGroupId(group.getGroupId()) > 0)
+ {
+ throw new ServiceException("测试中的电池组不能禁用");
+ }
+ }
}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TBatteryGroupFieldMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TBatteryGroupFieldMapper.xml
index 4b8fc83..b7e600c 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TBatteryGroupFieldMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TBatteryGroupFieldMapper.xml
@@ -70,6 +70,7 @@
update t_battery_group_field
set field_name = #{fieldName},
field_type = #{fieldType},
+ status = #{status},
remark = #{remark},
update_by = #{updateBy},
update_time = #{updateTime}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TBatteryGroupMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TBatteryGroupMapper.xml
index 62451dc..38ce8c6 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TBatteryGroupMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TBatteryGroupMapper.xml
@@ -22,6 +22,7 @@
<id property="relationId" column="relation_id" /><result property="groupId" column="group_id" />
<result property="templateId" column="template_id" /><result property="batteryGroupFieldId" column="battery_group_field_id" />
<result property="fieldName" column="field_name" /><result property="fieldType" column="field_type" />
+ <result property="fieldValue" column="field_value" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="groupColumns">select group_id, group_name, model, purpose, z, h, f, a, b, status, create_by, create_time, update_by, update_time, remark, del_flag from t_battery_group</sql>
@@ -50,18 +51,18 @@
<select id="selectBatteryGroupById" parameterType="Long" resultMap="TBatteryGroupResult"><include refid="groupColumns"/> where group_id = #{groupId} and del_flag = '0'</select>
<select id="selectBatteryGroupByName" resultMap="TBatteryGroupResult"> <include refid="groupColumns"/> where group_name = #{groupName} and del_flag = '0' limit 1</select>
<select id="selectBatteries" parameterType="Long" resultMap="TBatteryGroupBatteryResult">select relation_id, group_id, battery_no, sort_order, del_flag from t_battery_group_battery where group_id = #{groupId} and del_flag = '0' order by sort_order, relation_id</select>
- <select id="selectRelationFields" parameterType="Long" resultMap="TBatteryGroupRelationFieldResult">select r.relation_id, r.group_id, r.template_id, r.battery_group_field_id, f.field_name, f.field_type, r.del_flag from t_battery_group_relation_field r inner join t_battery_group_field f on f.field_id = r.battery_group_field_id and f.del_flag = '0' where r.group_id = #{groupId} and r.del_flag = '0' order by r.relation_id</select>
+ <select id="selectRelationFields" parameterType="Long" resultMap="TBatteryGroupRelationFieldResult">select r.relation_id, r.group_id, r.template_id, r.battery_group_field_id, f.field_name, f.field_type, r.field_value, r.del_flag from t_battery_group_relation_field r inner join t_battery_group_field f on f.field_id = r.battery_group_field_id and f.del_flag = '0' where r.group_id = #{groupId} and r.del_flag = '0' order by r.relation_id</select>
<select id="selectTemplate" resultType="TBatteryGroup">select template_id, template_name from t_battery_group_template where template_id = #{templateId}</select>
<select id="selectTemplateFieldIds" resultType="Long">select field_id from t_battery_group_template_field where template_id = #{templateId} and del_flag = '0' order by sort_order, relation_id</select>
<select id="selectValidTemplateFields" resultMap="TBatteryGroupRelationFieldResult">select r.relation_id, r.template_id, r.field_id as battery_group_field_id, f.field_name, f.field_type, '0' as del_flag from t_battery_group_template_field r inner join t_battery_group_field f on f.field_id = r.field_id and f.del_flag = '0' where r.template_id = #{templateId} and r.del_flag = '0' and r.field_id in <foreach collection="fieldIds" item="fieldId" open="(" separator="," close=")">#{fieldId}</foreach></select>
<select id="selectBatteryByNo" resultMap="TBatteryGroupBatteryResult">select relation_id, group_id, battery_no, sort_order, del_flag from t_battery_group_battery where battery_no = #{batteryNo} and del_flag = '0' limit 1</select>
<insert id="insertBatteryGroup" parameterType="TBatteryGroup" useGeneratedKeys="true" keyProperty="groupId">insert into t_battery_group (group_name, model, purpose, z, h, f, a, b, status, create_by, create_time, remark, del_flag) values (#{groupName}, #{model}, #{purpose}, #{z}, #{h}, #{f}, #{a}, #{b}, #{status}, #{createBy}, sysdate(), #{remark}, '0')</insert>
- <update id="updateBatteryGroup" parameterType="TBatteryGroup">update t_battery_group set group_name=#{groupName}, model=#{model}, purpose=#{purpose}, z=#{z}, h=#{h}, f=#{f}, a=#{a}, b=#{b}, update_by=#{updateBy}, update_time=sysdate(), remark=#{remark} where group_id=#{groupId} and del_flag='0'</update>
+ <update id="updateBatteryGroup" parameterType="TBatteryGroup">update t_battery_group set group_name=#{groupName}, model=#{model}, purpose=#{purpose}, z=#{z}, h=#{h}, f=#{f}, a=#{a}, b=#{b}, status=#{status}, update_by=#{updateBy}, update_time=sysdate(), remark=#{remark} where group_id=#{groupId} and del_flag='0'</update>
<update id="updateBatteryGroupStatus" parameterType="TBatteryGroup">update t_battery_group set status=#{status}, update_by=#{updateBy}, update_time=sysdate() where group_id=#{groupId} and del_flag='0'</update>
<update id="deleteBatteryGroup">update t_battery_group set del_flag=cast(group_id as char), update_by=#{updateBy}, update_time=sysdate() where group_id=#{groupId} and del_flag='0'</update>
<update id="deleteBatteries">update t_battery_group_battery set del_flag=cast(relation_id as char) where group_id=#{groupId} and del_flag='0'</update>
<update id="deleteRelationFields">update t_battery_group_relation_field set del_flag=cast(relation_id as char) where group_id=#{groupId} and del_flag='0'</update>
<insert id="batchInsertBatteries">insert into t_battery_group_battery (group_id,battery_no,sort_order,del_flag) values <foreach collection="items" item="item" separator=",">(#{item.groupId},#{item.batteryNo},#{item.sortOrder},#{item.delFlag})</foreach></insert>
- <insert id="batchInsertRelationFields">insert into t_battery_group_relation_field (group_id,template_id,battery_group_field_id,del_flag) values <foreach collection="items" item="item" separator=",">(#{item.groupId},#{item.templateId},#{item.batteryGroupFieldId},#{item.delFlag})</foreach></insert>
- <select id="countTestingByGroupId" resultType="int">select count(1) from t_test_battery b inner join t_test t on t.test_id = b.test_id and t.del_flag = '0' where b.group_id=#{groupId} and b.del_flag='0' and t.status='1'</select>
+ <insert id="batchInsertRelationFields">insert into t_battery_group_relation_field (group_id,template_id,battery_group_field_id,field_value,del_flag) values <foreach collection="items" item="item" separator=",">(#{item.groupId},#{item.templateId},#{item.batteryGroupFieldId},#{item.fieldValue},#{item.delFlag})</foreach></insert>
+ <select id="countTestingByGroupId" resultType="int">select count(1) from t_test_battery b inner join t_test t on t.test_id = b.test_id and t.del_flag = 0 where b.group_id=#{groupId} and b.del_flag=0 and t.test_status not in ('COMPLETED', 'TERMINATED')</select>
</mapper>
--
Gitblit v1.7.1