feat: 完善WCS调度、库存追溯和出库分配
This commit is contained in:
@@ -11,6 +11,7 @@ BEGIN
|
||||
out_quantity decimal(18, 0) NULL,
|
||||
job_detail_id nvarchar(255) NULL,
|
||||
stockin_detail_id nvarchar(80) NULL,
|
||||
project_no nvarchar(80) NULL,
|
||||
create_time datetime2(7) NULL,
|
||||
update_time datetime2(7) NULL,
|
||||
remark nvarchar(500) NULL,
|
||||
@@ -19,6 +20,18 @@ BEGIN
|
||||
END
|
||||
GO
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock', 'project_no') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock ADD project_no nvarchar(80) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock_detail', 'project_no') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock_detail ADD project_no nvarchar(80) NULL;
|
||||
END
|
||||
GO
|
||||
|
||||
IF COL_LENGTH('dbo.bas_stock_detail', 'detail_id') < 160
|
||||
BEGIN
|
||||
ALTER TABLE dbo.bas_stock_detail ALTER COLUMN detail_id nvarchar(80) NOT NULL;
|
||||
@@ -46,7 +59,7 @@ GO
|
||||
|
||||
INSERT INTO dbo.bas_stock_detail (
|
||||
detail_id, stock_id, product_status, lot_no, product_id, product_name,
|
||||
quantity, out_quantity, job_detail_id, stockin_detail_id, create_time
|
||||
quantity, out_quantity, job_detail_id, stockin_detail_id, project_no, create_time
|
||||
)
|
||||
SELECT
|
||||
bs.stock_id + N'-1',
|
||||
@@ -59,6 +72,7 @@ SELECT
|
||||
bs.out_quantity,
|
||||
bs.job_detail_id,
|
||||
bs.stockin_detail_id,
|
||||
bs.project_no,
|
||||
GETDATE()
|
||||
FROM dbo.bas_stock bs
|
||||
WHERE NOT EXISTS (
|
||||
@@ -131,7 +145,8 @@ BEGIN
|
||||
@lot_no NVARCHAR(80),
|
||||
@in_quantity DECIMAL(18, 0),
|
||||
@stockin_id NVARCHAR(80),
|
||||
@stockin_detail_id NVARCHAR(255);
|
||||
@stockin_detail_id NVARCHAR(255),
|
||||
@project_no NVARCHAR(80);
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM mydo_job WHERE job_id = @job_id)
|
||||
BEGIN
|
||||
@@ -169,7 +184,7 @@ BEGIN
|
||||
DECLARE cur_finish_job_detail CURSOR LOCAL FAST_FORWARD READ_ONLY FOR
|
||||
SELECT
|
||||
job_detail_id, product_id, product_name, lot_no, in_quantity,
|
||||
stockin_id, stockin_detail_id
|
||||
stockin_id, stockin_detail_id, project_no
|
||||
FROM mydo_job_detail WHERE job_id = @job_id;
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
@@ -177,7 +192,7 @@ BEGIN
|
||||
OPEN cur_finish_job_detail;
|
||||
FETCH NEXT FROM cur_finish_job_detail INTO
|
||||
@job_detail_id, @product_id, @product_name, @lot_no, @in_quantity,
|
||||
@stockin_id, @stockin_detail_id;
|
||||
@stockin_id, @stockin_detail_id, @project_no;
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
@@ -187,19 +202,34 @@ BEGIN
|
||||
|
||||
IF @stock_id IS NULL
|
||||
BEGIN
|
||||
SELECT TOP 1 @in_type = in_type
|
||||
FROM in_stockin
|
||||
WHERE stockin_id = @stockin_id;
|
||||
SELECT TOP 1 @in_type = source.in_type
|
||||
FROM (
|
||||
SELECT 1 AS source_order, current_bill.in_type
|
||||
FROM dbo.in_stockin current_bill
|
||||
WHERE current_bill.stockin_id = @stockin_id
|
||||
UNION ALL
|
||||
SELECT 2 AS source_order, history_bill.in_type
|
||||
FROM dbo.in_stockin_finish history_bill
|
||||
WHERE history_bill.stockin_id = @stockin_id
|
||||
UNION ALL
|
||||
SELECT 3 AS source_order, archived_stock.in_type
|
||||
FROM dbo.bas_stock_detail_finish archived_detail
|
||||
INNER JOIN dbo.bas_stock_finish archived_stock
|
||||
ON archived_stock.stock_id = archived_detail.stock_id
|
||||
WHERE archived_detail.detail_id = @stockin_detail_id
|
||||
) source
|
||||
WHERE NULLIF(LTRIM(RTRIM(source.in_type)), '') IS NOT NULL
|
||||
ORDER BY source.source_order;
|
||||
|
||||
SET @stock_id = 'KC' + FORMAT(@now, 'yyyyMMddHHmmssfff');
|
||||
|
||||
INSERT INTO bas_stock (
|
||||
stock_id, cargo_space_id, stock_status, in_date, quantity,
|
||||
job_id, tray_code, out_quantity, stockin_id, in_type, warehouse_id, warehouse_name
|
||||
job_id, tray_code, out_quantity, stockin_id, project_no, in_type, warehouse_id, warehouse_name
|
||||
)
|
||||
VALUES (
|
||||
@stock_id, @cargo_space_id, '1', @now, 0,
|
||||
@job_id, @tray_code, 0, @stockin_id, @in_type, @warehouse_id, @warehouse_name
|
||||
@job_id, @tray_code, 0, @stockin_id, @project_no, @in_type, @warehouse_id, @warehouse_name
|
||||
);
|
||||
END;
|
||||
|
||||
@@ -208,16 +238,16 @@ BEGIN
|
||||
|
||||
INSERT INTO bas_stock_detail (
|
||||
detail_id, stock_id, product_status, lot_no, product_id, product_name,
|
||||
quantity, out_quantity, job_detail_id, stockin_detail_id, create_time
|
||||
quantity, out_quantity, job_detail_id, stockin_detail_id, project_no, create_time
|
||||
)
|
||||
VALUES (
|
||||
@detail_id, @stock_id, '1', @lot_no, @product_id, @product_name,
|
||||
@in_quantity, 0, @job_detail_id, @stockin_detail_id, @now
|
||||
@in_quantity, 0, @job_detail_id, @stockin_detail_id, @project_no, @now
|
||||
);
|
||||
|
||||
FETCH NEXT FROM cur_finish_job_detail INTO
|
||||
@job_detail_id, @product_id, @product_name, @lot_no, @in_quantity,
|
||||
@stockin_id, @stockin_detail_id;
|
||||
@stockin_id, @stockin_detail_id, @project_no;
|
||||
END;
|
||||
|
||||
CLOSE cur_finish_job_detail;
|
||||
|
||||
Reference in New Issue
Block a user