优化成本计算问题,加入辅料备件分摊页面
This commit is contained in:
@@ -33,12 +33,12 @@
|
||||
<select id="selectCoilTotalMerged" parameterType="map"
|
||||
resultType="com.klp.ems.domain.vo.CoilTotalCostVo">
|
||||
SELECT
|
||||
aid.enter_coil_no AS enterCoilNo,
|
||||
e.current_coil_no AS currentCoilNo,
|
||||
e.coil_count AS coilCount,
|
||||
e.total_duration AS totalDuration,
|
||||
e.total_consumption AS totalConsumption,
|
||||
e.energy_cost AS totalEnergyCost,
|
||||
m.enter_coil_no AS enterCoilNo,
|
||||
m.current_coil_no AS currentCoilNo,
|
||||
IFNULL(e.coil_count, 0) AS coilCount,
|
||||
IFNULL(e.total_duration, 0) AS totalDuration,
|
||||
IFNULL(e.total_consumption, 0) AS totalConsumption,
|
||||
IFNULL(e.energy_cost, 0) AS totalEnergyCost,
|
||||
IFNULL(s.stock_cost, 0) AS stockCost,
|
||||
IFNULL(x.aux_cost, 0) AS auxCost,
|
||||
IFNULL(x.spare_cost, 0) AS spareCost,
|
||||
@@ -46,47 +46,31 @@
|
||||
IFNULL(s.total_gross_weight, 0) AS totalGrossWeight,
|
||||
(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
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||
WHERE pa.action_status IN (0,1,2)
|
||||
AND pa.warehouse_id IS NOT NULL
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND c.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.currentCoilNo != null and bo.currentCoilNo != ''">
|
||||
AND pa.current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND pa.create_time <![CDATA[>=]]> CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND pa.create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
) eids
|
||||
UNION
|
||||
SELECT DISTINCT m.enter_coil_no
|
||||
FROM wms_material_coil m
|
||||
WHERE m.data_type IN (0,1)
|
||||
AND m.del_flag = 0
|
||||
SELECT
|
||||
MAX(enter_coil_no) AS enter_coil_no,
|
||||
current_coil_no,
|
||||
MIN(create_time) AS create_time
|
||||
FROM wms_material_coil
|
||||
WHERE data_type = 1
|
||||
AND del_flag = 0
|
||||
AND status = 0
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND m.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
AND enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.currentCoilNo != null and bo.currentCoilNo != ''">
|
||||
AND m.current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%')
|
||||
AND current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND m.create_time <![CDATA[>=]]> CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
AND create_time <![CDATA[>=]]> CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND m.create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
AND create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
) aid
|
||||
GROUP BY current_coil_no
|
||||
) m
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
c.enter_coil_no,
|
||||
MIN(pa.current_coil_no) AS current_coil_no,
|
||||
pa.current_coil_no,
|
||||
COUNT(DISTINCT pa.coil_id) AS coil_count,
|
||||
SUM(
|
||||
CASE
|
||||
@@ -137,7 +121,7 @@
|
||||
END
|
||||
) AS energy_cost
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.data_type = 1 AND c.del_flag = 0 AND c.status = 0
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
) wmt ON pa.warehouse_id = wmt.warehouse_id
|
||||
@@ -174,6 +158,7 @@
|
||||
GROUP BY pa_pd.warehouse_id
|
||||
) wd_prod ON pa.warehouse_id = wd_prod.warehouse_id
|
||||
WHERE pa.action_status IN (0, 1, 2)
|
||||
and pa.del_flag='0'
|
||||
AND pa.warehouse_id IS NOT NULL
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND c.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
@@ -187,29 +172,30 @@
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND pa.create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
GROUP BY c.enter_coil_no
|
||||
) e ON aid.enter_coil_no = e.enter_coil_no
|
||||
GROUP BY pa.current_coil_no
|
||||
) e ON m.current_coil_no = e.current_coil_no
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
m.enter_coil_no,
|
||||
current_coil_no,
|
||||
SUM(CASE
|
||||
WHEN cs.unit_cost IS NULL THEN 0
|
||||
ELSE (
|
||||
CASE
|
||||
WHEN IFNULL(m.net_weight, 0) = 0 AND IFNULL(m.gross_weight, 0) > 0 THEN m.gross_weight
|
||||
ELSE IFNULL(m.net_weight, 0)
|
||||
WHEN IFNULL(net_weight, 0) = 0 AND IFNULL(gross_weight, 0) > 0 THEN gross_weight
|
||||
ELSE IFNULL(net_weight, 0)
|
||||
END
|
||||
) * cs.unit_cost
|
||||
END) AS stock_cost,
|
||||
SUM(IFNULL(m.net_weight, 0)) AS total_net_weight,
|
||||
SUM(IFNULL(m.gross_weight, 0)) AS total_gross_weight
|
||||
SUM(IFNULL(net_weight, 0)) AS total_net_weight,
|
||||
SUM(IFNULL(gross_weight, 0)) AS total_gross_weight
|
||||
FROM wms_material_coil m
|
||||
LEFT JOIN wms_cost_standard_config cs
|
||||
ON cs.status = 1
|
||||
AND DATE(m.create_time) >= cs.effective_date
|
||||
AND (cs.expire_date IS NULL OR DATE(m.create_time) <![CDATA[<=]]> cs.expire_date)
|
||||
WHERE m.data_type IN (0,1)
|
||||
WHERE m.data_type = 1
|
||||
AND m.del_flag = 0
|
||||
AND m.status = 0
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND m.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
</if>
|
||||
@@ -222,11 +208,11 @@
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND m.create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
GROUP BY m.enter_coil_no
|
||||
) s ON aid.enter_coil_no = s.enter_coil_no
|
||||
GROUP BY current_coil_no
|
||||
) s ON m.current_coil_no = s.current_coil_no
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
dm.enter_coil_no,
|
||||
dm.current_coil_no,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN dm.total_minutes > 0
|
||||
@@ -244,7 +230,7 @@
|
||||
FROM (
|
||||
SELECT
|
||||
DATE(pa.create_time) AS day_key,
|
||||
c.enter_coil_no,
|
||||
pa.current_coil_no,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN pa.create_time < COALESCE(pa.complete_time, NOW())
|
||||
@@ -254,7 +240,7 @@
|
||||
) 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 wms_material_coil c ON pa.coil_id = c.coil_id AND c.data_type = 1 AND c.del_flag = 0 AND c.status = 0
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
DATE(pa_all.create_time) AS day_key,
|
||||
@@ -267,14 +253,28 @@
|
||||
) AS total_minutes
|
||||
FROM wms_coil_pending_action pa_all
|
||||
WHERE pa_all.action_status IN (0,1,2)
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND pa_all.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND pa_all.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
GROUP BY DATE(pa_all.create_time)
|
||||
) td ON td.day_key = DATE(pa.create_time)
|
||||
WHERE pa.action_status IN (0,1,2)
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND c.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.currentCoilNo != null and bo.currentCoilNo != ''">
|
||||
AND pa.current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND pa.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND pa.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
GROUP BY DATE(pa.create_time), c.enter_coil_no, td.total_minutes
|
||||
</if>
|
||||
GROUP BY DATE(pa.create_time), pa.current_coil_no, td.total_minutes
|
||||
) dm
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
@@ -283,8 +283,12 @@
|
||||
FROM eqp_auxiliary_material_change
|
||||
WHERE del_flag = '0'
|
||||
AND change_type = '减少'
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
GROUP BY DATE(change_time)
|
||||
) a ON dm.day_key = a.day_key
|
||||
LEFT JOIN (
|
||||
@@ -294,12 +298,17 @@
|
||||
FROM eqp_spare_parts_change
|
||||
WHERE del_flag = '0'
|
||||
AND change_type = '减少'
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
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
|
||||
GROUP BY dm.current_coil_no
|
||||
) x ON m.current_coil_no = x.current_coil_no
|
||||
WHERE s.current_coil_no IS NOT NULL
|
||||
ORDER BY totalCost DESC
|
||||
LIMIT #{offset}, #{pageSize}
|
||||
</select>
|
||||
@@ -307,54 +316,42 @@
|
||||
<!-- 入场卷号维度能源+囤积成本汇总总数 -->
|
||||
<select id="selectCoilTotalMergedCount" parameterType="com.klp.ems.domain.bo.CoilTotalCostBo"
|
||||
resultType="long">
|
||||
SELECT COUNT(1) FROM (
|
||||
SELECT DISTINCT c.enter_coil_no
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||
WHERE pa.action_status IN (0,1,2)
|
||||
AND pa.warehouse_id IS NOT NULL
|
||||
SELECT COUNT(1)
|
||||
FROM (
|
||||
SELECT
|
||||
current_coil_no,
|
||||
MAX(enter_coil_no) AS enter_coil_no,
|
||||
MIN(create_time) AS create_time
|
||||
FROM wms_material_coil
|
||||
WHERE data_type = 1
|
||||
AND del_flag = 0
|
||||
AND status = 0
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND c.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
AND enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.currentCoilNo != null and bo.currentCoilNo != ''">
|
||||
AND pa.current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%')
|
||||
AND current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND pa.create_time <![CDATA[>=]]> CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
AND create_time <![CDATA[>=]]> CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND pa.create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
AND create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
UNION
|
||||
SELECT DISTINCT m.enter_coil_no
|
||||
FROM wms_material_coil m
|
||||
WHERE m.data_type IN (0,1)
|
||||
AND m.del_flag = 0
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND m.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.currentCoilNo != null and bo.currentCoilNo != ''">
|
||||
AND m.current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND m.create_time <![CDATA[>=]]> CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND m.create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
) tmp
|
||||
GROUP BY current_coil_no
|
||||
) m
|
||||
</select>
|
||||
|
||||
<!-- 入场卷号维度能源+囤积成本汇总(导出,全部) -->
|
||||
<select id="selectCoilTotalMergedExport" parameterType="com.klp.ems.domain.bo.CoilTotalCostBo"
|
||||
resultType="com.klp.ems.domain.vo.CoilTotalCostVo">
|
||||
SELECT
|
||||
aid.enter_coil_no AS enterCoilNo,
|
||||
e.current_coil_no AS currentCoilNo,
|
||||
e.coil_count AS coilCount,
|
||||
e.total_duration AS totalDuration,
|
||||
e.total_consumption AS totalConsumption,
|
||||
e.energy_cost AS totalEnergyCost,
|
||||
m.enter_coil_no AS enterCoilNo,
|
||||
m.current_coil_no AS currentCoilNo,
|
||||
IFNULL(e.coil_count, 0) AS coilCount,
|
||||
IFNULL(e.total_duration, 0) AS totalDuration,
|
||||
IFNULL(e.total_consumption, 0) AS totalConsumption,
|
||||
IFNULL(e.energy_cost, 0) AS totalEnergyCost,
|
||||
IFNULL(s.stock_cost, 0) AS stockCost,
|
||||
IFNULL(x.aux_cost, 0) AS auxCost,
|
||||
IFNULL(x.spare_cost, 0) AS spareCost,
|
||||
@@ -362,23 +359,31 @@
|
||||
IFNULL(s.total_gross_weight, 0) AS totalGrossWeight,
|
||||
(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
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||
WHERE pa.action_status IN (0,1,2)
|
||||
AND pa.warehouse_id IS NOT NULL
|
||||
) eids
|
||||
UNION
|
||||
SELECT DISTINCT m.enter_coil_no
|
||||
FROM wms_material_coil m
|
||||
WHERE m.data_type IN (0,1)
|
||||
AND m.del_flag = 0
|
||||
) aid
|
||||
SELECT
|
||||
MAX(enter_coil_no) AS enter_coil_no,
|
||||
current_coil_no,
|
||||
MIN(create_time) AS create_time
|
||||
FROM wms_material_coil
|
||||
WHERE data_type IN (0,1)
|
||||
AND del_flag = 0
|
||||
AND status = 0
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.currentCoilNo != null and bo.currentCoilNo != ''">
|
||||
AND current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND create_time <![CDATA[>=]]> CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
GROUP BY current_coil_no
|
||||
) m
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
c.enter_coil_no,
|
||||
MIN(pa.current_coil_no) AS current_coil_no,
|
||||
pa.current_coil_no,
|
||||
COUNT(DISTINCT pa.coil_id) AS coil_count,
|
||||
SUM(
|
||||
CASE
|
||||
@@ -429,7 +434,7 @@
|
||||
END
|
||||
) AS energy_cost
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
) wmt ON pa.warehouse_id = wmt.warehouse_id
|
||||
@@ -468,7 +473,7 @@
|
||||
WHERE pa.action_status IN (0, 1, 2)
|
||||
AND pa.warehouse_id IS NOT NULL
|
||||
GROUP BY c.enter_coil_no
|
||||
) e ON aid.enter_coil_no = e.enter_coil_no
|
||||
) e ON m.enter_coil_no = e.enter_coil_no
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
m.enter_coil_no,
|
||||
@@ -490,8 +495,9 @@
|
||||
AND (cs.expire_date IS NULL OR DATE(m.create_time) <![CDATA[<=]]> cs.expire_date)
|
||||
WHERE m.data_type IN (0,1)
|
||||
AND m.del_flag = 0
|
||||
AND m.status = 0
|
||||
GROUP BY m.enter_coil_no
|
||||
) s ON aid.enter_coil_no = s.enter_coil_no
|
||||
) s ON m.enter_coil_no = s.enter_coil_no
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
dm.enter_coil_no,
|
||||
@@ -522,7 +528,7 @@
|
||||
) 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 wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
DATE(pa_all.create_time) AS day_key,
|
||||
@@ -535,13 +541,21 @@
|
||||
) AS total_minutes
|
||||
FROM wms_coil_pending_action pa_all
|
||||
WHERE pa_all.action_status IN (0,1,2)
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND pa_all.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND pa_all.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
GROUP BY DATE(pa_all.create_time)
|
||||
) td ON td.day_key = DATE(pa.create_time)
|
||||
WHERE pa.action_status IN (0,1,2)
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND pa.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND pa.create_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
GROUP BY DATE(pa.create_time), c.enter_coil_no, td.total_minutes
|
||||
) dm
|
||||
LEFT JOIN (
|
||||
@@ -551,8 +565,12 @@
|
||||
FROM eqp_auxiliary_material_change
|
||||
WHERE del_flag = '0'
|
||||
AND change_type = '减少'
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
GROUP BY DATE(change_time)
|
||||
) a ON dm.day_key = a.day_key
|
||||
LEFT JOIN (
|
||||
@@ -562,12 +580,16 @@
|
||||
FROM eqp_spare_parts_change
|
||||
WHERE del_flag = '0'
|
||||
AND change_type = '减少'
|
||||
<if test="bo != null and bo.startDate != null and bo.startDate != ''">
|
||||
AND change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
</if>
|
||||
<if test="bo != null and bo.endDate != null and bo.endDate != ''">
|
||||
AND change_time <= CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
</if>
|
||||
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
|
||||
) x ON m.enter_coil_no = x.enter_coil_no
|
||||
ORDER BY totalCost DESC
|
||||
</select>
|
||||
|
||||
@@ -626,7 +648,7 @@
|
||||
END
|
||||
) AS totalEnergyCost
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0
|
||||
LEFT JOIN wms_warehouse w ON pa.warehouse_id = w.warehouse_id
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
@@ -741,7 +763,7 @@
|
||||
ELSE 0
|
||||
END AS totalCost
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0
|
||||
LEFT JOIN wms_warehouse w ON pa.warehouse_id = w.warehouse_id
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
@@ -776,9 +798,11 @@
|
||||
) wmt_pd ON pa_pd.warehouse_id = wmt_pd.warehouse_id
|
||||
WHERE pa_pd.action_status IN (0, 1)
|
||||
AND pa_pd.warehouse_id IS NOT NULL
|
||||
and pa_pd.del_flag=0
|
||||
GROUP BY pa_pd.warehouse_id
|
||||
) wd_prod ON pa.warehouse_id = wd_prod.warehouse_id
|
||||
WHERE pa.action_status IN (0, 1, 2)
|
||||
and pa.del_flag = 0
|
||||
AND pa.warehouse_id IS NOT NULL
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND c.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
@@ -1019,7 +1043,7 @@
|
||||
ELSE 0
|
||||
END AS unitCost
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id
|
||||
LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id AND mc.status = 0
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
) wmt ON pa.warehouse_id = wmt.warehouse_id
|
||||
@@ -1135,7 +1159,7 @@
|
||||
ELSE 0
|
||||
END AS totalCost
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id
|
||||
LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id AND mc.status = 0
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
) wmt ON pa.warehouse_id = wmt.warehouse_id
|
||||
@@ -1379,7 +1403,7 @@
|
||||
ELSE 0
|
||||
END AS totalCost
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id
|
||||
LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id AND mc.status = 0
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
) wmt ON pa.warehouse_id = wmt.warehouse_id
|
||||
@@ -1719,7 +1743,7 @@
|
||||
wmt.warehouse_start_time AS latestMeterReadStartTime,
|
||||
wmt.warehouse_end_time AS latestMeterReadEndTime
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0
|
||||
LEFT JOIN wms_warehouse wh ON pa.warehouse_id = wh.warehouse_id
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
@@ -1773,9 +1797,184 @@
|
||||
) wd_count ON pa.warehouse_id = wd_count.warehouse_id
|
||||
WHERE pa.action_status IN (0, 1, 2)
|
||||
AND pa.warehouse_id IS NOT NULL
|
||||
<if test="bo != null and bo.coilId != null">
|
||||
AND pa.coil_id = #{bo.coilId}
|
||||
</if>
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND c.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.currentCoilNo != null and bo.currentCoilNo != ''">
|
||||
AND pa.current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%')
|
||||
</if>
|
||||
<if test="bo != null and bo.warehouseId != null">
|
||||
AND pa.warehouse_id = #{bo.warehouseId}
|
||||
</if>
|
||||
ORDER BY pa.warehouse_id, pa.create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 查询待操作钢卷的能源成本详情(单卷) -->
|
||||
<select id="selectPendingActionCoilCostDetail" resultType="com.klp.ems.domain.vo.WmsEnergyCoilDailyVo">
|
||||
SELECT
|
||||
pa.coil_id AS coilId,
|
||||
pa.current_coil_no AS currentCoilNo,
|
||||
c.enter_coil_no AS enterCoilNo,
|
||||
pa.warehouse_id AS warehouseId,
|
||||
wh.warehouse_name AS warehouseName,
|
||||
pa.create_time AS scanTime,
|
||||
-- 结束时间:优先使用库区绑定设备的最近一次抄表结束时间,其次使用钢卷自身的完成时间
|
||||
CASE
|
||||
WHEN pa.complete_time IS NOT NULL THEN pa.complete_time
|
||||
WHEN wmt.warehouse_end_time IS NOT NULL THEN LEAST(wmt.warehouse_end_time, NOW())
|
||||
ELSE NOW()
|
||||
END AS completeTime,
|
||||
-- 生产时长:
|
||||
-- 1) 若库区有抄表时间,则按 创建时间 ~ min(完成时间, 库区最近抄表结束时间)
|
||||
-- 2) 若库区无抄表时间,则仅在钢卷有完成时间时按 创建时间 ~ 完成时间
|
||||
CASE
|
||||
WHEN pa.create_time <![CDATA[<]]> (CASE
|
||||
WHEN pa.complete_time IS NOT NULL THEN pa.complete_time
|
||||
WHEN wmt.warehouse_end_time IS NOT NULL THEN LEAST(wmt.warehouse_end_time, NOW())
|
||||
ELSE NOW()
|
||||
END)
|
||||
THEN TIMESTAMPDIFF(MINUTE,
|
||||
pa.create_time,
|
||||
CASE
|
||||
WHEN pa.complete_time IS NOT NULL THEN pa.complete_time
|
||||
WHEN wmt.warehouse_end_time IS NOT NULL THEN LEAST(wmt.warehouse_end_time, NOW())
|
||||
ELSE NOW()
|
||||
END
|
||||
)
|
||||
ELSE 0
|
||||
END AS productionDuration,
|
||||
-- 分摊比率:按生产时长占库区总生产时长的比例
|
||||
CASE
|
||||
WHEN wd_prod.total_prod_minutes IS NOT NULL
|
||||
AND wd_prod.total_prod_minutes > 0
|
||||
AND pa.create_time <![CDATA[<]]> (CASE
|
||||
WHEN pa.complete_time IS NOT NULL THEN pa.complete_time
|
||||
WHEN wmt.warehouse_end_time IS NOT NULL THEN LEAST(wmt.warehouse_end_time, NOW())
|
||||
ELSE NOW()
|
||||
END)
|
||||
THEN CAST(
|
||||
CASE
|
||||
WHEN pa.create_time <![CDATA[<]]> (CASE
|
||||
WHEN pa.complete_time IS NOT NULL THEN pa.complete_time
|
||||
WHEN wmt.warehouse_end_time IS NOT NULL THEN LEAST(wmt.warehouse_end_time, NOW())
|
||||
ELSE NOW()
|
||||
END)
|
||||
THEN TIMESTAMPDIFF(MINUTE,
|
||||
pa.create_time,
|
||||
CASE
|
||||
WHEN pa.complete_time IS NOT NULL THEN pa.complete_time
|
||||
WHEN wmt.warehouse_end_time IS NOT NULL THEN LEAST(wmt.warehouse_end_time, NOW())
|
||||
ELSE NOW()
|
||||
END
|
||||
)
|
||||
ELSE 0
|
||||
END AS DECIMAL(20,6)
|
||||
) / wd_prod.total_prod_minutes
|
||||
ELSE 0
|
||||
END AS allocationFactor,
|
||||
-- 分摊能耗 = 总能耗 * 分摊比率
|
||||
CASE
|
||||
WHEN wd.total_warehouse_consumption IS NOT NULL
|
||||
AND wd_prod.total_prod_minutes IS NOT NULL
|
||||
AND wd_prod.total_prod_minutes > 0
|
||||
THEN wd.total_warehouse_consumption *
|
||||
(CAST(
|
||||
CASE
|
||||
WHEN pa.create_time <![CDATA[<]]> (CASE
|
||||
WHEN pa.complete_time IS NOT NULL THEN pa.complete_time
|
||||
WHEN wmt.warehouse_end_time IS NOT NULL THEN LEAST(wmt.warehouse_end_time, NOW())
|
||||
ELSE NOW()
|
||||
END)
|
||||
THEN TIMESTAMPDIFF(MINUTE,
|
||||
pa.create_time,
|
||||
CASE
|
||||
WHEN pa.complete_time IS NOT NULL THEN pa.complete_time
|
||||
WHEN wmt.warehouse_end_time IS NOT NULL THEN LEAST(wmt.warehouse_end_time, NOW())
|
||||
ELSE NOW()
|
||||
END
|
||||
)
|
||||
ELSE 0
|
||||
END AS DECIMAL(20,6)
|
||||
) / wd_prod.total_prod_minutes)
|
||||
ELSE 0
|
||||
END AS consumptionQty,
|
||||
-- 分摊成本 = 总成本 * 分摊比率
|
||||
CASE
|
||||
WHEN wd.total_warehouse_cost IS NOT NULL
|
||||
AND wd_prod.total_prod_minutes IS NOT NULL
|
||||
AND wd_prod.total_prod_minutes > 0
|
||||
THEN wd.total_warehouse_cost *
|
||||
(CAST(
|
||||
CASE
|
||||
WHEN pa.create_time <![CDATA[<]]> (CASE
|
||||
WHEN pa.complete_time IS NOT NULL THEN pa.complete_time
|
||||
WHEN wmt.warehouse_end_time IS NOT NULL THEN LEAST(wmt.warehouse_end_time, NOW())
|
||||
ELSE NOW()
|
||||
END)
|
||||
THEN TIMESTAMPDIFF(MINUTE,
|
||||
pa.create_time,
|
||||
CASE
|
||||
WHEN pa.complete_time IS NOT NULL THEN pa.complete_time
|
||||
WHEN wmt.warehouse_end_time IS NOT NULL THEN LEAST(wmt.warehouse_end_time, NOW())
|
||||
ELSE NOW()
|
||||
END
|
||||
)
|
||||
ELSE 0
|
||||
END AS DECIMAL(20,6)
|
||||
) / wd_prod.total_prod_minutes)
|
||||
ELSE 0
|
||||
END AS costAmount,
|
||||
wmt.warehouse_start_time AS latestMeterReadStartTime,
|
||||
wmt.warehouse_end_time AS latestMeterReadEndTime
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0
|
||||
LEFT JOIN wms_warehouse wh ON pa.warehouse_id = wh.warehouse_id
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
) wmt ON pa.warehouse_id = wmt.warehouse_id
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseCost"/>
|
||||
) wd ON pa.warehouse_id = wd.warehouse_id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
pa_pd.warehouse_id,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN wmt_pd.warehouse_end_time IS NOT NULL
|
||||
AND pa_pd.create_time <![CDATA[<]]> COALESCE(pa_pd.complete_time, wmt_pd.warehouse_end_time)
|
||||
THEN TIMESTAMPDIFF(MINUTE,
|
||||
pa_pd.create_time,
|
||||
COALESCE(pa_pd.complete_time, wmt_pd.warehouse_end_time)
|
||||
)
|
||||
WHEN wmt_pd.warehouse_end_time IS NULL
|
||||
AND pa_pd.complete_time IS NOT NULL
|
||||
AND pa_pd.create_time <![CDATA[<]]> pa_pd.complete_time
|
||||
THEN TIMESTAMPDIFF(MINUTE,
|
||||
pa_pd.create_time,
|
||||
pa_pd.complete_time
|
||||
)
|
||||
ELSE 0
|
||||
END
|
||||
) AS total_prod_minutes
|
||||
FROM wms_coil_pending_action pa_pd
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
) wmt_pd ON pa_pd.warehouse_id = wmt_pd.warehouse_id
|
||||
WHERE pa_pd.action_status IN (0, 1)
|
||||
AND pa_pd.warehouse_id IS NOT NULL
|
||||
AND wmt_pd.warehouse_end_time IS NOT NULL
|
||||
GROUP BY pa_pd.warehouse_id
|
||||
) wd_prod ON pa.warehouse_id = wd_prod.warehouse_id
|
||||
WHERE pa.coil_id = #{coilId}
|
||||
AND pa.action_status IN (0, 1, 2)
|
||||
AND pa.warehouse_id IS NOT NULL
|
||||
AND pa.del_flag = 0
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 查询待操作钢卷的能源成本统计(按时间段分摊) -->
|
||||
<select id="selectPendingActionCoilCostStatistics" resultType="com.klp.ems.domain.vo.WmsEnergyCoilDailyStatisticsVo">
|
||||
SELECT
|
||||
@@ -1918,7 +2117,7 @@
|
||||
MIN(wmt.warehouse_start_time) AS latestMeterReadStartTime,
|
||||
MAX(wmt.warehouse_end_time) AS latestMeterReadEndTime
|
||||
FROM wms_coil_pending_action pa
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id
|
||||
LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0
|
||||
LEFT JOIN wms_warehouse wh ON pa.warehouse_id = wh.warehouse_id
|
||||
LEFT JOIN (
|
||||
<include refid="WarehouseMeterTime"/>
|
||||
@@ -2034,4 +2233,181 @@
|
||||
ORDER BY c.calc_date DESC, c.energy_cost_id DESC
|
||||
</select>
|
||||
|
||||
<!-- 辅料分摊构成(按物料汇总,数量与金额按卷的日分摊系数分摊) -->
|
||||
<select id="selectAuxMaterialBreakdown" resultType="com.klp.ems.domain.vo.AuxMaterialBreakdownVo">
|
||||
SELECT
|
||||
CAST(t.auxiliary_id AS CHAR) AS itemCode,
|
||||
t.item_name AS itemName,
|
||||
t.spec AS spec,
|
||||
t.unit AS unit,
|
||||
SUM(t.total_qty) AS totalQty,
|
||||
SUM(t.total_amount) AS totalAmount,
|
||||
SUM(t.allocated_qty) AS allocatedQty,
|
||||
SUM(t.allocated_amount) AS allocatedAmount
|
||||
FROM (
|
||||
SELECT
|
||||
adc.day_key,
|
||||
adc.auxiliary_id,
|
||||
adc.item_name,
|
||||
adc.spec,
|
||||
adc.unit,
|
||||
adc.total_qty,
|
||||
adc.total_amount,
|
||||
CASE
|
||||
WHEN dtm.total_minutes > 0 AND cdm.coil_minutes IS NOT NULL AND cdm.coil_minutes > 0
|
||||
THEN adc.total_qty * (cdm.coil_minutes / dtm.total_minutes)
|
||||
ELSE 0
|
||||
END AS allocated_qty,
|
||||
CASE
|
||||
WHEN dtm.total_minutes > 0 AND cdm.coil_minutes IS NOT NULL AND cdm.coil_minutes > 0
|
||||
THEN adc.total_amount * (cdm.coil_minutes / dtm.total_minutes)
|
||||
ELSE 0
|
||||
END AS allocated_amount
|
||||
FROM (
|
||||
SELECT
|
||||
DATE(amc.change_time) AS day_key,
|
||||
am.auxiliary_id,
|
||||
am.auxiliary_name AS item_name,
|
||||
am.auxiliary_model AS spec,
|
||||
am.unit,
|
||||
SUM(ABS(amc.change_quantity)) AS total_qty,
|
||||
SUM(ABS(IFNULL(amc.amount, 0))) AS total_amount
|
||||
FROM eqp_auxiliary_material_change amc
|
||||
JOIN eqp_auxiliary_material am ON amc.auxiliary_id = am.auxiliary_id
|
||||
WHERE amc.del_flag = '0'
|
||||
AND amc.change_type = '减少'
|
||||
AND amc.change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
AND amc.change_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
GROUP BY DATE(amc.change_time), am.auxiliary_id, am.auxiliary_name, am.auxiliary_model, am.unit
|
||||
) adc
|
||||
JOIN (
|
||||
SELECT
|
||||
DATE(pa_all.create_time) AS day_key,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN pa_all.create_time <![CDATA[<]]> 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 <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
GROUP BY DATE(pa_all.create_time)
|
||||
) dtm ON adc.day_key = dtm.day_key
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
c.enter_coil_no,
|
||||
DATE(pa.create_time) AS day_key,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN pa.create_time <![CDATA[<]]> COALESCE(pa.complete_time, NOW())
|
||||
THEN TIMESTAMPDIFF(MINUTE, pa.create_time, COALESCE(pa.complete_time, NOW()))
|
||||
ELSE 0
|
||||
END
|
||||
) AS coil_minutes
|
||||
FROM wms_coil_pending_action pa
|
||||
JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0
|
||||
WHERE pa.action_status IN (0,1,2)
|
||||
AND pa.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
AND pa.create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND c.enter_coil_no = #{bo.enterCoilNo}
|
||||
</if>
|
||||
GROUP BY c.enter_coil_no, DATE(pa.create_time)
|
||||
) cdm ON adc.day_key = cdm.day_key
|
||||
) t
|
||||
GROUP BY t.auxiliary_id, t.item_name, t.spec, t.unit
|
||||
ORDER BY allocatedAmount DESC
|
||||
</select>
|
||||
|
||||
<!-- 备件分摊构成(按备件汇总,数量与金额按卷的日分摊系数分摊) -->
|
||||
<select id="selectSparePartBreakdown" resultType="com.klp.ems.domain.vo.SparePartBreakdownVo">
|
||||
SELECT
|
||||
CAST(t.part_id AS CHAR) AS itemCode,
|
||||
t.item_name AS itemName,
|
||||
t.spec AS spec,
|
||||
t.unit AS unit,
|
||||
SUM(t.total_qty) AS totalQty,
|
||||
SUM(t.total_amount) AS totalAmount,
|
||||
SUM(t.allocated_qty) AS allocatedQty,
|
||||
SUM(t.allocated_amount) AS allocatedAmount
|
||||
FROM (
|
||||
SELECT
|
||||
sdc.day_key,
|
||||
sdc.part_id,
|
||||
sdc.item_name,
|
||||
sdc.spec,
|
||||
sdc.unit,
|
||||
sdc.total_qty,
|
||||
sdc.total_amount,
|
||||
CASE
|
||||
WHEN dtm.total_minutes > 0 AND cdm.coil_minutes IS NOT NULL AND cdm.coil_minutes > 0
|
||||
THEN sdc.total_qty * (cdm.coil_minutes / dtm.total_minutes)
|
||||
ELSE 0
|
||||
END AS allocated_qty,
|
||||
CASE
|
||||
WHEN dtm.total_minutes > 0 AND cdm.coil_minutes IS NOT NULL AND cdm.coil_minutes > 0
|
||||
THEN sdc.total_amount * (cdm.coil_minutes / dtm.total_minutes)
|
||||
ELSE 0
|
||||
END AS allocated_amount
|
||||
FROM (
|
||||
SELECT
|
||||
DATE(spc.change_time) AS day_key,
|
||||
sp.part_id,
|
||||
sp.part_name AS item_name,
|
||||
sp.model AS spec,
|
||||
sp.unit,
|
||||
SUM(ABS(spc.change_quantity)) AS total_qty,
|
||||
SUM(ABS(IFNULL(spc.amount, 0))) AS total_amount
|
||||
FROM eqp_spare_parts_change spc
|
||||
JOIN eqp_spare_part sp ON spc.part_id = sp.part_id
|
||||
WHERE spc.del_flag = '0'
|
||||
AND spc.change_type = '减少'
|
||||
AND spc.change_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
AND spc.change_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
GROUP BY DATE(spc.change_time), sp.part_id, sp.part_name, sp.model, sp.unit
|
||||
) sdc
|
||||
JOIN (
|
||||
SELECT
|
||||
DATE(pa_all.create_time) AS day_key,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN pa_all.create_time <![CDATA[<]]> 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 <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
GROUP BY DATE(pa_all.create_time)
|
||||
) dtm ON sdc.day_key = dtm.day_key
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
c.enter_coil_no,
|
||||
DATE(pa.create_time) AS day_key,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN pa.create_time <![CDATA[<]]> COALESCE(pa.complete_time, NOW())
|
||||
THEN TIMESTAMPDIFF(MINUTE, pa.create_time, COALESCE(pa.complete_time, NOW()))
|
||||
ELSE 0
|
||||
END
|
||||
) AS coil_minutes
|
||||
FROM wms_coil_pending_action pa
|
||||
JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0
|
||||
WHERE pa.action_status IN (0,1,2)
|
||||
AND pa.create_time >= CONCAT(#{bo.startDate}, ' 00:00:00')
|
||||
AND pa.create_time <![CDATA[<=]]> CONCAT(#{bo.endDate}, ' 23:59:59')
|
||||
<if test="bo != null and bo.enterCoilNo != null and bo.enterCoilNo != ''">
|
||||
AND c.enter_coil_no = #{bo.enterCoilNo}
|
||||
</if>
|
||||
GROUP BY c.enter_coil_no, DATE(pa.create_time)
|
||||
) cdm ON sdc.day_key = cdm.day_key
|
||||
) t
|
||||
GROUP BY t.part_id, t.item_name, t.spec, t.unit
|
||||
ORDER BY allocatedAmount DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user