<?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.ProOrderMapper">

	<resultMap type="ProOrder" id="ProOrderResult">
		<result property="id"	column="id"	/>
		<result property="planFactoryCode"	column="plan_factory_code"	/>
		<result property="factoryCode"	column="factory_code"	/>
		<result property="orderType"	column="order_type"	/>
		<result property="orderCode"	column="order_code"	/>
		<result property="prodCode"	column="prod_code"	/>
		<result property="prodDesc"	column="prod_desc"	/>
		<result property="quantity"	column="quantity"	/>
		<result property="quantitySplit"	column="quantity_split"	/>
		<result property="unit"	column="unit"	/>
		<result property="workerOrder"	column="worker_order"	/>
		<result property="planProDate"	column="plan_pro_date"	/>
		<result property="planComplete"	column="plan_complete"	/>
		<result property="atrr1"	column="atrr1"	/>
		<result property="atrr2"	column="atrr2"	/>
		<result property="atrr3"	column="atrr3"	/>
		<result property="status"	column="status"	/>
		<result property="parentOrder"	column="parent_order"	/>
		<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="prodType"	column="prod_type"	/>
	</resultMap>

	<sql id="selectProOrderVo">
		select id, plan_factory_code, order_type, order_code, prod_code, prod_desc, quantity, quantity_split
		       unit, worker_order, plan_pro_date, plan_complete, atrr1, atrr2, atrr3,
		       status, parent_order, create_by, create_time, update_by, update_time, prod_type,
			   factory_code
		from pro_order
	</sql>

	<select id="selectProOrderList" parameterType="ProOrder" resultMap="ProOrderResult">
		<include refid="selectProOrderVo"/>
		<where>
			<if test="planFactoryCode != null  and planFactoryCode != ''"> and plan_factory_code = #{planFactoryCode}</if>
			<if test="factoryCode != null  and factoryCode != ''"> and factory_code = #{factoryCode}</if>
			<if test="orderType != null  and orderType != ''"> and order_type = #{orderType}</if>
			<if test="orderCode != null  and orderCode != ''"> and order_code = #{orderCode}</if>
			<if test="prodCode != null  and prodCode != ''"> and prod_code = #{prodCode}</if>
			<if test="prodDesc != null  and prodDesc != ''"> and prod_desc = #{prodDesc}</if>
			<if test="quantity != null "> and quantity = #{quantity}</if>
			<if test="unit != null  and unit != ''"> and unit = #{unit}</if>
			<if test="workerOrder != null  and workerOrder != ''"> and worker_order = #{workerOrder}</if>
			<if test="planProDate != null "> and plan_pro_date = #{planProDate}</if>
			<if test="planComplete != null "> and plan_complete = #{planComplete}</if>
			<if test="atrr1 != null  and atrr1 != ''"> and atrr1 = #{atrr1}</if>
			<if test="atrr2 != null  and atrr2 != ''"> and atrr2 = #{atrr2}</if>
			<if test="atrr3 != null  and atrr3 != ''"> and atrr3 = #{atrr3}</if>
			<if test="status != null  and status != ''"> and status = #{status}</if>
			<if test="parentOrder != null  and parentOrder != ''"> and parent_order = #{parentOrder}</if>
			<if test="prodType != null  and prodType != ''"> and prod_type = #{prodType}</if>
		</where>
	</select>

	<select id="selectProOrderById" parameterType="String" resultMap="ProOrderResult">
		<include refid="selectProOrderVo"/>
		where id = #{id}
	</select>

	<insert id="insertProOrder" parameterType="ProOrder">
		insert into pro_order
		<trim prefix="(" suffix=")" suffixOverrides=",">
			<if test="id != null">id,</if>
			<if test="planFactoryCode != null">plan_factory_code,</if>
			<if test="factoryCode != null">factory_code,</if>
			<if test="orderType != null">order_type,</if>
			<if test="orderCode != null">order_code,</if>
			<if test="prodCode != null">prod_code,</if>
			<if test="prodDesc != null">prod_desc,</if>
			<if test="quantity != null">quantity,</if>
			<if test="quantitySplit != null">quantity_split,</if>
			<if test="unit != null">unit,</if>
			<if test="workerOrder != null">worker_order,</if>
			<if test="planProDate != null">plan_pro_date,</if>
			<if test="planComplete != null">plan_complete,</if>
			<if test="atrr1 != null">atrr1,</if>
			<if test="atrr2 != null">atrr2,</if>
			<if test="atrr3 != null">atrr3,</if>
			<if test="status != null">status,</if>
			<if test="parentOrder != null">parent_order,</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>
			<if test="prodType != null">prod_type,</if>
		 </trim>
		<trim prefix="values (" suffix=")" suffixOverrides=",">
			<if test="id != null">#{id},</if>
			<if test="planFactoryCode != null">#{planFactoryCode},</if>
			<if test="factoryCode != null">#{factoryCode},</if>
			<if test="orderType != null">#{orderType},</if>
			<if test="orderCode != null">#{orderCode},</if>
			<if test="prodCode != null">#{prodCode},</if>
			<if test="prodDesc != null">#{prodDesc},</if>
			<if test="quantity != null">#{quantity},</if>
			<if test="quantitySplit != null">#{quantitySplit},</if>
			<if test="unit != null">#{unit},</if>
			<if test="workerOrder != null">#{workerOrder},</if>
			<if test="planProDate != null">#{planProDate},</if>
			<if test="planComplete != null">#{planComplete},</if>
			<if test="atrr1 != null">#{atrr1},</if>
			<if test="atrr2 != null">#{atrr2},</if>
			<if test="atrr3 != null">#{atrr3},</if>
			<if test="status != null">#{status},</if>
			<if test="parentOrder != null">#{parentOrder},</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>
			<if test="prodType != null">#{prodType},</if>
		 </trim>
	</insert>

	<update id="updateProOrder" parameterType="ProOrder">
		update pro_order
		<trim prefix="SET" suffixOverrides=",">
			<if test="planFactoryCode != null">plan_factoryCode = #{planFactoryCode},</if>
			<if test="factoryCode != null">factory_code = #{factoryCode},</if>
			<if test="orderType != null">order_type = #{orderType},</if>
			<if test="orderCode != null">order_code = #{orderCode},</if>
			<if test="prodCode != null">prod_code = #{prodCode},</if>
			<if test="prodDesc != null">prod_desc = #{prodDesc},</if>
			<if test="quantity != null">quantity = #{quantity},</if>
			<if test="quantitySplit != null">quantity_split = #{quantitySplit},</if>
			<if test="unit != null">unit = #{unit},</if>
			<if test="workerOrder != null">worker_order = #{workerOrder},</if>
			<if test="planProDate != null">plan_pro_date = #{planProDate},</if>
			<if test="planComplete != null">plan_complete = #{planComplete},</if>
			<if test="atrr1 != null">atrr1 = #{atrr1},</if>
			<if test="atrr2 != null">atrr2 = #{atrr2},</if>
			<if test="atrr3 != null">atrr3 = #{atrr3},</if>
			<if test="status != null">status = #{status},</if>
			<if test="parentOrder != null">parent_order = #{parentOrder},</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>
			<if test="prodType != null">prod_type = #{prodType},</if>
		</trim>
		where id = #{id}
	</update>

	<delete id="deleteProOrderById" parameterType="String">
		delete from pro_order where id = #{id}
	</delete>

	<delete id="deleteProOrderByIds" parameterType="String">
		delete from pro_order where id in
		<foreach item="id" collection="array" open="(" separator="," close=")">
			#{id}
		</foreach>
	</delete>
</mapper>
