admin/sql/fix_sales_store_concurrency_stamp.sql
zzh 188aed1ee6 feat: 店铺订单创建物流/代发,并补齐收件人字段与种子数据
- 新增 batch-create-logistics / batch-create-fulfill:按平台行建物流单并回写 LinkedOrderId,代发支持绑定冻结与失败回滚
- ParcelBuilder 支持无 SKU 映射的平台行申报;批量创建可指定 OrderSource=platform
- 库存绑定候选接口支持 orderId=0 草稿选仓
- 店铺订单增加结构化收件人字段(db.sql + 迁移脚本),拉单回填;补充 customer9 店铺/揽收种子与 ConcurrencyStamp 修复脚本

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 22:33:55 +08:00

42 lines
1.5 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 修复店铺相关表 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`;