From f7a871e3e42dacc199700bf8eedaee1f928a2bbb Mon Sep 17 00:00:00 2001 From: liuyihe <2513762445@qq.com> Date: Tue, 13 Oct 2026 10:47:52 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=B4=B4=E6=A0=87=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=EF=BC=8C=E4=BB=93=E5=82=A8=E8=BD=AC=E8=BF=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ReturnInventoryMovementMapper.java | 17 +++++++++-------- .../ReturnOutboundPdaPersistenceTest.java | 12 ++++++++++++ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/lastleg-service/src/main/java/com/baiyue/lastleg/returnreceipt/mapper/ReturnInventoryMovementMapper.java b/lastleg-service/src/main/java/com/baiyue/lastleg/returnreceipt/mapper/ReturnInventoryMovementMapper.java index 57bda1bff..49b39b262 100644 --- a/lastleg-service/src/main/java/com/baiyue/lastleg/returnreceipt/mapper/ReturnInventoryMovementMapper.java +++ b/lastleg-service/src/main/java/com/baiyue/lastleg/returnreceipt/mapper/ReturnInventoryMovementMapper.java @@ -10,18 +10,19 @@ import java.util.List; /** Receipt/merge projections plus immutable outbound SKU movements. */ @Mapper public interface ReturnInventoryMovementMapper extends com.baomidou.mybatisplus.core.mapper.BaseMapper { - String MOVEMENTS = "SELECT o.customer_id customerId,o.overseas_warehouse_id overseasWarehouseId,ri.sku_code skuCode,oi.product_name_zh productNameZh," + - "'RECEIPT' movementType,r.receipt_no referenceNo,ri.received_quantity totalDelta,ri.received_quantity availableDelta,r.signed_at occurredAt " + + // UNION text projections must not inherit differing source-table or connection collations. + String MOVEMENTS = "SELECT CONVERT(o.customer_id USING utf8mb4) COLLATE utf8mb4_unicode_ci customerId,CONVERT(o.overseas_warehouse_id USING utf8mb4) COLLATE utf8mb4_unicode_ci overseasWarehouseId,CONVERT(ri.sku_code USING utf8mb4) COLLATE utf8mb4_unicode_ci skuCode,CONVERT(oi.product_name_zh USING utf8mb4) COLLATE utf8mb4_unicode_ci productNameZh," + + "CONVERT('RECEIPT' USING utf8mb4) COLLATE utf8mb4_unicode_ci movementType,CONVERT(r.receipt_no USING utf8mb4) COLLATE utf8mb4_unicode_ci referenceNo,ri.received_quantity totalDelta,ri.received_quantity availableDelta,r.signed_at occurredAt " + "FROM ll_return_receipt r JOIN ll_return_order o ON o.id=r.return_order_id JOIN ll_return_receipt_item ri ON ri.receipt_id=r.id " + "JOIN ll_return_order_item oi ON oi.id=ri.return_order_item_id " + - "UNION ALL SELECT c.customer_id,c.overseas_warehouse_id,i.sku_code,i.product_name_zh,'MERGE',c.carton_mark,0,-i.quantity,c.created_at " + + "UNION ALL SELECT CONVERT(c.customer_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(c.overseas_warehouse_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(i.sku_code USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(i.product_name_zh USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT('MERGE' USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(c.carton_mark USING utf8mb4) COLLATE utf8mb4_unicode_ci,0,-i.quantity,c.created_at " + "FROM ll_return_inventory_carton c JOIN ll_return_inventory_carton_item i ON i.carton_id=c.id WHERE c.source_batch_no='MERGED'" + - " UNION ALL SELECT customer_id,overseas_warehouse_id,sku_code,product_name_zh,'OUTBOUND',outbound_no," + + " UNION ALL SELECT CONVERT(customer_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(overseas_warehouse_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(sku_code USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(product_name_zh USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT('OUTBOUND' USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(outbound_no USING utf8mb4) COLLATE utf8mb4_unicode_ci," + "-quantity,-quantity,occurred_at FROM ll_return_inventory_outbound_movement" + - " UNION ALL SELECT customer_id,overseas_warehouse_id,old_sku_code,product_name_zh,'SKU_CONVERSION_OUT',relabel_no,-quantity,-quantity,completed_at FROM ll_return_sku_conversion" + - " UNION ALL SELECT customer_id,overseas_warehouse_id,new_sku_code,product_name_zh,'SKU_CONVERSION_IN',relabel_no,quantity,quantity,completed_at FROM ll_return_sku_conversion" + - " UNION ALL SELECT customer_id,overseas_warehouse_id,old_sku_code,product_name_zh,'SKU_CONVERSION_REVERSE_IN',relabel_no,quantity,quantity,reversed_at FROM ll_return_sku_conversion WHERE status='REVERSED'" + - " UNION ALL SELECT customer_id,overseas_warehouse_id,new_sku_code,product_name_zh,'SKU_CONVERSION_REVERSE_OUT',relabel_no,-quantity,-quantity,reversed_at FROM ll_return_sku_conversion WHERE status='REVERSED'"; + " UNION ALL SELECT CONVERT(customer_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(overseas_warehouse_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(old_sku_code USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(product_name_zh USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT('SKU_CONVERSION_OUT' USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(relabel_no USING utf8mb4) COLLATE utf8mb4_unicode_ci,-quantity,-quantity,completed_at FROM ll_return_sku_conversion" + + " UNION ALL SELECT CONVERT(customer_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(overseas_warehouse_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(new_sku_code USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(product_name_zh USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT('SKU_CONVERSION_IN' USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(relabel_no USING utf8mb4) COLLATE utf8mb4_unicode_ci,quantity,quantity,completed_at FROM ll_return_sku_conversion" + + " UNION ALL SELECT CONVERT(customer_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(overseas_warehouse_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(old_sku_code USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(product_name_zh USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT('SKU_CONVERSION_REVERSE_IN' USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(relabel_no USING utf8mb4) COLLATE utf8mb4_unicode_ci,quantity,quantity,reversed_at FROM ll_return_sku_conversion WHERE status='REVERSED'" + + " UNION ALL SELECT CONVERT(customer_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(overseas_warehouse_id USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(new_sku_code USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(product_name_zh USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT('SKU_CONVERSION_REVERSE_OUT' USING utf8mb4) COLLATE utf8mb4_unicode_ci,CONVERT(relabel_no USING utf8mb4) COLLATE utf8mb4_unicode_ci,-quantity,-quantity,reversed_at FROM ll_return_sku_conversion WHERE status='REVERSED'"; @Select("