✨ 新增毛利分析报表及提成设置
This commit is contained in:
@@ -956,6 +956,25 @@ CREATE TABLE `prc_income_bill` (
|
||||
CONSTRAINT `fk_income_bill_order_bill` FOREIGN KEY (`bill_id`) REFERENCES `prc_order_bill` (`bill_id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应收主表(订单计费与应收费用中间层,与订单一对一)';
|
||||
|
||||
-- ----------------------------
|
||||
-- 表结构:`prc_profit_commission_rate`
|
||||
-- ----------------------------
|
||||
CREATE TABLE `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='毛利报表业务员固定提成比例';
|
||||
|
||||
-- ----------------------------
|
||||
-- 表结构:`prc_income_bill_fee`
|
||||
-- ----------------------------
|
||||
@@ -1062,6 +1081,7 @@ CREATE TABLE `prc_order_bill` (
|
||||
UNIQUE KEY `uk_bill_order` (`order_no`),
|
||||
UNIQUE KEY `uk_bill_key` (`bill_key`),
|
||||
KEY `idx_bill_customer` (`customer_code`,`biz_date`),
|
||||
KEY `idx_bill_biz_date_report` (`biz_date`,`bill_id`),
|
||||
KEY `idx_bill_product` (`product_code`,`country_code`),
|
||||
KEY `idx_bill_ar_status` (`customer_id`,`currency`,`ar_bill_status`,`biz_date`),
|
||||
KEY `idx_bill_ar_async_cursor` (`customer_id`,`currency`,`ar_bill_status`,`create_time`,`bill_id`),
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
-- 毛利报表:提成比例配置表与计费日期查询索引。
|
||||
-- 每位业务员维护一条固定比例;提成比例以百分数保存,例如 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='毛利报表业务员固定提成比例';
|
||||
|
||||
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;
|
||||
@@ -0,0 +1,56 @@
|
||||
-- 报表中心 - 毛利分析及提成比例维护权限
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
SET @report_menu_id := (
|
||||
SELECT menu_id FROM sys_menu
|
||||
WHERE parent_id = 0 AND menu_type = 'M' AND menu_name = N'报表中心'
|
||||
ORDER BY menu_id LIMIT 1
|
||||
);
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type,
|
||||
visible, status, perms, icon, create_by, create_time, remark)
|
||||
SELECT N'报表中心', 0, 8, 'report', NULL, 1, 0, 'M', '0', '0', '', 'chart', 'admin', sysdate(), N'经营分析报表'
|
||||
FROM DUAL WHERE @report_menu_id IS NULL;
|
||||
SET @report_menu_id := (
|
||||
SELECT menu_id FROM sys_menu
|
||||
WHERE parent_id = 0 AND menu_type = 'M' AND menu_name = N'报表中心'
|
||||
ORDER BY menu_id LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO sys_menu (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, remark)
|
||||
SELECT N'毛利分析', @report_menu_id, 1, 'profit', 'report/profit/index', '', 'ProfitReport', 1, 0,
|
||||
'C', '0', '0', 'report:profit:list', 'chart', 'admin', sysdate(), N'按产品和订单查看红线/销售毛利与提成'
|
||||
FROM DUAL
|
||||
WHERE @report_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'report:profit:list');
|
||||
SET @profit_menu_id := (SELECT menu_id FROM sys_menu WHERE perms = 'report:profit:list' ORDER BY menu_id LIMIT 1);
|
||||
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type,
|
||||
visible, status, perms, icon, create_by, create_time)
|
||||
SELECT N'导出', @profit_menu_id, 1, '', NULL, 1, 0, 'F', '0', '0', 'report:profit:export', '#', 'admin', sysdate()
|
||||
FROM DUAL WHERE @profit_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'report:profit:export');
|
||||
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type,
|
||||
visible, status, perms, icon, create_by, create_time)
|
||||
SELECT N'提成比例查询', @profit_menu_id, 2, '', NULL, 1, 0, 'F', '0', '0', 'report:profit:commission:list', '#', 'admin', sysdate()
|
||||
FROM DUAL WHERE @profit_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'report:profit:commission:list');
|
||||
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type,
|
||||
visible, status, perms, icon, create_by, create_time)
|
||||
SELECT N'提成比例维护', @profit_menu_id, 3, '', NULL, 1, 0, 'F', '0', '0', 'report:profit:commission:save', '#', 'admin', sysdate()
|
||||
FROM DUAL WHERE @profit_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'report:profit:commission:save');
|
||||
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type,
|
||||
visible, status, perms, icon, create_by, create_time)
|
||||
SELECT N'提成比例删除', @profit_menu_id, 4, '', NULL, 1, 0, 'F', '0', '0', 'report:profit:commission:remove', '#', 'admin', sysdate()
|
||||
FROM DUAL WHERE @profit_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'report:profit:commission:remove');
|
||||
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT 1, m.menu_id
|
||||
FROM sys_menu m
|
||||
WHERE (m.menu_id = @report_menu_id OR m.menu_id = @profit_menu_id OR m.parent_id = @profit_menu_id)
|
||||
AND NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id);
|
||||
Reference in New Issue
Block a user