刘小明
2024-10-14 4988e04e82e530137da576c456871cc621483b12
pms-parent/pms-global/src/main/resources/mapper/PrOrderItemMapper.xml
@@ -5,12 +5,15 @@
<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" />
        <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">
@@ -27,12 +30,24 @@
    <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,oi.number, sum(IFNULL(pap.output_number,0)) as complete_number
        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} 
@@ -96,7 +111,7 @@
        from pr_order_item p
        where p.deleted!=1
        <trim prefix="and " suffixOverrides="and">
            <if test="orderId != null and orderId != ''">
            <if test="orderId != null">
                p.order_id = #{orderId,jdbcType=BIGINT} and
            </if>
        </trim>
@@ -113,7 +128,7 @@
        from pr_order_item p
        where p.deleted!=1
        <trim prefix="and " suffixOverrides="and">
            <if test="orderId != null and orderId != ''">
            <if test="orderId != null">
                p.order_id = #{orderId,jdbcType=BIGINT} and
            </if>
        </trim>