1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
| -- =====================================================
| -- 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');
|
|