north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -308,7 +308,7 @@
    <select id="reportingWorkCount">
        select COUNT(rw.process_id)
        from reporting_work as rw
        where rw.process_id = #{processId}
        where rw.process_id = #{processId} and reviewed_state>=0
    </select>
    <!--    插入Flow_card表-->
    <insert id="addFlowCardMp">
@@ -353,14 +353,14 @@
    <select id="selectFlowCount">
        select COUNT(*)
        from sd.order_glass_detail as ogd
        where ogd.order_id = left(#{productionId}, 10)
        where ogd.order_id = #{orderId}
          and ogd.splitting_status = 0
    </select>
    <!--   修改订单表分架状态-->
    <update id="updateProcessingCard">
        update sd.`order` as o
        set o.processing_card=#{state}
        where o.order_id = left(#{productionId}, 10)
        where o.order_id = #{productionId}
    </update>
    <!--    查询已排版数据-->
@@ -443,12 +443,18 @@
               od.product_name,
               ogd.glass_child,
               fc.founder,
               date(fc.splitFrame_time)                                             as splitFrame_time
               date(fc.splitFrame_time)                                             as splitFrame_time,
               ogd.process,
               c.concatNumber
        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 od.order_id = ogd.order_id and od.order_number = ogd.order_number
                 left join (
            select process_id,technology_number, GROUP_CONCAT(order_number) as concatNumber from
            flow_card where process_id = #{processId} GROUP BY process_id,technology_number
                 ) as c on c.process_id=fc.process_id
        where fc.process_id = #{processId}
        GROUP BY fc.order_id, fc.process_id, fc.order_number, fc.technology_number
        order by fc.order_number, fc.technology_number
@@ -478,7 +484,7 @@
    </select>
    <select id="selectPrintFlowCard">
        select project_no,glass_total,glass_total_area
        select project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum
        from pp.optimize_project
        where date(create_time)>=#{selectTime1} and date(create_time) &lt;= #{selectTime2}
          and state >= 20
@@ -486,7 +492,7 @@
    </select>
    <select id="selectPrintMp">
        select *
        SELECT result.*,fcc.print_status from ( select *
        from ((select fc.id,
                      fc.order_id,
                      fc.process_id,
@@ -501,7 +507,6 @@
                      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
@@ -543,7 +548,6 @@
                      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
@@ -581,7 +585,6 @@
                      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
@@ -612,7 +615,9 @@
        where process is not null
          and process != ""
        GROUP BY order_id, process_id, technology_number, process
        order by order_id, process_id, length(technology_number)
        order by order_id, process_id, length(technology_number)) as result
        LEFT JOIN (SELECT * from flow_card GROUP BY process_id,technology_number) as fcc
        on result.process_id = fcc.process_id and result.technology_number = fcc.technology_number
    </select>
    <select id="getPrimaryList">
@@ -644,7 +649,46 @@
                                   ogd.glass_child,
                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = left(#{processId}, 10)
                            where ogd.order_id = #{orderId}
                              and position(ogd.technology_number in #{technologyNumber})
                            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 position(fc.technology_number in #{technologyNumber})
        group by fc.process_id
    </select>
    <select id="getPrimaryLists">
        select o.customer_name,
               o.project,
               #{process}                                         process,
               od.edging_type,
               #{glassChild}                                   as glass_child,
               od.product_name,
               o.processing_note,
               fc.process_id,
               #{quantity}                                                      as quantity,
               round(od.width*od.height*#{quantity}/1000000, 2)                   as gross_area,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               concat('对应我司单号', o.batch)                 AS otherRemarks,
               ''                                              as qrcode
        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 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 sd.product as p on p.id = od.product_id
                 left join (select ogd.order_id,
                                   ogd.order_number,
                                   ogd.technology_number,
                                   ogd.glass_child,
                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = #{orderId}
                              and position(ogd.technology_number in #{technologyNumber})
                            GROUP BY order_id, order_number) as ogdc
                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
@@ -655,6 +699,38 @@
    </select>
    <select id="getDetailList">
        select fc.order_number,
               concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1)))   as child_width,
               fc.quantity,
               round(ogd.total_area, 2)                                       as total_area,
               od.perimeter,
               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
               concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
               od.other_columns,
               round(ogd.child_width)                                         as width,
               round(ogd.child_height)                                        as height,
               pd.separation,
               fc.technology_number,
               IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
               od.building_number
        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 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(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="getDetailLists">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
               fc.quantity,
@@ -682,6 +758,7 @@
                               and fcs.process = #{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        and fc.order_sort = #{orderNumber}
        group by fc.process_id, fc.order_number
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
@@ -1062,7 +1139,19 @@
               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
               od.bend_radius                                        as bendRadius,
               CONCAT(
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       ' = ',pl.patch_num   )      as size,
               CONCAT(
                       od.order_number,')  ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       ' = ',pl.patch_num   )      as numberSize
        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
@@ -1153,7 +1242,7 @@
                                   ogd.glass_child,
                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = left(#{processId}, 10)
                            where ogd.order_id = #{orderId}
                              and position(ogd.technology_number in #{technologyNumber})
                            GROUP BY order_id, order_number) as ogdc
                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
@@ -1207,7 +1296,7 @@
    <select id="getDetailListLike">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
               concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1)))   as child_width,
               fc.quantity,
               round(ogd.total_area, 2)                                       as total_area,
               od.perimeter,
@@ -1232,6 +1321,39 @@
                              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(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="getDetailListLikes">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
               count(*) as quantity,
               round(ogd.child_width*ogd.child_height*count(*)/1000000, 2)                                       as total_area,
               round((ogd.child_width+ogd.child_height)*2*count(*)/1000, 2)    as perimeter,
               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
               concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
               od.other_columns,
               round(ogd.child_width)                                         as width,
               round(ogd.child_height)                                        as height,
               pd.separation,
               fc.technology_number,
               IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
               od.building_number
        from optimize_detail opt left join flow_card as fc on opt.process_id = fc.process_id and opt.order_sort = fc.order_number and
                                                              opt.layer = fc.technology_number
                                 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 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 opt.process_id = #{processId} and opt.project_no=#{printProject}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
@@ -1264,7 +1386,7 @@
                                   ogd.glass_child,
                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = left(#{processId}, 10)
                            where ogd.order_id = #{orderId}
                              and ogd.order_number = #{orderNumber}
                              and position(ogd.technology_number in #{technologyNumber})
                            GROUP BY order_id, order_number) as ogdc
@@ -1350,7 +1472,7 @@
                                   ogd.glass_child,
                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = left(#{processId}, 10)
                            where ogd.order_id = #{orderId}
                              and ogd.order_number = #{orderNumber}
                              and position(ogd.technology_number in #{technologyNumber})
                            GROUP BY order_id, order_number) as ogdc
@@ -1434,7 +1556,7 @@
                                   ogd.glass_child,
                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = left(#{processId}, 10)
                            where ogd.order_id = #{orderId}
                              and ogd.order_number = #{orderNumber}
                              and position(ogd.technology_number in #{technologyNumber})
                            GROUP BY order_id, order_number) as ogdc
@@ -1516,7 +1638,7 @@
                                   ogd.glass_child,
                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = left(#{processId}, 10)
                            where ogd.order_id = #{orderId}
                              and ogd.order_number = #{orderNumber}
                              and position(ogd.technology_number in #{technologyNumber})
                            GROUP BY order_id, order_number) as ogdc
@@ -1582,6 +1704,7 @@
               round(ogd.child_width)                                as width,
               round(ogd.child_height)                               as height,
               fc.quantity,
               CONCAT(round(ogd.child_width)  , ' X ', round(ogd.child_height)   ,' = ',fc.quantity )           as size,
               od.order_number                                       as orderNumber,
               fc.technology_number                                  as technologyNumber,
               od.building_number                                    as buildingNumber,
@@ -1813,7 +1936,19 @@
               od.bend_radius                                        as bendRadius,
               ogd.glass_child                                       as glassChild,
               ogd.glass_address                                     as glassAddress,
               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
               CONCAT(
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       ' = ',pl.patch_num   )      as size,
               CONCAT(
                       od.order_number,')  ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       ' = ',pl.patch_num   )      as numberSize
        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
@@ -2000,7 +2135,7 @@
                                   ogd.glass_child,
                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = left(#{processId}, 10)
                            where ogd.order_id = #{orderId}
                              and position(ogd.technology_number in #{technologyNumber})
                            GROUP BY order_id, order_number) as ogdc
                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
@@ -2094,6 +2229,18 @@
               width,
               height,
               #{printQuantity}                                      as quantity,
               CONCAT(
                   TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                   ' X ',
                   TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                   ' = ',#{printQuantity} )      as size,
               CONCAT(
                   od.order_number,')  ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       ' = ',#{printQuantity} )      as numberSize,
               od.order_number                                       as orderNumber,
               fc.technology_number                                  as technologyNumber,
               od.building_number                                    as buildingNumber,
@@ -2212,16 +2359,19 @@
    <select id="selectSortTableMp">
        select fcs.sort,
               process_id,
               fcs.process_id,
               fcs.order_number,
               fcs.technology_number,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
               fcs.process
        from flow_card_sort as fcs
                 left join sd.order_detail as od
                           on od.order_id = left(fcs.process_id, 10) and od.order_number = fcs.order_number
        where LEFT(fcs.process_id, 10) = #{orderId}
        GROUP BY process_id,
        from
            flow_card as fc
                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
                left join sd.order_detail as od
                          on od.order_id = fc.order_id and od.order_number = fcs.order_number
        where fc.order_id = #{orderId}
        GROUP BY fcs.process_id,
                 fcs.order_number,
                 fcs.technology_number,
                 fcs.process
@@ -2462,6 +2612,80 @@
             (select (@row_number := @row_number + 1) as id,process_id as process_id from (select process_id from pp.optimize_detail tt where project_no =#{projectNo} group by process_id) tt,(select @row_number := 0) as t) a
             on a.process_id=opd.process_id
        where opd.project_no = #{projectNo}
        order by opd.stock_id,opd.polys_id
        group by  order_id,od.order_number
        order by ogd.child_width desc,ogd.child_height desc
    </select>
    <delete id="deleteProcessMp">
        delete from sd.order_process_detail where process_id = #{processId} and technology_number= #{technologyNumber}
    </delete>
    <insert id="updateProcessMp">
        insert into sd.order_process_detail (order_id,
                                             process_id,
                                             order_number,
                                             technology_number,
                                             process,
                                             create_time)
        select fc.order_id,
               fc.process_id,
               fc.order_number,
               #{technologyNumber},
               #{process},
               NOW()
        from pp.flow_card as fc
        where fc.process_id = #{processId}
          and fc.order_number = #{number}
          and fc.technology_number = #{technologyNumber}
        GROUP BY fc.order_number
    </insert>
    <update id="updateOrderProcessMp">
        update sd.order_glass_detail set process=#{orderprocess}
        where order_id=#{orderId} and order_number=#{number} and technology_number=#{technologyNumber}
    </update>
    <select id="getFlowCardListPrintProject">
        select
            od.order_id,
            fc.process_id,
            o.customer_name,
            o.project,
            od.order_number,
            ogd.technology_number,
            ogd.glass_address,
            fc.quantity ,
            round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
            od.product_name,
            ogd.glass_child,
            fc.patch_state,
            ogd.process
        from  (select process_id,count(*) as quantity,order_sort,project_no,layer,patch_state from pp.optimize_detail where project_no = #{printProject} group by process_id,layer) as fc
                  left join sd.order_glass_detail as ogd
                            on ogd.order_id = SUBSTRING(fc.process_id,1,10)  and ogd.order_number = fc.order_sort and
                               ogd.technology_number = fc.layer
                  left join sd.order_detail as od on od.order_id = SUBSTRING(fc.process_id,1,10)  and od.order_number = fc.order_sort
                  left join sd.`order` as o on o.order_id = SUBSTRING(fc.process_id,1,10)
        where fc.project_no = #{printProject}
        GROUP BY fc.process_id, ogd.technology_number
        order by fc.process_id, ogd.technology_number
    </select>
    <update id="updateProjectLabelPrintCount">
       update optimize_project set labelPrintNum=labelPrintNum+1 where project_no=#{projectNo}
    </update>
    <select id="selectProjectLabelPrintCount">
        select labelPrintNum from optimize_project where project_no=#{projectNo}
    </select>
    <update id="updateProjectProcessPrintCount">
        update optimize_project set processPrintNum=processPrintNum+1 where project_no=#{projectNo}
    </update>
    <select id="selectProjectProcessPrintCount">
        select processPrintNum from optimize_project where project_no=#{projectNo}
    </select>
</mapper>