zhanghl
2025-05-08 7097f55c291cc62ab29d9f52caef80f605247e40
aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml
@@ -5,6 +5,7 @@
<mapper namespace="com.aps.core.mapper.ApsPlateOrderPlanManagerMapper">
    
    <resultMap type="ApsPlateOrderPlanManager" id="ApsPlateOrderPlanManagerResult">
        <result property="id"    column="id"    />
        <result property="require_id"    column="requireId"    />
        <result property="requireTrackId"    column="require_track_id"    />
        <result property="workOrderNo"    column="doc_no"    />
@@ -19,7 +20,9 @@
        <result property="planStartDay"    column="plan_start_day"    />
        <result property="planEndDay"    column="plan_end_day"    />
        <result property="unmatchedQuantity"    column="unmatched_quantity"    />
        <result property="hasDelayRisk"    column="has_risk"    />
        <result property="hasDelayRisk"    column="has_delay_risk"    />
        <result property="startDate"    column="start_date"    />
        <result property="completeDate"    column="complete_date"    />
    </resultMap>
    <select id="selectApsPlanOrderManager" parameterType="ApsPlateOrderPlanManager" resultMap="ApsPlateOrderPlanManagerResult">
@@ -38,21 +41,25 @@
            plan.plan_start_day,
            plan.plan_end_day,
            plan.unmatched_quantity,
            plan.has_risk
            require.has_delay_risk,
            plan.id,
            require.start_date,
            require.complete_date
        from aps_plate_standard_require_bom_order_detail detail
            left join aps_plate_standard_require require on on detail.require_id = require.id
            left join aps_plate_plan plan on detail.doc_no = plan.document_number
        <where>  
            <if test="workOrderNo != null  and workOrderNo != ''"> and detail.doc_no = #{workOrderNo}</if>
            <if test="requireId != null  and requireId != ''"> and detail.require_id = #{requireId}</if>
            <if test="mainPartNumber != null  and mainPartNumber != ''"> and plan.main_part_number = #{mainPartNumber}</if>
            <if test="hasDelayRisk != null  and hasDelayRisk != ''"> and plan.has_risk = #{hasDelayRisk}</if>
            <if test="hasDelayRisk != null  and hasDelayRisk != ''"> and require.has_delay_risk = #{hasDelayRisk}</if>
        </where>
    </select>
    <resultMap type="ApsPlateStandardRequire" id="ApsPlateStandardRequireResult">
        <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="bomLineLevel"    column="bom_line_level"    />
@@ -81,7 +88,7 @@
    <sql id="selectApsPlateStandardRequireVo">
        select require.id,
               require.require_id,
               require.require_track_id,
               require.bom_line_id,
               require.bom_line_code,
               require.bom_line_level,
@@ -118,4 +125,45 @@
        </where>
    </select>
    <resultMap type="ApsPlateOrderPlanRequireDate" id="selectPlanRequireIdsResult">
        <result property="id"    column="id"    />
        <result property="start"    column="start_date"    />
        <result property="end"    column="end_date"    />
    </resultMap>
    <select id="selectPlanRequireIds" parameterType="String" resultMap="selectPlanRequireIdsResult">
        select
            plan.id,
            min(require.start_date) as start_date,
            min(require.complete_date) as end_date
        from aps_plate_standard_require_bom_order_detail detail
            left join aps_plate_standard_require require on on detail.require_id = require.id
            left join aps_plate_plan plan on detail.doc_no = plan.document_number
        where plan.id in
        <foreach collection="planIds" item="planId" open="(" separator="," close=")">
            #{planId}
        </foreach>
        group by plan.id
    </select>
    <update id="updatePlanDateByBatch" parameterType="ApsPlateOrderPlanRequireDate">
        update aps_plate_plan set
          plan_start_day = #{planRequireDate.start},
          plan_end_day = #{planRequireDate.end},
          update_by = #{planRequireDate.updateBy},
          update_time = now()
        where id =  #{planRequireDate.id}
    </update>
    <update id="updatePlanDateByCustom" parameterType="ApsPlateOrderPlanDate">
        update aps_plate_plan set
          plan_end_day = #{planRequireDate.customDate},
          update_by = #{planRequireDate.updateBy},
          update_time = now()
        where id in
        <foreach collection="planRequireDate.planIds" item="id" open="(" separator="," close=")">
            #{id}
        </foreach>
    </update>
</mapper>