zxt/stock 库存管理 (#1)
库存字段和映射修改 前端显示修改 Co-authored-by: escapemoon <18834580489@163.com> Reviewed-on: http://106.13.86.63:10082/lhq/FT542-WMS/pulls/1
This commit was merged in pull request #1.
This commit is contained in:
523
sql/add_bas_stock_fields.sql
Normal file
523
sql/add_bas_stock_fields.sql
Normal file
@@ -0,0 +1,523 @@
|
||||
/*
|
||||
T-SQL 脚本:在 dbo.bas_stock 表中添加用户要求的字段(保留字段名,不修改名称)
|
||||
说明:每个列在添加前会检查是否已存在,避免重复添加导致错误。
|
||||
请在 SQL Server 管理工具(如 SSMS)中对目标数据库运行本脚本。
|
||||
*/
|
||||
|
||||
-- 确认表存在
|
||||
IF OBJECT_ID('dbo.bas_stock','U') IS NULL
|
||||
BEGIN
|
||||
RAISERROR('Table dbo.bas_stock does not exist in current database.',16,1)
|
||||
RETURN
|
||||
END
|
||||
GO
|
||||
|
||||
-- 1) Rows: 集合数据(存 JSON 或序列化内容)
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Rows')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Rows] NVARCHAR(MAX) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 2) Title: 入库主题
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Title')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Title] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 3) Kuin: 入库id
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Kuin')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Kuin] VARCHAR(80) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 4) Complete1: 入库状态
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Complete1')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Complete1] VARCHAR(50) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 5) Cateid: 申请人
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Cateid')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Cateid] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 6) Date3: 申请日期
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Date3')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Date3] DATETIME2(7) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 7) Date5: 确认日期
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Date5')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Date5] DATETIME2(7) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 8) Catein: 审批人
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Catein')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Catein] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 9) Intro2: 审批意见(较长文本)
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Intro2')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Intro2] NVARCHAR(MAX) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 10) Intro: 入库备注(较长文本)
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Intro')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Intro] NVARCHAR(MAX) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 11) Caigou: 关联其他单据id
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Caigou')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Caigou] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 12) Date7: 添加时间
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Date7')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Date7] DATETIME2(7) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 13) Kg: 库管id
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Kg')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Kg] VARCHAR(80) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 14) Sort1: 入库类别
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Sort1')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Sort1] VARCHAR(100) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 15) Rkbh: 入库编号
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Rkbh')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Rkbh] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 16) Status: 审批状态
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'Status')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [Status] VARCHAR(50) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 17) KuinList: 产品明细(集合/JSON)
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'KuinList')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [KuinList] NVARCHAR(MAX) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 18) sysIcusIInheritIdIidI413: 客户名称
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'sysIcusIInheritIdIidI413')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [sysIcusIInheritIdIidI413] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 19) sysIcusIInheritIdIidI414: 磅单编号
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'sysIcusIInheritIdIidI414')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [sysIcusIInheritIdIidI414] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 20) sysIcusIInheritIdIidI415: 入库车号
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'sysIcusIInheritIdIidI415')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [sysIcusIInheritIdIidI415] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 为新字段添加列注释(extended properties)
|
||||
-- 仅在列存在时添加,避免重复报错
|
||||
IF COL_LENGTH('dbo.bas_stock','Rows') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'集合数据(JSON/序列化)', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Rows';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Title') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'入库主题', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Title';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Kuin') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'入库id', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Kuin';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Complete1') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'入库状态', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Complete1';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Cateid') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'申请人', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Cateid';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Date3') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'申请日期', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Date3';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Date5') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'确认日期', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Date5';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Catein') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'审批人', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Catein';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Intro2') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'审批意见', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Intro2';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Intro') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'入库备注', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Intro';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Caigou') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'关联其他单据id', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Caigou';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Date7') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'添加时间', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Date7';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Kg') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'库管id', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Kg';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Sort1') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'入库类别', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Sort1';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Rkbh') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'入库编号', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Rkbh';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','Status') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'审批状态', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'Status';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','KuinList') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'产品明细(JSON/集合)', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'KuinList';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','sysIcusIInheritIdIidI413') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'客户名称', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'sysIcusIInheritIdIidI413';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','sysIcusIInheritIdIidI414') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'磅单编号', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'sysIcusIInheritIdIidI414';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','sysIcusIInheritIdIidI415') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'入库车号', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'sysIcusIInheritIdIidI415';
|
||||
|
||||
-- 完成
|
||||
PRINT 'Columns processed and extended properties added. Review messages above for any errors.'
|
||||
GO
|
||||
|
||||
-- ==================================================
|
||||
-- 追加:从产品明细 JSON 中筛选的字段,添加到 bas_stock 表
|
||||
-- 列名前缀使用 pd_ (product detail),保留中文注释为 extended property
|
||||
-- ==================================================
|
||||
|
||||
-- pd_detail_id: 入库明细ID
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_detail_id')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_detail_id] BIGINT NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_product_name: 产品名称
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_product_name')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_product_name] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_model: 型号
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_model')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_model] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_unit: 单位
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_unit')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_unit] VARCHAR(50) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_unit_price: 单价
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_unit_price')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_unit_price] NUMERIC(18,6) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_aux_unit: 辅助单位
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_aux_unit')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_aux_unit] VARCHAR(50) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_attr1: 产品属性1
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_attr1')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_attr1] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_attr2: 产品属性2
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_attr2')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_attr2] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_quantity: 数量
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_quantity')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_quantity] NUMERIC(18,6) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_in_qty: 入库数
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_in_qty')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_in_qty] NUMERIC(18,6) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_aux_quantity: 辅助数量
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_aux_quantity')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_aux_quantity] NUMERIC(18,6) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_total_price: 总价
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_total_price')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_total_price] NUMERIC(18,6) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_cost_unit_price: 成本单价
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_cost_unit_price')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_cost_unit_price] NUMERIC(18,6) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_total_price_2: 总价(重复字段,保留第二项)
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_total_price_2')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_total_price_2] NUMERIC(18,6) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_account_cost_total: 核算成本总价
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_account_cost_total')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_account_cost_total] NUMERIC(18,6) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_account_quantity: 核算数量
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_account_quantity')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_account_quantity] NUMERIC(18,6) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_account_status: 核算状态
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_account_status')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_account_status] VARCHAR(50) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_batch_no: 批号
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_batch_no')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_batch_no] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_serial_no: 序列号
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_serial_no')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_serial_no] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_prod_date: 生产日期
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_prod_date')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_prod_date] DATETIME2(7) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_valid_date: 有效日期
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_valid_date')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_valid_date] DATETIME2(7) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_arrival_date: 到货日期
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_arrival_date')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_arrival_date] DATETIME2(7) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_remark: 备注
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_remark')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_remark] NVARCHAR(MAX) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_custom1..pd_custom6: 自定义1..6
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_custom1')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_custom1] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_custom2')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_custom2] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_custom3')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_custom3] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_custom4')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_custom4] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_custom5')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_custom5] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_custom6')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_custom6] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- pd_loader: 装卸工
|
||||
IF NOT EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.bas_stock') AND name = 'pd_loader')
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD [pd_loader] VARCHAR(255) COLLATE Chinese_PRC_CI_AS NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
-- 为上述 pd_ 字段添加 extended properties 注释
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_detail_id') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'入库明细ID', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_detail_id';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_product_name') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'产品名称', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_product_name';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_model') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'型号', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_model';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_unit') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'单位', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_unit';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_unit_price') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'单价', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_unit_price';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_aux_unit') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'辅助单位', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_aux_unit';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_attr1') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'产品属性1', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_attr1';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_attr2') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'产品属性2', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_attr2';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_quantity') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'数量', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_quantity';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_in_qty') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'入库数', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_in_qty';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_aux_quantity') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'辅助数量', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_aux_quantity';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_total_price') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'总价', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_total_price';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_cost_unit_price') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'成本单价', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_cost_unit_price';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_total_price_2') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'总价(重复项)', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_total_price_2';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_account_cost_total') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'核算成本总价', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_account_cost_total';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_account_quantity') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'核算数量', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_account_quantity';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_account_status') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'核算状态', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_account_status';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_batch_no') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'批号', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_batch_no';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_serial_no') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'序列号', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_serial_no';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_prod_date') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'生产日期', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_prod_date';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_valid_date') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'有效日期', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_valid_date';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_arrival_date') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'到货日期', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_arrival_date';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_remark') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'备注', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_remark';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_custom1') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'自定义1', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_custom1';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_custom2') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'自定义2', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_custom2';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_custom3') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'自定义3', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_custom3';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_custom4') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'自定义4', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_custom4';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_custom5') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'自定义5', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_custom5';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_custom6') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'自定义6', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_custom6';
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock','pd_loader') IS NOT NULL
|
||||
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'装卸工', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'bas_stock', @level2type=N'COLUMN',@level2name=N'pd_loader';
|
||||
|
||||
PRINT 'Product-detail columns appended and comments added.'
|
||||
GO
|
||||
120
sql/bas_stock_mapping_fixed.sql
Normal file
120
sql/bas_stock_mapping_fixed.sql
Normal file
@@ -0,0 +1,120 @@
|
||||
/*
|
||||
* 脚本说明:
|
||||
* 1. 创建新表 bas_stock_product_inventory (产品维度汇总) 和 bas_stock_inventory_detail (明细维度,解析 JSON 或映射原表)。
|
||||
* 2. 创建视图 v_bas_stock_mapping,将 bas_stock 原表字段映射到新业务语义。
|
||||
* 3. 提供 ETL 存储过程,用于从 bas_stock 同步数据到新表(示例逻辑)。
|
||||
*
|
||||
* 修改说明:
|
||||
* - 修正 model 映射为 product_model (原逻辑误映射为 unit_name)
|
||||
* - 修正 unit_name 映射为 bas_product.unit (原逻辑误映射为 model)
|
||||
*/
|
||||
|
||||
-- =============================================
|
||||
-- 1. 创建新表:库存明细表 (对应接口 rows / cklist 解析后的结构)
|
||||
-- =============================================
|
||||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[bas_stock_inventory_detail]') AND type in (N'U'))
|
||||
DROP TABLE [dbo].[bas_stock_inventory_detail];
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[bas_stock_inventory_detail](
|
||||
[id] [bigint] IDENTITY(1,1) NOT NULL,
|
||||
[stock_id] [varchar](32) NULL, -- 关联原表 bas_stock.stock_id
|
||||
[product_code] [varchar](255) NULL, -- 对应 bas_stock.product_id / 接口 order1
|
||||
[product_name] [varchar](255) NULL, -- 对应 bas_stock.product_name / 接口 title
|
||||
[product_model] [varchar](255) NULL, -- 对应 bas_stock.model / 接口 type1
|
||||
[warehouse_name] [varchar](200) NULL, -- 需关联 bas_warehouse 或从 JSON 解析
|
||||
[location_name] [varchar](200) NULL, -- 需关联 bas_cargo_space 或从 JSON 解析
|
||||
[unit_name] [varchar](50) NULL, -- 接口 unitname
|
||||
[quantity] [numeric](18, 3) DEFAULT 0, -- 对应 bas_stock.quantity
|
||||
[ratio] [numeric](18, 6) DEFAULT 1.0, -- 换算比例
|
||||
[detail_json] [nvarchar](max) NULL, -- 原始 JSON 数据 (cklist)
|
||||
[sync_time] [datetime2](7) DEFAULT SYSUTCDATETIME(),
|
||||
CONSTRAINT [PK_bas_stock_inventory_detail] PRIMARY KEY CLUSTERED ([id] ASC)
|
||||
);
|
||||
GO
|
||||
|
||||
-- =============================================
|
||||
-- 2. 创建新表:产品库存汇总表 (对应接口外层列表)
|
||||
-- =============================================
|
||||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[bas_stock_product_inventory]') AND type in (N'U'))
|
||||
DROP TABLE [dbo].[bas_stock_product_inventory];
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[bas_stock_product_inventory](
|
||||
[id] [bigint] IDENTITY(1,1) NOT NULL,
|
||||
[product_ord] [int] NULL, -- 接口 ord
|
||||
[product_code] [varchar](255) NULL, -- product_id
|
||||
[product_name] [varchar](255) NULL, -- product_name
|
||||
[product_model] [varchar](255) NULL, -- model
|
||||
[total_quantity] [numeric](18, 3) DEFAULT 0,
|
||||
[unit_name] [varchar](50) NULL,
|
||||
[warehouse_stock_json] [nvarchar](max) NULL, -- 存储 cklist JSON 字符串
|
||||
[updated_time] [datetime2](7) DEFAULT SYSUTCDATETIME(),
|
||||
CONSTRAINT [PK_bas_stock_product_inventory] PRIMARY KEY CLUSTERED ([id] ASC)
|
||||
);
|
||||
GO
|
||||
|
||||
-- =============================================
|
||||
-- 3. 创建视图:映射 bas_stock 到新语义 (含关联)
|
||||
-- =============================================
|
||||
IF OBJECT_ID('dbo.v_bas_stock_mapping', 'V') IS NOT NULL
|
||||
DROP VIEW dbo.v_bas_stock_mapping;
|
||||
GO
|
||||
|
||||
CREATE VIEW [dbo].[v_bas_stock_mapping] AS
|
||||
SELECT
|
||||
s.stock_id,
|
||||
s.product_id AS product_code,
|
||||
s.product_name,
|
||||
-- 修正:unit_name 取自 bas_product.unit
|
||||
ISNULL(p.unit, '个') AS unit_name,
|
||||
-- 修正:model 映射为 product_model
|
||||
ISNULL(s.model, '') AS product_model,
|
||||
s.quantity,
|
||||
s.warehouse_id,
|
||||
ISNULL(w.warehouse_name, '未知仓库') AS warehouse_name,
|
||||
s.cargo_space_id,
|
||||
ISNULL(c.cargo_space_name, '未知库位') AS location_name,
|
||||
s.lot_no,
|
||||
s.in_date
|
||||
FROM dbo.bas_stock s
|
||||
LEFT JOIN dbo.bas_warehouse w ON s.warehouse_id = w.warehouse_id
|
||||
LEFT JOIN dbo.bas_cargo_space c ON s.cargo_space_id = c.cargo_space_id
|
||||
LEFT JOIN dbo.bas_product p ON s.product_id = p.product_id;
|
||||
GO
|
||||
|
||||
-- =============================================
|
||||
-- 4. ETL 脚本:从 bas_stock 全量刷新到明细表
|
||||
-- =============================================
|
||||
-- 清空明细表
|
||||
TRUNCATE TABLE dbo.bas_stock_inventory_detail;
|
||||
|
||||
-- 插入数据
|
||||
INSERT INTO dbo.bas_stock_inventory_detail
|
||||
(stock_id, product_code, product_name, product_model, unit_name, quantity, warehouse_name, location_name)
|
||||
SELECT
|
||||
stock_id,
|
||||
product_code,
|
||||
product_name,
|
||||
product_model,
|
||||
unit_name,
|
||||
quantity,
|
||||
warehouse_name,
|
||||
location_name
|
||||
FROM dbo.v_bas_stock_mapping;
|
||||
|
||||
-- =============================================
|
||||
-- 5. ETL 脚本:生成汇总表数据 (简单聚合示例)
|
||||
-- =============================================
|
||||
TRUNCATE TABLE dbo.bas_stock_product_inventory;
|
||||
|
||||
INSERT INTO dbo.bas_stock_product_inventory
|
||||
(product_code, product_name, product_model, unit_name, total_quantity)
|
||||
SELECT
|
||||
product_code,
|
||||
MAX(product_name),
|
||||
MAX(product_model),
|
||||
MAX(unit_name),
|
||||
SUM(quantity)
|
||||
FROM dbo.bas_stock_inventory_detail
|
||||
GROUP BY product_code;
|
||||
Reference in New Issue
Block a user