gaoluyang
3 天以前 cdaec80a5ffa474f69e5c36f0312be3c0abf2210
docs/sql/config_export_all_20261104.sql
@@ -10421,3 +10421,65 @@
       (1065505, 5, '质保金', '5', 'crm_payment_stage', 0, 'danger', '', '', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `sort` = VALUES(`sort`), `label` = VALUES(`label`), `value` = VALUES(`value`),
                        `status` = VALUES(`status`), `color_type` = VALUES(`color_type`), `deleted` = b'0';
-- ==================== 2026-11-05 投标保证金迁移到 CRM 销售管理 ====================
-- =====================================================
-- 投标保证金从「供应商管理(SRM)」迁移到「销售管理(CRM)」
-- 1. 新建 crm_bid_bond 表:按客户(招标方)登记,记录中标结果与退款进度,可关联销售订单(销售台账)
-- 2. 菜单 602630 及按钮 602631~602634 迁移到销售管理根菜单 2617,
--    权限串由 srm:bid-bond:* 改为 crm:bid-bond:*;沿用原菜单 id,角色授权不丢失
-- 3. 幂等:可重复执行
-- =====================================================
CREATE TABLE IF NOT EXISTS `crm_bid_bond` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '投标保证金ID',
    `no` VARCHAR(32) NOT NULL COMMENT '保证金单号',
    `customer_id` BIGINT NOT NULL COMMENT '客户ID(招标方)',
    `project_name` VARCHAR(255) DEFAULT NULL COMMENT '项目名称',
    `tender_no` VARCHAR(64) DEFAULT NULL COMMENT '招标编号',
    `sale_order_id` BIGINT DEFAULT NULL COMMENT '关联销售订单ID(销售台账)',
    `sale_order_no` VARCHAR(64) DEFAULT NULL COMMENT '关联销售订单号快照',
    `bond_amount` DECIMAL(24,6) NOT NULL DEFAULT 0 COMMENT '保证金金额',
    `pay_date` DATE DEFAULT NULL COMMENT '缴纳日期',
    `bid_result` TINYINT NOT NULL DEFAULT 0 COMMENT '中标结果:0待开标 1已中标 2未中标',
    `refund_status` TINYINT NOT NULL DEFAULT 0 COMMENT '退回状态:0未退回 1部分退回 2已退回 3无需退回',
    `refund_amount` DECIMAL(24,6) DEFAULT NULL COMMENT '退回金额',
    `refund_date` DATE DEFAULT NULL COMMENT '退回日期',
    `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
    `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
    `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
    `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_no` (`no`),
    KEY `idx_customer_id` (`customer_id`),
    KEY `idx_sale_order_id` (`sale_order_id`),
    KEY `idx_bid_result` (`bid_result`),
    KEY `idx_refund_status` (`refund_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='CRM投标保证金台账';
-- 菜单:从采购管理 2602 移到销售管理 2617
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`,
                           `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`,
                           `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (602630, '投标保证金', '', 2, 62, 2617, 'bid-bond', 'ep:money',
        'crm/bidBond/index', 'CrmBidBond', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `parent_id` = VALUES(`parent_id`), `path` = VALUES(`path`),
                        `icon` = VALUES(`icon`), `component` = VALUES(`component`),
                        `component_name` = VALUES(`component_name`), `sort` = VALUES(`sort`),
                        `status` = VALUES(`status`), `visible` = VALUES(`visible`), `deleted` = b'0';
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`,
                           `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`,
                           `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
(602631, '投标保证金查询', 'crm:bid-bond:query', 3, 1, 602630, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(602632, '投标保证金创建', 'crm:bid-bond:create', 3, 2, 602630, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(602633, '投标保证金更新', 'crm:bid-bond:update', 3, 3, 602630, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
(602634, '投标保证金删除', 'crm:bid-bond:delete', 3, 4, 602630, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `permission` = VALUES(`permission`),
                        `parent_id` = VALUES(`parent_id`), `sort` = VALUES(`sort`),
                        `status` = VALUES(`status`), `deleted` = b'0';
-- 菜单 id 保持不变,历史 system_role_menu 授权继续有效;新库由超管在「角色管理」中授权