feat(wms): 新增收货报表统计功能
- 在 IWmsDeliveryPlanService 接口中新增 getReceivingReport 方法 - 在 WmsDeliveryPlanController 控制器中新增 /receivingReport 接口 - 在 WmsDeliveryPlanMapper 中新增收货报表相关查询方法 - 在 WmsDeliveryPlanMapper.xml 中新增收货报表的 SQL 查询语句 - 新增 WmsReceivingReportByTypeVo、WmsReceivingReportResultVo 和 WmsReceivingReportSummaryVo 三个 VO 类用于收货报表数据传输 - 完善了送货报表 SQL 查询逻辑,增加与 wms_delivery_plan 表的关联及 plan_type 过滤条件
This commit is contained in:
@@ -84,7 +84,9 @@
|
||||
END as dailyWeight
|
||||
FROM wms_delivery_waybill_detail dwd
|
||||
LEFT JOIN wms_delivery_waybill dw ON dwd.waybill_id = dw.waybill_id AND dw.del_flag = 0
|
||||
LEFT JOIN wms_delivery_plan dp ON dw.plan_id = dp.plan_id AND dp.del_flag = 0
|
||||
WHERE dwd.del_flag = 0
|
||||
AND dp.plan_type = 0
|
||||
<if test="startTime != null">
|
||||
AND dw.create_time >= #{startTime}
|
||||
</if>
|
||||
@@ -118,7 +120,9 @@
|
||||
#{endTime} as endTime
|
||||
FROM wms_delivery_waybill_detail dwd
|
||||
LEFT JOIN wms_delivery_waybill dw ON dwd.waybill_id = dw.waybill_id AND dw.del_flag = 0
|
||||
LEFT JOIN wms_delivery_plan dp ON dw.plan_id = dp.plan_id AND dp.del_flag = 0
|
||||
WHERE dwd.del_flag = 0
|
||||
AND dp.plan_type = 0
|
||||
<if test="startTime != null">
|
||||
AND dw.create_time >= #{startTime}
|
||||
</if>
|
||||
@@ -128,4 +132,65 @@
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 收货报表:按计划统计(基于钢卷待操作,action_type=401,wcpa.warehouse_id -> 收货计划ID),统计全量收货计划 -->
|
||||
<select id="selectReceivingReportByType" resultType="com.klp.domain.vo.WmsReceivingReportByTypeVo">
|
||||
SELECT
|
||||
dp.plan_name AS productName,
|
||||
COUNT(wcpa.action_id) AS taskCount,
|
||||
COUNT(DISTINCT wcpa.coil_id) AS coilCount,
|
||||
COALESCE(SUM(mc.net_weight), 0) AS totalWeight,
|
||||
CASE WHEN #{startTime} IS NOT NULL AND #{endTime} IS NOT NULL THEN
|
||||
ROUND(COUNT(wcpa.action_id) / (DATEDIFF(#{endTime}, #{startTime}) + 1), 2)
|
||||
ELSE 0 END AS dailyTaskCount,
|
||||
CASE WHEN #{startTime} IS NOT NULL AND #{endTime} IS NOT NULL THEN
|
||||
ROUND(COUNT(DISTINCT wcpa.coil_id) / (DATEDIFF(#{endTime}, #{startTime}) + 1), 2)
|
||||
ELSE 0 END AS dailyCoilCount,
|
||||
CASE WHEN #{startTime} IS NOT NULL AND #{endTime} IS NOT NULL THEN
|
||||
ROUND(COALESCE(SUM(mc.net_weight), 0) / (DATEDIFF(#{endTime}, #{startTime}) + 1), 2)
|
||||
ELSE 0 END AS dailyWeight
|
||||
FROM wms_coil_pending_action wcpa
|
||||
LEFT JOIN wms_delivery_plan dp ON dp.plan_id = wcpa.warehouse_id AND dp.del_flag = 0 AND dp.plan_type = 1
|
||||
LEFT JOIN wms_material_coil mc ON mc.coil_id = wcpa.coil_id AND mc.del_flag = 0
|
||||
WHERE wcpa.del_flag = 0
|
||||
AND wcpa.action_type = 401
|
||||
<if test="startTime != null">
|
||||
AND wcpa.create_time >= #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
AND wcpa.create_time <= #{endTime}
|
||||
</if>
|
||||
GROUP BY dp.plan_name
|
||||
ORDER BY taskCount DESC
|
||||
</select>
|
||||
|
||||
<!-- 收货报表:汇总统计(基于钢卷待操作,action_type=401),统计全量收货计划 -->
|
||||
<select id="selectReceivingReportSummary" resultType="com.klp.domain.vo.WmsReceivingReportSummaryVo">
|
||||
SELECT
|
||||
COUNT(wcpa.action_id) AS taskCount,
|
||||
COUNT(DISTINCT wcpa.coil_id) AS coilCount,
|
||||
COALESCE(SUM(mc.net_weight), 0) AS totalWeight,
|
||||
CASE WHEN #{startTime} IS NOT NULL AND #{endTime} IS NOT NULL THEN
|
||||
ROUND(COUNT(wcpa.action_id) / (DATEDIFF(#{endTime}, #{startTime}) + 1), 2)
|
||||
ELSE 0 END AS dailyTaskCount,
|
||||
CASE WHEN #{startTime} IS NOT NULL AND #{endTime} IS NOT NULL THEN
|
||||
ROUND(COUNT(DISTINCT wcpa.coil_id) / (DATEDIFF(#{endTime}, #{startTime}) + 1), 2)
|
||||
ELSE 0 END AS dailyCoilCount,
|
||||
CASE WHEN #{startTime} IS NOT NULL AND #{endTime} IS NOT NULL THEN
|
||||
ROUND(COALESCE(SUM(mc.net_weight), 0) / (DATEDIFF(#{endTime}, #{startTime}) + 1), 2)
|
||||
ELSE 0 END AS dailyWeight,
|
||||
#{startTime} AS startTime,
|
||||
#{endTime} AS endTime
|
||||
FROM wms_coil_pending_action wcpa
|
||||
LEFT JOIN wms_delivery_plan dp ON dp.plan_id = wcpa.warehouse_id AND dp.del_flag = 0 AND dp.plan_type = 1
|
||||
LEFT JOIN wms_material_coil mc ON mc.coil_id = wcpa.coil_id AND mc.del_flag = 0
|
||||
WHERE wcpa.del_flag = 0
|
||||
AND wcpa.action_type = 401
|
||||
<if test="startTime != null">
|
||||
AND wcpa.create_time >= #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
AND wcpa.create_time <= #{endTime}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user