feat(lastleg): retain receipt and redispatch history on exceptions
This commit is contained in:
+31
@@ -4,9 +4,40 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baiyue.lastleg.inventory.entity.ReturnStockReceipt;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
import java.util.List;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Mapper
|
||||
public interface ReturnStockReceiptMapper extends BaseMapper<ReturnStockReceipt> {
|
||||
@Select("""
|
||||
SELECT r.id AS receiptId,r.receipt_no AS receiptNo,r.received_packages AS receivedPackages,
|
||||
r.received_at AS receivedAt,di.id AS dispatchItemId,d.dispatch_no AS dispatchNo,
|
||||
d.status AS dispatchStatus,di.package_count AS selectedPackages,
|
||||
COALESCE((SELECT SUM(a.packages) FROM ll_dispatch_pda_pick_order a
|
||||
JOIN ll_dispatch_pda_pick p ON p.id=a.pick_id AND BINARY p.customer_id=BINARY a.customer_id
|
||||
WHERE BINARY a.customer_id=BINARY r.customer_id AND a.return_receipt_id=r.id
|
||||
AND p.dispatch_item_id=di.id),0) AS pickedPackages,
|
||||
delivery.delivery_no AS deliveryNo,delivery.status AS deliveryStatus
|
||||
FROM ll_return_stock_receipt r
|
||||
LEFT JOIN ll_dispatch_item di ON di.return_receipt_id=r.id AND BINARY di.customer_id=BINARY r.customer_id
|
||||
LEFT JOIN ll_dispatch_order d ON d.id=di.dispatch_order_id AND BINARY d.customer_id=BINARY r.customer_id
|
||||
LEFT JOIN ll_delivery_order delivery ON delivery.dispatch_order_id=d.id
|
||||
AND BINARY delivery.customer_id=BINARY r.customer_id
|
||||
AND BINARY delivery.delivery_group_key=BINARY CASE
|
||||
WHEN di.destination_type='PRIVATE' AND NULLIF(TRIM(di.delivery_address),'') IS NOT NULL
|
||||
THEN CONCAT('PRIVATE:',TRIM(di.delivery_address),':',TRIM(COALESCE(di.postal_code,'')))
|
||||
WHEN COALESCE(NULLIF(TRIM(di.destination_warehouse_code),''),NULLIF(TRIM(di.fba_warehouse_code),'')) IS NOT NULL
|
||||
THEN CONCAT('CODE:',UPPER(COALESCE(NULLIF(TRIM(di.destination_warehouse_code),''),NULLIF(TRIM(di.fba_warehouse_code),''))))
|
||||
WHEN NULLIF(TRIM(di.destination_warehouse_id),'') IS NOT NULL THEN CONCAT('ID:',TRIM(di.destination_warehouse_id))
|
||||
ELSE NULL END
|
||||
WHERE BINARY r.customer_id=BINARY #{customerId} AND r.exception_order_id=#{exceptionId}
|
||||
ORDER BY r.received_at,r.id,d.id,di.id,delivery.id
|
||||
""")
|
||||
List<ReturnHistoryRow> history(@Param("customerId") String customerId, @Param("exceptionId") Long exceptionId);
|
||||
|
||||
record ReturnHistoryRow(Long receiptId, String receiptNo, Long receivedPackages, LocalDateTime receivedAt,
|
||||
Long dispatchItemId, String dispatchNo, String dispatchStatus, Integer selectedPackages,
|
||||
Long pickedPackages, String deliveryNo, String deliveryStatus) {}
|
||||
|
||||
@Select("SELECT id FROM ll_order WHERE customer_id=#{customerId} AND id=#{id} FOR UPDATE")
|
||||
Long lockOrder(@Param("customerId") String customerId, @Param("id") Long id);
|
||||
record ReturnOwner(Long exceptionOrderId, Long orderId, Long inboundOrderId) { }
|
||||
|
||||
Reference in New Issue
Block a user