廖井涛
2024-07-25 15fa56463061f1e94140e23e98987aa3131714bf
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -468,40 +468,135 @@
    </select>
    <select id="selectPrintMp">
        select fc.id,
               fc.order_id,
               fc.process_id,
               o.customer_name,
               o.project,
               fc.order_number,
               ogd.technology_number,
               ogd.glass_address,
               sum(od.quantity)         as quantity,
               sum(ogd.total_area)      as total_area,
               od.product_name,
               ogd.glass_child,
               fc.founder,
               date(fc.splitFrame_time) as splitFrame_time,
              /* if(fc.print_status=0,'未打印','已打印') as  print_status*/
        fc.print_status
        from flow_card as fc
                 left join sd.order_glass_detail as ogd
                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
                              ogd.technology_number = fc.technology_number
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                 left join sd.`order` as o on o.order_id = fc.order_id
        where fc.order_id = #{orderId}
        GROUP BY fc.process_id, ogd.technology_number
        order by fc.process_id, ogd.technology_number
        select * from ((select fc.id,
                               fc.order_id,
                               fc.process_id,
                               o.customer_name,
                               o.project,
                               ogdss.technology_number,
                               ogdss.concatenated_glass_child,
                               ROUND(sum(fc.quantity)/(count(DISTINCT fc.technology_number)))         as quantity,
                               sum(ogd.total_area)      as total_area,
                               # SUM(ogd.child_width*child_height*fc.quantity/(count(DISTINCT ogd.technology_number))) as total_area,
                               od.product_name,
                               ogdss.concatenated_glass_child as glass_child,
                               fc.founder,
                               date(fc.splitFrame_time) as splitFrame_time,
                               fc.print_status,
                               processed_part as  process
                        from flow_card as fc
                                 left join sd.order_glass_detail as ogd
                                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
                                              ogd.technology_number = fc.technology_number
                                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                                 left join sd.`order` as o on o.order_id = fc.order_id
                                 left join (
                            select
                                ogds.order_id,
                                ogds.order_number,
                                GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
                                ogds.glass_child AS concatenated_glass_child,
                                process AS processed_part
                            from sd.order_glass_detail as ogds
                            where ogds.order_id = #{orderId}
                            GROUP BY order_id, order_number,ogds.glass_child
                        ) as ogdss on fc.order_id=ogdss.order_id and ogdss.order_number=fc.order_number
                        where fc.order_id = #{orderId}
                        GROUP BY fc.process_id,ogdss.concatenated_glass_child
                        order by fc.process_id,ogdss.technology_number)
                       UNION
                       (select fc.id,
                               fc.order_id,
                               fc.process_id,
                               o.customer_name,
                               o.project,
                               ogdss.technology_number,
                               ogd.glass_address,
                               ROUND(sum(fc.quantity)/(count(DISTINCT fc.technology_number)))         as quantity,
                               sum(ogd.total_area)      as total_area,
                               # SUM(ogd.child_width*child_height*fc.quantity/(count(DISTINCT ogd.technology_number))) as total_area,
                               od.product_name,
                               ogdss.concatenated_glass_child as glass_child,
                               fc.founder,
                               date(fc.splitFrame_time) as splitFrame_time,
                               fc.print_status,
                               processed_part as  process
                        from flow_card as fc
                                 left join sd.order_glass_detail as ogd
                                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
                                              ogd.technology_number = fc.technology_number
                                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                                 left join sd.`order` as o on o.order_id = fc.order_id
                                 left join (
                            select
                                ogds.order_id,
                                ogds.order_number,
                                GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
                                ogds.glass_child,
                                GROUP_CONCAT(ogds.glass_child SEPARATOR ' ') AS concatenated_glass_child,
                                SUBSTRING(process, LOCATE('夹胶', process)) AS processed_part
                            from sd.order_glass_detail as ogds
                            where ogds.order_id = #{orderId} and LOCATE('夹胶',ogds.process)>0
                            GROUP BY order_id, order_number,ogds.group
                        ) as ogdss on fc.order_id=ogdss.order_id and ogdss.order_number=fc.order_number
                        where fc.order_id = #{orderId}
                        GROUP BY fc.process_id
                        order by fc.process_id)
                       UNION
                       (select fc.id,
                               fc.order_id,
                               fc.process_id,
                               o.customer_name,
                               o.project,
                               ogdss.technology_number,
                               ogd.glass_address,
                               ROUND(sum(fc.quantity)/(count(DISTINCT fc.technology_number)))         as quantity,
                               sum(ogd.total_area)      as total_area,
                               od.product_name,
                               ogdss.concatenated_glass_child as glass_child,
                               fc.founder,
                               date(fc.splitFrame_time) as splitFrame_time,
                               fc.print_status,
                               processed_part as process
                        from flow_card as fc
                                 left join sd.order_glass_detail as ogd
                                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
                                              ogd.technology_number = fc.technology_number
                                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                                 left join sd.`order` as o on o.order_id = fc.order_id
                                 left join (
                            select
                                ogds.order_id,
                                ogds.order_number,
                                GROUP_CONCAT(pds.glass_sort SEPARATOR '') AS technology_number,
                                ogds.glass_child,
                                GROUP_CONCAT(ogds.glass_child SEPARATOR ' ') AS concatenated_glass_child,
                                SUBSTRING(pds.process, LOCATE('中空', pds.process)) AS processed_part
                            from sd.order_glass_detail as ogds
                                     left join sd.order_detail as ods on ods.order_id=ogds.order_id and ods.order_number=ogds.order_number
                                     left join sd.product_detail as pds on pds.prod_id=ods.product_id and pds.glass_sort=ogds.technology_number
                            where ogds.order_id = #{orderId}
                            GROUP BY order_id, order_number
                        ) as ogdss on fc.order_id=ogdss.order_id and ogdss.order_number=fc.order_number
                        where fc.order_id = #{orderId}
                        GROUP BY fc.process_id
                        order by fc.process_id)
                       ) AS combined_results where process is not null and process!=""
    </select>
    <select id="getPrimaryList">
        select o.customer_name,
               o.project,
               ogd.process,
               #{process} process,
               od.edging_type,
               ogd.glass_child,
               #{glassChild} as glass_child,
               od.product_name,
               o.processing_note,
               fc.process_id,
@@ -529,8 +624,8 @@
            GROUP BY order_id, order_number
        ) as ogdc on ogdc.order_id=ogd.order_id and ogdc.order_number=ogd.order_number and ogdc.technology_number=ogd.technology_number
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
        group by fc.process_id, fc.technology_number
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id
    </select>
    <select id="getDetailList">
@@ -553,7 +648,7 @@
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
        left join sd.product_detail as pd on pd.prod_id=od.product_id and pd.glass_sort=ogd.technology_number
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
    </select>
@@ -648,13 +743,14 @@
               ogd.child_height,
               fc.quantity,
               ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
               fc.sort
               fc.sort,
               ogd.glass_child
        FROM flow_card AS fc
                 LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
            AND fc.order_number = ogd.order_number
            AND fc.technology_number = ogd.technology_number
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
          and  position(fc.technology_number in #{technologyNumber})
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
    </select>
@@ -799,39 +895,57 @@
    <select id="getRepairPrintCustomData">
        select o.order_id           as orderId,
               project,
               customer_id          as customerId,
               customer_name        as customerName,
               order_type           as orderType,
               order_classify       as orderClassify,
               batch,
               o.project,
               o.customer_id          as customerId,
               o.customer_name        as customerName,
               o.order_type           as orderType,
               o.order_classify       as orderClassify,
               o.batch,
               o.icon,
               pack_type            as packType,
               delivery_date        as deliveryDate,
               al_type              as alType,
               money,
               o.pack_type            as packType,
               o.delivery_date        as deliveryDate,
               o.al_type              as alType,
               o.money,
               contract_id          as contractId,
               customer_batch          customerBatch,
               contacts,
               delivery_address     as deliveryAddress,
               o.delivery_address     as deliveryAddress,
               od.processing_note   as processingNote,
               width,
               height,
               od.width,
               od.height,
               pl.patch_num         as quantity,
               pl.order_sort        as orderNumber,
               pl.technology_number as technologyNumber,
               od.building_number   as buildingNumber,
               od.product_name      as productName,
               od.edging_type       as edgingType
               od.edging_type       as edgingType,
                p.remarks,
                c.customer_abbreviation as customerAbbreviation,
               p.product_abbreviation as productAbbreviation,
               fc.process_id as processId,
               o.create_time as createTime,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS glassNumber,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S02' )) AS figureNumber,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S03' )) AS colourCeramicGlaze,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S04' )) AS remarks1,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S05' )) AS remarks2,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S06' )) AS remarks3,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S07' )) AS remarks4,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S08' )) AS remarks5,
               p.remarks as filmNumber,
               od.bend_radius as bendRadius
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.order_id
                 left join flow_card as fc on o.order_id = fc.order_id and
                                              od.order_number = fc.order_number
                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                              pl.technology_number = fc.technology_number
                 left join sd.product as p on p.id=od.product_id
                 left join sd.customer as c on c.id = o.customer_id
                 left join sd.product_detail as pd  on pd.prod_id=p.id and pd.sort_num=od.order_number
        where pl.process_id = #{processId}
          and pl.technology_number = #{technologyNumber}
        and pl.reporting_work_id=#{reportingWorkId}
        group by od.order_number, width, height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, pl.order_sort)
    </select>
@@ -860,7 +974,8 @@
               ogd.child_height,
               fc.quantity,
               ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
               fc.sort
               fc.sort,
               ogd.process
        FROM flow_card AS fc
                 LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
            AND fc.order_number = ogd.order_number