66 lines
3.4 KiB
Transact-SQL
66 lines
3.4 KiB
Transact-SQL
CREATE PROCEDURE [dbo].[订单信息_查询数据_加收货人]
|
|
@买方名称_check bit=null,
|
|
@客户 nvarchar(50)= null,
|
|
@创建人_check bit=null,
|
|
@创建人 nvarchar(50)= null,
|
|
@订单编号_check bit=null,
|
|
@订单流水号 int=null,
|
|
@下单日期_check bit=null,
|
|
@开始时间 datetime=null,
|
|
@结束时间 datetime=null,
|
|
@订单状态_check bit=null,
|
|
@订单状态 nvarchar(50)=null
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @selectStr nvarchar(max);
|
|
DECLARE @selectStrWhere nvarchar(max);
|
|
|
|
-- 修改人:Ld 修改时间:2026-09-21 15:13:20; 合同编号优先显示补货来源关联的销售合同号,普通订单显示自身项目合同号。
|
|
SET @selectStr = N'
|
|
select
|
|
PDM_订单信息_视图.*,
|
|
COALESCE(来源项目.合同编号, 当前项目.合同编号) AS 合同编号,
|
|
A.暂停原因数量
|
|
from PDM_订单信息_视图
|
|
LEFT JOIN dbo.[补货订单来源关联] AS 补货来源
|
|
ON 补货来源.补货订单流水号 = PDM_订单信息_视图.订单流水号
|
|
AND ISNULL(补货来源.是否有效, 1) = 1
|
|
LEFT JOIN dbo.PDM_项目名称 AS 来源项目
|
|
ON 补货来源.来源项目流水号 = 来源项目.项目流水号
|
|
LEFT JOIN dbo.PDM_项目名称 AS 当前项目
|
|
ON PDM_订单信息_视图.项目流水号 = 当前项目.项目流水号
|
|
LEFT JOIN
|
|
(
|
|
select PDM_订单信息_视图.订单流水号, ISNULL(COUNT([车间装配管理_暂停装配_记录表].暂停原因), 0) AS 暂停原因数量
|
|
FROM PDM_订单信息_视图
|
|
LEFT join PDM_机床名称 on PDM_订单信息_视图.项目流水号 = PDM_机床名称.项目流水号
|
|
LEFT join [dbo].[PDM_组件名称] on PDM_机床名称.机床流水号 = PDM_组件名称.机床流水号
|
|
LEFT join [dbo].[车间装配管理_装配任务] on PDM_组件名称.组件流水号 = 车间装配管理_装配任务.组件流水号
|
|
LEFT join [dbo].[车间装配管理_暂停装配_记录表] on [dbo].[车间装配管理_暂停装配_记录表].装配任务流水号 = 车间装配管理_装配任务.装配任务流水号
|
|
group by PDM_订单信息_视图.订单流水号
|
|
) AS A
|
|
ON A.订单流水号 = PDM_订单信息_视图.订单流水号 ';
|
|
|
|
SET @selectStrWhere = N'where 是否提交 <> 0 ';
|
|
|
|
IF(@买方名称_check = 1)
|
|
SET @selectStrWhere = @selectStrWhere + N' and 买方 + isnull(收货人,'''') like + ''%'' + @客户 + ''%'' ';
|
|
IF(@创建人_check = 1)
|
|
SET @selectStrWhere = @selectStrWhere + N' and isnull(创建人,'''') like + ''%'' + @创建人 + ''%'' ';
|
|
IF(@订单编号_check = 1)
|
|
SET @selectStrWhere = @selectStrWhere + N' and PDM_订单信息_视图.订单流水号 = @订单流水号 ';
|
|
IF(@下单日期_check = 1)
|
|
SET @selectStrWhere = @selectStrWhere + N' and 创建日期 >= @开始时间 and 创建日期 <= @结束时间 ';
|
|
IF(@订单状态_check = 1)
|
|
SET @selectStrWhere = @selectStrWhere + N' and 订单状态 = @订单状态 ';
|
|
|
|
SET @selectStr = @selectStr + @selectStrWhere + N'order by 合同操作日期 DESC';
|
|
PRINT @selectStr;
|
|
EXEC sp_executesql @selectStr,
|
|
N'@客户 nvarchar(50),@创建人 nvarchar(50),@订单流水号 int,@开始时间 datetime,@结束时间 datetime,@订单状态 nvarchar(50)',
|
|
@客户,@创建人,@订单流水号,@开始时间,@结束时间,@订单状态;
|
|
END;
|
|
|