guoyuji
2024-07-12 f4e8f069d050293232cfe68ebd38b2b05c4ad4b4
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -225,7 +225,7 @@
               o.project,
               o.order_id,
               o.batch,
               od.shape,
               if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape,
               ogd.order_number,
               ogd.technology_number,
               ogd.process,
@@ -526,7 +526,7 @@
            ogd.child_height as childHeight,
            fc.quantity,
            round( ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2 ) as area,
            od.shape,
            if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape,
            od.remarks
        FROM
            sd.ORDER AS o
@@ -614,7 +614,7 @@
    <select id="productionScheduleMp">
        select
            a.order_number,
            a.shape,
            if(a.shape=1,'普形',if(a.shape=2,'异形','')) as shape,
            a.product_name,
            b.child_width,
            b.child_height,
@@ -967,7 +967,7 @@
               o.project,
               o.order_id,
               o.batch,
               od.shape,
               if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape,
               ogd.order_number,
               ogd.technology_number,
               ogd.process,
@@ -1180,7 +1180,7 @@
            rwd.order_number,
            MAX( ogd.child_width ) as width,
            MAX( ogd.child_height ) as height,
            od.shape,
        if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape,
            sum( pd.thickness ) as thickness,
            od.edging_type,
            rwd.completed_quantity,
@@ -1290,4 +1290,123 @@
        limit #{offset},#{pageSize};
    </select>
    <select id="workInProgressOrderMp">
        select #{selectProcesses} as thisProcess,
               o.customer_name,
               o.project,
               o.order_id,
               o.batch,
               if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape,
               sum(od.quantity) as quantity,
               sum(odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
                   odpd.broken_num )as stockNum,
               sum(ROUND(ogd.child_width * ogd.child_height *
                         (odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
                          odpd.broken_num) / 1000000, 2)) as stockArea,
               od.product_name
        from sd.order_detail AS od
                 LEFT JOIN sd.order_glass_detail AS ogd
                           ON od.order_id = ogd.order_id
                               AND od.order_number = ogd.order_number
                 LEFT JOIN flow_card AS fc
                           ON fc.order_id = ogd.order_id
                               and fc.production_id = ogd.production_id
                               AND fc.order_number = ogd.order_number
                               AND fc.technology_number = ogd.technology_number
                 left join sd.order_process_detail as odpd
                           ON odpd.order_id = fc.order_id
                               AND odpd.order_number = fc.order_number
                               AND odpd.technology_number = fc.technology_number
                               and odpd.process_id = fc.process_id
                 left join sd.order_process_detail as odpds
                           ON odpds.id = odpd.id - 1
                 left join
             (SELECT sum(rw.rework_num) as 'patchNumSum',
                     rw.process_id,
                     rw.order_sort,
                     rw.technology_number,
                     rwk.this_process
              from rework as rw
                       LEFT JOIN
                   reporting_work as rwk
                   on rw.reporting_work_id = rwk.reporting_work_id
              where rwk.this_process = #{selectProcesses}
                and rw.review_status = 1
              GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
             on c.process_id = fc.process_id
                 and c.order_sort = fc.order_number
                 and c.technology_number = fc.technology_number
                 left join sd.`order` as o
                           on o.order_id = od.order_id
        where LENGTH(fc.process_id) = 14
          and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
              odpd.broken_num != 0
          and odpd.process = #{selectProcesses} and o.create_time between #{selectTime1} and #{selectTime2}
          and position(#{orderId} in od.order_id) and position(#{inputProject} in o.project)
        group by o.order_id
        order by o.order_id
    </select>
    <select id="workInProgressProcessMp">
        select #{selectProcesses} as thisProcess,
               o.customer_name,
               o.project,
               o.order_id,
               fc.process_id,
               o.batch,
               if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape,
               sum(od.quantity) as quantity,
               sum(odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
                   odpd.broken_num )as stockNum,
               sum(ROUND(ogd.child_width * ogd.child_height *
                         (odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
                          odpd.broken_num) / 1000000, 2)) as stockArea,
               od.product_name
        from sd.order_detail AS od
                 LEFT JOIN sd.order_glass_detail AS ogd
                           ON od.order_id = ogd.order_id
                               AND od.order_number = ogd.order_number
                 LEFT JOIN flow_card AS fc
                           ON fc.order_id = ogd.order_id
                               and fc.production_id = ogd.production_id
                               AND fc.order_number = ogd.order_number
                               AND fc.technology_number = ogd.technology_number
                 left join sd.order_process_detail as odpd
                           ON odpd.order_id = fc.order_id
                               AND odpd.order_number = fc.order_number
                               AND odpd.technology_number = fc.technology_number
                               and odpd.process_id = fc.process_id
                 left join sd.order_process_detail as odpds
                           ON odpds.id = odpd.id - 1
                 left join
             (SELECT sum(rw.rework_num) as 'patchNumSum',
                     rw.process_id,
                     rw.order_sort,
                     rw.technology_number,
                     rwk.this_process
              from rework as rw
                       LEFT JOIN
                   reporting_work as rwk
                   on rw.reporting_work_id = rwk.reporting_work_id
              where rwk.this_process = #{selectProcesses}
                and rw.review_status = 1
              GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
             on c.process_id = fc.process_id
                 and c.order_sort = fc.order_number
                 and c.technology_number = fc.technology_number
                 left join sd.`order` as o
                           on o.order_id = od.order_id
        where LENGTH(fc.process_id) = 14
          and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
              odpd.broken_num != 0
          and odpd.process = #{selectProcesses} and o.create_time between #{selectTime1} and #{selectTime2}
          and position(#{orderId} in od.order_id) and position(#{inputProject} in o.project)
        group by o.order_id,fc.process_id
        order by o.order_id,fc.process_id
    </select>
</mapper>