chenlu
2025-05-12 a95b19ecce30a3e0ba732738367cffb0f01a260a
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -1020,27 +1020,24 @@
    <select id="getFootSum">
        SELECT
            ifnull(SUM(this_completed_quantity),0) AS thisCompletedQuantity,
            ifnull(SUM(ROUND(child_width * child_height * this_completed_quantity / 1000000, 2)),0) AS completedArea,
            ifnull(SUM(this_worn_quantity),0) AS thisWornQuantity,
            ifnull(SUM(ROUND(child_width * child_height * this_worn_quantity / 1000000, 2)),0) AS wornArea
        FROM (
                 -- 先对 reporting_work_id 进行去重
                 SELECT
                     rw.reporting_work_id,
                     MAX(rw.this_completed_quantity) AS this_completed_quantity,
                     MAX(rw.this_worn_quantity) AS this_worn_quantity,
                     MAX(ogd.child_width) AS child_width,
                     MAX(ogd.child_height) AS child_height
                 FROM reporting_work as rw left join reporting_work_detail as rwd on rw.reporting_work_id=rwd.reporting_work_id
        left join sd.order_glass_detail as ogd on ogd.order_id=rw.order_id and ogd.order_number=rwd.order_number and ogd.technology_number=rwd.technology_number
        left join sd.`order` as o on o.order_id=rw.order_id
                 WHERE rw.reviewed_state != 2
      and rw.reporting_work_time >= #{selectTime1}
                   AND rw.reporting_work_time &lt;  #{selectTime2}
                   and position(#{orderId} in rw.order_id)
                   AND rw.reviewed_state != -1
                   AND o.create_order > 0
        SUM(rwd.completed_quantity) AS thisCompletedQuantity,
        ROUND(SUM(ogd.child_width * ogd.child_height * rwd.completed_quantity / 1000000), 2) AS completedArea,
        SUM(rwd.breakage_quantity) AS thisWornQuantity,
        ROUND(SUM(ogd.child_width * ogd.child_height * rwd.breakage_quantity / 1000000), 2) AS wornArea,
        CEILING(count(rw.reporting_work_id)/#{pageSize}) as 'pageTotal',
        count(distinct rw.reporting_work_id) as 'total'
        FROM reporting_work AS rw
        LEFT JOIN reporting_work_detail AS rwd ON rw.reporting_work_id = rwd.reporting_work_id
        LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = rw.order_id
        AND ogd.order_number = rwd.order_number
        AND ogd.technology_number = rwd.technology_number
        LEFT JOIN sd.`order` AS o ON o.order_id = rw.order_id
        WHERE rw.reviewed_state != 2
        and rw.reporting_work_time >= #{selectTime1}
        AND rw.reporting_work_time &lt;  #{selectTime2}
        AND position(#{orderId} in rw.order_id)
        AND rw.reviewed_state != -1
        AND o.create_order > 0
        <if test="reportingWork.reportingWorkId != null and reportingWork.reportingWorkId != ''">
            and rw.reporting_work_id regexp #{reportingWork.reportingWorkId}
        </if>
@@ -1065,13 +1062,37 @@
        <if test="reportingWork.teamsGroupsName != null and reportingWork.teamsGroupsName != ''">
            and rw.teams_groups_name regexp #{reportingWork.teamsGroupsName}
        </if>
                 GROUP BY rw.reporting_work_id  -- 按 reporting_work_id 进行分组,确保唯一
             ) AS subquery;
    </select>
    <select id="selectReviewedState">
        select reviewed_state from pp.reporting_work where reporting_work_id=#{reportingWorkId};
    </select>
    <select id="qualityReviewSearchMp" resultMap="reportingWorkMap">
        select rw.reporting_work_id,
        rw.reporting_work_time,
        rw.process_id,
        o.project,
        o.customer_name,
        rw.this_process,
        ifnull(rw.this_completed_quantity,0) as this_completed_quantity,
        rw.this_worn_quantity,
        rw.teams_groups_name,
        rw.device_name,
        rw.previous_process,
        rw.next_process,
        rw.quality_inspector,
        rw.quality_ins_time,
        dd.quality_ins_status
        from sd.order as o
        left join sd.order_glass_detail as ogd on ogd.order_id = o.order_id
        left join reporting_work as rw on rw.order_id = ogd.order_id and rw.production_id = ogd.production_id
        right join damage_details as dd on dd.reporting_work_id=rw.reporting_work_id
        where rw.reviewed_state != 2
        and  dd.quality_ins_status = 1
        and rw.reviewed_state!=-1
        GROUP BY rw.reporting_work_id
        ORDER BY rw.reporting_work_id desc
    </select>
</mapper>