- 新增 batch-create-logistics / batch-create-fulfill:按平台行建物流单并回写 LinkedOrderId,代发支持绑定冻结与失败回滚 - ParcelBuilder 支持无 SKU 映射的平台行申报;批量创建可指定 OrderSource=platform - 库存绑定候选接口支持 orderId=0 草稿选仓 - 店铺订单增加结构化收件人字段(db.sql + 迁移脚本),拉单回填;补充 customer9 店铺/揽收种子与 ConcurrencyStamp 修复脚本 Co-authored-by: Cursor <cursoragent@cursor.com>
42 lines
1.5 KiB
SQL
42 lines
1.5 KiB
SQL
-- 修复店铺相关表 ConcurrencyStamp 无法绑定到 Guid 的问题
|
||
-- 典型报错:ConcurrencyStamp绑定到SalesStoreOrder失败 / SalesStoreOrder ConcurrencyStamp bind error
|
||
--
|
||
-- 原因:补列时若写入空串 '',SqlSugar 无法把 '' 转成 System.Guid
|
||
-- 用法:mysql -u root -p oms < sql/fix_sales_store_concurrency_stamp.sql
|
||
|
||
SET NAMES utf8mb4;
|
||
|
||
UPDATE `t_sales_store`
|
||
SET `ConcurrencyStamp` = UUID()
|
||
WHERE `ConcurrencyStamp` IS NULL
|
||
OR TRIM(`ConcurrencyStamp`) = ''
|
||
OR LENGTH(TRIM(`ConcurrencyStamp`)) <> 36;
|
||
|
||
UPDATE `t_sales_store_order`
|
||
SET `ConcurrencyStamp` = UUID()
|
||
WHERE `ConcurrencyStamp` IS NULL
|
||
OR TRIM(`ConcurrencyStamp`) = ''
|
||
OR LENGTH(TRIM(`ConcurrencyStamp`)) <> 36;
|
||
|
||
UPDATE `t_sales_store_order_line`
|
||
SET `ConcurrencyStamp` = UUID()
|
||
WHERE `ConcurrencyStamp` IS NULL
|
||
OR TRIM(`ConcurrencyStamp`) = ''
|
||
OR LENGTH(TRIM(`ConcurrencyStamp`)) <> 36;
|
||
|
||
-- 抽查
|
||
SELECT 't_sales_store' AS tbl,
|
||
SUM(CASE WHEN TRIM(IFNULL(ConcurrencyStamp,'')) = '' OR LENGTH(TRIM(ConcurrencyStamp)) <> 36 THEN 1 ELSE 0 END) AS bad_cnt,
|
||
COUNT(*) AS total
|
||
FROM `t_sales_store`
|
||
UNION ALL
|
||
SELECT 't_sales_store_order',
|
||
SUM(CASE WHEN TRIM(IFNULL(ConcurrencyStamp,'')) = '' OR LENGTH(TRIM(ConcurrencyStamp)) <> 36 THEN 1 ELSE 0 END),
|
||
COUNT(*)
|
||
FROM `t_sales_store_order`
|
||
UNION ALL
|
||
SELECT 't_sales_store_order_line',
|
||
SUM(CASE WHEN TRIM(IFNULL(ConcurrencyStamp,'')) = '' OR LENGTH(TRIM(ConcurrencyStamp)) <> 36 THEN 1 ELSE 0 END),
|
||
COUNT(*)
|
||
FROM `t_sales_store_order_line`;
|