Fancy
2024-09-18 0d05424b5df05f2e6ef478934cdaad9c71e5d91d
pms-parent/pms-global/src/main/resources/mapper/PrOrderItemMapper.xml
@@ -7,13 +7,18 @@
    <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="proName" column="pro_id" javaType="java.lang.Long"
                     select="com.dy.pmsGlobal.daoPlt.PltProductMapper.selectProNameById" fetchType="eager"/>-->
    </resultMap>
    <sql id="Base_Column_List">
        id,order_id,number,
        complete_number
        id,order_id,pro_id,number,
        complete_number, deleted
    </sql>
    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
@@ -22,31 +27,68 @@
        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},
@@ -54,7 +96,41 @@
                <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>