62 lines
3.5 KiB
SQL
62 lines
3.5 KiB
SQL
-- 毛利报表:提成比例配置表与计费日期查询索引。
|
|
-- 每位业务员维护一条固定比例;提成比例以百分数保存,例如 5 表示 5%。
|
|
CREATE TABLE IF NOT EXISTS `prc_profit_commission_rate` (
|
|
`rate_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '提成比例ID',
|
|
`belong_saler_code` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务员编码',
|
|
`belong_saler` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '业务员名称',
|
|
`commission_rate` decimal(7,4) NOT NULL COMMENT '提成比例(百分数,例如5表示5%)',
|
|
`status` char(1) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '状态:0正常 1停用',
|
|
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
|
|
`create_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
|
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
|
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
|
PRIMARY KEY (`rate_id`),
|
|
UNIQUE KEY `uk_profit_commission_saler` (`belong_saler_code`),
|
|
KEY `idx_profit_commission_status` (`status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='毛利报表业务员固定提成比例';
|
|
|
|
-- 毛利分析产品、订单维度导出日志及历史文件索引。
|
|
CREATE TABLE IF NOT EXISTS `prc_profit_report_export` (
|
|
`export_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '毛利报表导出ID',
|
|
`dimension` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PRODUCT产品维度,ORDER订单维度',
|
|
`file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '下载文件名',
|
|
`storage_key` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '下载目录下的文件Key',
|
|
`row_count` int(11) DEFAULT NULL COMMENT '导出记录数',
|
|
`export_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PROCESSING生成中,SUCCESS成功,FAILED失败',
|
|
`export_user_id` bigint(20) DEFAULT NULL COMMENT '导出人用户ID',
|
|
`export_by` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '导出人',
|
|
`export_time` datetime NOT NULL COMMENT '导出时间',
|
|
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '失败原因',
|
|
PRIMARY KEY (`export_id`),
|
|
KEY `idx_profit_report_export_user_time` (`export_by`, `export_time`),
|
|
KEY `idx_profit_report_export_status` (`export_status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='毛利报表导出日志';
|
|
|
|
SET @column_exists := (
|
|
SELECT COUNT(1) FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'prc_profit_report_export'
|
|
AND COLUMN_NAME = 'export_user_id'
|
|
);
|
|
SET @sql := IF(@column_exists = 0,
|
|
'ALTER TABLE `prc_profit_report_export` ADD COLUMN `export_user_id` bigint(20) DEFAULT NULL COMMENT ''导出人用户ID'' AFTER `export_status`',
|
|
'ALTER TABLE `prc_profit_report_export` MODIFY COLUMN `export_user_id` bigint(20) DEFAULT NULL COMMENT ''导出人用户ID'' AFTER `export_status`'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SET @index_exists := (
|
|
SELECT COUNT(1) FROM information_schema.STATISTICS
|
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prc_order_bill'
|
|
AND INDEX_NAME = 'idx_bill_biz_date_report'
|
|
);
|
|
SET @sql := IF(@index_exists = 0,
|
|
'ALTER TABLE `prc_order_bill` ADD INDEX `idx_bill_biz_date_report` (`biz_date`, `bill_id`)',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|