<?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.op.mes.mapper.ProRouteLineMapper">

	<resultMap type="ProRouteLine" id="ProRouteLineResult">
		<result property="recordId"	column="record_id"	/>
		<result property="routeId"	column="route_id"	/>
		<result property="itemId"	column="item_id"	/>
		<result property="itemCode"	column="item_code"	/>
		<result property="itemName"	column="item_name"	/>
		<result property="remark"	column="remark"	/>
		<result property="attr1"	column="attr1"	/>
		<result property="attr2"	column="attr2"	/>
		<result property="attr3"	column="attr3"	/>
		<result property="attr4"	column="attr4"	/>
		<result property="createBy"	column="create_by"	/>
		<result property="createTime"	column="create_time"	/>
		<result property="updateBy"	column="update_by"	/>
		<result property="updateTime"	column="update_time"	/>
	</resultMap>

	<sql id="selectProRouteLineVo">
		select record_id, route_id, item_id, item_code, item_name, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from pro_route_line
	</sql>

	<select id="selectProRouteLineList" parameterType="ProRouteLine" resultMap="ProRouteLineResult">
		<include refid="selectProRouteLineVo"/>
		<where>
			<if test="routeId != null  and routeId != ''"> and route_id = #{routeId}</if>
			<if test="itemId != null  and itemId != ''"> and item_id = #{itemId}</if>
			<if test="itemCode != null  and itemCode != ''"> and item_code = #{itemCode}</if>
			<if test="itemName != null  and itemName != ''"> and item_name like concat('%', #{itemName}, '%')</if>
			<if test="attr1 != null  and attr1 != ''"> and attr1 = #{attr1}</if>
			<if test="attr2 != null  and attr2 != ''"> and attr2 = #{attr2}</if>
			<if test="attr3 != null  and attr3 != ''"> and attr3 = #{attr3}</if>
			<if test="attr4 != null  and attr4 != ''"> and attr4 = #{attr4}</if>
		</where>
	</select>

	<select id="selectProRouteLineByRecordId" parameterType="String" resultMap="ProRouteLineResult">
		<include refid="selectProRouteLineVo"/>
		where record_id = #{recordId}
	</select>
	<select id="getRouteProdLineListUndo" resultType="com.op.mes.domain.ProRouteLine">
		 select sf.f_code [key],
				sf.factory_name label
		 from sys_factory sf
		 where sf.f_type='l' and sf.status = '1' and sf.del_flag = '0'
	</select>
	<select id="getRouteProdLineListDo" resultType="com.op.mes.domain.ProRouteLine">
		select pl.item_code [key],
		       sf.factory_name label
		from pro_route_line pl
		left join sys_factory sf on pl.item_code = sf.f_code
		where pl.route_id = #{routeId}
	</select>

	<insert id="insertProRouteLine" parameterType="ProRouteLine">
		insert into pro_route_line
		<trim prefix="(" suffix=")" suffixOverrides=",">
			<if test="recordId != null">record_id,</if>
			<if test="routeId != null and routeId != ''">route_id,</if>
			<if test="itemId != null and itemId != ''">item_id,</if>
			<if test="itemCode != null and itemCode != ''">item_code,</if>
			<if test="itemName != null and itemName != ''">item_name,</if>
			<if test="remark != null">remark,</if>
			<if test="attr1 != null">attr1,</if>
			<if test="attr2 != null">attr2,</if>
			<if test="attr3 != null">attr3,</if>
			<if test="attr4 != null">attr4,</if>
			<if test="createBy != null">create_by,</if>
			<if test="createTime != null">create_time,</if>
			<if test="updateBy != null">update_by,</if>
			<if test="updateTime != null">update_time,</if>
		 </trim>
		<trim prefix="values (" suffix=")" suffixOverrides=",">
			<if test="recordId != null">#{recordId},</if>
			<if test="routeId != null and routeId != ''">#{routeId},</if>
			<if test="itemId != null and itemId != ''">#{itemId},</if>
			<if test="itemCode != null and itemCode != ''">#{itemCode},</if>
			<if test="itemName != null and itemName != ''">#{itemName},</if>
			<if test="remark != null">#{remark},</if>
			<if test="attr1 != null">#{attr1},</if>
			<if test="attr2 != null">#{attr2},</if>
			<if test="attr3 != null">#{attr3},</if>
			<if test="attr4 != null">#{attr4},</if>
			<if test="createBy != null">#{createBy},</if>
			<if test="createTime != null">#{createTime},</if>
			<if test="updateBy != null">#{updateBy},</if>
			<if test="updateTime != null">#{updateTime},</if>
		 </trim>
	</insert>

	<update id="updateProRouteLine" parameterType="ProRouteLine">
		update pro_route_line
		<trim prefix="SET" suffixOverrides=",">
			<if test="routeId != null and routeId != ''">route_id = #{routeId},</if>
			<if test="itemId != null and itemId != ''">item_id = #{itemId},</if>
			<if test="itemCode != null and itemCode != ''">item_code = #{itemCode},</if>
			<if test="itemName != null and itemName != ''">item_name = #{itemName},</if>
			<if test="remark != null">remark = #{remark},</if>
			<if test="attr1 != null">attr1 = #{attr1},</if>
			<if test="attr2 != null">attr2 = #{attr2},</if>
			<if test="attr3 != null">attr3 = #{attr3},</if>
			<if test="attr4 != null">attr4 = #{attr4},</if>
			<if test="createBy != null">create_by = #{createBy},</if>
			<if test="createTime != null">create_time = #{createTime},</if>
			<if test="updateBy != null">update_by = #{updateBy},</if>
			<if test="updateTime != null">update_time = #{updateTime},</if>
		</trim>
		where record_id = #{recordId}
	</update>

	<delete id="deleteProRouteLineByRecordId" parameterType="String">
		delete from pro_route_line where record_id = #{recordId}
	</delete>

	<delete id="deleteProRouteLineByRecordIds" parameterType="String">
		delete from pro_route_line where record_id in
		<foreach item="recordId" collection="array" open="(" separator="," close=")">
			#{recordId}
		</foreach>
	</delete>
	<delete id="deleteByRouteId">
		delete from pro_route_line where route_id = #{routeId}
	</delete>
</mapper>
