✨ 新增项目变更独立单据与MK审批回写

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-27 16:45:37 +08:00
parent adf782401a
commit 41a86fe335
11 changed files with 1379 additions and 0 deletions
@@ -0,0 +1,88 @@
-- 项目变更独立单据 + 菜单
-- 审批通过后再回写 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;