Files
xiaoqu_mcp_service/xiaoqu-franchisee/doc/warehouse_stock_daily_check.sql
T
xiaoqu b6d4bf6126 导入三个参考项目: xiaoqu-franchisee / xiaoqu-publicbeanandmap / elasticsearchpublic
作为 xiaoqu-agent-service(MCP 服务) 的开发参考。新系统与旧系统零代码耦合,
仅照搬其行级数据权限规则与数据源结构。设计方案见 xiaoqu-franchisee/doc/agent-mcp-service-design.md
2026-09-01 23:00:47 +08:00

70 lines
3.4 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =====================================================
-- 每日库存盘点与结余记录 DDL
-- @since 2026-06-19
-- 设计文档:doc/warehouse-stock-daily-check-design.md
-- =====================================================
-- 1. 每日结余表
CREATE TABLE IF NOT EXISTS warehouse_stock_daily_balance (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
stat_date DATE NOT NULL COMMENT '统计日期(前一日)',
materiel_definition_id BIGINT NOT NULL COMMENT '物料 ID',
warehouse_id BIGINT NOT NULL COMMENT '仓库 ID',
warehouse_name VARCHAR(100) DEFAULT NULL COMMENT '仓库名称(冗余便于查询)',
warehouse_no VARCHAR(50) DEFAULT NULL,
materiel_full_name VARCHAR(200) DEFAULT NULL,
material_no VARCHAR(50) DEFAULT NULL,
materiel_index_id BIGINT DEFAULT NULL,
current_inventory INT NOT NULL DEFAULT 0 COMMENT '当日结余库存(盘点执行时仓库表 current_inventory)',
out_of_stock INT NOT NULL DEFAULT 0 COMMENT '当日定格出库中库存(仅作归档,前端不读)',
battery_inventory INT NOT NULL DEFAULT 0 COMMENT '当日定格费用化库存',
in_count_today INT NOT NULL DEFAULT 0 COMMENT '当日正向入库流水',
out_count_today INT NOT NULL DEFAULT 0 COMMENT '当日正向出库流水',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uk_date_md_wh (stat_date, materiel_definition_id, warehouse_id),
KEY idx_md_wh_date (materiel_definition_id, warehouse_id, stat_date),
KEY idx_date (stat_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='每日库存结余快照';
-- 2. 盘点日志表
CREATE TABLE IF NOT EXISTS warehouse_stock_check_log (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
check_date DATE NOT NULL COMMENT '盘点日期(前一日)',
materiel_definition_id BIGINT NOT NULL,
warehouse_id BIGINT NOT NULL,
warehouse_name VARCHAR(100) DEFAULT NULL,
warehouse_no VARCHAR(50) DEFAULT NULL,
materiel_full_name VARCHAR(200) DEFAULT NULL,
material_no VARCHAR(50) DEFAULT NULL,
yesterday_balance INT NOT NULL DEFAULT 0 COMMENT '昨日结余 current_inventory',
yesterday_out_of_stock INT NOT NULL DEFAULT 0,
yesterday_battery INT NOT NULL DEFAULT 0,
in_count INT NOT NULL DEFAULT 0 COMMENT '当日正向入库总数',
out_count INT NOT NULL DEFAULT 0 COMMENT '当日正向出库总数',
cancel_in_count INT NOT NULL DEFAULT 0 COMMENT '当日作废入库总数(反向扣减)',
cancel_out_count INT NOT NULL DEFAULT 0 COMMENT '当日作废出库总数(反向恢复)',
sub_detail_count INT NOT NULL DEFAULT 0 COMMENT '当日 SN 子明细数量(仅排查用)',
expected_inventory INT NOT NULL,
actual_inventory INT NOT NULL,
difference INT NOT NULL,
has_difference TINYINT NOT NULL DEFAULT 0 COMMENT '0=无差异 1=有差异',
related_in_order_nos VARCHAR(1000) DEFAULT NULL COMMENT '差异涉及的入库单号列表',
related_out_order_nos VARCHAR(1000) DEFAULT NULL COMMENT '差异涉及的出库单号列表',
memo VARCHAR(500) DEFAULT NULL,
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uk_date_md_wh (check_date, materiel_definition_id, warehouse_id),
KEY idx_diff_date (has_difference, check_date),
KEY idx_md_wh_date (materiel_definition_id, warehouse_id, check_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存盘点日志';