hongjli
2025-05-16 7cd52b112a2e7da06aa8cfebf19a337be858762f
aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateStandardRequireBomOrderDetailMapper.xml
@@ -4,9 +4,10 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aps.core.mapper.ApsPlateStandardRequireBomOrderDetailMapper">
    
    <resultMap type="ApsPlateStandardRequireBomOrderDetail" id="ApsPlateStandardRequireBomOrderDetailResult">
    <resultMap type="com.aps.core.domain.ApsPlateStandardRequireBomOrderDetail" id="ApsPlateStandardRequireBomOrderDetailResult">
        <result property="id"    column="id"    />
        <result property="requireId"    column="require_id"    />
        <result property="requireTrackId"    column="require_track_id"    />
        <result property="bomLineId"    column="bom_line_id"    />
        <result property="bomLineCode"    column="bom_line_code"    />
        <result property="docNo"    column="doc_no"    />
@@ -23,13 +24,17 @@
    </resultMap>
    <sql id="selectApsPlateStandardRequireBomOrderDetailVo">
        select id, require_id, bom_line_id, bom_line_code, doc_no, before_prod_amount, deduction_amount, after_prod_amount, org_code, batch_number, del_flag, create_time, create_by, update_by, update_time from aps_plate_standard_require_bom_order_detail
        select id, require_id,require_track_id, bom_line_id, bom_line_code, doc_no,
               before_prod_amount, deduction_amount, after_prod_amount,
               org_code, batch_number, del_flag, create_time, create_by, update_by, update_time
        from aps_plate_standard_require_bom_order_detail
    </sql>
    <select id="selectApsPlateStandardRequireBomOrderDetailList" parameterType="ApsPlateStandardRequireBomOrderDetail" resultMap="ApsPlateStandardRequireBomOrderDetailResult">
    <select id="selectApsPlateStandardRequireBomOrderDetailList" parameterType="com.aps.core.domain.ApsPlateStandardRequireBomOrderDetail" resultMap="ApsPlateStandardRequireBomOrderDetailResult">
        <include refid="selectApsPlateStandardRequireBomOrderDetailVo"/>
        <where>  
            <if test="requireId != null  and requireId != ''"> and require_id = #{requireId}</if>
            <if test="requireTrackId != null  and requireTrackId != ''"> and require_track_id = #{requireTrackId}</if>
            <if test="bomLineId != null  and bomLineId != ''"> and bom_line_id = #{bomLineId}</if>
            <if test="bomLineCode != null  and bomLineCode != ''"> and bom_line_code = #{bomLineCode}</if>
            <if test="docNo != null  and docNo != ''"> and doc_no = #{docNo}</if>
@@ -46,11 +51,13 @@
        where id = #{id}
    </select>
    <insert id="insertApsPlateStandardRequireBomOrderDetail" parameterType="ApsPlateStandardRequireBomOrderDetail">
    <insert id="insertApsPlateStandardRequireBomOrderDetail" parameterType="com.aps.core.domain.ApsPlateStandardRequireBomOrderDetail">
        insert into aps_plate_standard_require_bom_order_detail
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="requireId != null">require_id,</if>
            <if test="requireTrackId != null">require_track_id,</if>
            <if test="bomLineId != null">bom_line_id,</if>
            <if test="bomLineCode != null">bom_line_code,</if>
            <if test="docNo != null">doc_no,</if>
@@ -68,6 +75,8 @@
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="requireId != null">#{requireId},</if>
            <if test="requireTrackId != null">#{requireTrackId},</if>
            <if test="bomLineId != null">#{bomLineId},</if>
            <if test="bomLineCode != null">#{bomLineCode},</if>
            <if test="docNo != null">#{docNo},</if>
@@ -84,10 +93,11 @@
         </trim>
    </insert>
    <update id="updateApsPlateStandardRequireBomOrderDetail" parameterType="ApsPlateStandardRequireBomOrderDetail">
    <update id="updateApsPlateStandardRequireBomOrderDetail" parameterType="com.aps.core.domain.ApsPlateStandardRequireBomOrderDetail">
        update aps_plate_standard_require_bom_order_detail
        <trim prefix="SET" suffixOverrides=",">
            <if test="requireId != null">require_id = #{requireId},</if>
            <if test="requireTrackId != null">require_track_id = #{requireTrackId},</if>
            <if test="bomLineId != null">bom_line_id = #{bomLineId},</if>
            <if test="bomLineCode != null">bom_line_code = #{bomLineCode},</if>
            <if test="docNo != null">doc_no = #{docNo},</if>
@@ -115,4 +125,48 @@
            #{id}
        </foreach>
    </delete>
    <update id="deleteLastPatch" parameterType="String">
        update aps_plate_standard_require_bom_order_detail set del_flag = '1' where batch_number = #{batchNumber}
    </update>
    <insert id="batchInsert" parameterType="com.aps.core.domain.ApsPlateStandardRequireBomOrderDetail">
        insert into aps_plate_standard_require_bom_order_detail
        (id, require_id,require_track_id, bom_line_id, bom_line_code, doc_no,
         before_prod_amount, deduction_amount, after_prod_amount,
         org_code, batch_number, del_flag, create_time, create_by)
        values
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.id}, #{item.requireId},#{item.requireTrackId}, #{item.bomLineId}, #{item.bomLineCode}, #{item.docNo},
             #{item.beforeProdAmount}, #{item.deductionAmount}, #{item.afterProdAmount},
             #{item.orgCode}, #{item.batchNumber}, #{item.delFlag}, #{item.createTime}, #{item.createBy}
            )
        </foreach>
    </insert>
    <select id="selectRequireUpAndDownLevel" parameterType="Long" resultType="com.aps.core.domain.ApsPlatePlan">
        with bs as (
            select id, bom_header_code,bom_line_code,  require_track_id
            from aps_plate_standard_require
            where del_flag='0' and id=#{requireId}
        ) ,cp as (
            select re.id as reqiure_id, re.bom_header_code,re.bom_line_code,re.bom_line_level,   sd.doc_no,
                   (case
                        when re.bom_line_code=bs.bom_header_code then '上阶'
                        when re.bom_header_code=bs.bom_line_code then '下阶'
                       end ) as requirement_type,
                   pp.document_number,pp.item_number, pp.plan_start_day,pp.plan_end_day,pp.production_quantity
            from aps_plate_standard_require re
                     left join aps_plate_standard_require_bom_order_detail sd on re.id=sd.require_id
                     left join aps_plate_plan pp on sd.doc_no=pp.document_number
                     left join bs on re.require_track_id=bs.require_track_id
            where re.del_flag='0'
              and re.require_track_id in (select bs.require_track_id from bs)
        )
        select *
        from cp
         where requirement_type is not null and doc_no is not null
        order by bom_line_level;
    </select>
</mapper>