-- 项目变更独立单据 + 菜单 -- 审批通过后再回写 blade_project_apply CREATE TABLE IF NOT EXISTS `blade_project_change` ( `id` bigint(20) NOT NULL COMMENT '主键', `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户ID', `create_user` bigint(20) DEFAULT NULL COMMENT '创建人', `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', `status` int(11) DEFAULT '1' COMMENT '状态', `is_deleted` int(11) DEFAULT '0' COMMENT '是否已删除', `project_id` bigint(20) NOT NULL COMMENT '原项目ID', `change_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '变更编号', `change_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '变更类型', `change_date` date DEFAULT NULL COMMENT '变更日期', `change_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '变更内容', `change_reason` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '变更原因', `before_data_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '变更前快照JSON', `project_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目编号', `project_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目名称', `project_short_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目简称', `project_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目类型', `business_dept_id` bigint(20) DEFAULT NULL COMMENT '业务部门ID', `business_dept_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '业务部门', `undertake_dept_id` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '承办部门/平台公司ID,多个逗号分隔', `undertake_dept_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '承办部门/平台公司,多个顿号分隔', `project_source` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目由来', `source_remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目由来说明', `fund_limit` decimal(18,2) DEFAULT NULL COMMENT '项目资金使用额度(万元)', `receivable_limit` decimal(18,2) DEFAULT NULL COMMENT '项目应收账款额度(万元)', `receivable_days` int(11) DEFAULT NULL COMMENT '应收账款回款期限(天)', `payment_days` int(11) DEFAULT NULL COMMENT '回款账期(天)', `cargo_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '货物类型', `cargo_quantity` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '预估货物数量', `business_start_date` date DEFAULT NULL COMMENT '业务周期开始日期', `business_end_date` date DEFAULT NULL COMMENT '业务周期结束日期', `transport_route` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '运输线路', `transport_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '运输类型', `business_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '业务类型', `business_mode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '业务模式', `project_scale` decimal(18,2) DEFAULT NULL COMMENT '项目规模(万元)', `estimated_profit` decimal(18,2) DEFAULT NULL COMMENT '预计利润(万元)', `profit_rate` decimal(18,2) DEFAULT NULL COMMENT '利润率(%)', `fund_demand` decimal(18,2) DEFAULT NULL COMMENT '资金需求(万元)', `settlement_mode` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '结算方式', `handler_user_id` bigint(20) DEFAULT NULL COMMENT '项目经办人ID', `handler_user_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目经办人', `principal_user_id` bigint(20) DEFAULT NULL COMMENT '项目负责人ID', `principal_user_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目负责人', `customer_names` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客户名称', `carrier_names` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '下游承运商', `customer_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '客户信息JSON', `carrier_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '承运商信息JSON', `situation_remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '项目情况说明', `attachments_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '项目附件JSON', `approval_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '审批状态', `current_node` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当前节点', `current_processor` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当前处理人', `approved_time` datetime DEFAULT NULL COMMENT '审核通过时间', `sync_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '同步状态 unsynced/synced/failed', PRIMARY KEY (`id`) USING BTREE, KEY `idx_project_change_project` (`project_id`) USING BTREE, KEY `idx_project_change_status` (`approval_status`) USING BTREE, KEY `idx_project_change_type` (`change_type`) USING BTREE, KEY `idx_project_change_create_time` (`create_time`) USING BTREE, KEY `idx_project_change_no` (`change_no`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='项目变更'; -- 菜单:项目管理下增加「项目变更」 INSERT IGNORE INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2100000000000000300, 2100000000000000000, 'project_change', '项目变更', 'project_change', '/business/project-change', 'iconfont icon-caidanguanli', 15, 1, 0, 1, NULL, '', 0), (2100000000000000301, 2100000000000000300, 'project_change_view', '查看', 'project_change_view', '', '', 1, 2, 0, 1, NULL, '', 0), (2100000000000000302, 2100000000000000300, 'project_change_add', '新增', 'project_change_add', '', '', 2, 2, 0, 1, NULL, '', 0), (2100000000000000303, 2100000000000000300, 'project_change_edit', '编辑', 'project_change_edit', '', '', 3, 2, 0, 1, NULL, '', 0), (2100000000000000304, 2100000000000000300, 'project_change_delete', '删除', 'project_change_delete', '', '', 4, 2, 0, 1, NULL, '', 0), (2100000000000000305, 2100000000000000300, 'project_change_submit', '提交', 'project_change_submit', '', '', 5, 2, 0, 1, NULL, '', 0), (2100000000000000306, 2100000000000000300, 'project_change_withdraw', '撤回', 'project_change_withdraw', '', '', 6, 2, 0, 1, NULL, '', 0), (2100000000000000307, 2100000000000000300, 'project_change_approve', '审批通过', 'project_change_approve', '', '', 7, 2, 0, 1, NULL, '', 0), (2100000000000000308, 2100000000000000300, 'project_change_reject', '审批驳回', 'project_change_reject', '', '', 8, 2, 0, 1, NULL, '', 0); -- 业务字典 mk_template:提交项目变更审核流(dict_key 需按实际 MK 模板编码配置) INSERT IGNORE INTO `blade_dict_biz` (`id`, `tenant_id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `is_sealed`, `status`, `is_deleted`) SELECT 2100000000000000399, '000000', id, 'mk_template', 'PROJECT_CHANGE_TEMPLATE', '提交项目变更审核流', 99, '项目变更MK模板编码,请替换为真实 templateCode', 0, 1, 0 FROM `blade_dict_biz` WHERE `code` = 'mk_template' AND `parent_id` = 0 AND `is_deleted` = 0 LIMIT 1;