<?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.jcdm.main.bs.mapper.BsTechnologyRouteChildInfoMapper">
    
    <resultMap type="BsTechnologyRouteChildInfo" id="BsTechnologyRouteChildInfoResult">
        <result property="id"    column="id"    />
        <result property="processesCode"    column="processes_code"    />
        <result property="processesName"    column="processes_name"    />
        <result property="stepNo"    column="step_no"    />
        <result property="nextProcess"    column="next_process"    />
        <result property="nextProcessBond"    column="next_process_bond"    />
        <result property="keyProcessesFlag"    column="key_processes_flag"    />
        <result property="preparationTime"    column="preparation_time"    />
        <result property="waitTime"    column="wait_time"    />
        <result property="createUser"    column="create_user"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateUser"    column="update_user"    />
        <result property="updateTime"    column="update_time"    />
        <result property="remark"    column="remark"    />
        <result property="routeCode"    column="route_code"    />
        <result property="spareField1"    column="spare_field_1"    />
        <result property="spareField2"    column="spare_field_2"    />
        <result property="spareField3"    column="spare_field_3"    />
        <result property="spareField4"    column="spare_field_4"    />
        <result property="routeId"    column="route_id"    />

    </resultMap>

    <sql id="selectBsTechnologyRouteChildInfoVo">
        select route_id, id, processes_code, processes_name, step_no, next_process, next_process_bond, key_processes_flag, preparation_time, wait_time, create_user, create_time, update_user, update_time, remark, route_code, spare_field_1, spare_field_2, spare_field_3, spare_field_4 from bs_technology_route_child_info
    </sql>

    <select id="selectBsTechnologyRouteChildInfoList" parameterType="BsTechnologyRouteChildInfo" resultMap="BsTechnologyRouteChildInfoResult">
        <include refid="selectBsTechnologyRouteChildInfoVo"/>
        <where>  
            <if test="processesCode != null  and processesCode != ''"> and processes_code like concat('%', #{processesCode}, '%')</if>
            <if test="processesName != null  and processesName != ''"> and processes_name like concat('%', #{processesName}, '%')</if>
            <if test="keyProcessesFlag != null  and keyProcessesFlag != ''"> and key_processes_flag = #{keyProcessesFlag}</if>
            <if test="routeCode != null  and routeCode != ''"> and route_code = #{routeCode}</if>
            <if test="routeId != null  and routeId != ''"> and route_Id = #{routeId}</if>

        </where>
    </select>
    
    <select id="selectBsTechnologyRouteChildInfoById" parameterType="Long" resultMap="BsTechnologyRouteChildInfoResult">
        <include refid="selectBsTechnologyRouteChildInfoVo"/>
        where id = #{id}
    </select>
        
    <insert id="insertBsTechnologyRouteChildInfo" parameterType="BsTechnologyRouteChildInfo">
        insert into bs_technology_route_child_info
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="processesCode != null and processesCode != ''">processes_code,</if>
            <if test="processesName != null">processes_name,</if>
            <if test="stepNo != null">step_no,</if>
            <if test="nextProcess != null">next_process,</if>
            <if test="nextProcessBond != null">next_process_bond,</if>
            <if test="keyProcessesFlag != null">key_processes_flag,</if>
            <if test="preparationTime != null">preparation_time,</if>
            <if test="waitTime != null">wait_time,</if>
            <if test="createUser != null">create_user,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateUser != null">update_user,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="remark != null">remark,</if>
            <if test="routeCode != null">route_code,</if>
            <if test="spareField1 != null">spare_field_1,</if>
            <if test="spareField2 != null">spare_field_2,</if>
            <if test="spareField3 != null">spare_field_3,</if>
            <if test="spareField4 != null">spare_field_4,</if>
            <if test="routeId != null">route_id,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="processesCode != null and processesCode != ''">#{processesCode},</if>
            <if test="processesName != null">#{processesName},</if>
            <if test="stepNo != null">#{stepNo},</if>
            <if test="nextProcess != null">#{nextProcess},</if>
            <if test="nextProcessBond != null">#{nextProcessBond},</if>
            <if test="keyProcessesFlag != null">#{keyProcessesFlag},</if>
            <if test="preparationTime != null">#{preparationTime},</if>
            <if test="waitTime != null">#{waitTime},</if>
            <if test="createUser != null">#{createUser},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateUser != null">#{updateUser},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="remark != null">#{remark},</if>
            <if test="routeCode != null">#{routeCode},</if>
            <if test="spareField1 != null">#{spareField1},</if>
            <if test="spareField2 != null">#{spareField2},</if>
            <if test="spareField3 != null">#{spareField3},</if>
            <if test="spareField4 != null">#{spareField4},</if>
            <if test="routeId != null">#{routeId},</if>
        </trim>
    </insert>

    <update id="updateBsTechnologyRouteChildInfo" parameterType="BsTechnologyRouteChildInfo">
        update bs_technology_route_child_info
        <trim prefix="SET" suffixOverrides=",">
            <if test="processesCode != null and processesCode != ''">processes_code = #{processesCode},</if>
            <if test="processesName != null">processes_name = #{processesName},</if>
            <if test="stepNo != null">step_no = #{stepNo},</if>
            <if test="nextProcess != null">next_process = #{nextProcess},</if>
            <if test="nextProcessBond != null">next_process_bond = #{nextProcessBond},</if>
            <if test="keyProcessesFlag != null">key_processes_flag = #{keyProcessesFlag},</if>
            <if test="preparationTime != null">preparation_time = #{preparationTime},</if>
            <if test="waitTime != null">wait_time = #{waitTime},</if>
            <if test="createUser != null">create_user = #{createUser},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateUser != null">update_user = #{updateUser},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="routeCode != null">route_code = #{routeCode},</if>
            <if test="spareField1 != null">spare_field_1 = #{spareField1},</if>
            <if test="spareField2 != null">spare_field_2 = #{spareField2},</if>
            <if test="spareField3 != null">spare_field_3 = #{spareField3},</if>
            <if test="spareField4 != null">spare_field_4 = #{spareField4},</if>
            <if test="routeId != null">route_id = #{routeId},</if>

        </trim>
        where id = #{id}
    </update>

    <update id="updateBsTechnologyRouteChildByCodeInfo" parameterType="BsTechnologyRouteChildInfo">
        update bs_technology_route_child_info
        <trim prefix="SET" suffixOverrides=",">
            <if test="processesCode != null and processesCode != ''">processes_code = #{processesCode},</if>
            <if test="processesName != null">processes_name = #{processesName},</if>
            <if test="stepNo != null">step_no = #{stepNo},</if>
            <if test="nextProcess != null">next_process = #{nextProcess},</if>
            <if test="nextProcessBond != null">next_process_bond = #{nextProcessBond},</if>
            <if test="keyProcessesFlag != null">key_processes_flag = #{keyProcessesFlag},</if>
            <if test="preparationTime != null">preparation_time = #{preparationTime},</if>
            <if test="waitTime != null">wait_time = #{waitTime},</if>
            <if test="createUser != null">create_user = #{createUser},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateUser != null">update_user = #{updateUser},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="routeCode != null">route_code = #{routeCode},</if>
            <if test="spareField1 != null">spare_field_1 = #{spareField1},</if>
            <if test="spareField2 != null">spare_field_2 = #{spareField2},</if>
            <if test="spareField3 != null">spare_field_3 = #{spareField3},</if>
            <if test="spareField4 != null">spare_field_4 = #{spareField4},</if>
            <if test="routeId != null">route_id = #{routeId},</if>

        </trim>
        where route_id = #{routeId}
    </update>

    <delete id="deleteBsTechnologyRouteChildInfoById" parameterType="Long">
        delete from bs_technology_route_child_info where id = #{id}
    </delete>

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