加入辅料备件

This commit is contained in:
2026-01-20 15:20:19 +08:00
parent 9eceebb637
commit 5efe8c730c
6 changed files with 208 additions and 8 deletions

View File

@@ -40,9 +40,11 @@
e.total_consumption AS totalConsumption,
e.energy_cost AS totalEnergyCost,
IFNULL(s.stock_cost, 0) AS stockCost,
IFNULL(x.aux_cost, 0) AS auxCost,
IFNULL(x.spare_cost, 0) AS spareCost,
IFNULL(s.total_net_weight, 0) AS totalNetWeight,
IFNULL(s.total_gross_weight, 0) AS totalGrossWeight,
(IFNULL(e.energy_cost, 0) + IFNULL(s.stock_cost, 0)) AS totalCost
(IFNULL(e.energy_cost, 0) + IFNULL(s.stock_cost, 0) + IFNULL(x.aux_cost, 0) + IFNULL(x.spare_cost, 0)) AS totalCost
FROM (
SELECT enter_coil_no FROM (
SELECT DISTINCT c.enter_coil_no
@@ -222,6 +224,82 @@
</if>
GROUP BY m.enter_coil_no
) s ON aid.enter_coil_no = s.enter_coil_no
LEFT JOIN (
SELECT
dm.enter_coil_no,
SUM(
CASE
WHEN dm.total_minutes > 0
THEN IFNULL(a.aux_amount, 0) * (dm.coil_minutes / dm.total_minutes)
ELSE 0
END
) AS aux_cost,
SUM(
CASE
WHEN dm.total_minutes > 0
THEN IFNULL(p.spare_amount, 0) * (dm.coil_minutes / dm.total_minutes)
ELSE 0
END
) AS spare_cost
FROM (
SELECT
DATE(pa.create_time) AS day_key,
c.enter_coil_no,
SUM(
CASE
WHEN pa.create_time < COALESCE(pa.complete_time, NOW())
THEN TIMESTAMPDIFF(MINUTE, pa.create_time, COALESCE(pa.complete_time, NOW()))
ELSE 0
END
) AS coil_minutes,
td.total_minutes
FROM wms_coil_pending_action pa
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
LEFT JOIN (
SELECT
DATE(pa_all.create_time) AS day_key,
SUM(
CASE
WHEN pa_all.create_time < COALESCE(pa_all.complete_time, NOW())
THEN TIMESTAMPDIFF(MINUTE, pa_all.create_time, COALESCE(pa_all.complete_time, NOW()))
ELSE 0
END
) AS total_minutes
FROM wms_coil_pending_action pa_all
WHERE pa_all.action_status IN (0,1,2)
AND pa_all.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
AND pa_all.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
GROUP BY DATE(pa_all.create_time)
) td ON td.day_key = DATE(pa.create_time)
WHERE pa.action_status IN (0,1,2)
AND pa.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
AND pa.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
GROUP BY DATE(pa.create_time), c.enter_coil_no, td.total_minutes
) dm
LEFT JOIN (
SELECT
DATE(change_time) AS day_key,
SUM(IFNULL(amount, 0)) AS aux_amount
FROM eqp_auxiliary_material_change
WHERE del_flag = '0'
AND change_type = '减少'
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
GROUP BY DATE(change_time)
) a ON dm.day_key = a.day_key
LEFT JOIN (
SELECT
DATE(change_time) AS day_key,
SUM(IFNULL(amount, 0)) AS spare_amount
FROM eqp_spare_parts_change
WHERE del_flag = '0'
AND change_type = '减少'
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
GROUP BY DATE(change_time)
) p ON dm.day_key = p.day_key
GROUP BY dm.enter_coil_no
) x ON aid.enter_coil_no = x.enter_coil_no
ORDER BY totalCost DESC
LIMIT #{offset}, #{pageSize}
</select>
@@ -278,9 +356,11 @@
e.total_consumption AS totalConsumption,
e.energy_cost AS totalEnergyCost,
IFNULL(s.stock_cost, 0) AS stockCost,
IFNULL(x.aux_cost, 0) AS auxCost,
IFNULL(x.spare_cost, 0) AS spareCost,
IFNULL(s.total_net_weight, 0) AS totalNetWeight,
IFNULL(s.total_gross_weight, 0) AS totalGrossWeight,
(IFNULL(e.energy_cost, 0) + IFNULL(s.stock_cost, 0)) AS totalCost
(IFNULL(e.energy_cost, 0) + IFNULL(s.stock_cost, 0) + IFNULL(x.aux_cost, 0) + IFNULL(x.spare_cost, 0)) AS totalCost
FROM (
SELECT enter_coil_no FROM (
SELECT DISTINCT c.enter_coil_no
@@ -412,6 +492,82 @@
AND m.del_flag = 0
GROUP BY m.enter_coil_no
) s ON aid.enter_coil_no = s.enter_coil_no
LEFT JOIN (
SELECT
dm.enter_coil_no,
SUM(
CASE
WHEN dm.total_minutes > 0
THEN IFNULL(a.aux_amount, 0) * (dm.coil_minutes / dm.total_minutes)
ELSE 0
END
) AS aux_cost,
SUM(
CASE
WHEN dm.total_minutes > 0
THEN IFNULL(p.spare_amount, 0) * (dm.coil_minutes / dm.total_minutes)
ELSE 0
END
) AS spare_cost
FROM (
SELECT
DATE(pa.create_time) AS day_key,
c.enter_coil_no,
SUM(
CASE
WHEN pa.create_time < COALESCE(pa.complete_time, NOW())
THEN TIMESTAMPDIFF(MINUTE, pa.create_time, COALESCE(pa.complete_time, NOW()))
ELSE 0
END
) AS coil_minutes,
td.total_minutes
FROM wms_coil_pending_action pa
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
LEFT JOIN (
SELECT
DATE(pa_all.create_time) AS day_key,
SUM(
CASE
WHEN pa_all.create_time < COALESCE(pa_all.complete_time, NOW())
THEN TIMESTAMPDIFF(MINUTE, pa_all.create_time, COALESCE(pa_all.complete_time, NOW()))
ELSE 0
END
) AS total_minutes
FROM wms_coil_pending_action pa_all
WHERE pa_all.action_status IN (0,1,2)
AND pa_all.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
AND pa_all.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
GROUP BY DATE(pa_all.create_time)
) td ON td.day_key = DATE(pa.create_time)
WHERE pa.action_status IN (0,1,2)
AND pa.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
AND pa.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
GROUP BY DATE(pa.create_time), c.enter_coil_no, td.total_minutes
) dm
LEFT JOIN (
SELECT
DATE(change_time) AS day_key,
SUM(IFNULL(amount, 0)) AS aux_amount
FROM eqp_auxiliary_material_change
WHERE del_flag = '0'
AND change_type = '减少'
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
GROUP BY DATE(change_time)
) a ON dm.day_key = a.day_key
LEFT JOIN (
SELECT
DATE(change_time) AS day_key,
SUM(IFNULL(amount, 0)) AS spare_amount
FROM eqp_spare_parts_change
WHERE del_flag = '0'
AND change_type = '减少'
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
GROUP BY DATE(change_time)
) p ON dm.day_key = p.day_key
GROUP BY dm.enter_coil_no
) x ON aid.enter_coil_no = x.enter_coil_no
ORDER BY totalCost DESC
</select>