| | |
| | | AND rw.reviewed_state >= 0 |
| | | AND rwd.completed_quantity > 0 |
| | | AND rw.reporting_work_time >= #{selectTime1} |
| | | AND rw.reporting_work_time < #{selectTime2} |
| | | AND rw.reporting_work_time <= #{selectTime2} |
| | | <choose> |
| | | <!-- 有传工序:精确匹配 --> |
| | | <when test="selectProcesses != null and selectProcesses != ''"> |
| | |
| | | ) t |
| | | WHERE 1 = 1 |
| | | <if test="teamOutputDTO.workProcessName != null and teamOutputDTO.workProcessName != ''"> |
| | | AND t.workProcessName REGEXP #{teamOutputDTO.workProcessName} |
| | | and t.workProcessName like concat('%', #{teamOutputDTO.workProcessName}, '%') |
| | | </if> |
| | | HAVING 1 = 1 |
| | | <if test="teamOutputDTO.thicknessSum != null and teamOutputDTO.thicknessSum != ''"> |
| | |
| | | AND rw.reviewed_state >= 0 |
| | | AND rwd.completed_quantity > 0 |
| | | AND rw.reporting_work_time >= #{date[0]} |
| | | AND rw.reporting_work_time < #{date[1]} |
| | | AND rw.reporting_work_time <= #{date[1]} |
| | | <choose> |
| | | <!-- 有传工序:精确匹配 --> |
| | | <when test="process != null and process != ''"> |
| | |
| | | GROUP BY |
| | | t.this_process |
| | | </select> |
| | | |
| | | <select id="TeamOutputSummaryMp"> |
| | | SELECT |
| | | t.this_process, |
| | | t.teams_groups_name, |
| | | t.workProcessName, |
| | | |
| | | -- 数量汇总 |
| | | SUM(t.completed_quantity) AS completed_quantity, |
| | | |
| | | -- 面积汇总 |
| | | ROUND(SUM(t.area), 2) AS area |
| | | FROM |
| | | ( |
| | | /* ================= 内层子查询(保持不变) ================= */ |
| | | SELECT |
| | | rw.reporting_work_time, |
| | | rw.this_process, |
| | | rw.teams_groups_name, |
| | | o.project, |
| | | o.order_id, |
| | | rw.process_id, |
| | | fc.order_number, |
| | | MAX(ogd.child_width) AS width, |
| | | MAX(ogd.child_height) AS height, |
| | | od.edging_type, |
| | | rwd.completed_quantity AS completed_quantity, |
| | | ROUND( |
| | | MAX(ogd.child_width) * MAX(ogd.child_height) |
| | | * rwd.completed_quantity / 1000000, |
| | | 2 |
| | | ) AS area, |
| | | od.product_name, |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS code, |
| | | rw.reviewed, |
| | | rw.examine_time, |
| | | rw.device_name, |
| | | o.order_type, |
| | | CASE |
| | | WHEN LOCATE('step', #{laminating}) > 0 |
| | | THEN GROUP_CONCAT(ogd.glass_child SEPARATOR '+') |
| | | ELSE MAX(ogd.glass_child) |
| | | END AS workProcessName, |
| | | o.batch |
| | | FROM |
| | | pp.reporting_work AS rw |
| | | LEFT JOIN pp.reporting_work_detail AS rwd |
| | | ON rwd.reporting_work_id = rw.reporting_work_id |
| | | LEFT JOIN pp.flow_card AS fc |
| | | ON fc.order_id = rw.order_id |
| | | AND fc.process_id = rw.process_id |
| | | AND fc.order_number = rwd.order_number |
| | | AND fc.technology_number = rwd.technology_number |
| | | 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 = 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 rw.reporting_work_time >= #{selectTime1} |
| | | AND rw.reporting_work_time <= #{selectTime2} |
| | | |
| | | <choose> |
| | | <!-- 有传工序:精确匹配 --> |
| | | <when test="selectProcesses != null and selectProcesses != ''"> |
| | | AND rw.this_process = #{selectProcesses} |
| | | </when> |
| | | <!-- 未传工序:不加限制,查所有) --> |
| | | <otherwise></otherwise> |
| | | </choose> |
| | | |
| | | <if test="teamOutputDTO.thisProcess != null and teamOutputDTO.thisProcess != ''"> |
| | | AND rw.this_process REGEXP #{teamOutputDTO.thisProcess} |
| | | </if> |
| | | <if test="teamOutputDTO.teamsGroupsName != null and teamOutputDTO.teamsGroupsName != ''"> |
| | | AND rw.teams_groups_name LIKE CONCAT('%', #{teamOutputDTO.teamsGroupsName}, '%') |
| | | </if> |
| | | <if test="teamOutputDTO.project != null and teamOutputDTO.project != ''"> |
| | | AND o.project REGEXP #{teamOutputDTO.project} |
| | | </if> |
| | | <if test="teamOutputDTO.processId != null and teamOutputDTO.processId != ''"> |
| | | AND rw.process_id REGEXP #{teamOutputDTO.processId} |
| | | </if> |
| | | <if test="teamOutputDTO.edgingType != null and teamOutputDTO.edgingType != ''"> |
| | | AND od.edging_type REGEXP #{teamOutputDTO.edgingType} |
| | | </if> |
| | | <if test="teamOutputDTO.deviceName != null and teamOutputDTO.deviceName != ''"> |
| | | AND rw.device_name REGEXP #{teamOutputDTO.deviceName} |
| | | </if> |
| | | <if test="teamOutputDTO.batch != null and teamOutputDTO.batch != ''"> |
| | | AND o.batch REGEXP #{teamOutputDTO.batch} |
| | | </if> |
| | | |
| | | <choose> |
| | | <when test="laminating == ''"> |
| | | GROUP BY |
| | | rw.reporting_work_id, |
| | | rw.process_id, |
| | | rw.this_process, |
| | | rw.teams_groups_name, |
| | | rwd.order_number, |
| | | rwd.technology_number |
| | | </when> |
| | | <otherwise> |
| | | GROUP BY |
| | | <if test="laminating == 'stepA' || laminating == 'stepC'"> |
| | | ogd.`group`, |
| | | </if> |
| | | rw.reporting_work_id, |
| | | rw.process_id, |
| | | rw.this_process, |
| | | rw.teams_groups_name, |
| | | rwd.order_number |
| | | </otherwise> |
| | | </choose> |
| | | ) t |
| | | WHERE 1 = 1 |
| | | <if test="teamOutputDTO.workProcessName != null and teamOutputDTO.workProcessName != ''"> |
| | | and t.workProcessName like concat('%', #{teamOutputDTO.workProcessName}, '%') |
| | | </if> |
| | | GROUP BY |
| | | t.this_process, |
| | | t.teams_groups_name, |
| | | t.workProcessName |
| | | |
| | | ORDER BY |
| | | t.this_process, |
| | | t.teams_groups_name, |
| | | t.workProcessName |
| | | LIMIT #{offset}, #{pageSize}; |
| | | </select> |
| | | |
| | | <select id="teamOutputSummaryPageTotal"> |
| | | |
| | | select CEILING(COUNT(*) / #{pageSize}) AS pageTotal, |
| | | COUNT(*) AS total FROM( |
| | | SELECT |
| | | t.this_process, |
| | | t.teams_groups_name, |
| | | t.workProcessName, |
| | | |
| | | -- 数量汇总 |
| | | SUM(t.completed_quantity) AS completed_quantity, |
| | | |
| | | -- 面积汇总 |
| | | ROUND(SUM(t.area), 2) AS area |
| | | FROM |
| | | ( |
| | | /* ================= 内层子查询(保持不变) ================= */ |
| | | SELECT |
| | | rw.reporting_work_time, |
| | | rw.this_process, |
| | | rw.teams_groups_name, |
| | | o.project, |
| | | o.order_id, |
| | | rw.process_id, |
| | | fc.order_number, |
| | | MAX(ogd.child_width) AS width, |
| | | MAX(ogd.child_height) AS height, |
| | | od.edging_type, |
| | | rwd.completed_quantity AS completed_quantity, |
| | | ROUND( |
| | | MAX(ogd.child_width) * MAX(ogd.child_height) |
| | | * rwd.completed_quantity / 1000000, |
| | | 2 |
| | | ) AS area, |
| | | od.product_name, |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS code, |
| | | rw.reviewed, |
| | | rw.examine_time, |
| | | rw.device_name, |
| | | o.order_type, |
| | | CASE |
| | | WHEN LOCATE('step', #{laminating}) > 0 |
| | | THEN GROUP_CONCAT(ogd.glass_child SEPARATOR '+') |
| | | ELSE MAX(ogd.glass_child) |
| | | END AS workProcessName, |
| | | o.batch |
| | | FROM |
| | | pp.reporting_work AS rw |
| | | LEFT JOIN pp.reporting_work_detail AS rwd |
| | | ON rwd.reporting_work_id = rw.reporting_work_id |
| | | LEFT JOIN pp.flow_card AS fc |
| | | ON fc.order_id = rw.order_id |
| | | AND fc.process_id = rw.process_id |
| | | AND fc.order_number = rwd.order_number |
| | | AND fc.technology_number = rwd.technology_number |
| | | 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 = 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 rw.reporting_work_time >= #{selectTime1} |
| | | AND rw.reporting_work_time <= #{selectTime2} |
| | | |
| | | <choose> |
| | | <!-- 有传工序:精确匹配 --> |
| | | <when test="selectProcesses != null and selectProcesses != ''"> |
| | | AND rw.this_process = #{selectProcesses} |
| | | </when> |
| | | <!-- 未传工序:不加限制,查所有) --> |
| | | <otherwise></otherwise> |
| | | </choose> |
| | | |
| | | <if test="teamOutputDTO.thisProcess != null and teamOutputDTO.thisProcess != ''"> |
| | | AND rw.this_process REGEXP #{teamOutputDTO.thisProcess} |
| | | </if> |
| | | <if test="teamOutputDTO.teamsGroupsName != null and teamOutputDTO.teamsGroupsName != ''"> |
| | | AND rw.teams_groups_name LIKE CONCAT('%', #{teamOutputDTO.teamsGroupsName}, '%') |
| | | </if> |
| | | <if test="teamOutputDTO.project != null and teamOutputDTO.project != ''"> |
| | | AND o.project REGEXP #{teamOutputDTO.project} |
| | | </if> |
| | | <if test="teamOutputDTO.processId != null and teamOutputDTO.processId != ''"> |
| | | AND rw.process_id REGEXP #{teamOutputDTO.processId} |
| | | </if> |
| | | <if test="teamOutputDTO.edgingType != null and teamOutputDTO.edgingType != ''"> |
| | | AND od.edging_type REGEXP #{teamOutputDTO.edgingType} |
| | | </if> |
| | | <if test="teamOutputDTO.deviceName != null and teamOutputDTO.deviceName != ''"> |
| | | AND rw.device_name REGEXP #{teamOutputDTO.deviceName} |
| | | </if> |
| | | <if test="teamOutputDTO.batch != null and teamOutputDTO.batch != ''"> |
| | | AND o.batch REGEXP #{teamOutputDTO.batch} |
| | | </if> |
| | | |
| | | <choose> |
| | | <when test="laminating == ''"> |
| | | GROUP BY |
| | | rw.reporting_work_id, |
| | | rw.process_id, |
| | | rw.this_process, |
| | | rw.teams_groups_name, |
| | | rwd.order_number, |
| | | rwd.technology_number |
| | | </when> |
| | | <otherwise> |
| | | GROUP BY |
| | | <if test="laminating == 'stepA' || laminating == 'stepC'"> |
| | | ogd.`group`, |
| | | </if> |
| | | rw.reporting_work_id, |
| | | rw.process_id, |
| | | rw.this_process, |
| | | rw.teams_groups_name, |
| | | rwd.order_number |
| | | </otherwise> |
| | | </choose> |
| | | ) t |
| | | WHERE 1 = 1 |
| | | <if test="teamOutputDTO.workProcessName != null and teamOutputDTO.workProcessName != ''"> |
| | | and t.workProcessName like concat('%', #{teamOutputDTO.workProcessName}, '%') |
| | | </if> |
| | | GROUP BY |
| | | t.this_process, |
| | | t.teams_groups_name, |
| | | t.workProcessName |
| | | |
| | | ORDER BY |
| | | t.this_process, |
| | | t.teams_groups_name, |
| | | t.workProcessName |
| | | |
| | | ) as b |
| | | LIMIT #{offset}, #{pageSize}; |
| | | </select> |
| | | |
| | | <select id="exportTeamOutputSummaryMp"> |
| | | SELECT |
| | | t.this_process, |
| | | t.teams_groups_name, |
| | | t.workProcessName, |
| | | -- 数量汇总 |
| | | SUM(t.completed_quantity) AS completed_quantity, |
| | | |
| | | -- 面积汇总 |
| | | ROUND(SUM(t.area), 2) AS area |
| | | FROM |
| | | ( |
| | | SELECT |
| | | rw.reporting_work_time, |
| | | rw.this_process, |
| | | rw.teams_groups_name, |
| | | o.project, |
| | | o.order_id, |
| | | rw.process_id, |
| | | fc.order_number, |
| | | MAX(ogd.child_width) AS width, |
| | | MAX(ogd.child_height) AS height, |
| | | od.edging_type, |
| | | rwd.completed_quantity AS completed_quantity, |
| | | ROUND( |
| | | MAX(ogd.child_width) * MAX(ogd.child_height) |
| | | * rwd.completed_quantity / 1000000, |
| | | 2 |
| | | ) AS area, |
| | | od.product_name, |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS code, |
| | | rw.reviewed, |
| | | rw.examine_time, |
| | | rw.device_name, |
| | | o.order_type, |
| | | CASE |
| | | WHEN LOCATE('step', #{laminating}) > 0 |
| | | THEN GROUP_CONCAT(ogd.glass_child SEPARATOR '+') |
| | | ELSE MAX(ogd.glass_child) |
| | | END AS workProcessName, |
| | | o.batch |
| | | FROM |
| | | pp.reporting_work AS rw |
| | | LEFT JOIN pp.reporting_work_detail AS rwd |
| | | ON rwd.reporting_work_id = rw.reporting_work_id |
| | | LEFT JOIN pp.flow_card AS fc |
| | | ON fc.order_id = rw.order_id |
| | | AND fc.process_id = rw.process_id |
| | | AND fc.order_number = rwd.order_number |
| | | AND fc.technology_number = rwd.technology_number |
| | | 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 = 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 rw.reporting_work_time >= #{date[0]} |
| | | AND rw.reporting_work_time <= #{date[1]} |
| | | |
| | | <choose> |
| | | <!-- 有传工序:精确匹配 --> |
| | | <when test="selectProcesses != null and selectProcesses != ''"> |
| | | AND rw.this_process = #{selectProcesses} |
| | | </when> |
| | | <!-- 未传工序:不加限制,查所有) --> |
| | | <otherwise></otherwise> |
| | | </choose> |
| | | |
| | | <choose> |
| | | <when test="laminating == ''"> |
| | | GROUP BY |
| | | rw.reporting_work_id, |
| | | rw.process_id, |
| | | rw.this_process, |
| | | rw.teams_groups_name, |
| | | rwd.order_number, |
| | | rwd.technology_number |
| | | </when> |
| | | <otherwise> |
| | | GROUP BY |
| | | <if test="laminating == 'stepA' || laminating == 'stepC'"> |
| | | ogd.`group`, |
| | | </if> |
| | | rw.reporting_work_id, |
| | | rw.process_id, |
| | | rw.this_process, |
| | | rw.teams_groups_name, |
| | | rwd.order_number |
| | | </otherwise> |
| | | </choose> |
| | | ) t |
| | | |
| | | GROUP BY |
| | | t.this_process, |
| | | t.teams_groups_name, |
| | | t.workProcessName |
| | | |
| | | ORDER BY |
| | | t.this_process, |
| | | t.teams_groups_name, |
| | | t.workProcessName |
| | | </select> |
| | | </mapper> |