-- =====================================================
-- Batch 4: ERP 采购入库单审批集成 - 数据库变更脚本
-- 版本: v1.0
-- 日期: 2026-06-26
-- 说明: 为 ERP 采购入库单添加 BPM 流程审批集成
-- =====================================================

-- =====================================================
-- 1. 修改采购入库表，新增流程实例字段
-- =====================================================

-- 新增流程实例编号字段
ALTER TABLE `erp_purchase_in`
ADD COLUMN `process_instance_id` VARCHAR(64) DEFAULT NULL COMMENT 'BPM 流程实例编号' AFTER `remark`;

-- =====================================================
-- 2. 菜单新增（提交审批按钮）
-- =====================================================

-- 获取采购入库菜单ID
SET @purchase_in_menu_id = (SELECT `id` FROM `system_menu` WHERE `path` = 'purchase-in' AND `deleted` = b'0' LIMIT 1);

-- 如果采购入库菜单不存在，尝试通过名称查找
SET @purchase_in_menu_id = IFNULL(@purchase_in_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-in:submit', 3, 10, @purchase_in_menu_id, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
FROM DUAL
WHERE @purchase_in_menu_id IS NOT NULL
ON DUPLICATE KEY UPDATE `permission` = 'erp:purchase-in:submit';

-- =====================================================
-- 3. BPM 流程定义（需要在前端创建流程模型）
-- =====================================================

-- 提示：请在 BPM 管理后台创建流程模型
-- 流程标识（Key）：erp-purchase-in-audit
-- 流程名称：ERP 采购入库审批流程
-- 业务关联：采购入库单 ID

-- =====================================================
-- 回滚脚本（如需回滚，执行以下语句）
-- =====================================================

/*
-- 删除新增字段
ALTER TABLE `erp_purchase_in` DROP COLUMN `process_instance_id`;

-- 删除新增菜单
DELETE FROM `system_menu` WHERE `permission` = 'erp:purchase-in:submit';
*/