sfd
2025-05-09 a080d67b9964cd632f52c481c0f20ef2e3e7073a
aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
@@ -40,49 +40,70 @@
        <result property="isStockComplete"    column="is_stock_complete"    />
        <result property="hasTurnback"    column="has_turnback"    />
        <result property="hasRisk"    column="has_risk"    />
        <result property="stdOp"    column="std_op"    />
        <result property="opStatus"    column="op_status"    />
        <result property="nextOpName"    column="next_op_name"    />
        <result property="unmatchedQuantity"    column="unmatched_quantity"    />
        <result property="productionBase"    column="production_base"    />
        <result property="orderCreateTime"    column="order_create_time"    />
        <result property="professionalAffiliation"    column="professional_affiliation"    />
        <result property="requireId"    column="require_id"    />
    </resultMap>
    <sql id="selectApsPlatePlanVo">
        select id, master_planner, week_day, week_cycle, main_part_number, main_part_drawing_number, customer, business_type, document_number, requirement_type, document_status, item_number, drawing_no, version_number, production_quantity, good_products_quantity, process_number, work_center, department, plan_start_day, plan_end_day, standby_number, standby_name, 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 from aps_plate_plan
        select id, master_planner, week_day, week_cycle, main_part_number, main_part_drawing_number,
               customer, business_type, document_number, requirement_type, document_status, item_number,
               drawing_no, version_number, production_quantity, good_products_quantity, process_number,
               work_center, department, plan_start_day, plan_end_day, standby_number, standby_name,
               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
               , production_base, order_create_time
        from aps_plate_plan
    </sql>
    <select id="selectApsPlatePlanList" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
        <include refid="selectApsPlatePlanVo"/>
        <where>  
            <if test="masterPlanner != null  and masterPlanner != ''"> and master_planner like concat('%', #{masterPlanner}, '%')</if>
            <if test="masterPlanner != null  and masterPlanner != ''"> and master_planner like '%'|| #{masterPlanner}|| '%'</if>
            <if test="weekDay != null "> and week_day = #{weekDay}</if>
            <if test="weekCycle != null  and weekCycle != ''"> and week_cycle like concat('%', #{weekCycle}, '%')</if>
            <if test="mainPartNumber != null  and mainPartNumber != ''"> and main_part_number like concat('%', #{mainPartNumber}, '%')</if>
            <if test="mainPartDrawingNumber != null  and mainPartDrawingNumber != ''"> and main_part_drawing_number like concat('%', #{mainPartDrawingNumber}, '%')</if>
            <if test="customer != null  and customer != ''"> and customer like concat('%', #{customer}, '%')</if>
            <if test="weekCycle != null  and weekCycle != ''"> and week_cycle like '%'||  #{weekCycle}|| '%' </if>
            <if test="mainPartNumber != null  and mainPartNumber != ''"> and main_part_number like '%'|| #{mainPartNumber}  ||'%' </if>
            <if test="mainPartDrawingNumber != null  and mainPartDrawingNumber != ''"> and main_part_drawing_number like  '%'|| #{mainPartDrawingNumber}|| '%'</if>
            <if test="customer != null  and customer != ''"> and customer like  '%' || #{customer} || '%'</if>
            <if test="businessType != null  and businessType != ''"> and business_type = #{businessType}</if>
            <if test="documentNumber != null  and documentNumber != ''"> and document_number like concat('%', #{documentNumber}, '%')</if>
            <if test="requirementType != null  and requirementType != ''"> and requirement_type like concat('%', #{requirementType}, '%')</if>
            <if test="documentNumber != null  and documentNumber != ''"> and document_number like '%'|| #{documentNumber}|| '%'</if>
            <if test="requirementType != null  and requirementType != ''"> and requirement_type like   '%'|| #{requirementType}||'%' </if>
            <if test="documentStatus != null  and documentStatus != ''"> and document_status = #{documentStatus}</if>
            <if test="itemNumber != null  and itemNumber != ''"> and item_number like concat('%', #{itemNumber}, '%')</if>
            <if test="drawingNo != null  and drawingNo != ''"> and drawing_no like concat('%', #{drawingNo}, '%')</if>
            <if test="versionNumber != null  and versionNumber != ''"> and version_number like concat('%', #{versionNumber}, '%')</if>
            <if test="itemNumber != null  and itemNumber != ''"> and item_number like '%'|| #{itemNumber}|| '%'</if>
            <if test="drawingNo != null  and drawingNo != ''"> and drawing_no like  '%'|| #{drawingNo}|| '%'</if>
            <if test="versionNumber != null  and versionNumber != ''"> and version_number like  '%'|| #{versionNumber}|| '%'</if>
            <if test="productionQuantity != null "> and production_quantity = #{productionQuantity}</if>
            <if test="goodProductsQuantity != null "> and good_products_quantity = #{goodProductsQuantity}</if>
            <if test="processNumber != null  and processNumber != ''"> and process_number like concat('%', #{processNumber}, '%')</if>
            <if test="workCenter != null  and workCenter != ''"> and work_center like concat('%', #{workCenter}, '%')</if>
            <if test="department != null  and department != ''"> and department like concat('%', #{department}, '%')</if>
            <if test="processNumber != null  and processNumber != ''"> and process_number like  '%'|| #{processNumber}||'%'</if>
            <if test="workCenter != null  and workCenter != ''"> and work_center like  '%'|| #{workCenter}||'%'</if>
            <if test="department != null  and department != ''"> and department like  '%'|| #{department}||'%'</if>
            <if test="params.beginPlanStartDay != null and params.beginPlanStartDay != '' and params.endPlanStartDay != null and params.endPlanStartDay != ''"> and plan_start_day between #{params.beginPlanStartDay} and #{params.endPlanStartDay}</if>
            <if test="params.beginPlanEndDay != null and params.beginPlanEndDay != '' and params.endPlanEndDay != null and params.endPlanEndDay != ''"> and plan_end_day between #{params.beginPlanEndDay} and #{params.endPlanEndDay}</if>
            <if test="standbyNumber != null  and standbyNumber != ''"> and standby_number like concat('%', #{standbyNumber}, '%')</if>
            <if test="standbyName != null  and standbyName != ''"> and standby_name like concat('%', #{standbyName}, '%')</if>
            <if test="standbyNumber != null  and standbyNumber != ''"> and standby_number like  '%'|| #{standbyNumber}|| '%'</if>
            <if test="standbyName != null  and standbyName != ''"> and standby_name like  '%'|| #{standbyName}||'%'</if>
            <if test="standbyStock != null "> and standby_stock = #{standbyStock}</if>
            <if test="nextProcessDeparment != null  and nextProcessDeparment != ''"> and next_process_deparment like concat('%', #{nextProcessDeparment}, '%')</if>
            <if test="nextProcessDeparment != null  and nextProcessDeparment != ''"> and next_process_deparment like   '%'|| #{nextProcessDeparment}|| '%'</if>
            <if test="isSuspended != null "> and is_suspended = #{isSuspended}</if>
            <if test="isOutsourcing != null  and isOutsourcing != ''"> and is_outsourcing like concat('%', #{isOutsourcing}, '%')</if>
            <if test="account != null  and account != ''"> and account like concat('%', #{account}, '%')</if>
            <if test="advancedMaterials != null  and advancedMaterials != ''"> and advanced_materials like concat('%', #{advancedMaterials}, '%')</if>
            <if test="advancedDocumentNumber != null  and advancedDocumentNumber != ''"> and advanced_document_number like concat('%', #{advancedDocumentNumber}, '%')</if>
            <if test="isOutsourcing != null  and isOutsourcing != ''"> and is_outsourcing like  '%'|| #{isOutsourcing}||'%'</if>
            <if test="account != null  and account != ''"> and account like  '%'|| #{account}|| '%'</if>
            <if test="advancedMaterials != null  and advancedMaterials != ''"> and advanced_materials like  '%'|| #{advancedMaterials}|| '%'</if>
            <if test="advancedDocumentNumber != null  and advancedDocumentNumber != ''"> and advanced_document_number  '%'|| #{advancedDocumentNumber}|| '%'</if>
            <if test="params.beginAdvancedRequirementDay != null and params.beginAdvancedRequirementDay != '' and params.endAdvancedRequirementDay != null and params.endAdvancedRequirementDay != ''"> and advanced_requirement_day between #{params.beginAdvancedRequirementDay} and #{params.endAdvancedRequirementDay}</if>
            <if test="isPlanComplete != null "> and is_plan_complete = #{isPlanComplete}</if>
            <if test="isStockComplete != null "> and is_stock_complete = #{isStockComplete}</if>
            <if test="hasTurnback != null "> and has_turnback = #{hasTurnback}</if>
            <if test="hasRisk != null "> and has_risk = #{hasRisk}</if>
            <if test="plant != null "> and plant = #{plant}</if>
            <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>
             and del_flag='0'
        </where>
    </select>
    
@@ -129,6 +150,11 @@
            <if test="isStockComplete != null">is_stock_complete,</if>
            <if test="hasTurnback != null">has_turnback,</if>
            <if test="hasRisk != null">has_risk,</if>
            <if test="stdOp != null">std_op,</if>
            <if test="opStatus != null">op_status,</if>
            <if test="nextOpName != null">next_op_name,</if>
            <if test="unmatchedQuantity != null">unmatched_quantity,</if>
            create_time,
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null and id != ''">#{id},</if>
@@ -166,6 +192,11 @@
            <if test="isStockComplete != null">#{isStockComplete},</if>
            <if test="hasTurnback != null">#{hasTurnback},</if>
            <if test="hasRisk != null">#{hasRisk},</if>
            <if test="stdOp != null">#{stdOp},</if>
            <if test="opStatus != null">#{opStatus},</if>
            <if test="nextOpName != null">#{nextOpName},</if>
            <if test="unmatchedQuantity != null">#{unmatchedQuantity},</if>
            #{createTime},
         </trim>
    </insert>
@@ -206,6 +237,10 @@
            <if test="isStockComplete != null">is_stock_complete = #{isStockComplete},</if>
            <if test="hasTurnback != null">has_turnback = #{hasTurnback},</if>
            <if test="hasRisk != null">has_risk = #{hasRisk},</if>
            <if test="stdOp != null">std_op = #{stdOp},</if>
            <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>
        </trim>
        where id = #{id}
    </update>
@@ -223,12 +258,57 @@
    <insert id="insertPlatePlanFromTempByBatchNumber" parameterType="String">
        insert into aps_plate_plan(
            id, master_planner, week_day, week_cycle, main_part_number, main_part_drawing_number, customer, business_type, document_number, requirement_type, document_status, item_number, drawing_no, version_number, production_quantity, good_products_quantity, process_number, work_center, department, plan_start_day, plan_end_day, standby_number, standby_name, 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)
            id, master_planner, week_day, week_cycle, main_part_number, main_part_drawing_number, customer, business_type, document_number, requirement_type, document_status, item_number, drawing_no, version_number, production_quantity, good_products_quantity, process_number, work_center, department, plan_start_day, plan_end_day, standby_number, standby_name, 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)
        SELECT
            id, master_planner, week_day, week_cycle, main_part_number, main_part_drawing_number, customer, business_type, document_number, requirement_type, document_status, item_number, drawing_no, version_number, production_quantity, good_products_quantity, process_number, work_center, department, plan_start_day, plan_end_day, standby_number, standby_name, 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
            id, master_planner, week_day, week_cycle, main_part_number, main_part_drawing_number, customer, business_type, document_number, requirement_type, document_status, item_number, drawing_no, version_number, production_quantity, good_products_quantity, process_number, work_center, department, plan_start_day, plan_end_day, standby_number, standby_name, 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
        from aps_plate_plan_temp
        where batch_number = #{batch_number}
    </insert>
    <update id="removeAllPlatePlans" parameterType="String">
        update  aps_plate_plan  set del_flag='1' where del_flag ='0'
    </update>
    <select id="selectPlatePlanByPlantMajor" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
        select  id,document_number,plan_end_day, main_part_number,item_number,plant,professional_affiliation,production_quantity,require_id
        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'
        </where>
        order by document_number asc,id asc
    </select>
    <select id="selectUnMatchPlateSubPlan" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
        select  id,document_number,main_part_number,item_number,plant,professional_affiliation,production_quantity,
             unmatched_quantity
        from aps_plate_plan
        where  del_flag='0' and professional_affiliation !='0' and unmatched_quantity > 0
        <if test="plant != null  and plan !='' "> and plant = #{plant}</if>
        order by document_number asc,id asc
        limit 1
    </select>
    <update id="updatePlanUnMatchQtyByVersion" parameterType="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 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'
        <if test="documentNumber != null and documentNumber != ''">
            and document_number like '%' || #{documentNumber} || '%'
        </if>
        <if test="itemNumber != null and itemNumber != ''">
            and item_number like '%' || #{itemNumber} || '%'
        </if>
    </select>
    <update id="initUnMatchQty" >
        update aps_plate_plan
            set unmatched_quantity=production_quantity, version=0
        where   del_flag='0' and professional_affiliation !='0'
    </update>
</mapper>