You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
6.7 KiB
MySQL
159 lines
6.7 KiB
MySQL
|
3 months ago
|
-- =============================================
|
||
|
|
-- WMS报表数据库表设计
|
||
|
|
-- 基于WmsReportMapper中的查询SQL设计
|
||
|
|
-- =============================================
|
||
|
|
|
||
|
|
-- 1. 退库原因分析报表表
|
||
|
|
CREATE TABLE wms_report_return_reason_analysis (
|
||
|
|
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
|
|
tenant_id NVARCHAR(50) NOT NULL,
|
||
|
|
return_reason_category NVARCHAR(100) NOT NULL,
|
||
|
|
return_order_count INT NOT NULL DEFAULT 0,
|
||
|
|
total_return_amount DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
order_count_ratio DECIMAL(10,2) NOT NULL DEFAULT 0,
|
||
|
|
amount_ratio DECIMAL(10,2) NOT NULL DEFAULT 0,
|
||
|
|
material_name NVARCHAR(200),
|
||
|
|
material_category_name NVARCHAR(100),
|
||
|
|
material_code NVARCHAR(100),
|
||
|
|
statistics_date DATE NOT NULL DEFAULT GETDATE(),
|
||
|
|
create_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
update_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
INDEX IX_tenant_date (tenant_id, statistics_date),
|
||
|
|
INDEX IX_category (return_reason_category),
|
||
|
|
INDEX IX_material (material_code)
|
||
|
|
);
|
||
|
|
|
||
|
|
-- 2. 库存变动趋势分析报表表
|
||
|
|
CREATE TABLE wms_report_inventory_trend_analysis (
|
||
|
|
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
|
|
tenant_id NVARCHAR(50) NOT NULL,
|
||
|
|
material_id BIGINT NOT NULL,
|
||
|
|
material_code NVARCHAR(100) NOT NULL,
|
||
|
|
material_name NVARCHAR(200) NOT NULL,
|
||
|
|
material_category_name NVARCHAR(100),
|
||
|
|
statistics_month NVARCHAR(7) NOT NULL, -- YYYY-MM格式
|
||
|
|
statistics_week INT NOT NULL,
|
||
|
|
current_inventory_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
week_instock_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
week_outstock_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
last_week_inventory_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
key_node_mark NVARCHAR(50),
|
||
|
|
statistics_date DATE NOT NULL DEFAULT GETDATE(),
|
||
|
|
create_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
update_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
INDEX IX_tenant_material (tenant_id, material_id),
|
||
|
|
INDEX IX_month_week (statistics_month, statistics_week),
|
||
|
|
INDEX IX_material_code (material_code)
|
||
|
|
);
|
||
|
|
|
||
|
|
-- 3. 安全库存预警报表表
|
||
|
|
CREATE TABLE wms_report_safety_stock_alert (
|
||
|
|
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
|
|
tenant_id NVARCHAR(50) NOT NULL,
|
||
|
|
material_id BIGINT NOT NULL,
|
||
|
|
material_code NVARCHAR(100) NOT NULL,
|
||
|
|
material_name NVARCHAR(200) NOT NULL,
|
||
|
|
material_category_name NVARCHAR(100),
|
||
|
|
current_inventory_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
safe_stock_amount DECIMAL(18,2),
|
||
|
|
min_stock_amount DECIMAL(18,2),
|
||
|
|
max_stock_amount DECIMAL(18,2),
|
||
|
|
alert_status NVARCHAR(50) NOT NULL, -- 短缺预警/积压预警/正常
|
||
|
|
difference_amount DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
last_update_time DATETIME2,
|
||
|
|
statistics_date DATE NOT NULL DEFAULT GETDATE(),
|
||
|
|
create_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
update_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
INDEX IX_tenant_material (tenant_id, material_id),
|
||
|
|
INDEX IX_alert_status (alert_status),
|
||
|
|
INDEX IX_material_code (material_code)
|
||
|
|
);
|
||
|
|
|
||
|
|
-- 4. 呆滞料库存报表表
|
||
|
|
CREATE TABLE wms_report_stagnant_inventory (
|
||
|
|
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
|
|
tenant_id NVARCHAR(50) NOT NULL,
|
||
|
|
material_id BIGINT NOT NULL,
|
||
|
|
material_code NVARCHAR(100) NOT NULL,
|
||
|
|
material_name NVARCHAR(200) NOT NULL,
|
||
|
|
material_category_name NVARCHAR(100),
|
||
|
|
stagnant_inventory_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
material_unit NVARCHAR(20),
|
||
|
|
last_outstock_time NVARCHAR(50), -- 可能是"从未出库"或日期时间
|
||
|
|
stagnant_days INT NOT NULL DEFAULT 0,
|
||
|
|
stagnant_reason NVARCHAR(100),
|
||
|
|
material_spec NVARCHAR(200),
|
||
|
|
warehouse_name NVARCHAR(100),
|
||
|
|
last_activity_time NVARCHAR(50),
|
||
|
|
statistics_date DATE NOT NULL DEFAULT GETDATE(),
|
||
|
|
create_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
update_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
INDEX IX_tenant_material (tenant_id, material_id),
|
||
|
|
INDEX IX_stagnant_days (stagnant_days),
|
||
|
|
INDEX IX_material_code (material_code)
|
||
|
|
);-- 5.
|
||
|
|
库存差异报表表
|
||
|
|
CREATE TABLE wms_report_inventory_difference (
|
||
|
|
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
|
|
tenant_id NVARCHAR(50) NOT NULL,
|
||
|
|
check_code NVARCHAR(100) NOT NULL,
|
||
|
|
check_type NVARCHAR(50) NOT NULL, -- 抽检/盘点/库位/货架盘点
|
||
|
|
warehouse_id BIGINT,
|
||
|
|
warehouse_name NVARCHAR(100),
|
||
|
|
material_id BIGINT NOT NULL,
|
||
|
|
material_code NVARCHAR(100) NOT NULL,
|
||
|
|
material_name NVARCHAR(200) NOT NULL,
|
||
|
|
material_category_name NVARCHAR(100),
|
||
|
|
book_inventory_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
actual_inventory_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
difference_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
difference_type NVARCHAR(20) NOT NULL, -- 无差异/盘盈/盘亏
|
||
|
|
difference_rate DECIMAL(10,2) NOT NULL DEFAULT 0,
|
||
|
|
difference_level NVARCHAR(20) NOT NULL, -- 重大差异/一般差异/轻微差异/无差异
|
||
|
|
check_time DATETIME2,
|
||
|
|
check_by NVARCHAR(100),
|
||
|
|
statistics_date DATE NOT NULL DEFAULT GETDATE(),
|
||
|
|
create_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
update_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
INDEX IX_tenant_check (tenant_id, check_code),
|
||
|
|
INDEX IX_difference_type (difference_type),
|
||
|
|
INDEX IX_material_code (material_code)
|
||
|
|
);
|
||
|
|
|
||
|
|
-- 6. 库存周转报表表
|
||
|
|
CREATE TABLE wms_report_inventory_turnover (
|
||
|
|
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
|
|
tenant_id NVARCHAR(50) NOT NULL,
|
||
|
|
material_id BIGINT NOT NULL,
|
||
|
|
material_code NVARCHAR(100) NOT NULL,
|
||
|
|
material_name NVARCHAR(200) NOT NULL,
|
||
|
|
material_category_name NVARCHAR(100),
|
||
|
|
statistics_month NVARCHAR(7) NOT NULL, -- YYYY-MM格式
|
||
|
|
begin_inventory_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
end_inventory_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
month_outstock_qty DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||
|
|
inventory_turnover_rate DECIMAL(10,2) NOT NULL DEFAULT 0,
|
||
|
|
simple_turnover_rate DECIMAL(10,2) NOT NULL DEFAULT 0,
|
||
|
|
turnover_evaluation NVARCHAR(50), -- 无流动/快速周转/正常周转/缓慢周转
|
||
|
|
statistics_date DATE NOT NULL DEFAULT GETDATE(),
|
||
|
|
create_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
update_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
INDEX IX_tenant_material (tenant_id, material_id),
|
||
|
|
INDEX IX_month (statistics_month),
|
||
|
|
INDEX IX_turnover_rate (inventory_turnover_rate),
|
||
|
|
INDEX IX_material_code (material_code)
|
||
|
|
);
|
||
|
|
|
||
|
|
-- =============================================
|
||
|
|
-- 报表数据汇总表(可选,用于快速查询)
|
||
|
|
-- =============================================
|
||
|
|
CREATE TABLE wms_report_summary (
|
||
|
|
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
|
|
tenant_id NVARCHAR(50) NOT NULL,
|
||
|
|
report_type NVARCHAR(50) NOT NULL, -- 报表类型
|
||
|
|
report_date DATE NOT NULL,
|
||
|
|
total_records INT NOT NULL DEFAULT 0,
|
||
|
|
last_update_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
create_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
|
|
INDEX IX_tenant_type_date (tenant_id, report_type, report_date)
|
||
|
|
);
|