yeg
2026-08-31 a791df8ce65bc126f0c98330b1a5834e0826e20d
修正停止测试完成状态

人工停止直接写入检测完成并结束接收,历史兼容状态统一纳入完成筛选。
同步修正电池组占用统计及相关 Mapper 契约测试。
5个文件已修改
16 ■■■■■ 已修改文件
ruoyi-admin/src/test/java/com/ruoyi/config/BatterySelectionMapperContractTest.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/ruoyi/config/TestDeviceBindingMapperContractTest.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTestServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TBatteryGroupMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TTestMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/ruoyi/config/BatterySelectionMapperContractTest.java
@@ -20,7 +20,7 @@
        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')"));
        assertTrue(groupMapper.contains("t.test_status not in ('COMPLETED', 'COMPLETION_PENDING', 'TERMINATED')"));
    }
    private static String resource(String path)
ruoyi-admin/src/test/java/com/ruoyi/config/TestDeviceBindingMapperContractTest.java
@@ -30,7 +30,9 @@
        assertTrue(mapper.contains("then 'RUNNING_ABNORMAL'"));
        assertTrue(mapper.contains("exception_fact.interval_status = 'OPEN'"));
        assertTrue(mapper.contains("set test_status = 'COMPLETED'"));
        assertTrue(mapper.contains("#{testStatus} = 'COMPLETED' and t.test_status in ('COMPLETED', 'TERMINATED')"));
        assertTrue(mapper.contains("set test_status = 'COMPLETED', reception_status = 'ENDED'"));
        assertTrue(mapper.contains("backfill_status = 'COMPLETED'"));
        assertTrue(mapper.contains("#{testStatus} = 'COMPLETED' and t.test_status in ('COMPLETED', 'COMPLETION_PENDING', 'TERMINATED')"));
        assertFalse(mapper.contains("group_concat"));
    }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTestServiceImpl.java
@@ -289,7 +289,7 @@
        testMapper.deleteChannelLeasesByTestId(testId);
        testMapper.deleteCollectorChannelLeasesByTestId(testId);
        testMapper.insertTestAudit(testId, "TEST_STOPPED", operatorId, updateBy, null,
                JSON.toJSONString(Map.of("testStatus", "COMPLETION_PENDING", "receptionStatus", "ENDED",
                JSON.toJSONString(Map.of("testStatus", "COMPLETED", "receptionStatus", "ENDED",
                        "polling", "STOPPED", "closedIntervals", closedIntervals, "release", "IMMEDIATE")));
        return 1;
    }
ruoyi-system/src/main/resources/mapper/system/TBatteryGroupMapper.xml
@@ -68,5 +68,5 @@
    <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,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>
    <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', 'COMPLETION_PENDING', 'TERMINATED')</select>
</mapper>
ruoyi-system/src/main/resources/mapper/system/TTestMapper.xml
@@ -182,7 +182,7 @@
                    or (#{testStatus} = 'RUNNING' and t.test_status = 'RUNNING'
                        and not exists (select 1 from t_test_collector_exception_interval exception_fact
                                        where exception_fact.test_id = t.test_id and exception_fact.interval_status = 'OPEN'))
                    or (#{testStatus} = 'COMPLETED' and t.test_status in ('COMPLETED', 'TERMINATED'))
                    or (#{testStatus} = 'COMPLETED' and t.test_status in ('COMPLETED', 'COMPLETION_PENDING', 'TERMINATED'))
                    or (#{testStatus} not in ('RUNNING', 'RUNNING_ABNORMAL', 'COMPLETED') and t.test_status = #{testStatus})
                )
            </if>
@@ -725,8 +725,8 @@
    </update>
    <update id="updateReceptionStopped">
        update t_test
        set test_status = 'COMPLETION_PENDING', reception_status = 'ENDED', ended_at_utc = #{endedAtUtc},
            backfill_status = 'NOT_STARTED',
        set test_status = 'COMPLETED', reception_status = 'ENDED', ended_at_utc = #{endedAtUtc},
            backfill_status = 'COMPLETED',
            update_by = #{updateBy}, update_time = #{endedAtUtc}
        where test_id = #{testId} and reception_status in ('RECEIVING', 'PAUSED') and del_flag = 0
    </update>