Browse Source

1.零担整体时效逻辑优化

fix-sign
zhenghaoyu 2 months ago
parent
commit
92558f62ff
  1. 125
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportTimeMapper.xml
  2. 3
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportPackgeAllTrunklineTimeVO.java

125
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportTimeMapper.xml

@ -1112,6 +1112,7 @@
lww.departure_warehouse_name departureWarehouseName,
lww.destination_warehouse_name destinationWarehouseName,
lww.brand brand,
IFNULL(t.hours_time,#{param.hoursTime}) hoursTime,
count(lww.id) waybillNum,
sum(lww.total_count) openNum,
sum(IFNULL(t.totalNum,0)) arriveNum,
@ -1138,28 +1139,29 @@
IFNULL(round(sum(IFNULL(t.sevenToTenNum,0))/sum(lww.total_count)*100,2),'0.00') sevenToTenArriveRate,
sum(IFNULL(t.moreTenNum,0)) moreTenArriveNum,
IFNULL(round(sum(IFNULL(t.moreTenNum,0))/sum(lww.total_count)*100,2),'0.00') moreTenArriveRate
from logpm_warehouse_waybill lww
left join logpm_warehouse_warehouse waw on waw.id = lww.departure_warehouse_id
left join (select ldpl.waybill_id,
sum(ldpn.quantity) totalNum,
sum(TIMESTAMPDIFF(SECOND,lw.create_time,ldpl.create_time )) timeSecond,
sum(if(ldpl.create_time <= DATE_ADD( lw.create_time, INTERVAL IFNULL(lrat.hours_time,0) HOUR ),ldpn.quantity,0)) onTimeNum,
sum(if(ldpl.create_time <= DATE_ADD( lw.create_time, INTERVAL 24 HOUR ),ldpn.quantity,0)) oneNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 24 HOUR )<ldpl.create_time and ldpl.create_time <= DATE_ADD( lw.create_time, INTERVAL 48 HOUR ),ldpn.quantity,0)) twoNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 48 HOUR )<ldpl.create_time and ldpl.create_time <= DATE_ADD( lw.create_time, INTERVAL 72 HOUR ),ldpn.quantity,0)) threeNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 72 HOUR )<ldpl.create_time and ldpl.create_time <= DATE_ADD( lw.create_time, INTERVAL 96 HOUR ),ldpn.quantity,0)) fourNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 96 HOUR )<ldpl.create_time and ldpl.create_time <= DATE_ADD( lw.create_time, INTERVAL 120 HOUR ),ldpn.quantity,0)) fiveNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 120 HOUR )<ldpl.create_time and ldpl.create_time <= DATE_ADD( lw.create_time, INTERVAL 144 HOUR ),ldpn.quantity,0)) sixNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 144 HOUR )<ldpl.create_time and ldpl.create_time <= DATE_ADD( lw.create_time, INTERVAL 168 HOUR ),ldpn.quantity,0)) sevenNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 168 HOUR )<ldpl.create_time and ldpl.create_time <= DATE_ADD( lw.create_time, INTERVAL 240 HOUR ),ldpn.quantity,0)) sevenToTenNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 240 HOUR )<ldpl.create_time,ldpn.quantity,0)) moreTenNum
from logpm_distribution_parcel_list ldpl
left join logpm_distribution_parcel_number ldpn on ldpn.parcel_list_id = ldpl.id
left join logpm_warehouse_waybill lw on lw.id = ldpl.waybill_id
from (select lw.id waybillId,
lrat.hours_time,
sum(ltcls.unload_num) totalNum,
sum(TIMESTAMPDIFF(SECOND,lw.create_time,ltcls.unload_time )) timeSecond,
sum(if(ltcls.unload_time <= DATE_ADD( lw.create_time, INTERVAL IFNULL(lrat.hours_time,#{param.hoursTime}) HOUR ),ltcls.unload_num,0)) onTimeNum,
sum(if(ltcls.unload_time <= DATE_ADD( lw.create_time, INTERVAL 24 HOUR ),ltcls.unload_num,0)) oneNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 24 HOUR )<ltcls.unload_time and ltcls.unload_time <= DATE_ADD( lw.create_time, INTERVAL 48 HOUR ),ltcls.unload_num,0)) twoNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 48 HOUR )<ltcls.unload_time and ltcls.unload_time <= DATE_ADD( lw.create_time, INTERVAL 72 HOUR ),ltcls.unload_num,0)) threeNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 72 HOUR )<ltcls.unload_time and ltcls.unload_time <= DATE_ADD( lw.create_time, INTERVAL 96 HOUR ),ltcls.unload_num,0)) fourNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 96 HOUR )<ltcls.unload_time and ltcls.unload_time <= DATE_ADD( lw.create_time, INTERVAL 120 HOUR ),ltcls.unload_num,0)) fiveNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 120 HOUR )<ltcls.unload_time and ltcls.unload_time <= DATE_ADD( lw.create_time, INTERVAL 144 HOUR ),ltcls.unload_num,0)) sixNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 144 HOUR )<ltcls.unload_time and ltcls.unload_time <= DATE_ADD( lw.create_time, INTERVAL 168 HOUR ),ltcls.unload_num,0)) sevenNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 168 HOUR )<ltcls.unload_time and ltcls.unload_time <= DATE_ADD( lw.create_time, INTERVAL 240 HOUR ),ltcls.unload_num,0)) sevenToTenNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 240 HOUR )<ltcls.unload_time,ltcls.unload_num,0)) moreTenNum
from logpm_trunkline_cars_load_scan ltcls
left join logpm_warehouse_waybill lw on lw.waybill_no = ltcls.waybill_no
left join logpm_reportconfig_all_trunkline lrat on lrat.departure_warehouse_id = lw.departure_warehouse_id and lrat.destination_warehouse_id = lw.destination_warehouse_id and lrat.is_deleted=0
where ldpl.conditions = 3
where ltcls.type = 2
and ltcls.scan_status = 2
and ltcls.unload_check = 1
and ltcls.unload_node_id = lw.destination_warehouse_id
and lw.departure_warehouse_id != lw.destination_warehouse_id
and ldpl.create_time > '2024-10-22 00:00:00'
and lw.create_time > '2024-10-22 00:00:00'
<if test="param.brandList != null and param.brandList.size() > 0">
and lw.brand in
<foreach collection="param.brandList" item="item" open="(" separator="," close=")">
@ -1184,43 +1186,16 @@
<if test="param.endTime != null ">
and lw.create_time &lt;= #{param.endTime}
</if>
and ldpl.warehouse_id = ldpl.accept_warehouse_id
and ldpl.warehouse_id != ldpl.send_warehouse_id
and ldpl.order_code = ldpl.waybill_number
-- and ldpl.waybill_id = 1853372208481284097
group by ldpl.waybill_id) t on t.waybill_id = lww.id
where lww.waybill_type = 2
and lww.departure_warehouse_id != lww.destination_warehouse_id
group by lw.id,lrat.hours_time) t
left join logpm_warehouse_waybill lww on lww.id = t.waybillId
left join logpm_warehouse_warehouse waw on waw.id = lww.departure_warehouse_id
where 1=1
<if test="param.businessLineList != null and param.businessLineList.size() > 0">
and waw.business_line in
<foreach collection="param.businessLineList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.brandList != null and param.brandList.size() > 0">
and lww.brand in
<foreach collection="param.brandList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.departureWarehouseIds != null and param.departureWarehouseIds.size() > 0">
and lww.departure_warehouse_id in
<foreach collection="param.departureWarehouseIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.destinationWarehouseIds != null and param.destinationWarehouseIds.size() > 0">
and lww.destination_warehouse_id in
<foreach collection="param.destinationWarehouseIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.startTime != null ">
and lww.create_time &gt;= #{param.startTime}
</if>
<if test="param.endTime != null ">
and lww.create_time &lt;= #{param.endTime}
</if>
group by waw.business_line,
lww.departure_warehouse_name,
lww.destination_warehouse_name,
@ -1232,6 +1207,7 @@
lww.departure_warehouse_name departureWarehouseName,
lww.destination_warehouse_name destinationWarehouseName,
lww.brand brand,
IFNULL(t.hours_time,#{param.hoursTime}) hoursTime,
count(lww.id) waybillNum,
sum(lww.total_count) openNum,
sum(IFNULL(t.totalNum,0)) arriveNum,
@ -1273,13 +1249,15 @@
sum(if(DATE_ADD( lw.create_time, INTERVAL 144 HOUR )&lt;ldpl.create_time and ldpl.create_time &lt;= DATE_ADD( lw.create_time, INTERVAL 168 HOUR ),ldpn.quantity,0)) sevenNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 168 HOUR )&lt;ldpl.create_time and ldpl.create_time &lt;= DATE_ADD( lw.create_time, INTERVAL 240 HOUR ),ldpn.quantity,0)) sevenToTenNum,
sum(if(DATE_ADD( lw.create_time, INTERVAL 240 HOUR )&lt;ldpl.create_time,ldpn.quantity,0)) moreTenNum
from logpm_distribution_parcel_list ldpl
left join logpm_distribution_parcel_number ldpn on ldpn.parcel_list_id = ldpl.id
left join logpm_warehouse_waybill lw on lw.id = ldpl.waybill_id
from logpm_trunkline_cars_load_scan ltcls
left join logpm_warehouse_waybill lw on lw.waybill_no = ltcls.waybill_no
left join logpm_reportconfig_all_trunkline lrat on lrat.departure_warehouse_id = lw.departure_warehouse_id and lrat.destination_warehouse_id = lw.destination_warehouse_id and lrat.is_deleted=0
where ldpl.conditions = 3
where ltcls.type = 2
and ltcls.scan_status = 2
and ltcls.unload_check = 1
and ltcls.unload_node_id = lw.destination_warehouse_id
and lw.departure_warehouse_id != lw.destination_warehouse_id
and ldpl.create_time > '2024-10-22 00:00:00'
and lw.create_time > '2024-10-22 00:00:00'
<if test="param.brandList != null and param.brandList.size() > 0">
and lw.brand in
<foreach collection="param.brandList" item="item" open="(" separator="," close=")">
@ -1304,43 +1282,16 @@
<if test="param.endTime != null ">
and lw.create_time &lt;= #{param.endTime}
</if>
and ldpl.warehouse_id = ldpl.accept_warehouse_id
and ldpl.warehouse_id != ldpl.send_warehouse_id
and ldpl.order_code = ldpl.waybill_number
-- and ldpl.waybill_id = 1853372208481284097
group by ldpl.waybill_id) t on t.waybill_id = lww.id
where lww.waybill_type = 2
and lww.departure_warehouse_id != lww.destination_warehouse_id
group by lw.id,lrat.hours_time) t
left join logpm_warehouse_waybill lww on lww.id = t.waybillId
left join logpm_warehouse_warehouse waw on waw.id = lww.departure_warehouse_id
where 1=1
<if test="param.businessLineList != null and param.businessLineList.size() > 0">
and waw.business_line in
<foreach collection="param.businessLineList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.brandList != null and param.brandList.size() > 0">
and lww.brand in
<foreach collection="param.brandList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.departureWarehouseIds != null and param.departureWarehouseIds.size() > 0">
and lww.departure_warehouse_id in
<foreach collection="param.departureWarehouseIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.destinationWarehouseIds != null and param.destinationWarehouseIds.size() > 0">
and lww.destination_warehouse_id in
<foreach collection="param.destinationWarehouseIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.startTime != null ">
and lww.create_time &gt;= #{param.startTime}
</if>
<if test="param.endTime != null ">
and lww.create_time &lt;= #{param.endTime}
</if>
group by waw.business_line,
lww.departure_warehouse_name,
lww.destination_warehouse_name,

3
blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportPackgeAllTrunklineTimeVO.java

@ -17,6 +17,9 @@ public class ReportPackgeAllTrunklineTimeVO implements Serializable {
@ExcelProperty(value = "品牌")
private String brand;
@ExcelProperty(value = "标准时效")
private Integer hoursTime;
@ExcelProperty(value = "开单数")
private Integer waybillNum;
@ExcelProperty(value = "开单件数")

Loading…
Cancel
Save