yeg
2026-08-26 a9e3435464f86a50ffa81a16ef92e47734adef6e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.TBatteryGroupMapper">
    <resultMap type="TBatteryGroup" id="TBatteryGroupResult">
        <id property="groupId" column="group_id" /><result property="groupName" column="group_name" />
        <result property="model" column="model" /><result property="purpose" column="purpose" />
        <result property="z" column="z" /><result property="h" column="h" /><result property="f" column="f" />
        <result property="a" column="a" /><result property="b" column="b" /><result property="status" column="status" />
        <result property="createBy" column="create_by" /><result property="createTime" column="create_time" />
        <result property="updateBy" column="update_by" /><result property="updateTime" column="update_time" />
        <result property="remark" column="remark" /><result property="delFlag" column="del_flag" />
        <result property="batteryCount" column="battery_count" />
    </resultMap>
    <resultMap type="TBatteryGroupBattery" id="TBatteryGroupBatteryResult">
        <id property="relationId" column="relation_id" /><result property="groupId" column="group_id" />
        <result property="batteryNo" column="battery_no" /><result property="sortOrder" column="sort_order" />
        <result property="delFlag" column="del_flag" />
    </resultMap>
    <resultMap type="TBatteryGroupRelationField" id="TBatteryGroupRelationFieldResult">
        <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="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>
    <select id="selectBatteryGroupList" parameterType="TBatteryGroup" resultMap="TBatteryGroupResult">
        select bg.group_id, bg.group_name, bg.model, bg.purpose, bg.z, bg.h, bg.f, bg.a, bg.b, bg.status,
               bg.create_by, bg.create_time, bg.update_by, bg.update_time, bg.remark, bg.del_flag,
               (select count(1) from t_battery_group_battery bgb where bgb.group_id = bg.group_id and bgb.del_flag = '0') as battery_count
        from t_battery_group bg
        <where>bg.del_flag = '0'
            <if test="groupId != null">and bg.group_id = #{groupId}</if>
            <if test="groupName != null and groupName != ''">and bg.group_name like concat('%', #{groupName}, '%')</if>
            <if test="model != null and model != ''">and bg.model like concat('%', #{model}, '%')</if>
            <if test="status != null and status != ''">and bg.status = #{status}</if>
            <if test="createBy != null and createBy != ''">and bg.create_by like concat('%', #{createBy}, '%')</if>
            <if test="beginCreateTime != null">and bg.create_time &gt;= #{beginCreateTime}</if>
            <if test="endCreateTime != null">and bg.create_time &lt;= #{endCreateTime}</if>
        </where> order by bg.create_time desc, bg.group_id desc
    </select>
    <select id="selectBatteryGroupCreatorOptions" resultType="map">
        select distinct bg.create_by as userName, u.nick_name as nickName
        from t_battery_group bg
        left join sys_user u on u.user_name collate utf8mb4_general_ci = bg.create_by collate utf8mb4_general_ci
        where bg.del_flag = '0' and bg.create_by is not null and bg.create_by != ''
        order by bg.create_by
    </select>
    <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="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="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>
</mapper>