chenlu
2025-07-22 17a165040ee30e09bb5de343b2e5bf4d916b3883
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -2630,4 +2630,81 @@
        group by d.process
        ) as aa
    </select>
    <select id="selectProcess">
        SELECT basic_name
        FROM sd.basic_data as bd
        where bd.basic_category = 'process'
          and bd.basic_type = 'product'
        and basic_name!='切割'
    </select>
    <select id="getWorkInProgressCombination">
        select
            #{process} as thisProcess,
            if(#{optionVal} = 1,'',h.project) as project,
            SUM(h.quantity) as stockNum,
            SUM(h.glassArea) as stockArea,
            if(#{optionVal} = 1,'',h.childName) as glassName
        from (
                 SELECT g.*
                      ,GROUP_CONCAT(g.glass_child SEPARATOR '+')  as childName
                 from( SELECT f.*,
                              e.reporting_work_num-f.reporting_work_num as quantity,
                              (e.reporting_work_num-f.reporting_work_num)*f.area as glassArea
                       from (SELECT a.order_id,
                                    a.project,
                                    C.product_id,
                                    b.order_number,
                                    b.process_id,
                                    b.technology_number,
                                    b.reporting_work_num,
                                    d.`group` ,
                                    b.id,
                                    c.area,
                                    d.glass_child
                             FROM sd.`order` as a
                                      LEFT JOIN sd.order_process_detail as b
                                                on b.process = #{process} and a.order_id =b.order_id
                                      LEFT JOIN sd.order_detail as c
                                                on a.order_id = c.order_id and b.order_number =c.order_number
                                      left join sd.order_glass_detail as d
                                                on  d.order_id =a.order_id and d.order_number = b.order_number and d.technology_number = b.technology_number
                             where a.processing_card>0
                               and a.warehousing!=2
                                and (c.quantity-b.reporting_work_num)>0
                             GROUP BY  b.process_id, b.order_number,
                                 b.technology_number) as f
                                LEFT JOIN sd.order_process_detail as e
                                          on e.id=(f.id-1) and e.process_id = f.process_id and e.order_number = f.order_number and e.technology_number =f.technology_number
                       where
                           e.id is not null
                         and e.reporting_work_num-f.reporting_work_num>0 ) as g
                            <choose>
                                <when test="laminating == 'stepC'">
                                    GROUP BY g.process_id, g.order_number, g.`group`
                                </when>
                                <when test="laminating == 'stepD'">
                                    GROUP BY g.process_id, g.order_number
                                </when>
                                <otherwise>
                                    GROUP BY g.process_id, g.order_number, g.technology_number
                                </otherwise>
                            </choose>
             ) as h
        <choose>
            <when test="optionVal == 1">
                GROUP BY thisProcess
            </when>
            <otherwise>
                GROUP BY h.project,h.childName
            </otherwise>
        </choose>
    </select>
</mapper>