-- ===================================================== -- CRM 销售目标(销售计划)功能初始化脚本 -- 1. 建表 crm_sales_target -- 2. 数据字典(周期类型 / 目标维度 / 状态) -- 3. 菜单与按钮权限(营销管理 -> 销售计划 / 达成分析) -- ===================================================== -- 1. 建表 CREATE TABLE IF NOT EXISTS `crm_sales_target` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', `name` varchar(128) NOT NULL COMMENT '目标名称', `period_type` int NOT NULL COMMENT '周期类型(字典 crm_sales_target_period_type: 1年/2季度/3月)', `period_value` varchar(32) NOT NULL COMMENT '周期值,如 2026 / 2026-Q1 / 2026-07', `start_time` datetime NOT NULL COMMENT '周期开始时间(保存时由周期计算写入)', `end_time` datetime NOT NULL COMMENT '周期结束时间(保存时由周期计算写入)', `target_dimension` int NOT NULL COMMENT '目标维度(字典 crm_sales_target_dimension: 1个人/2部门/3产品)', `target_user_id` bigint DEFAULT NULL COMMENT '目标用户编号(维度=个人)', `target_dept_id` bigint DEFAULT NULL COMMENT '目标部门编号(维度=部门)', `target_item_id` bigint DEFAULT NULL COMMENT '目标物料编号(维度=产品,关联 MDM)', `contract_target` decimal(18,2) DEFAULT NULL COMMENT '合同金额目标(元)', `receivable_target` decimal(18,2) DEFAULT NULL COMMENT '回款金额目标(元)', `business_target` decimal(18,2) DEFAULT NULL COMMENT '商机金额目标(元)', `customer_target` int DEFAULT NULL COMMENT '新增客户数目标', `contract_count_target` int DEFAULT NULL COMMENT '新增合同数目标', `status` int NOT NULL DEFAULT 0 COMMENT '状态(字典 crm_sales_target_status: 0未生效/1已生效/2已结束/3已作废)', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `creator` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', `deleted` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_period` (`period_type`,`period_value`), KEY `idx_dimension` (`target_dimension`,`target_user_id`,`target_dept_id`,`target_item_id`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM 销售目标'; -- 2. 数据字典类型 INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (1065300, '销售目标周期类型', 'crm_sales_target_period_type', 0, '销售目标的计划周期类型', '1', NOW(), '1', NOW(), b'0', NULL), (1065301, '销售目标维度', 'crm_sales_target_dimension', 0, '销售目标按什么维度设定', '1', NOW(), '1', NOW(), b'0', NULL), (1065302, '销售目标状态', 'crm_sales_target_status', 0, '销售目标的生命周期状态', '1', NOW(), '1', NOW(), b'0', NULL); -- 2.1 数据字典数据 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES -- 周期类型 (1065310, 1, '年度', '1', 'crm_sales_target_period_type', 0, 'primary', '', '', '1', NOW(), '1', NOW(), b'0'), (1065311, 2, '季度', '2', 'crm_sales_target_period_type', 0, 'success', '', '', '1', NOW(), '1', NOW(), b'0'), (1065312, 3, '月度', '3', 'crm_sales_target_period_type', 0, 'warning', '', '', '1', NOW(), '1', NOW(), b'0'), -- 目标维度 (1065320, 1, '个人', '1', 'crm_sales_target_dimension', 0, 'primary', '', '', '1', NOW(), '1', NOW(), b'0'), (1065321, 2, '部门', '2', 'crm_sales_target_dimension', 0, 'success', '', '', '1', NOW(), '1', NOW(), b'0'), (1065322, 3, '产品', '3', 'crm_sales_target_dimension', 0, 'warning', '', '', '1', NOW(), '1', NOW(), b'0'), -- 状态 (1065330, 0, '未生效', '0', 'crm_sales_target_status', 0, 'info', '', '', '1', NOW(), '1', NOW(), b'0'), (1065331, 1, '已生效', '1', 'crm_sales_target_status', 0, 'success', '', '', '1', NOW(), '1', NOW(), b'0'), (1065332, 2, '已结束', '2', 'crm_sales_target_status', 0, 'warning', '', '', '1', NOW(), '1', NOW(), b'0'), (1065333, 3, '已作废', '3', 'crm_sales_target_status', 0, 'danger', '', '', '1', NOW(), '1', NOW(), b'0'); -- 3. 菜单:营销管理(id=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 (1065000, '销售计划', '', 2, 62, 2617, 'salesTarget', 'ep:data-line', 'crm/salesTarget/index', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'), (1065100, '达成分析', '', 2, 63, 2617, 'salesTarget/analysis', 'ep:pie-chart', 'crm/salesTarget/analysis/index', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'); -- 3.1 销售计划按钮权限 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 (1065001, '销售计划查询', 'crm:sales-target:query', 3, 1, 1065000, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'), (1065002, '销售计划创建', 'crm:sales-target:create', 3, 2, 1065000, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'), (1065003, '销售计划更新', 'crm:sales-target:update', 3, 3, 1065000, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'), (1065004, '销售计划删除', 'crm:sales-target:delete', 3, 4, 1065000, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'), (1065005, '销售计划导出', 'crm:sales-target:export', 3, 5, 1065000, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'), (1065101, '达成分析查询', 'crm:sales-target:query', 3, 1, 1065100, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');