| <?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> |