feat(wms): 新增发货报表统计功能

- 在IWmsDeliveryPlanService接口中新增getDeliveryReport方法
- 在WmsDeliveryPlanController中添加/report接口用于获取发货报表
- 在WmsDeliveryPlanMapper中新增selectDeliveryReport方法
- 在WmsDeliveryPlanMapper.xml中编写发货报表查询SQL
- 在WmsDeliveryPlanServiceImpl中实现发货报表统计逻辑
- 新增WmsDeliveryReportVo类用于封装发货报表数据
This commit is contained in:
2025-11-26 09:38:22 +08:00
parent 0548466540
commit 6781ae135d
6 changed files with 129 additions and 4 deletions

View File

@@ -56,6 +56,40 @@
ORDER BY dp.create_time DESC
</select>
<select id="selectDeliveryReport" resultType="com.klp.domain.vo.WmsDeliveryReportVo">
SELECT
dwd.product_name as productName,
COUNT(DISTINCT dw.waybill_id) as waybillCount,
SUM(dwd.quantity) as coilCount,
SUM(dwd.weight) as totalWeight,
CASE
WHEN #{startTime} IS NOT NULL AND #{endTime} IS NOT NULL THEN
ROUND(COUNT(DISTINCT dw.waybill_id) / (DATEDIFF(#{endTime}, #{startTime}) + 1), 2)
ELSE 0
END as dailyWaybillCount,
CASE
WHEN #{startTime} IS NOT NULL AND #{endTime} IS NOT NULL THEN
ROUND(SUM(dwd.quantity) / (DATEDIFF(#{endTime}, #{startTime}) + 1), 2)
ELSE 0
END as dailyCoilCount,
CASE
WHEN #{startTime} IS NOT NULL AND #{endTime} IS NOT NULL THEN
ROUND(SUM(dwd.weight) / (DATEDIFF(#{endTime}, #{startTime}) + 1), 2)
ELSE 0
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
WHERE dwd.del_flag = 0
<if test="startTime != null">
AND dw.create_time >= #{startTime}
</if>
<if test="endTime != null">
AND dw.create_time &lt;= #{endTime}
</if>
GROUP BY dwd.product_name
ORDER BY totalWeight DESC
</select>
</mapper>