Files
tms-erp-api/doc/sql/transport/stat_account_module_create_count.sql

567 lines
26 KiB
SQL

-- 统计指定账号在指定日期内、各业务模块创建的数据量
--
-- 使用前只改下面两个日期(含首尾)。单日统计时两个日期填同一天。
-- 统计口径:
-- 1. 按 blade_user.account 找到用户 ID,再按各业务主表 create_user、create_time 计数。
-- 2. 同一账号若存在多个用户 ID(含已删除账号),历史数据会一并计入该账号。
-- 3. 只统计各功能列表对应的主表。随主单保存的明细、联系人、附件、变更流水不重复计数。
-- 4. 含已逻辑删除的数据,因为这些记录确实被创建过。
-- 5. 客商档案菜单挂在「车/船务管理」下,这里按统计口径单独计入「客商管理」。
-- 6. 未纳入:在途管理,以及系统管理下的开票项目。
-- 7. 导入运单产生的运单计入「业务模块-运单管理」,不另计导入批次。
-- 导入结算单产生的正式结算单计入「结算管理」的付款结算单或收款结算单,不另计导入批次。
-- 8. 付款结算单、收款结算单共用 blade_formal_settlement,按 settlement_type 区分(payable/receivable)。
-- 应收、应付共用 blade_receivable_payable_detail,同样按 settlement_type 区分。
-- 9. 菜单名称为「收付款管理」,统计模块名与菜单一致。
SET NAMES utf8mb4;
SET @stat_start = '2026-09-29';
SET @stat_end = '2026-09-29';
SET @stat_end_exclusive = DATE_ADD(@stat_end, INTERVAL 1 DAY);
DROP TEMPORARY TABLE IF EXISTS tmp_stat_account;
CREATE TEMPORARY TABLE tmp_stat_account (
sort_no INT NOT NULL,
account VARCHAR(45) NOT NULL,
PRIMARY KEY (account)
);
INSERT INTO tmp_stat_account (sort_no, account) VALUES
(1, 'zhanghu01'),
(2, 'zhanghu02'),
(3, 'zhanghu03'),
(4, 'zhanghu04'),
(5, 'zhanghu05'),
(6, 'zhanghu06'),
(7, 'zhanghu07'),
(8, 'zhanghu08'),
(9, 'zhanghu09'),
(10, 'zhanghu10'),
(11, 'zhanghu11'),
(12, 'zhanghu12'),
(13, 'zhanghu13'),
(14, 'zhanghu14'),
(15, 'zhanghu15'),
(16, 'zhanghu16');
DROP TEMPORARY TABLE IF EXISTS tmp_stat_user;
CREATE TEMPORARY TABLE tmp_stat_user AS
SELECT u.id, u.account, u.real_name, u.tenant_id, u.is_deleted, a.sort_no
FROM blade_user u
INNER JOIN tmp_stat_account a ON a.account = u.account;
ALTER TABLE tmp_stat_user ADD PRIMARY KEY (id);
ALTER TABLE tmp_stat_user ADD INDEX idx_tmp_stat_user_account (account);
DROP TEMPORARY TABLE IF EXISTS tmp_stat_detail;
CREATE TEMPORARY TABLE tmp_stat_detail (
create_user BIGINT NOT NULL,
module_sort INT NOT NULL,
module_name VARCHAR(32) NOT NULL,
biz_sort INT NOT NULL,
biz_name VARCHAR(64) NOT NULL,
table_name VARCHAR(64) NOT NULL,
cnt BIGINT NOT NULL,
KEY idx_tmp_stat_detail_user (create_user)
);
-- 每张表单独插入。MySQL 不允许同一条语句多次打开临时表。
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 1, '基础配置', 1, '客商类型', 'blade_customer_type', COUNT(*)
FROM blade_customer_type t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 1, '基础配置', 2, '费用项', 'blade_fee_item', COUNT(*)
FROM blade_fee_item t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 1, '基础配置', 3, '币种汇率管理', 'blade_currency', COUNT(*)
FROM blade_currency t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 1, '基础配置', 4, '计量单位', 'blade_measurement_unit', COUNT(*)
FROM blade_measurement_unit t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 1, '基础配置', 5, '货物类型', 'blade_cargo_type', COUNT(*)
FROM blade_cargo_type t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 1, '基础配置', 6, '行政区划', 'blade_region', COUNT(*)
FROM blade_region t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 1, '基础配置', 7, '港口码头主数据', 'blade_port_terminal', COUNT(*)
FROM blade_port_terminal t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 1, '基础配置', 8, '空港机场主数据', 'blade_airport_master', COUNT(*)
FROM blade_airport_master t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 1, '基础配置', 9, '铁路车站主数据', 'blade_railway_station', COUNT(*)
FROM blade_railway_station t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 1, '基础配置', 10, '保险OCR识别模板', 'blade_insurance_ocr_template', COUNT(*)
FROM blade_insurance_ocr_template t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 2, '基础数据', 1, '常用地址', 'blade_common_address', COUNT(*)
FROM blade_common_address t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 3, '客商管理', 1, '客商档案', 'blade_customer_archive', COUNT(*)
FROM blade_customer_archive t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 4, '项目管理', 1, '项目管理', 'blade_project_apply', COUNT(*)
FROM blade_project_apply t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 4, '项目管理', 2, '临时额度管理', 'blade_temporary_credit_limit', COUNT(*)
FROM blade_temporary_credit_limit t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 5, '合同模块', 1, '合同管理', 'blade_contract_manage', COUNT(*)
FROM blade_contract_manage t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 6, '业务模块', 1, '常用货物', 'blade_common_cargo', COUNT(*)
FROM blade_common_cargo t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 6, '业务模块', 2, '常用线路', 'blade_common_route', COUNT(*)
FROM blade_common_route t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 6, '业务模块', 3, '发货模板', 'blade_shipping_template', COUNT(*)
FROM blade_shipping_template t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 6, '业务模块', 4, '过程配置', 'blade_process_config', COUNT(*)
FROM blade_process_config t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 6, '业务模块', 5, '总单管理', 'blade_master_order', COUNT(*)
FROM blade_master_order t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 6, '业务模块', 6, '运输计划', 'blade_transport_plan', COUNT(*)
FROM blade_transport_plan t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 6, '业务模块', 7, '配载管理', 'blade_loading_manage', COUNT(*)
FROM blade_loading_manage t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 6, '业务模块', 8, '运单管理', 'blade_waybill', COUNT(*)
FROM blade_waybill t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 6, '业务模块', 9, '凭证管理', 'blade_voucher_manage', COUNT(*)
FROM blade_voucher_manage t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 1, '设备台账', 'blade_equipment_ledger', COUNT(*)
FROM blade_equipment_ledger t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 2, '保险记录', 'blade_insurance_record', COUNT(*)
FROM blade_insurance_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 3, '年检记录', 'blade_annual_inspection_record', COUNT(*)
FROM blade_annual_inspection_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 4, '保养记录', 'blade_vehicle_maintenance_plan', COUNT(*)
FROM blade_vehicle_maintenance_plan t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 5, '维修记录', 'blade_vehicle_maintenance_record', COUNT(*)
FROM blade_vehicle_maintenance_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 6, '违章记录', 'blade_violation_record', COUNT(*)
FROM blade_violation_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 7, '事故记录', 'blade_accident_record', COUNT(*)
FROM blade_accident_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 8, 'ETC记录', 'blade_etc_record', COUNT(*)
FROM blade_etc_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 9, '油电记录', 'blade_oil_electric_record', COUNT(*)
FROM blade_oil_electric_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 10, '里程记录', 'blade_mileage_record', COUNT(*)
FROM blade_mileage_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 11, '换胎记录', 'blade_tire_replacement_record', COUNT(*)
FROM blade_tire_replacement_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 12, '其他费用记录', 'blade_other_expense_record', COUNT(*)
FROM blade_other_expense_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 13, '变更记录', 'blade_transport_change_record', COUNT(*)
FROM blade_transport_change_record t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 7, '车/船务模块', 14, '评分量化表', 'blade_credit_score_quantification', COUNT(*)
FROM blade_credit_score_quantification t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 8, '运力模块', 1, '车辆管理', 'blade_transport_vehicle', COUNT(*)
FROM blade_transport_vehicle t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 8, '运力模块', 2, '船舶管理', 'blade_transport_ship', COUNT(*)
FROM blade_transport_ship t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 8, '运力模块', 3, '司机管理', 'blade_transport_driver', COUNT(*)
FROM blade_transport_driver t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 8, '运力模块', 4, '车辆调度', 'blade_transport_vehicle_dispatch', COUNT(*)
FROM blade_transport_vehicle_dispatch t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 9, '结算管理', 1, '应收', 'blade_receivable_payable_detail', COUNT(*)
FROM blade_receivable_payable_detail t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
AND t.settlement_type = 'receivable'
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 9, '结算管理', 2, '应付', 'blade_receivable_payable_detail', COUNT(*)
FROM blade_receivable_payable_detail t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
AND t.settlement_type = 'payable'
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 9, '结算管理', 3, '预付结算单', 'blade_pre_settlement', COUNT(*)
FROM blade_pre_settlement t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 9, '结算管理', 4, '付款结算单', 'blade_formal_settlement', COUNT(*)
FROM blade_formal_settlement t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
AND t.settlement_type = 'payable'
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 9, '结算管理', 5, '收款结算单', 'blade_formal_settlement', COUNT(*)
FROM blade_formal_settlement t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
AND t.settlement_type = 'receivable'
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 9, '结算管理', 6, '运输对账', 'blade_transport_reconciliation', COUNT(*)
FROM blade_transport_reconciliation t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 9, '结算管理', 7, '结算调整单', 'blade_settlement_adjustment', COUNT(*)
FROM blade_settlement_adjustment t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 10, '收付款管理', 1, '付款管理', 'blade_payment_application', COUNT(*)
FROM blade_payment_application t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 10, '收付款管理', 2, '开票管理', 'blade_invoice_application', COUNT(*)
FROM blade_invoice_application t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 10, '收付款管理', 3, '收票管理', 'blade_invoice_receipt', COUNT(*)
FROM blade_invoice_receipt t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 10, '收付款管理', 4, '收款流水', 'blade_kingdee_receipt_flow', COUNT(*)
FROM blade_kingdee_receipt_flow t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 10, '收付款管理', 5, '认领记录', 'blade_receipt_claim', COUNT(*)
FROM blade_receipt_claim t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 10, '收付款管理', 6, '汇票台账', 'blade_bill_ledger', COUNT(*)
FROM blade_bill_ledger t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
INSERT INTO tmp_stat_detail (create_user, module_sort, module_name, biz_sort, biz_name, table_name, cnt)
SELECT t.create_user, 10, '收付款管理', 7, '汇票付款', 'blade_bill_payment', COUNT(*)
FROM blade_bill_payment t
INNER JOIN tmp_stat_user u ON u.id = t.create_user
WHERE t.create_time >= @stat_start AND t.create_time < @stat_end_exclusive
GROUP BY t.create_user
;
-- 结果 1:账号匹配情况。用户 ID 为空表示库中没有该账号。
SELECT
a.sort_no AS `序号`,
a.account AS `账号`,
u.id AS `用户ID`,
u.real_name AS `姓名`,
u.tenant_id AS `租户`,
CASE WHEN u.id IS NULL THEN '未找到' WHEN u.is_deleted = 0 THEN '正常' ELSE '已删除' END AS `账号状态`
FROM tmp_stat_account a
LEFT JOIN tmp_stat_user u ON u.account = a.account
ORDER BY a.sort_no, u.id;
-- 结果 2:按账号、模块汇总创建数量。
SELECT
a.account AS `账号`,
IFNULL(GROUP_CONCAT(DISTINCT NULLIF(u.real_name, '') ORDER BY u.id SEPARATOR '、'), '') AS `姓名`,
IFNULL(SUM(CASE WHEN d.module_name = '基础配置' THEN d.cnt ELSE 0 END), 0) AS `基础配置`,
IFNULL(SUM(CASE WHEN d.module_name = '基础数据' THEN d.cnt ELSE 0 END), 0) AS `基础数据`,
IFNULL(SUM(CASE WHEN d.module_name = '客商管理' THEN d.cnt ELSE 0 END), 0) AS `客商管理`,
IFNULL(SUM(CASE WHEN d.module_name = '项目管理' THEN d.cnt ELSE 0 END), 0) AS `项目管理`,
IFNULL(SUM(CASE WHEN d.module_name = '合同模块' THEN d.cnt ELSE 0 END), 0) AS `合同模块`,
IFNULL(SUM(CASE WHEN d.module_name = '业务模块' THEN d.cnt ELSE 0 END), 0) AS `业务模块`,
IFNULL(SUM(CASE WHEN d.module_name = '车/船务模块' THEN d.cnt ELSE 0 END), 0) AS `车/船务模块`,
IFNULL(SUM(CASE WHEN d.module_name = '运力模块' THEN d.cnt ELSE 0 END), 0) AS `运力模块`,
IFNULL(SUM(CASE WHEN d.module_name = '结算管理' THEN d.cnt ELSE 0 END), 0) AS `结算管理`,
IFNULL(SUM(CASE WHEN d.module_name = '收付款管理' THEN d.cnt ELSE 0 END), 0) AS `收付款管理`,
IFNULL(SUM(d.cnt), 0) AS `合计`
FROM tmp_stat_account a
LEFT JOIN tmp_stat_user u ON u.account = a.account
LEFT JOIN tmp_stat_detail d ON d.create_user = u.id
GROUP BY a.sort_no, a.account
ORDER BY a.sort_no;
-- 结果 3:按账号、功能展开,只显示创建数量大于 0 的项。
SELECT
a.account AS `账号`,
d.module_name AS `模块`,
d.biz_name AS `功能`,
d.table_name AS `数据表`,
SUM(d.cnt) AS `创建数量`
FROM tmp_stat_account a
INNER JOIN tmp_stat_user u ON u.account = a.account
INNER JOIN tmp_stat_detail d ON d.create_user = u.id
GROUP BY a.sort_no, a.account, d.module_sort, d.module_name, d.biz_sort, d.biz_name, d.table_name
ORDER BY a.sort_no, d.module_sort, d.biz_sort;