廖井涛
2024-08-09 4aff3b8d0640e9a84f7408100551e740bacaa2a0
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -472,13 +472,15 @@
    <select id="selectPrintMp">
        select *
        from ((select fc.id,
        from (
        (select fc.id,
                      fc.order_id,
                      fc.process_id,
                      o.customer_name,
                      o.project,
                      ogdss.technology_number,
                      ogdss.concatenated_glass_child,
                      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,
@@ -503,10 +505,10 @@
                                          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
                                   GROUP BY order_id, order_number, ogds.glass_child,process) 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
               GROUP BY fc.process_id, ogdss.concatenated_glass_child,ogdss.processed_part
               order by fc.process_id, ogdss.technology_number)
              UNION
@@ -593,7 +595,7 @@
               order by fc.process_id)) AS combined_results
        where process is not null
          and process != ""
        GROUP BY order_id,process_id,technology_number,process
    </select>
    <select id="getPrimaryList">
@@ -654,10 +656,12 @@
                 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
                 left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          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)
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="getProcessList">
@@ -753,15 +757,19 @@
               ogd.child_height,
               fc.quantity,
               ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
               fc.sort,
               ogd.glass_child
               ifnull(fcs.sort,'') as sort,
               ogd.glass_child,
               #{process} as 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
            AND fc.technology_number = ogd.technology_number
        left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.order_number)
    </select>
    <update id="printSortMp">
@@ -873,7 +881,7 @@
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
        group by od.order_number, width, height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
        order by fc.process_id
    </select>
    <select id="selectReplenishPrintMp">
@@ -966,7 +974,7 @@
          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)
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
    </select>
    <select id="getGlassNumber">
@@ -975,7 +983,7 @@
                 left join flow_card as fc on od.order_id = fc.order_id and od.order_number = fc.order_number
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.order_number)
    </select>
    <update id="updatePrintStateMp">
@@ -995,13 +1003,15 @@
               fc.quantity,
               ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
               fc.sort,
               ogd.process
               ogd.process,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber
        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
        left join sd.order_detail as od on fc.order_id = od.order_id and fc.order_number = od.order_number
        where fc.order_id = #{orderId}
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.technology_number)
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.technology_number)
    </select>
    <update id="printOrderSortMp">
@@ -1025,7 +1035,8 @@
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               concat('对应我司单号',o.batch)                                         AS otherRemarks
        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
@@ -1110,10 +1121,12 @@
                 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
                 left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="getPrimaryListMergeRefund">
@@ -1185,7 +1198,7 @@
          and position(fc.technology_number in #{technologyNumber})
          and pl.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(sort != NULL and sort != '', sort, fc.order_number)
    </select>
    <select id="getPrimaryListRefund">
@@ -1205,7 +1218,8 @@
               dd.breakage_type,
               dd.breakage_reason,
               dd.responsible_process,
               dd.responsible_team
               dd.responsible_team,
               concat('对应我司单号',o.batch)                                         AS otherRemarks
        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
@@ -1265,7 +1279,7 @@
          and position(fc.technology_number in #{technologyNumber})
          and pl.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(sort != NULL and sort != '', sort, fc.order_number)
    </select>
    <select id="getPrimaryListRework">
@@ -1336,7 +1350,7 @@
          and position(fc.technology_number in #{technologyNumber})
          and pl.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(sort != NULL and sort != '', sort, fc.order_number)
    </select>
    <select id="getPrimaryListMergeRework">
@@ -1408,7 +1422,7 @@
          and position(fc.technology_number in #{technologyNumber})
          and pl.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(sort != NULL or sort != '', sort, fc.order_number)
    </select>
    <select id="getPrintCustomDataSemi">
@@ -1465,10 +1479,12 @@
                 left join sd.order_glass_detail ogd
                           on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
                              ogd.technology_number = fc.technology_number
                 left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
          and position(fc.technology_number in #{technologyNumber})
        group by od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="selectPrintNotMp">
@@ -1676,6 +1692,143 @@
          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)
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
    </select>
    <select id="selectPrintAllMp">
        select *
        from ( (select fc.id,
                       fc.order_id,
                       fc.process_id,
                       o.customer_name,
                       o.project,
                       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,
                       ogd.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
                where fc.order_id = #{orderId}
                GROUP BY fc.process_id, ogd.technology_number
                order by fc.process_id, ogd.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, ogdss.technology_number
                  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 != ""
        GROUP BY order_id,process_id,technology_number,process
    </select>
    <insert id="printAddSortMp">
        insert into flow_card_sort (process_id,order_number,technology_number,process,sort,create_time)
        values (#{processId},#{orderNumber},#{technologyNumber},#{process},#{sort},now())
    </insert>
    <select id="printAddSortCountMp">
        select
        count(*)
        from flow_card_sort
        where process_id = #{processId}
          and order_number = #{orderNumber}
          and technology_number = #{technologyNumber}
          and process = #{process}
    </select>
    <update id="printUpdateSortMp">
        update flow_card_sort
        set sort = #{sort}
        where process_id = #{processId}
          and order_number = #{orderNumber}
          and technology_number = #{technologyNumber}
          and process = #{process}
    </update>
</mapper>