74 lines
5.1 KiB
Transact-SQL
74 lines
5.1 KiB
Transact-SQL
USE [ASRS_WXZD_JYMH_CPK]
|
||
GO
|
||
-- 从底层开始往上放,同一层的01/02排单伸先放,然后放04/05排浅货位,最后再03/06排深货位, 同排的从第1列开始往后放。
|
||
update kwjbxx set storeDist = ceng * 1000 + lie * 10 + case pai when '03' then 4 when '04' then 3 else pai end
|
||
select pai,lie,ceng,kwbh,storeDist FROM kwjbxx ORDER BY storeDist
|
||
go
|
||
/****** Object: UserDefinedFunction [dbo].[TF_待入库产品各巷道库位分配数] Script Date: 2017/10/23 星期一 15:25:50 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
ALTER FUNCTION [dbo].[TF_待入库产品各巷道库位分配数]
|
||
(
|
||
@唯一产品标识 varchar(100) -- 区分唯一待入库产品的标识字符串。参考v_zyzl视图定义。有些项目只区分到产品,有些项目不同批号代表不同产品
|
||
)
|
||
RETURNS TABLE
|
||
AS
|
||
/**
|
||
* 指定待入库产品在各个巷道托盘数分布情况。包括已经安排入库库位,但是木有入库完成的入库指令部分。
|
||
* 不同的项目都有差异,因此改用函数提取各类产品在各个巷道的托盘个数分布情况。
|
||
*
|
||
* 同之前使用的v_cpHdKws不同的是,该函数仅返回该产品
|
||
*
|
||
* Used by 入库库位自动安排程序
|
||
* Created by jzx on 2014-12-9
|
||
* Modified by jzx on 2015-9-17 因为入库指令一旦确定库位,就会往cpkcxx表插入零库存记录,所以之前的联合
|
||
未完成指令的语句就可以不用了。
|
||
* Modified by jzx on 2017-10-24 增加availablePairs字段输出
|
||
*/
|
||
RETURN
|
||
SELECT k.hdh hdh
|
||
, SUM(CASE WHEN k.xnkw=0 AND k.zsl=0 AND k.托盘个数=0 AND k.sfsd=0 AND sfyx=1
|
||
AND k.kwbh=b.kwbh2 THEN 1 ELSE 0 END) AS availablePairs -- 此巷道是否有可配对入库的深浅货位个数
|
||
, MAX(c.kws) kws
|
||
FROM kwjbxx(NOLOCK) k
|
||
LEFT JOIN (SELECT DISTINCT b.kwbh,ISNULL(b.wckw, b.nckw) kwbh2
|
||
FROM cpkcxx(NOLOCK) a, kwjbxx b(NOLOCK)
|
||
WHERE cpbh+'.'+lpxx = @唯一产品标识
|
||
AND a.kwbh=b.kwbh --AND b.wckw IS NOT NULL OR b.nckw IS NOT NULL
|
||
)b ON k.kwbh=b.kwbh2
|
||
LEFT JOIN (SELECT b.hdh,COUNT(distinct b.kwbh) kws
|
||
FROM cpkcxx(NOLOCK) a, kwjbxx b(NOLOCK)
|
||
WHERE cpbh+'.'+lpxx = @唯一产品标识
|
||
AND a.kwbh=b.kwbh
|
||
GROUP BY b.hdh
|
||
)c ON k.hdh=c.hdh
|
||
GROUP BY k.hdh
|
||
/*
|
||
SELECT hdh, COUNT(DISTINCT a.kwbh) kws
|
||
FROM
|
||
(
|
||
SELECT kwbh,cpbh,lpxx
|
||
FROM cpkcxx
|
||
WHERE kwbh like '[0-1]%' AND cpbh=@唯一产品标识
|
||
AND rksj > = DATEADD(d, -1, getdate()) -- 仅考虑一天的入库时间差异。
|
||
)
|
||
a JOIN kwjbxx k ON a.kwbh=k.kwbh
|
||
WHERE xnkw=0
|
||
GROUP BY hdh
|
||
*/
|
||
go
|
||
|
||
update sys_SQL_statements set SQL_string=
|
||
'SELECT TOP 1 kwbh,zsl,nckw,kws,wckw FROM kwjbxx r
|
||
LEFT JOIN (SELECT availablePairs,kws FROM TF_待入库产品各巷道库位分配数(?)) b ON r.hdh=b.hdh
|
||
WHERE zsl=0 AND 托盘个数=0 AND sfsd=0 AND xnkw=0 AND sfyx=1
|
||
AND ckmc=? AND pai BETWEEN ? AND ?
|
||
AND (qysx IS NULL OR qysx=?) AND (kfwpgd>=? OR kfwpgd IS NULL) AND (kfwpzl>=? OR kfwpzl IS NULL)
|
||
AND NOT EXISTS(SELECT 2 FROM v_未完成指令 w WHERE w.kwbh=r.kwbh)'
|
||
where ID='可入库位搜索语句';
|
||
go
|
||
update sys_SQL_statements set SQL_string='storeDist'
|
||
where ID='orderClauseForDistance';
|
||
go |