<?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.battery.business.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="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="fieldValue" column="field_value" />
|
<result property="delFlag" column="del_flag" />
|
</resultMap>
|
<resultMap type="TBatteryGroupTemplate" id="TBatteryGroupTemplateReferenceResult">
|
<id property="templateId" column="template_id" />
|
<result property="templateName" column="template_name" />
|
</resultMap>
|
<sql id="groupColumns">select group_id, group_name, model, purpose, 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.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 >= #{beginCreateTime}</if>
|
<if test="endCreateTime != null">and bg.create_time <= #{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.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" resultMap="TBatteryGroupTemplateReferenceResult">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 <choose><when test="groupId != null">and group_id = #{groupId}</when><otherwise>and 1 = 0</otherwise></choose> limit 1</select>
|
<insert id="insertBatteryGroup" parameterType="TBatteryGroup" useGeneratedKeys="true" keyProperty="groupId">insert into t_battery_group (group_name, model, purpose, status, create_by, create_time, remark, del_flag) values (#{groupName}, #{model}, #{purpose}, #{status}, #{createBy}, utc_timestamp(3), #{remark}, 0)</insert>
|
<update id="updateBatteryGroup" parameterType="TBatteryGroup">update t_battery_group set group_name=#{groupName}, model=#{model}, purpose=#{purpose}, status=#{status}, update_by=#{updateBy}, update_time=utc_timestamp(3), 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=group_id, update_by=#{updateBy}, update_time=utc_timestamp(3) where group_id=#{groupId} and del_flag=0</update>
|
<update id="deleteBatteries">update t_battery_group_battery set del_flag=relation_id where group_id=#{groupId} and del_flag=0</update>
|
<delete id="deleteRelationFields">delete from t_battery_group_relation_field where group_id=#{groupId}</delete>
|
<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', 'COMPLETION_PENDING', 'TERMINATED')</select>
|
<insert id="saveSpecFields">
|
insert into t_battery_group_relation_field (group_id, battery_group_field_id, field_value, del_flag)
|
select #{groupId}, field_id,
|
case field_name when 'Z' then #{z} when 'H' then #{h} when 'F' then #{f} when 'A' then #{a} when 'B' then #{b} end, 0
|
from t_battery_group_field where field_name in ('Z','H','F','A','B') and del_flag=0
|
and case field_name when 'Z' then #{z} when 'H' then #{h} when 'F' then #{f} when 'A' then #{a} when 'B' then #{b} end is not null
|
on duplicate key update field_value=values(field_value)
|
</insert>
|
<select id="selectCurrentFieldDefinitions" resultMap="TBatteryGroupRelationFieldResult">
|
select field_id battery_group_field_id, field_name, field_type from t_battery_group_field
|
where del_flag=0 and field_id in <foreach collection="fieldIds" item="id" open="(" separator="," close=")">#{id}</foreach>
|
</select>
|
</mapper>
|