fix: preserve dropship sku loading details
This commit is contained in:
+54
-12
@@ -39,13 +39,34 @@ import com.baiyue.firstleg.dto.SmartLoadingDtos.Candidate; import org.apache.iba
|
||||
AND m.id=(SELECT MAX(m2.id) FROM fl_inbound_measurement m2
|
||||
WHERE m2.tenant_id=o.tenant_id AND m2.inbound_id=o.id AND m2.status='APPROVED')
|
||||
JOIN (
|
||||
SELECT tenant_id,measurement_id,inbound_detail_id,SUM(package_count) package_count,
|
||||
COALESCE(SUM(COALESCE(total_volume_cbm,COALESCE(unit_volume_cbm,0)*package_count))
|
||||
SELECT measured.tenant_id,batch.inbound_id,measured.measurement_id,measured.inbound_detail_id,
|
||||
measured.package_count,measured.unit_volume_cbm
|
||||
FROM (
|
||||
SELECT tenant_id,measurement_id,inbound_detail_id,SUM(package_count) package_count,
|
||||
COALESCE(SUM(COALESCE(total_volume_cbm,COALESCE(unit_volume_cbm,0)*package_count))
|
||||
/ NULLIF(SUM(package_count),0),0) unit_volume_cbm
|
||||
FROM fl_inbound_measurement_item
|
||||
WHERE inbound_detail_id IS NOT NULL AND package_count>0
|
||||
GROUP BY tenant_id,measurement_id,inbound_detail_id
|
||||
) i ON i.tenant_id=o.tenant_id AND i.measurement_id=m.id
|
||||
FROM fl_inbound_measurement_item
|
||||
WHERE inbound_detail_id IS NOT NULL AND package_count>0
|
||||
GROUP BY tenant_id,measurement_id,inbound_detail_id
|
||||
) measured
|
||||
JOIN fl_inbound_measurement batch ON batch.id=measured.measurement_id
|
||||
AND batch.tenant_id=measured.tenant_id
|
||||
JOIN fl_inbound_order measured_order ON measured_order.id=batch.inbound_id
|
||||
AND measured_order.tenant_id=batch.tenant_id
|
||||
WHERE COALESCE(measured_order.fulfillment_type,'STANDARD')<>'ONE_CLICK_DROPSHIP'
|
||||
UNION ALL
|
||||
SELECT carton.tenant_id,carton.inbound_id,batch.id,carton.inbound_detail_id,COUNT(*),
|
||||
COALESCE(batch.total_volume_cbm/NULLIF(source.total_package_count,0),0)
|
||||
FROM fl_dropship_pallet_carton carton
|
||||
JOIN fl_dropship_pallet pallet ON pallet.id=carton.pallet_id AND pallet.pallet_status='COMPLETED'
|
||||
JOIN fl_inbound_order source ON source.id=carton.inbound_id AND source.tenant_id=carton.tenant_id
|
||||
AND source.fulfillment_type='ONE_CLICK_DROPSHIP'
|
||||
JOIN fl_inbound_measurement batch ON batch.inbound_id=source.id AND batch.tenant_id=source.tenant_id
|
||||
AND batch.status='APPROVED' AND batch.id=(SELECT MAX(latest.id) FROM fl_inbound_measurement latest
|
||||
WHERE latest.tenant_id=source.tenant_id AND latest.inbound_id=source.id AND latest.status='APPROVED')
|
||||
GROUP BY carton.tenant_id,carton.inbound_id,batch.id,carton.inbound_detail_id,
|
||||
batch.total_volume_cbm,source.total_package_count
|
||||
) i ON i.tenant_id=o.tenant_id AND i.inbound_id=o.id AND i.measurement_id=m.id
|
||||
WHERE o.warehouse_id=#{warehouseId} AND o.process_status='WAIT_SPLIT'
|
||||
AND o.actual_gross_weight_kg IS NOT NULL AND o.actual_net_weight_kg IS NOT NULL
|
||||
AND (o.inbound_role='MASTER' OR (o.split_purpose='REMAINDER' AND o.split_status='NOT_SPLIT'))
|
||||
@@ -89,13 +110,34 @@ import com.baiyue.firstleg.dto.SmartLoadingDtos.Candidate; import org.apache.iba
|
||||
AND m.id=(SELECT MAX(m2.id) FROM fl_inbound_measurement m2
|
||||
WHERE m2.tenant_id=o.tenant_id AND m2.inbound_id=o.id AND m2.status='APPROVED')
|
||||
JOIN (
|
||||
SELECT tenant_id,measurement_id,inbound_detail_id,SUM(package_count) package_count,
|
||||
COALESCE(SUM(COALESCE(total_volume_cbm,COALESCE(unit_volume_cbm,0)*package_count))
|
||||
SELECT measured.tenant_id,batch.inbound_id,measured.measurement_id,measured.inbound_detail_id,
|
||||
measured.package_count,measured.unit_volume_cbm
|
||||
FROM (
|
||||
SELECT tenant_id,measurement_id,inbound_detail_id,SUM(package_count) package_count,
|
||||
COALESCE(SUM(COALESCE(total_volume_cbm,COALESCE(unit_volume_cbm,0)*package_count))
|
||||
/ NULLIF(SUM(package_count),0),0) unit_volume_cbm
|
||||
FROM fl_inbound_measurement_item
|
||||
WHERE inbound_detail_id IS NOT NULL AND package_count>0
|
||||
GROUP BY tenant_id,measurement_id,inbound_detail_id
|
||||
) i ON i.tenant_id=o.tenant_id AND i.measurement_id=m.id
|
||||
FROM fl_inbound_measurement_item
|
||||
WHERE inbound_detail_id IS NOT NULL AND package_count>0
|
||||
GROUP BY tenant_id,measurement_id,inbound_detail_id
|
||||
) measured
|
||||
JOIN fl_inbound_measurement batch ON batch.id=measured.measurement_id
|
||||
AND batch.tenant_id=measured.tenant_id
|
||||
JOIN fl_inbound_order measured_order ON measured_order.id=batch.inbound_id
|
||||
AND measured_order.tenant_id=batch.tenant_id
|
||||
WHERE COALESCE(measured_order.fulfillment_type,'STANDARD')<>'ONE_CLICK_DROPSHIP'
|
||||
UNION ALL
|
||||
SELECT carton.tenant_id,carton.inbound_id,batch.id,carton.inbound_detail_id,COUNT(*),
|
||||
COALESCE(batch.total_volume_cbm/NULLIF(source.total_package_count,0),0)
|
||||
FROM fl_dropship_pallet_carton carton
|
||||
JOIN fl_dropship_pallet pallet ON pallet.id=carton.pallet_id AND pallet.pallet_status='COMPLETED'
|
||||
JOIN fl_inbound_order source ON source.id=carton.inbound_id AND source.tenant_id=carton.tenant_id
|
||||
AND source.fulfillment_type='ONE_CLICK_DROPSHIP'
|
||||
JOIN fl_inbound_measurement batch ON batch.inbound_id=source.id AND batch.tenant_id=source.tenant_id
|
||||
AND batch.status='APPROVED' AND batch.id=(SELECT MAX(latest.id) FROM fl_inbound_measurement latest
|
||||
WHERE latest.tenant_id=source.tenant_id AND latest.inbound_id=source.id AND latest.status='APPROVED')
|
||||
GROUP BY carton.tenant_id,carton.inbound_id,batch.id,carton.inbound_detail_id,
|
||||
batch.total_volume_cbm,source.total_package_count
|
||||
) i ON i.tenant_id=o.tenant_id AND i.inbound_id=o.id AND i.measurement_id=m.id
|
||||
WHERE o.warehouse_id=#{warehouseId} AND o.id=#{inboundId}
|
||||
AND (o.process_status='WAIT_SPLIT' OR (o.process_status='LOADING' AND EXISTS (
|
||||
SELECT 1 FROM fl_loading_plan_item same_plan_item
|
||||
|
||||
Reference in New Issue
Block a user