feat(crm): add quote approver setting table and menu SQL

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-08-01 13:02:47 +08:00
1 parent 3aafae6a9d
commit 82e648de9f
2 files changed
+71

No files matched your search

@@ -0,0 +1,43 @@
-- backend/scripts/migrate_20260801_crm_quote_approver_setting.sql
CREATE TABLE IF NOT EXISTS `crm_quote_approver_setting` (
`id` varchar(64) NOT NULL COMMENT '主键ID(UUID)',
`approver_ids` varchar(1000) NOT NULL DEFAULT '' COMMENT '有序审批人用户ID,逗号分隔',
`status` char(1) NOT NULL DEFAULT '0' COMMENT '0启用 1停用',
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标志',
PRIMARY KEY (`id`),
KEY `idx_tenant_no` (`tenant_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-报价单审批人设置(租户级)';
-- 说明:MySQL 5.7 无部分唯一索引;租户「有效一条」由 save_setting upsert 保证,不加 (tenant_no, del_flag) 唯一键。
-- 菜单:报价单审批人设置(CRM 根下,紧挨报价单管理)
INSERT INTO `sys_menu` (
`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
`is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
) VALUES (
'CRM3000000000000000000000000015',
'报价单审批人设置',
'CRM00000000000000000000000000001',
'C',
'quote-approver-setting',
'/crm/quote/approver-setting/index',
'crm:quote:approverSetting',
1, '1', '1', 'shanxia2.0', 55,
'租户级默认报价审批人',
'system', '', NOW(), NULL, NOW(), 0
)
ON DUPLICATE KEY UPDATE
`menu_name`=VALUES(`menu_name`),
`component`=VALUES(`component`),
`perms`=VALUES(`perms`),
`path`=VALUES(`path`);
+28
View File
@@ -2269,6 +2269,33 @@ INSERT INTO `crm_quote_approval` (`id`, `quote_id`, `quote_no`, `step`, `approve
INSERT INTO `crm_quote_approval` (`id`, `quote_id`, `quote_no`, `step`, `approver_id`, `approver_name`, `approval_result`, `approval_opinion`, `approval_time`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('D74CD7F227CC4506BBF77E788DE075F6', '45D5DA129E104FB391A88953F3AE65FC', 'SXDD-20260606002', 2, 'd3000000000000000000000000000001', '系统管理员', 'approved', '123', '2026-06-06 17:16:05', 'shanxia2.0', NULL, '123', NULL, 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-06-06 17:14:30', 'd3000000000000000000000000000001', '2026-06-06 17:16:05', 0);
COMMIT;
-- ----------------------------
-- Table structure for crm_quote_approver_setting
-- ----------------------------
DROP TABLE IF EXISTS `crm_quote_approver_setting`;
CREATE TABLE `crm_quote_approver_setting` (
`id` varchar(64) NOT NULL COMMENT '主键ID(UUID)',
`approver_ids` varchar(1000) NOT NULL DEFAULT '' COMMENT '有序审批人用户ID,逗号分隔',
`status` char(1) NOT NULL DEFAULT '0' COMMENT '0启用 1停用',
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标志',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_tenant_no` (`tenant_no`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-报价单审批人设置(租户级)';
-- ----------------------------
-- Records of crm_quote_approver_setting
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for crm_quote_product
-- ----------------------------
@@ -9809,6 +9836,7 @@ INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `co
INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('CRM2000000000000000000000003006', '商机分配', 'CRM2000000000000000000000000010', 'F', '', NULL, 'crm:opportunity:assign', 1, '1', '1', 'shanxia2.0', 6, NULL, NULL, '', '2026-05-31 16:17:46', NULL, '2026-05-31 16:17:46', 0);
INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('CRM2000000000000000000000003007', '商机跟进', 'CRM2000000000000000000000000010', 'F', '', NULL, 'crm:opportunity:follow', 1, '1', '1', 'shanxia2.0', 7, NULL, NULL, '', '2026-05-31 16:17:46', NULL, '2026-05-31 16:17:46', 0);
INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('CRM3000000000000000000000000010', '报价单管理', 'CRM00000000000000000000000000001', 'C', 'quote', '/crm/quote/index', 'crm:quote:list', 1, '1', '1', 'shanxia2.0', 5, NULL, 'system', '', '2026-07-05 21:00:00', NULL, '2026-07-05 21:00:00', 0);
INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('CRM3000000000000000000000000015', '报价单审批人设置', 'CRM00000000000000000000000000001', 'C', 'quote-approver-setting', '/crm/quote/approver-setting/index', 'crm:quote:approverSetting', 1, '1', '1', 'shanxia2.0', 55, '租户级默认报价审批人', 'system', '', '2026-08-01 00:00:00', NULL, '2026-08-01 00:00:00', 0);
INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('CRM3000000000000000000000000020', '合同管理', 'CRM00000000000000000000000000001', 'C', 'contract', '/crm/contract/index', 'crm:contract:list', 1, '1', '1', 'shanxia2.0', 6, NULL, 'system', '', '2026-07-05 21:00:00', NULL, '2026-07-05 21:00:00', 0);
INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('CRM3000000000000000000000000030', '调价函管理', 'CRM00000000000000000000000000001', 'C', 'price-letter', '/crm/price-letter/index', 'crm:priceLetter:list', 1, '1', '1', 'shanxia2.0', 7, '独立调价函档案:接受(附件) / 发出(富文本打印);不关联合同与报价单', 'system', '', '2026-07-15 20:23:03', NULL, '2026-07-26 12:01:03', 0);
INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('CRM3000000000000000000000000031', '调价函新增', 'CRM3000000000000000000000000030', 'F', '', NULL, 'crm:priceLetter:add', 1, '1', '1', 'shanxia2.0', 1, NULL, 'system', '', '2026-07-15 20:23:03', NULL, '2026-07-15 20:23:03', 0);