1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| -- =============================================
| -- 售后工单明细增强 SQL 初始化脚本(可重复执行)
| -- 需求:售后退货/工单每条明细独立售后单号,每条选部门、原因类型并填具体原因
| -- 包含:after_sale_ticket_item 加字段 + aftersale_reason_type 字典
| -- =============================================
|
| -- =============================================
| -- 1. 工单明细表新增字段(存在性判断,保证可重复执行)
| -- =============================================
| SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
| WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'after_sale_ticket_item' AND COLUMN_NAME = 'item_no');
| SET @ddl := IF(@col_exists = 0,
| 'ALTER TABLE `after_sale_ticket_item`
| ADD COLUMN `item_no` varchar(64) NULL COMMENT ''明细售后单号(工单号-序号)'' AFTER `ticket_id`,
| ADD COLUMN `dept_id` bigint NULL COMMENT ''部门ID,关联 system_dept.id'' AFTER `need_return`,
| ADD COLUMN `reason_type` tinyint NULL COMMENT ''原因类型,字典 aftersale_reason_type'' AFTER `dept_id`,
| ADD COLUMN `reason` varchar(500) NULL COMMENT ''具体原因'' AFTER `reason_type`',
| 'SELECT 1');
| PREPARE stmt FROM @ddl;
| EXECUTE stmt;
| DEALLOCATE PREPARE stmt;
|
| -- =============================================
| -- 2. 数据字典:售后原因类型 aftersale_reason_type
| -- (取值可由业务在「系统管理 - 字典管理」中自行维护)
| -- =============================================
| INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
| (1065307, '售后原因类型', 'aftersale_reason_type', 0, '售后工单明细原因分类', '', NOW(), '', NOW(), b'0')
| ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `type` = VALUES(`type`), `status` = VALUES(`status`), `deleted` = b'0';
|
| INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
| (1065352, 1, '外观缺陷', '1', 'aftersale_reason_type', 0, 'primary', NULL, '', NOW(), '', NOW(), b'0'),
| (1065353, 2, '功能故障', '2', 'aftersale_reason_type', 0, 'warning', NULL, '', NOW(), '', NOW(), b'0'),
| (1065354, 3, '尺寸偏差', '3', 'aftersale_reason_type', 0, 'info', NULL, '', NOW(), '', NOW(), b'0'),
| (1065355, 4, '包装破损', '4', 'aftersale_reason_type', 0, 'warning', NULL, '', NOW(), '', NOW(), b'0'),
| (1065356, 5, '物流损坏', '5', 'aftersale_reason_type', 0, 'danger', NULL, '', NOW(), '', NOW(), b'0'),
| (1065357, 6, '缺件少发', '6', 'aftersale_reason_type', 0, 'danger', NULL, '', NOW(), '', NOW(), b'0'),
| (1065358, 7, '规格型号不符', '7', 'aftersale_reason_type', 0, 'info', NULL, '', NOW(), '', NOW(), b'0'),
| (1065359, 8, '使用不当', '8', 'aftersale_reason_type', 0, 'default', NULL, '', NOW(), '', NOW(), b'0'),
| (1065360, 9, '其他', '9', 'aftersale_reason_type', 0, 'default', NULL, '', NOW(), '', NOW(), b'0')
| ON DUPLICATE KEY UPDATE `sort` = VALUES(`sort`), `label` = VALUES(`label`), `value` = VALUES(`value`),
| `dict_type` = VALUES(`dict_type`), `status` = VALUES(`status`), `color_type` = VALUES(`color_type`), `deleted` = b'0';
|
| SELECT '售后工单明细增强初始化完成' AS result;
|
|