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

192 lines
12 KiB
MySQL
Raw Normal View History

2026-03-08 07:52:17 +00:00
-- ==========================================
-- 流量看板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 企业信息