廖井涛
2025-02-21 284b5d41c1284dc6da25bb062de10c6d4998f186
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -166,6 +166,7 @@
               c.quantity,
               e.reportWorkQuantity,
               e.reportWorkQuantityCount,
               e.reportWorkTime,
               e.broken_num,
               ifnull(f.inventory, 0)                         as inventory,
               round(ifnull(f.inventory, 0) * a.area, 2)      as inventoryArea,
@@ -196,14 +197,18 @@
                                   concat('{',
                                          GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num_count, "\"")),
                                          '}'
                                       )             as reportWorkQuantityCount
                                       )             as reportWorkQuantityCount,
                                   concat('{',
                                          GROUP_CONCAT(concat("\"", process, "\":\"", IFNULL(date(update_time),''), "\"")),
                                          '}'
                                       )             as reportWorkTime
                            FROM sd.order_process_detail as a
                            where a.order_id = #{orderId}
                            GROUP BY process_id, a.order_number, a.technology_number) as e
                           on e.process_id = c.process_id
                               and e.technology_number = c.technology_number
                               and e.order_number = c.order_number
        where a.order_id = #{orderId}
        where a.order_id = #{orderId} and d.create_order>0
        group by c.order_number,
                 c.technology_number,
                 c.process_id
@@ -238,6 +243,7 @@
          and dd.available = 0
          and reviewed_state != 2
          and rw.this_process != dd.responsible_process
        and o.create_order>0
        <if test="crossProcessBreakingDTO.code != null and crossProcessBreakingDTO.code != ''">
            and JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) regexp #{crossProcessBreakingDTO.code}
        </if>
@@ -384,7 +390,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
                        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -465,7 +471,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -535,9 +541,10 @@
                               and odpd.process_id = fc.process_id
                 left join sd.`order` as o
                           on o.order_id = od.order_id
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
          and odpd.process = #{selectProcesses}
          and  DATE_FORMAT((o.create_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
          and  o.create_time >= #{selectTime1}
          AND o.create_time &lt;  #{selectTime2}
          and position(#{orderId} in od.order_id)
          and position(#{inputProject} in o.project)
          and fc.quantity - odpd.reporting_work_num>0
@@ -573,9 +580,10 @@
        AND dd.technology_number = ogd.technology_number
        left join sd.order_detail as od on o.order_id = od.order_id and od.order_number=ogd.order_number
        WHERE
         DATE_FORMAT((rw.reporting_work_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
        rw.reporting_work_time >= #{selectTime1}
        AND rw.reporting_work_time &lt;  #{selectTime2}
        AND dd.available = 0
        AND LENGTH( rw.process_id )= 14
        <if test="damageReportDTO.orderId != null and damageReportDTO.orderId != ''">
            and o.order_id regexp #{damageReportDTO.orderId}
        </if>
@@ -609,6 +617,9 @@
        <if test="damageReportDTO.glassChild != null and damageReportDTO.glassChild != ''">
            and ogd.glass_child regexp #{damageReportDTO.glassChild}
        </if>
        <if test="damageReportDTO.glassNumber != null and damageReportDTO.glassNumber != ''">
            and ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') regexp #{damageReportDTO.glassNumber}
        </if>
        GROUP BY
        dd.id
        limit #{offset},#{pageSize};
@@ -626,9 +637,9 @@
        AND dd.order_number = ogd.order_number
        AND dd.technology_number = ogd.technology_number
        WHERE
         DATE_FORMAT((rw.reporting_work_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
        rw.reporting_work_time >= #{selectTime1}
        AND rw.reporting_work_time &lt;  #{selectTime2}
        AND dd.available = 0
        AND LENGTH( rw.process_id )= 14
        <if test="damageReportDTO.orderId != null and damageReportDTO.orderId != ''">
            and o.order_id regexp #{damageReportDTO.orderId}
        </if>
@@ -722,7 +733,7 @@
            AND opd.technology_number = fc.technology_number
        WHERE  DATE_FORMAT((o.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
          and o.create_order>0
        GROUP BY o.order_id,
                 fc.order_number,
                 fc.technology_number
@@ -752,6 +763,7 @@
            AND opd.order_number = fc.order_number
            AND opd.technology_number = fc.technology_number
        WHERE opd.reporting_work_num > 0
          and o.create_order>0
          and  DATE_FORMAT((o.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
          AND position(#{selectProcesses} IN opd.process)
        GROUP BY opd.process, o.order_id
@@ -806,7 +818,7 @@
                                and   e.order_number=c.order_number
                               and e.technology_number = c.technology_number
                 left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number
        where a.order_id = #{orderId}
        where a.order_id = #{orderId} and d.create_order>0
        group by c.order_number,c.technology_number
        ORDER BY a.order_number
    </select>
@@ -848,12 +860,15 @@
                                       )             as reportWorkQuantityCount
                            FROM sd.order_process_detail as a
                                     left join sd.`order` as o on o.order_id = a.order_id
                            where  DATE_FORMAT((o.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
                            where    o.create_time >= #{selectTime1}
                              AND o.create_time &lt;  #{selectTime2}
                            GROUP BY process_id, a.technology_number) as e
                           on e.process_id = c.process_id
                               and e.technology_number = c.technology_number
                 left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number
        where DATE_FORMAT((d.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
        where   d.create_time >= #{selectTime1}
          AND d.create_time &lt;  #{selectTime2}
          and o.create_order>0
          and reportWorkQuantity is not null
        GROUP BY a.order_id
        ORDER BY a.order_id
@@ -882,18 +897,22 @@
                            FROM sd.`order` AS a
                                     LEFT JOIN reporting_work AS b ON a.order_id = b.order_id
                            WHERE b.this_process = '切割'
                              AND  DATE_FORMAT((a.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
            and  a.create_time >= #{selectTime1}
            AND a.create_time &lt;  #{selectTime2}
                            GROUP BY a.order_id) AS orw ON orw.order_id = o.order_id
                 LEFT JOIN (SELECT a.order_id,
                                   SUM(b.reporting_work_num) AS completionsNum
                            FROM sd.`order` AS a
                                     LEFT JOIN sd.order_process_detail AS b ON a.order_id = b.order_id
                            WHERE b.process = '包装'
                              AND  DATE_FORMAT((a.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
            and  a.create_time >= #{selectTime1}
            AND a.create_time &lt;  #{selectTime2}
                            GROUP BY a.order_id) AS oopd ON oopd.order_id = o.order_id
                 LEFT JOIN reporting_work AS rw ON rw.order_id = fc.order_id
            AND rw.process_id = fc.process_id
        WHERE  DATE_FORMAT((o.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
        WHERE    o.create_time >= #{selectTime1}
          AND o.create_time &lt;  #{selectTime2}
          and o.create_order>0
          AND fc.create_time IS NOT NULL
        GROUP BY o.order_id
    </select>
@@ -973,7 +992,6 @@
        WHERE date(rw.reporting_work_time) >= #{dates[0]}
          and date(rw.reporting_work_time) &lt;= #{dates[1]}
          AND dd.available = 0
          AND LENGTH(rw.process_id) = 14
        GROUP BY dd.id
    </select>
@@ -1016,6 +1034,7 @@
            AND rw.process_id = fc.process_id
        WHERE date(o.create_time) >= #{dates[0]}
          and date(o.create_time) &lt;= #{dates[1]}
          and o.create_order>0
          AND fc.create_time IS NOT NULL
        GROUP BY o.order_id
    </select>
@@ -1060,7 +1079,7 @@
                               and odpd.process_id = fc.process_id
                 left join sd.`order` as o
                           on o.order_id = od.order_id
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
          and odpd.process = #{process}
          and date(o.create_time) >= #{date[0]}
          and date(o.create_time) &lt;= #{date[1]}
@@ -1128,7 +1147,7 @@
                 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
        where  o.create_order>0
          and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
              odpd.broken_num != 0
          and odpd.process = #{process}
@@ -1185,6 +1204,7 @@
        where d.create_time
          and date(o.create_time) >= #{dates[0]}
          and date(o.create_time) &lt;= #{dates[1]}
          and d.create_order>0
          and reportWorkQuantity is not null
        GROUP BY a.order_id
        ORDER BY a.order_id
@@ -1245,6 +1265,7 @@
        WHERE date(o.create_time) >= #{dates[0]}
          and date(o.create_time) &lt;= #{dates[1]}
          and o.create_order>0
        GROUP BY o.order_id,
                 fc.order_number,
                 fc.technology_number
@@ -1276,6 +1297,7 @@
        WHERE opd.reporting_work_num > 0
          and date(o.create_time) >= #{date[0]}
          and date(o.create_time) &lt;= #{date[1]}
          and o.create_order>0
          AND position(#{process} IN opd.process)
        GROUP BY opd.process, o.order_id
    </select>
@@ -1302,7 +1324,8 @@
        left join sd.order_detail as od  on od.order_id=ogd.order_id and od.order_number=ogd.order_number
        left join sd.`order` as o on o.order_id=od.order_id
        where o.create_order>0 and rw.reviewed_state>=0 and rwd.completed_quantity>0 and
               DATE_FORMAT((rw.reporting_work_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
        rw.reporting_work_time >= #{selectTime1}
        AND rw.reporting_work_time &lt;  #{selectTime2}
        and position(#{selectProcesses} in rw.this_process)
        <if test="teamOutputDTO.thisProcess != null and teamOutputDTO.thisProcess != ''">
            and rw.this_process regexp #{teamOutputDTO.thisProcess}
@@ -1401,7 +1424,8 @@
        left join sd.order_detail as od  on od.order_id=ogd.order_id and od.order_number=ogd.order_number
        left join sd.`order` as o on o.order_id=od.order_id
        where o.create_order>0 and rw.reviewed_state>=0 and rwd.completed_quantity>0 and
               DATE_FORMAT((rw.reporting_work_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
        rw.reporting_work_time >= #{selectTime1}
        AND rw.reporting_work_time &lt;  #{selectTime2}
        and position(#{selectProcesses} in rw.this_process)
        <if test="teamOutputDTO.thisProcess != null and teamOutputDTO.thisProcess != ''">
            and rw.this_process regexp #{teamOutputDTO.thisProcess}
@@ -1493,7 +1517,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -1562,7 +1586,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -1642,7 +1666,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -1714,7 +1738,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -1751,7 +1775,7 @@
        where processes = #{processes}
        GROUP BY order_id, order_number) as ps
        left join sd.`order` as o on o.order_id = ps.order_id
        where ps.processes = #{processes}
        where ps.processes = #{processes} and o.create_order>0
        and  DATE_FORMAT((ps.scheduled_start_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
        <if test="scheduleProductionScheduleDTO.orderId != null and scheduleProductionScheduleDTO.orderId != ''">
            and ps.order_id regexp #{scheduleProductionScheduleDTO.orderId}
@@ -1777,7 +1801,7 @@
        where processes = #{processes}
        GROUP BY order_id, order_number) as ps
        left join sd.`order` as o on o.order_id = ps.order_id
        where ps.processes = #{processes}
        where ps.processes = #{processes} and o.create_order>0
        and  DATE_FORMAT((ps.scheduled_start_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
        <if test="scheduleProductionScheduleDTO.orderId != null and scheduleProductionScheduleDTO.orderId != ''">
            and ps.order_id regexp #{scheduleProductionScheduleDTO.orderId}
@@ -1807,7 +1831,7 @@
              where processes = #{process}
              GROUP BY order_id, order_number) as ps
                 left join sd.`order` as o on o.order_id = ps.order_id
        where ps.processes = #{process}
        where ps.processes = #{process} and o.create_order>0
          and date(scheduled_start_time) >= #{date[0]}
          and date(scheduled_start_time) &lt;= #{date[1]}
        GROUP BY ps.order_id, ps.processes