2026-06-29 940c8481d2fdcf51341db4ccd6fd6fcc2d43debb
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
-- =====================================================
-- Batch 2: ERP 采购订单审批集成 - 数据库变更脚本
-- 版本: v1.0
-- 日期: 2026-06-26
-- 说明: 为 ERP 采购订单添加 BPM 流程审批集成
-- =====================================================
 
-- =====================================================
-- 1. 修改采购订单表,新增流程实例字段
-- =====================================================
 
-- 新增流程实例编号字段
ALTER TABLE `erp_purchase_order`
ADD COLUMN `process_instance_id` VARCHAR(64) DEFAULT NULL COMMENT 'BPM 流程实例编号' AFTER `remark`;
 
-- =====================================================
-- 2. 数据字典修改(审核状态)
-- =====================================================
 
-- 注意:ERP 审核状态已有字典数据,这里仅补充新增状态
-- 原 PROCESS(10) 从"未审核"改为"审批中"
-- 原 APPROVE(20) 从"已审核"改为"审批通过"
-- 新增 DRAFT(0) 草稿状态
-- 新增 REJECT(30) 审批不通过状态
 
-- 更新现有字典数据的标签
UPDATE `system_dict_data`
SET `label` = '审批中'
WHERE `dict_type` = 'erp_audit_status' AND `value` = '10';
 
UPDATE `system_dict_data`
SET `label` = '审批通过'
WHERE `dict_type` = 'erp_audit_status' AND `value` = '20';
 
-- 新增草稿状态(如果不存在)
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
SELECT 0, '草稿', '0', 'erp_audit_status', 0, 'info', '', '订单草稿状态', '1', NOW(), '1', NOW(), b'0'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `system_dict_data` WHERE `dict_type` = 'erp_audit_status' AND `value` = '0');
 
-- 新增审批不通过状态(如果不存在)
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
SELECT 30, '审批不通过', '30', 'erp_audit_status', 0, 'danger', '', '审批不通过', '1', NOW(), '1', NOW(), b'0'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `system_dict_data` WHERE `dict_type` = 'erp_audit_status' AND `value` = '30');
 
-- =====================================================
-- 3. 菜单新增(提交审批按钮)
-- =====================================================
 
-- 获取采购订单菜单ID
SET @purchase_order_menu_id = (SELECT `id` FROM `system_menu` WHERE `path` = 'purchase-order' AND `deleted` = b'0' LIMIT 1);
 
-- 如果采购订单菜单不存在,尝试通过名称查找
SET @purchase_order_menu_id = IFNULL(@purchase_order_menu_id,
    (SELECT `id` FROM `system_menu` WHERE `name` = '采购订单' AND `deleted` = b'0' LIMIT 1));
 
-- 新增提交审批按钮
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
SELECT '采购订单提交审批', 'erp:purchase-order:submit', 3, 10, @purchase_order_menu_id, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
FROM DUAL
WHERE @purchase_order_menu_id IS NOT NULL
ON DUPLICATE KEY UPDATE `permission` = 'erp:purchase-order:submit';
 
-- =====================================================
-- 4. BPM 流程定义(需要在前端创建流程模型)
-- =====================================================
 
-- 提示:请在 BPM 管理后台创建流程模型
-- 流程标识(Key):erp-purchase-order-audit
-- 流程名称:ERP 采购订单审批流程
-- 业务关联:采购订单 ID
 
-- =====================================================
-- 回滚脚本(如需回滚,执行以下语句)
-- =====================================================
 
/*
-- 删除新增字段
ALTER TABLE `erp_purchase_order` DROP COLUMN `process_instance_id`;
 
-- 恢复字典数据标签
UPDATE `system_dict_data` SET `label` = '未审核' WHERE `dict_type` = 'erp_audit_status' AND `value` = '10';
UPDATE `system_dict_data` SET `label` = '已审核' WHERE `dict_type` = 'erp_audit_status' AND `value` = '20';
 
-- 删除新增字典数据
DELETE FROM `system_dict_data` WHERE `dict_type` = 'erp_audit_status' AND `value` = '0';
DELETE FROM `system_dict_data` WHERE `dict_type` = 'erp_audit_status' AND `value` = '30';
 
-- 删除新增菜单
DELETE FROM `system_menu` WHERE `permission` = 'erp:purchase-order:submit';
*/