<?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.dy.pmsGlobal.daoPr.PrOrderItemMapper"> 
 | 
  
 | 
    <resultMap id="BaseResultMap" type="com.dy.pmsGlobal.pojoPr.PrOrderItem"> 
 | 
        <id property="id" column="id" jdbcType="BIGINT"/> 
 | 
        <result property="orderId" column="order_id" jdbcType="BIGINT"/> 
 | 
        <result property="proId"  column="pro_id" jdbcType="BIGINT"/> 
 | 
        <result property="number" column="number" jdbcType="INTEGER"/> 
 | 
        <result property="completeNumber" column="complete_number" jdbcType="INTEGER"/> 
 | 
        <result column="deleted" property="deleted" typeHandler="com.dy.common.mybatis.BooleanTypeHandler" /> 
 | 
        <result property="name" column="name"  jdbcType="VARCHAR"/> 
 | 
        <association property="proType" column="pro_id" javaType="java.lang.Long" 
 | 
                     select="com.dy.pmsGlobal.daoPlt.PltProductMapper.selectProTypeById" fetchType="eager" /> 
 | 
    </resultMap> 
 | 
  
 | 
    <sql id="Base_Column_List"> 
 | 
        id,order_id,pro_id,number, 
 | 
        complete_number, deleted 
 | 
    </sql> 
 | 
  
 | 
    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> 
 | 
        select 
 | 
        <include refid="Base_Column_List" /> 
 | 
        from pr_order_item 
 | 
        where  id = #{id,jdbcType=BIGINT}  
 | 
    </select> 
 | 
    <select id="selectItems"  parameterType="java.lang.Long" resultMap="BaseResultMap"> 
 | 
        <!--算出完成率 Base_Column_List--> 
 | 
        SELECT aa.*, concat(round(((complete_number/number) * 100 ),2), '%') as complete_rate  from ( 
 | 
        select oi.id,oi.order_id,oi.pro_id,pp.`name`,oi.number, sum(IFNULL(pap.output_number,0)) as complete_number 
 | 
        from (SELECT * from  pr_order_item where order_id = #{orderId,jdbcType=BIGINT} and deleted !=1 ) oi 
 | 
        LEFT JOIN pr_assembly_plan pap 
 | 
        ON oi.order_id = pap.order_id AND  oi.pro_id = pap.pro_id 
 | 
        LEFT JOIN plt_product pp 
 | 
        ON oi.pro_id = pp.id 
 | 
        GROUP BY oi.id,oi.order_id,oi.pro_id,oi.number) aa 
 | 
    </select> 
 | 
    <select id="selectDistinctPro"  parameterType="java.lang.Long" resultMap="BaseResultMap"> 
 | 
        <!--Distinct出order_id中的产品   Base_Column_List--> 
 | 
        select DISTINCT(oi.order_id),oi.pro_id,pp.`name` 
 | 
        from (SELECT * from  pr_order_item where order_id = #{orderId,jdbcType=BIGINT} and deleted !=1 ) oi 
 | 
        LEFT JOIN plt_product pp 
 | 
        ON oi.pro_id = pp.id 
 | 
        GROUP BY oi.order_id,oi.pro_id 
 | 
        ORDER BY oi.order_id 
 | 
    </select> 
 | 
  
 | 
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> 
 | 
        delete from pr_order_item 
 | 
        where  id = #{id,jdbcType=BIGINT}  
 | 
    </delete> 
 | 
    <insert id="insert" parameterType="com.dy.pmsGlobal.pojoPr.PrOrderItem"> 
 | 
        <!--@mbg.generated--> 
 | 
        insert into pr_order_item ( id,order_id,pro_id,number, 
 | 
        complete_number, deleted 
 | 
        ) 
 | 
        values (#{id,jdbcType=BIGINT},#{orderId,jdbcType=BIGINT}, #{proId,jdbcType=BIGINT}, #{number,jdbcType=INTEGER}, 
 | 
        #{completeNumber,jdbcType=INTEGER}, #{deleted,jdbcType=TINYINT} 
 | 
        ) 
 | 
    </insert> 
 | 
    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoPr.PrOrderItem" useGeneratedKeys="true"> 
 | 
        insert into pr_order_item 
 | 
        <trim prefix="(" suffix=")" suffixOverrides=","> 
 | 
                <if test="id != null">id,</if> 
 | 
                <if test="orderId != null">order_id,</if> 
 | 
                <if test="proId != null">pro_id,</if> 
 | 
                <if test="number != null">number,</if> 
 | 
                <if test="completeNumber != null">complete_number,</if> 
 | 
                <if test="deleted != null">deleted,</if> 
 | 
        </trim> 
 | 
        <trim prefix="values (" suffix=")" suffixOverrides=","> 
 | 
                <if test="id != null">#{id,jdbcType=BIGINT},</if> 
 | 
                <if test="orderId != null">#{orderId,jdbcType=BIGINT},</if> 
 | 
                <if test="proId != null">#{proId,jdbcType=BIGINT},</if> 
 | 
                <if test="number != null">#{number,jdbcType=INTEGER},</if> 
 | 
                <if test="completeNumber != null">#{completeNumber,jdbcType=INTEGER},</if> 
 | 
                <if test="deleted != null">#{deleted,jdbcType=TINYINT},</if> 
 | 
        </trim> 
 | 
    </insert> 
 | 
    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pmsGlobal.pojoPr.PrOrderItem"> 
 | 
        <!--@mbg.generated--> 
 | 
        update pr_order_item 
 | 
        <set> 
 | 
                <if test="orderId != null"> 
 | 
                    order_id = #{orderId,jdbcType=BIGINT}, 
 | 
                </if> 
 | 
                <if test="proId != null"> 
 | 
                    pro_id = #{proId,jdbcType=BIGINT}, 
 | 
                </if> 
 | 
                <if test="number != null"> 
 | 
                    number = #{number,jdbcType=INTEGER}, 
 | 
                </if> 
 | 
                <if test="completeNumber != null"> 
 | 
                    complete_number = #{completeNumber,jdbcType=INTEGER}, 
 | 
                </if> 
 | 
                <if test="deleted != null"> 
 | 
                    deleted = #{deleted,jdbcType=TINYINT}, 
 | 
                </if> 
 | 
        </set> 
 | 
        where   id = #{id,jdbcType=BIGINT}  
 | 
    </update> 
 | 
    <delete id="deleteLogicById"> 
 | 
        update pr_order_item set deleted = 1 where id = #{id} 
 | 
    </delete> 
 | 
    <select id="selectSome" resultMap="BaseResultMap"> 
 | 
        select 
 | 
        <include refid="Base_Column_List" /> 
 | 
        from pr_order_item p 
 | 
        where p.deleted!=1 
 | 
        <trim prefix="and " suffixOverrides="and"> 
 | 
            <if test="orderId != null"> 
 | 
                p.order_id = #{orderId,jdbcType=BIGINT} and 
 | 
            </if> 
 | 
        </trim> 
 | 
        order by id desc 
 | 
        <trim prefix="limit " > 
 | 
            <if test="start != null and count != null"> 
 | 
                #{start}, #{count} 
 | 
            </if> 
 | 
        </trim> 
 | 
    </select> 
 | 
  
 | 
    <select id="selectSomeCount" resultType="java.lang.Long"> 
 | 
        select count(1) 
 | 
        from pr_order_item p 
 | 
        where p.deleted!=1 
 | 
        <trim prefix="and " suffixOverrides="and"> 
 | 
            <if test="orderId != null"> 
 | 
                p.order_id = #{orderId,jdbcType=BIGINT} and 
 | 
            </if> 
 | 
        </trim> 
 | 
    </select> 
 | 
</mapper> 
 |