Files
old_jintiantongye_wms/db/数据库更新20171024(debug).sql
2025-09-12 17:30:18 +08:00

74 lines
5.1 KiB
Transact-SQL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.

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