wecom-dashboards/excel-handle/sql/customer_statistics_v2_init...

192 lines
12 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ==========================================
-- 流量看板V2 数据表和菜单配置
-- ==========================================
-- ----------------------------
-- 1. 数据表创建
-- ----------------------------
-- 客户统计数据表V2支持标签级成本行列转换存储
DROP TABLE IF EXISTS `customer_statistics_data_v2`;
CREATE TABLE `customer_statistics_data_v2` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`corp_id` VARCHAR(100) NOT NULL COMMENT '企业ID',
`cur_date` DATE NOT NULL COMMENT '统计日期',
-- 维度信息
`group_name` VARCHAR(50) NOT NULL COMMENT '组名N组、O组等',
`tag_name` VARCHAR(100) DEFAULT NULL COMMENT '标签名NULL表示组级汇总',
`tag_group_id` VARCHAR(100) DEFAULT NULL COMMENT '标签组ID关联wecom_tag_group',
`tag_id` VARCHAR(100) DEFAULT NULL COMMENT '标签ID关联wecom_tag',
-- 层级关系
`data_level` TINYINT DEFAULT 1 COMMENT '数据级别1-组级汇总2-标签级明细',
`parent_id` BIGINT(20) DEFAULT NULL COMMENT '父记录ID标签级数据对应组级记录的ID',
-- 成本数据(支持标签级成本)
`total_cost` DECIMAL(12,2) DEFAULT NULL COMMENT '总成本(手工录入)',
`single_cost` DECIMAL(12,2) DEFAULT NULL COMMENT '单条成本(计算得出)',
`order_cost` DECIMAL(12,2) DEFAULT NULL COMMENT '成单成本(计算得出)',
`cost_input_type` VARCHAR(20) DEFAULT NULL COMMENT '成本录入类型total-总成本single-单条成本',
-- 数量指标
`order_count` INT DEFAULT 0 COMMENT '成单数',
`customer_count` INT DEFAULT 0 COMMENT '进粉数',
`timely_order_count` INT DEFAULT 0 COMMENT '及时单数',
`non_timely_order_count` INT DEFAULT 0 COMMENT '非及时单数',
-- 比率指标
`conversion_rate` VARCHAR(10) DEFAULT '0%' COMMENT '转化率',
`timely_rate` VARCHAR(10) DEFAULT '0%' COMMENT '及时单占比',
`non_timely_rate` VARCHAR(10) DEFAULT '0%' COMMENT '非及时单占比',
-- 客户属性指标
`customer_attr_count` INT DEFAULT 0 COMMENT '客户属性数量',
`parent_count` INT DEFAULT 0 COMMENT '家长数量',
`student_count` INT DEFAULT 0 COMMENT '学生数量',
`teacher_count` INT DEFAULT 0 COMMENT '老师数量',
`unknown_attr_count` INT DEFAULT 0 COMMENT '未知属性数量',
`parent_rate` VARCHAR(10) DEFAULT '0%' COMMENT '家长占比',
`student_rate` VARCHAR(10) DEFAULT '0%' COMMENT '学生占比',
`teacher_rate` VARCHAR(10) DEFAULT '0%' COMMENT '老师占比',
`unknown_rate` VARCHAR(10) DEFAULT '0%' COMMENT '未知占比',
-- 出单率指标
`parent_order_count` INT DEFAULT 0 COMMENT '家长出单数量',
`student_order_count` INT DEFAULT 0 COMMENT '学生出单数量',
`teacher_order_count` INT DEFAULT 0 COMMENT '老师出单数量',
`unknown_order_count` INT DEFAULT 0 COMMENT '未知出单数量',
`parent_daily_count` INT DEFAULT 0 COMMENT '家长当日数量',
`student_daily_count` INT DEFAULT 0 COMMENT '学生当日数量',
`teacher_daily_count` INT DEFAULT 0 COMMENT '老师当日数量',
`unknown_daily_count` INT DEFAULT 0 COMMENT '未知当日数量',
`parent_daily_order_count` INT DEFAULT 0 COMMENT '家长当日出单数量',
`student_daily_order_count` INT DEFAULT 0 COMMENT '学生当日出单数量',
`teacher_daily_order_count` INT DEFAULT 0 COMMENT '老师当日出单数量',
`unknown_daily_order_count` INT DEFAULT 0 COMMENT '未知当日出单数量',
`parent_order_rate` VARCHAR(10) DEFAULT '0%' COMMENT '家长出单率',
`student_order_rate` VARCHAR(10) DEFAULT '0%' COMMENT '学生出单率',
`teacher_order_rate` VARCHAR(10) DEFAULT '0%' COMMENT '老师出单率',
`unknown_order_rate` VARCHAR(10) DEFAULT '0%' COMMENT '未知出单率',
-- 意向度指标
`intention_count` INT DEFAULT 0 COMMENT '意向度数量',
`active_quote_count` INT DEFAULT 0 COMMENT '主动报价数量',
`passive_quote_count` INT DEFAULT 0 COMMENT '被动报价数量',
`no_quote_count` INT DEFAULT 0 COMMENT '未开口报价数量',
`deleted_quote_count` INT DEFAULT 0 COMMENT '已删除报价数量',
`active_quote_rate` VARCHAR(10) DEFAULT '0%' COMMENT '主动报价占比',
`passive_quote_rate` VARCHAR(10) DEFAULT '0%' COMMENT '被动报价占比',
`no_quote_rate` VARCHAR(10) DEFAULT '0%' COMMENT '未开口报价占比',
`deleted_quote_rate` VARCHAR(10) DEFAULT '0%' COMMENT '已删除报价占比',
-- 年级指标
`grade_count` INT DEFAULT 0 COMMENT '年级数量',
`primary_count` INT DEFAULT 0 COMMENT '小学数量',
`middle_count` INT DEFAULT 0 COMMENT '初中数量',
`high_count` INT DEFAULT 0 COMMENT '高中数量',
`primary_rate` VARCHAR(10) DEFAULT '0%' COMMENT '小学占比',
`middle_rate` VARCHAR(10) DEFAULT '0%' COMMENT '初中占比',
`high_rate` VARCHAR(10) DEFAULT '0%' COMMENT '高中占比',
`sort_no` INT DEFAULT 0 COMMENT '排序号',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_corp_date_group_tag` (`corp_id`, `cur_date`, `group_name`, `tag_name`),
INDEX `idx_corp_date` (`corp_id`, `cur_date`),
INDEX `idx_group_name` (`group_name`),
INDEX `idx_data_level` (`data_level`),
INDEX `idx_parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户统计数据表V2支持标签级成本行列转换';
-- 成本录入记录表(用于追溯)
DROP TABLE IF EXISTS `cost_input_record_v2`;
CREATE TABLE `cost_input_record_v2` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`corp_id` VARCHAR(100) NOT NULL COMMENT '企业ID',
`cur_date` DATE NOT NULL COMMENT '统计日期',
`group_name` VARCHAR(50) NOT NULL COMMENT '组名',
`tag_name` VARCHAR(100) DEFAULT NULL COMMENT '标签名NULL表示组级',
`cost_type` VARCHAR(20) NOT NULL COMMENT 'total-总成本single-单条成本',
`input_value` DECIMAL(12,2) NOT NULL COMMENT '录入值',
`actual_total_cost` DECIMAL(12,2) NOT NULL COMMENT '实际总成本',
`input_by` VARCHAR(50) DEFAULT NULL COMMENT '录入人',
`input_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '录入时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
INDEX `idx_corp_date_group` (`corp_id`, `cur_date`, `group_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成本录入记录表V2';
-- ----------------------------
-- 2. 菜单配置
-- 父菜单ID: 2000 (企业微信统计)
-- 新菜单ID从 2100 开始
-- ----------------------------
-- 流量看板V2 菜单(主菜单)
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (2100, '流量看板V2', 2000, 0, 'customerStatisticsV2', 'wecom/customerStatisticsV2/index', NULL, 'CustomerStatisticsV2', 1, 0, 'C', '0', '0', 'wecom:customerStatisticsV2:list', 'chart', 'admin', NOW(), '', NULL, '流量看板V2菜单支持标签级成本');
-- 流量看板V2 - 查询按钮
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (2101, '流量看板V2查询', 2100, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'wecom:customerStatisticsV2:query', '#', 'admin', NOW(), '', NULL, '');
-- 流量看板V2 - 新增按钮
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (2102, '流量看板V2新增', 2100, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'wecom:customerStatisticsV2:add', '#', 'admin', NOW(), '', NULL, '');
-- 流量看板V2 - 修改按钮
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (2103, '流量看板V2修改', 2100, 3, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'wecom:customerStatisticsV2:edit', '#', 'admin', NOW(), '', NULL, '');
-- 流量看板V2 - 删除按钮
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (2104, '流量看板V2删除', 2100, 4, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'wecom:customerStatisticsV2:remove', '#', 'admin', NOW(), '', NULL, '');
-- 流量看板V2 - 导出按钮
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (2105, '流量看板V2导出', 2100, 5, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'wecom:customerStatisticsV2:export', '#', 'admin', NOW(), '', NULL, '');
-- 流量看板V2 - 成本录入按钮
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (2106, '流量看板V2成本录入', 2100, 6, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'wecom:customerStatisticsV2:cost', '#', 'admin', NOW(), '', NULL, '');
-- 流量看板V2 - 重新计算按钮
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (2107, '流量看板V2重新计算', 2100, 7, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'wecom:customerStatisticsV2:recalculate', '#', 'admin', NOW(), '', NULL, '');
-- 流量看板V2 - 树状数据查询
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES (2108, '流量看板V2树状查询', 2100, 8, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'wecom:customerStatisticsV2:tree', '#', 'admin', NOW(), '', NULL, '');
-- ----------------------------
-- 3. 菜单说明
-- ----------------------------
-- 菜单类型说明:
-- M: 目录
-- C: 菜单
-- F: 按钮
--
-- 菜单层级结构:
-- 2000 企业微信统计 (目录)
-- ├── 2001 客户列表数据
-- ├── 2002 客户联系统计
-- ├── 2003 流量看板数据 (原V1版本)
-- ├── 2004 销售看板数据
-- ├── 2100 流量看板V2 (新增,支持标签级成本)
-- │ ├── 2101 查询
-- │ ├── 2102 新增
-- │ ├── 2103 修改
-- │ ├── 2104 删除
-- │ ├── 2105 导出
-- │ ├── 2106 成本录入
-- │ ├── 2107 重新计算
-- │ └── 2108 树状查询
-- └── 3000 企业信息