hongjli
2025-05-16 7cd52b112a2e7da06aa8cfebf19a337be858762f
aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aps.core.mapper.ApsPlatePlanMapper">
    
    <resultMap type="ApsPlatePlan" id="ApsPlatePlanResult">
    <resultMap type="com.aps.core.domain.ApsPlatePlan" id="ApsPlatePlanResult">
        <result property="id"    column="id"    />
        <result property="masterPlanner"    column="master_planner"    />
        <result property="weekDay"    column="week_day"    />
@@ -49,6 +49,9 @@
        <result property="professionalAffiliation"    column="professional_affiliation"    />
        <result property="requireId"    column="require_id"    />
        <result property="version"    column="version"    />
        <result property="approveOn" column="approve_on"    />
        <result property="startWorkDate" column="start_work_date"    />
        <result property="lowOrderCode" column="low_order_code"    />
    </resultMap>
    <sql id="selectApsPlatePlanVo">
@@ -59,11 +62,11 @@
               standby_stock, next_process_deparment, is_suspended, is_outsourcing, account, advanced_materials,
               advanced_document_number, advanced_requirement_day, is_plan_complete, is_stock_complete,
               has_turnback, has_risk, std_op, op_status, next_op_name ,unmatched_quantity,professional_affiliation,
                   require_id, version,production_base, order_create_time
                   require_id, version,production_base, order_create_time, approve_on, start_work_date, low_order_code
        from aps_plate_plan
    </sql>
    <select id="selectApsPlatePlanList" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
    <select id="selectApsPlatePlanList" parameterType="com.aps.core.domain.ApsPlatePlan" resultMap="ApsPlatePlanResult">
        <include refid="selectApsPlatePlanVo"/>
        <where>  
            <if test="masterPlanner != null  and masterPlanner != ''"> and master_planner like '%'|| #{masterPlanner}|| '%'</if>
@@ -104,6 +107,7 @@
            <if test="stdOp != null "> and std_op = #{stdOp}</if>
            <if test="opStatus != null  and opStatus != ''"> and op_status = #{opStatus}</if>
            <if test="nextOpName != null  and nextOpName != ''"> and next_op_name = #{nextOpName}</if>
            <if test="lowOrderCode != null  and lowOrderCode != ''"> and low_order_code = #{lowOrderCode}</if>
             and del_flag='0'
        </where>
    </select>
@@ -113,7 +117,7 @@
        where id = #{id}
    </select>
    <insert id="insertApsPlatePlan" parameterType="ApsPlatePlan">
    <insert id="insertApsPlatePlan" parameterType="com.aps.core.domain.ApsPlatePlan">
        insert into aps_plate_plan
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null and id != ''">id,</if>
@@ -155,6 +159,7 @@
            <if test="opStatus != null">op_status,</if>
            <if test="nextOpName != null">next_op_name,</if>
            <if test="unmatchedQuantity != null">unmatched_quantity,</if>
            <if test="lowOrderCode != null">low_order_code,</if>
            create_time,
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -197,11 +202,12 @@
            <if test="opStatus != null">#{opStatus},</if>
            <if test="nextOpName != null">#{nextOpName},</if>
            <if test="unmatchedQuantity != null">#{unmatchedQuantity},</if>
            <if test="lowOrderCode != null">#{lowOrderCode},</if>
            #{createTime},
         </trim>
    </insert>
    <update id="updateApsPlatePlan" parameterType="ApsPlatePlan">
    <update id="updateApsPlatePlan" parameterType="com.aps.core.domain.ApsPlatePlan">
        update aps_plate_plan
        <trim prefix="SET" suffixOverrides=",">
            <if test="masterPlanner != null">master_planner = #{masterPlanner},</if>
@@ -242,6 +248,7 @@
            <if test="opStatus != null"> op_status= #{opStatus},</if>
            <if test="nextOpName != null"> next_op_name= #{nextOpName},</if>
            <if test="unmatchedQuantity != null"> unmatched_quantity = #{unmatchedQuantity},</if>
            <if test="lowOrderCode != null"> low_order_code = #{lowOrderCode},</if>
        </trim>
        where id = #{id}
    </update>
@@ -269,38 +276,46 @@
        update  aps_plate_plan  set del_flag='1' where del_flag ='0'
    </update>
    <select id="selectPlatePlanByPlantMajor" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
    <select id="selectPlatePlanByPlantMajor" parameterType="com.aps.core.domain.ApsPlatePlan" resultMap="ApsPlatePlanResult">
        select  id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity,require_id,
        unmatched_quantity,version, production_base,plan_end_day
        unmatched_quantity,version, production_base,plan_end_day,order_create_time,low_order_code
        from aps_plate_plan
        <where>
            <if test="plant != null "> and plant = #{plant}</if>
            <if test="professionalAffiliation != null "> and professional_affiliation = #{professionalAffiliation}</if>
            and del_flag='0'
            <if test="plant != null "> and plant = #{plant} </if>
            <if test="professionalAffiliation != null "> and professional_affiliation = 'main' </if>
              and del_flag='0'
        </where>
        order by document_number asc,id asc
    </select>
    <select id="selectUnMatchPlateSubPlan" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
    <select id="selectUnMatchPlateSubPlan" parameterType="com.aps.core.domain.ApsPlatePlan" resultMap="ApsPlatePlanResult">
        select  id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity,
             unmatched_quantity,version
        from aps_plate_plan
        where  del_flag='0' and professional_affiliation !='0' and unmatched_quantity > 0
        where  del_flag='0' and professional_affiliation ='sub' and unmatched_quantity > 0
        <if test="plant != null  and plant !='' "> and plant = #{plant}</if>
        <if test="itemNumber != null  and itemNumber !='' "> and item_number = #{itemNumber}</if>
        order by document_number asc,id asc
        limit 1
    </select>
    <select id="selectUnMatchPlateSubPlanList" parameterType="com.aps.core.domain.ApsPlatePlan" resultMap="ApsPlatePlanResult">
        select  id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity,
        unmatched_quantity,version
        from aps_plate_plan
        where  del_flag='0' and professional_affiliation ='sub' and unmatched_quantity > 0
        <if test="plant != null  and plant !='' "> and plant = #{plant}</if>
        <if test="itemNumber != null  and itemNumber !='' "> and item_number = #{itemNumber}</if>
        order by document_number asc,id asc
    </select>
    <update id="updatePlanUnMatchQtyByVersion" parameterType="ApsPlatePlan">
    <update id="updatePlanUnMatchQtyByVersion" parameterType="com.aps.core.domain.ApsPlatePlan">
        update aps_plate_plan
        set unmatched_quantity=#{unmatchedQuantity},version=version+1
        where id=#{id} and version=#{version}
    </update>
    <select id="selectPlateRedundantOrderList" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
    <select id="selectPlateRedundantOrderList" parameterType="com.aps.core.domain.ApsPlatePlan" resultMap="ApsPlatePlanResult">
        select document_number, item_number, production_quantity, unmatched_quantity, plant, production_base, plan_start_day, plan_end_day, order_create_time
        from aps_plate_plan where unmatched_quantity>0 and professional_affiliation!='0'
        from aps_plate_plan where unmatched_quantity>0 and professional_affiliation='sub' and del_flag='0'
        <if test="documentNumber != null and documentNumber != ''">
            and document_number like '%' || #{documentNumber} || '%'
        </if>
@@ -314,4 +329,13 @@
            set unmatched_quantity=production_quantity, version=0,require_id=id
        where   del_flag='0' and professional_affiliation !='0'
    </update>
    <update id="updatePlanUnMatchQtyAndVersion" parameterType="com.aps.core.domain.ApsPlatePlan">
        update aps_plate_plan
        set unmatched_quantity=#{unmatchedQuantity},version=#{version},update_time=now()
        where id=#{id}
    </update>
    <select id="selectApsSubPlatePlan" resultType="com.alibaba.fastjson2.JSONObject">
        SELECT id,item_number as "itemNumber",document_number as "documentNumber",production_quantity as "unmatchedQuantity" FROM aps_plate_plan WHERE item_number in (SELECT item_number FROM aps_plate_plan WHERE professional_affiliation='sub'  GROUP BY item_number) order by item_number
    </select>
</mapper>