feat: 更新装配任务和质量报表
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
IF COL_LENGTH(N'dbo.MES_接口_生产计划', N'预计送检日期') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE [dbo].[MES_接口_生产计划] ADD [预计送检日期] datetime NULL;
|
||||
END;
|
||||
|
||||
IF COL_LENGTH(N'dbo.MES_接口_生产计划', N'销售要求日期') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE [dbo].[MES_接口_生产计划] ADD [销售要求日期] datetime NULL;
|
||||
END;
|
||||
@@ -0,0 +1,17 @@
|
||||
ALTER VIEW dbo.View_生产订单_MES
|
||||
AS
|
||||
SELECT a.订单编号, a.合同号, b.订单拆分内码, a.订单类型, a.订单状态, a.物料编号, a.物料描述, b.计划数量 AS 工序计划数量, a.计量单位, a.下达日期,
|
||||
a.计划开始, a.计划完成, a.项目代码, a.备注, a.重量, a.占用情况, a.加急状态, a.同步时间, b.订单行号, b.物料编码, b.物料名称, b.基本数量, b.计划数量,
|
||||
b.已发货数量, b.订单发货类型, b.仓库代码, b.可视订单, b.物料类型, b.阶段标识, b.工序名称, b.顺序编号, b.性质, b.总工时, b.行文本备注, b.不装配,
|
||||
b.指派对象, b.指派数量, b.计划开始时间, b.计划完成时间, b.最晚开始时间, b.派工状态, b.任务状态, b.修改时间, b.外协通知, b.优先级, b.未完成说明,
|
||||
b.派工特殊说明, b.最后编辑人, b.最后编辑时间, b.可执行, b.收料, b.收料数量, b.开工, b.首检, b.巡检, b.完成数量, b.进度, b.序检, b.测试, b.入库,
|
||||
b.AID AS TaskAID, b.加工状态, b.操作时间, b.开工时间, b.完工时间, b.合格数量, b.不合格数量, b.让步放行数量, b.报废数量,
|
||||
a.计划数量 AS 计划数量订单, b.排产状态, a.自制件属性, b.二次派工, a.周转单打印次数, b.外协打印次数, b.单重, b.外协备注, a.齐套, a.单据状态,
|
||||
a.生产工艺, a.标准工艺, a.任务状态 AS Expr1, b.指派对象编号, dbo.MES_资源主数据.VisCode, a.发料状态, a.拣配状态, a.计划号, b.外协分组,
|
||||
a.加急数量, a.发货状态, a.要求发货日期, a.加急总数, b.打印数量, a.入库数量, dbo.物料基础数据_零件图纸.worker, b.本次检数, b.任务概述, a.齐套时间,
|
||||
a.派工时间, a.钣金预达时间, a.预计送检日期, a.销售要求日期
|
||||
FROM dbo.MES_接口_生产计划_生产任务 AS b LEFT OUTER JOIN
|
||||
dbo.物料基础数据_零件图纸 ON b.物料编码 = dbo.物料基础数据_零件图纸.num LEFT OUTER JOIN
|
||||
dbo.MES_资源主数据 ON b.指派对象 = dbo.MES_资源主数据.Name RIGHT OUTER JOIN
|
||||
dbo.MES_接口_生产计划 AS a ON b.订单编号 = a.订单编号
|
||||
WHERE (b.物料类型 = 'pit_Resource') AND (a.单据状态 IS NULL)
|
||||
@@ -0,0 +1,17 @@
|
||||
CREATE VIEW dbo.View_生产订单_MES
|
||||
AS
|
||||
SELECT a.订单编号, a.合同号, b.订单拆分内码, a.订单类型, a.订单状态, a.物料编号, a.物料描述, b.计划数量 AS 工序计划数量, a.计量单位, a.下达日期,
|
||||
a.计划开始, a.计划完成, a.项目代码, a.备注, a.重量, a.占用情况, a.加急状态, a.同步时间, b.订单行号, b.物料编码, b.物料名称, b.基本数量, b.计划数量,
|
||||
b.已发货数量, b.订单发货类型, b.仓库代码, b.可视订单, b.物料类型, b.阶段标识, b.工序名称, b.顺序编号, b.性质, b.总工时, b.行文本备注, b.不装配,
|
||||
b.指派对象, b.指派数量, b.计划开始时间, b.计划完成时间, b.最晚开始时间, b.派工状态, b.任务状态, b.修改时间, b.外协通知, b.优先级, b.未完成说明,
|
||||
b.派工特殊说明, b.最后编辑人, b.最后编辑时间, b.可执行, b.收料, b.收料数量, b.开工, b.首检, b.巡检, b.完成数量, b.进度, b.序检, b.测试, b.入库,
|
||||
b.AID AS TaskAID, b.加工状态, b.操作时间, b.开工时间, b.完工时间, b.合格数量, b.不合格数量, b.让步放行数量, b.报废数量,
|
||||
a.计划数量 AS 计划数量订单, b.排产状态, a.自制件属性, b.二次派工, a.周转单打印次数, b.外协打印次数, b.单重, b.外协备注, a.齐套, a.单据状态,
|
||||
a.生产工艺, a.标准工艺, a.任务状态 AS Expr1, b.指派对象编号, dbo.MES_资源主数据.VisCode, a.发料状态, a.拣配状态, a.计划号, b.外协分组,
|
||||
a.加急数量, a.发货状态, a.要求发货日期, a.加急总数, b.打印数量, a.入库数量, dbo.物料基础数据_零件图纸.worker, b.本次检数, b.任务概述, a.齐套时间,
|
||||
a.派工时间, a.钣金预达时间
|
||||
FROM dbo.MES_接口_生产计划_生产任务 AS b LEFT OUTER JOIN
|
||||
dbo.物料基础数据_零件图纸 ON b.物料编码 = dbo.物料基础数据_零件图纸.num LEFT OUTER JOIN
|
||||
dbo.MES_资源主数据 ON b.指派对象 = dbo.MES_资源主数据.Name RIGHT OUTER JOIN
|
||||
dbo.MES_接口_生产计划 AS a ON b.订单编号 = a.订单编号
|
||||
WHERE (b.物料类型 = 'pit_Resource') AND (a.单据状态 IS NULL)
|
||||
@@ -0,0 +1,30 @@
|
||||
CREATE OR ALTER PROCEDURE [dbo].[装配中心任务看板_可执行任务数]
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
;WITH base AS (
|
||||
SELECT
|
||||
CASE WHEN 物料描述 LIKE '%系统%' THEN 1 ELSE 0 END AS 是否系统类,
|
||||
ISNULL(发料状态, 0) AS 发料状态,
|
||||
派工时间,
|
||||
ISNULL(预计送检日期,
|
||||
CASE
|
||||
WHEN 物料描述 LIKE '%系统%' THEN DATEADD(DAY, 3, 钣金预达时间)
|
||||
ELSE DATEADD(DAY, 3, 齐套时间)
|
||||
END
|
||||
) AS 预计送检日期
|
||||
FROM [dbo].[View_生产订单_MES]
|
||||
WHERE [物料类型] = 'pit_Resource'
|
||||
AND [自制件属性] LIKE '%装配%'
|
||||
AND ISNULL(任务状态, 0) < 4
|
||||
AND [物料描述] NOT LIKE '%软管总成%'
|
||||
AND [物料描述] NOT LIKE '%发货部件%'
|
||||
AND [不装配] <> '否'
|
||||
)
|
||||
SELECT
|
||||
SUM(CASE WHEN 是否系统类 = 0 AND 发料状态 = 1 THEN 1 ELSE 0 END) AS 阀类可执行任务数,
|
||||
SUM(CASE WHEN 是否系统类 = 1 AND 派工时间 IS NOT NULL THEN 1 ELSE 0 END) AS 系统类可执行任务数,
|
||||
SUM(CASE WHEN CAST(预计送检日期 AS date) < CAST(GETDATE() AS date) THEN 1 ELSE 0 END) AS 及时送检数
|
||||
FROM base;
|
||||
END;
|
||||
21
db_backups/装配中心任务看板_可执行任务数_alter_status_20260618_162248.sql
Normal file
21
db_backups/装配中心任务看板_可执行任务数_alter_status_20260618_162248.sql
Normal file
@@ -0,0 +1,21 @@
|
||||
CREATE OR ALTER PROCEDURE [dbo].[装配中心任务看板_可执行任务数]
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT
|
||||
SUM(CASE WHEN 物料描述 NOT LIKE '%系统%' AND ISNULL(发料状态, 0) = 1 THEN 1 ELSE 0 END) AS 阀类可执行任务数,
|
||||
SUM(CASE WHEN 物料描述 LIKE '%系统%' AND 派工时间 IS NOT NULL THEN 1 ELSE 0 END) AS 系统类可执行任务数,
|
||||
SUM(CASE
|
||||
WHEN 物料描述 NOT LIKE '%系统%' AND ISNULL(发料状态, 0) = 1 THEN 1
|
||||
WHEN 物料描述 LIKE '%系统%' AND 派工时间 IS NOT NULL THEN 1
|
||||
ELSE 0
|
||||
END) AS 可执行任务数
|
||||
FROM [dbo].[View_生产订单_MES]
|
||||
WHERE [物料类型] = 'pit_Resource'
|
||||
AND [自制件属性] LIKE '%装配%'
|
||||
AND ISNULL(任务状态, 0) < 4
|
||||
AND [物料描述] NOT LIKE '%软管总成%'
|
||||
AND [物料描述] NOT LIKE '%发货部件%'
|
||||
AND [不装配] <> '否';
|
||||
END;
|
||||
@@ -0,0 +1,21 @@
|
||||
CREATE PROCEDURE [dbo].[装配中心任务看板_可执行任务数]
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT
|
||||
SUM(CASE WHEN 物料描述 NOT LIKE '%系统%' AND ISNULL(发料状态, 0) = 1 THEN 1 ELSE 0 END) AS 阀类可执行任务数,
|
||||
SUM(CASE WHEN 物料描述 LIKE '%系统%' AND 派工时间 IS NOT NULL THEN 1 ELSE 0 END) AS 系统类可执行任务数,
|
||||
SUM(CASE
|
||||
WHEN 物料描述 NOT LIKE '%系统%' AND ISNULL(发料状态, 0) = 1 THEN 1
|
||||
WHEN 物料描述 LIKE '%系统%' AND 派工时间 IS NOT NULL THEN 1
|
||||
ELSE 0
|
||||
END) AS 可执行任务数
|
||||
FROM [dbo].[View_生产订单_MES]
|
||||
WHERE [物料类型] = 'pit_Resource'
|
||||
AND [自制件属性] LIKE '%装配%'
|
||||
AND ISNULL(任务状态, 0) < 4
|
||||
AND [物料描述] NOT LIKE '%软管总成%'
|
||||
AND [物料描述] NOT LIKE '%发货部件%'
|
||||
AND [不装配] <> '否';
|
||||
END;
|
||||
21
db_backups/装配中心任务看板_可执行任务数_create_20260618_162141.sql
Normal file
21
db_backups/装配中心任务看板_可执行任务数_create_20260618_162141.sql
Normal file
@@ -0,0 +1,21 @@
|
||||
CREATE OR ALTER PROCEDURE [dbo].[装配中心任务看板_可执行任务数]
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT
|
||||
SUM(CASE WHEN 物料描述 NOT LIKE '%系统%' AND 齐套时间 IS NOT NULL THEN 1 ELSE 0 END) AS 阀类可执行任务数,
|
||||
SUM(CASE WHEN 物料描述 LIKE '%系统%' AND 派工时间 IS NOT NULL THEN 1 ELSE 0 END) AS 系统类可执行任务数,
|
||||
SUM(CASE
|
||||
WHEN 物料描述 NOT LIKE '%系统%' AND 齐套时间 IS NOT NULL THEN 1
|
||||
WHEN 物料描述 LIKE '%系统%' AND 派工时间 IS NOT NULL THEN 1
|
||||
ELSE 0
|
||||
END) AS 可执行任务数
|
||||
FROM [dbo].[View_生产订单_MES]
|
||||
WHERE [物料类型] = 'pit_Resource'
|
||||
AND [自制件属性] LIKE '%装配%'
|
||||
AND ISNULL(任务状态, 0) < 4
|
||||
AND [物料描述] NOT LIKE '%软管总成%'
|
||||
AND [物料描述] NOT LIKE '%发货部件%'
|
||||
AND [不装配] <> '否';
|
||||
END;
|
||||
129
db_backups/计划排产_系统类任务查询_alter_date_fields_20260618_140257.sql
Normal file
129
db_backups/计划排产_系统类任务查询_alter_date_fields_20260618_140257.sql
Normal file
@@ -0,0 +1,129 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_系统类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,ISNULL(预计送检日期, DATEADD(DAY, 3, 钣金预达时间)) as 预计送检日期,销售要求日期,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
|
||||
钣金预达时间,v.[合同号] '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
129
db_backups/计划排产_系统类任务查询_alter_progress_20260618_102524.sql
Normal file
129
db_backups/计划排产_系统类任务查询_alter_progress_20260618_102524.sql
Normal file
@@ -0,0 +1,129 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_系统类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
|
||||
钣金预达时间,v.计划开始时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
@@ -0,0 +1,129 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_系统类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,ISNULL(预计送检日期, DATEADD(DAY, 3, 钣金预达时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
|
||||
钣金预达时间,v.[合同号] '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
133
db_backups/计划排产_系统类任务查询_alter_sap_min_date_20260618_143140.sql
Normal file
133
db_backups/计划排产_系统类任务查询_alter_sap_min_date_20260618_143140.sql
Normal file
@@ -0,0 +1,133 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_系统类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,ISNULL(预计送检日期, DATEADD(DAY, 3, 钣金预达时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join (
|
||||
SELECT 项目号, 物料号, MIN(交货日期理论齐套日期) as 交货日期理论齐套日期
|
||||
FROM SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2
|
||||
GROUP BY 项目号, 物料号
|
||||
) s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
|
||||
钣金预达时间,v.[合同号] '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
129
db_backups/计划排产_系统类任务查询_before_date_fields_20260618_140125.sql
Normal file
129
db_backups/计划排产_系统类任务查询_before_date_fields_20260618_140125.sql
Normal file
@@ -0,0 +1,129 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_系统类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
|
||||
钣金预达时间,v.[合同号] '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
98
db_backups/计划排产_系统类任务查询_before_progress_20260618_102446.sql
Normal file
98
db_backups/计划排产_系统类任务查询_before_progress_20260618_102446.sql
Normal file
@@ -0,0 +1,98 @@
|
||||
|
||||
CREATE PROCEDURE [dbo].[计划排产_系统类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(4000)
|
||||
declare @selectStrWhere nvarchar(4000)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
|
||||
钣金预达时间,v.计划开始时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
@@ -0,0 +1,129 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_系统类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,ISNULL(预计送检日期, DATEADD(DAY, 3, 钣金预达时间)) as 预计送检日期,销售要求日期,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
|
||||
钣金预达时间,v.[合同号] '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
129
db_backups/计划排产_系统类任务查询_before_sap_min_date_20260618_143032.sql
Normal file
129
db_backups/计划排产_系统类任务查询_before_sap_min_date_20260618_143032.sql
Normal file
@@ -0,0 +1,129 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_系统类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,ISNULL(预计送检日期, DATEADD(DAY, 3, 钣金预达时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
|
||||
钣金预达时间,v.[合同号] '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
213
db_backups/计划排产_系统类任务查询_导出_alter_date_fields_20260618_140416.sql
Normal file
213
db_backups/计划排产_系统类任务查询_导出_alter_date_fields_20260618_140416.sql
Normal file
@@ -0,0 +1,213 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_系统类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*18 AS 钣金预达时间,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*8 AS 齐套,
|
||||
256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 钣金预达时间,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 齐套,
|
||||
0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), v.销售要求日期, 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
213
db_backups/计划排产_系统类任务查询_导出_alter_hours_3600_20260618_140521.sql
Normal file
213
db_backups/计划排产_系统类任务查询_导出_alter_hours_3600_20260618_140521.sql
Normal file
@@ -0,0 +1,213 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_系统类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*18 AS 钣金预达时间,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*8 AS 齐套,
|
||||
256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 钣金预达时间,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 齐套,
|
||||
0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), v.销售要求日期, 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
@@ -0,0 +1,213 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_系统类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*18 AS 钣金预达时间,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*8 AS 齐套,
|
||||
256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 钣金预达时间,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 齐套,
|
||||
0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
@@ -0,0 +1,217 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_系统类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*18 AS 钣金预达时间,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*8 AS 齐套,
|
||||
256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 钣金预达时间,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 齐套,
|
||||
0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN (
|
||||
SELECT 项目号, 物料号, MIN(交货日期理论齐套日期) as 交货日期理论齐套日期
|
||||
FROM SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2
|
||||
GROUP BY 项目号, 物料号
|
||||
) s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
@@ -0,0 +1,213 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_系统类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*18 AS 钣金预达时间,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*8 AS 齐套,
|
||||
256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 钣金预达时间,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 齐套,
|
||||
0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), DATEADD(DAY, 3, CONVERT(date, v.齐套时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), s.交货日期理论齐套日期, 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
213
db_backups/计划排产_系统类任务查询_导出_before_hours_3600_20260618_140521.sql
Normal file
213
db_backups/计划排产_系统类任务查询_导出_before_hours_3600_20260618_140521.sql
Normal file
@@ -0,0 +1,213 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_系统类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*18 AS 钣金预达时间,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*8 AS 齐套,
|
||||
256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 钣金预达时间,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 齐套,
|
||||
0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), v.销售要求日期, 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
@@ -0,0 +1,213 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_系统类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*18 AS 钣金预达时间,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*8 AS 齐套,
|
||||
256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 钣金预达时间,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 齐套,
|
||||
0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), v.销售要求日期, 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
@@ -0,0 +1,213 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_系统类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*18 AS 钣金预达时间,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*8 AS 齐套,
|
||||
256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 钣金预达时间,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 齐套,
|
||||
0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
213
db_backups/计划排产_系统类任务查询_导出_create_20260618_103626.sql
Normal file
213
db_backups/计划排产_系统类任务查询_导出_create_20260618_103626.sql
Normal file
@@ -0,0 +1,213 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_系统类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*18 AS 钣金预达时间,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*8 AS 齐套,
|
||||
256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 钣金预达时间,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 齐套,
|
||||
0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), DATEADD(DAY, 3, CONVERT(date, v.齐套时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), s.交货日期理论齐套日期, 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
40
db_backups/计划排产_系统类装配任务_修改日期_create_20260618_140324.sql
Normal file
40
db_backups/计划排产_系统类装配任务_修改日期_create_20260618_140324.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
CREATE OR ALTER PROCEDURE [dbo].[计划排产_系统类装配任务_修改预计送检日期]
|
||||
@editstr nvarchar(100),
|
||||
@订单号 int=0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @whereStr nvarchar(max)=' where 1=1 ';
|
||||
DECLARE @updateStr nvarchar(max)='update [MES_接口_生产计划] set ';
|
||||
DECLARE @selStr nvarchar(max)='';
|
||||
|
||||
IF(@订单号>0) SET @whereStr=@whereStr + ' and [订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@editstr<>'') SET @updateStr = @updateStr + @editstr;
|
||||
SET @selStr=@updateStr+@whereStr;
|
||||
|
||||
PRINT @selStr;
|
||||
EXEC sp_executesql @selStr;
|
||||
SELECT '1' AS result;
|
||||
END;
|
||||
GO
|
||||
|
||||
CREATE OR ALTER PROCEDURE [dbo].[计划排产_系统类装配任务_修改销售要求日期]
|
||||
@editstr nvarchar(100),
|
||||
@订单号 int=0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @whereStr nvarchar(max)=' where 1=1 ';
|
||||
DECLARE @updateStr nvarchar(max)='update [MES_接口_生产计划] set ';
|
||||
DECLARE @selStr nvarchar(max)='';
|
||||
|
||||
IF(@订单号>0) SET @whereStr=@whereStr + ' and [订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@editstr<>'') SET @updateStr = @updateStr + @editstr;
|
||||
SET @selStr=@updateStr+@whereStr;
|
||||
|
||||
PRINT @selStr;
|
||||
EXEC sp_executesql @selStr;
|
||||
SELECT '1' AS result;
|
||||
END;
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
create PROCEDURE [dbo].[计划排产_系统类装配任务_修改钣金预达时间]
|
||||
@editstr nvarchar(50),
|
||||
@订单号 int=0
|
||||
AS
|
||||
declare @whereStr nvarchar(max)=' where 1=1 '
|
||||
declare @updateStr nvarchar(max)='update [MES_接口_生产计划] set '
|
||||
declare @selStr nvarchar(max)=''
|
||||
|
||||
-- update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号=@订单号 and 订单行号=@订单行号 and 订单拆分内码<>@订单拆分内码 and isnull(派工状态,0)=0
|
||||
if(@订单号>0)set @whereStr=@whereStr + ' and [订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@editstr<>'')set @updateStr = @updateStr + @editstr
|
||||
set @selStr=@updateStr+@whereStr
|
||||
|
||||
print @selStr
|
||||
EXEC sp_executesql @selStr
|
||||
|
||||
|
||||
102
db_backups/计划排产_阀类任务查询_alter_20260618_100448.sql
Normal file
102
db_backups/计划排产_阀类任务查询_alter_20260618_100448.sql
Normal file
@@ -0,0 +1,102 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_阀类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
|
||||
齐套时间,计划开始时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
129
db_backups/计划排产_阀类任务查询_alter_progress_20260618_102046.sql
Normal file
129
db_backups/计划排产_阀类任务查询_alter_progress_20260618_102046.sql
Normal file
@@ -0,0 +1,129 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_阀类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
|
||||
齐套时间,计划开始时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
133
db_backups/计划排产_阀类任务查询_alter_sap_min_date_20260618_143447.sql
Normal file
133
db_backups/计划排产_阀类任务查询_alter_sap_min_date_20260618_143447.sql
Normal file
@@ -0,0 +1,133 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_阀类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,ISNULL(预计送检日期, DATEADD(DAY, 3, 齐套时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join (
|
||||
SELECT 项目号, 物料号, MIN(交货日期理论齐套日期) as 交货日期理论齐套日期
|
||||
FROM SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2
|
||||
GROUP BY 项目号, 物料号
|
||||
) s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
|
||||
齐套时间,计划开始时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
@@ -0,0 +1,129 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_阀类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,ISNULL(预计送检日期, DATEADD(DAY, 3, 齐套时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
|
||||
齐套时间,计划开始时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
98
db_backups/计划排产_阀类任务查询_before_20260618_100413.sql
Normal file
98
db_backups/计划排产_阀类任务查询_before_20260618_100413.sql
Normal file
@@ -0,0 +1,98 @@
|
||||
|
||||
CREATE PROCEDURE [dbo].[计划排产_阀类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(4000)
|
||||
declare @selectStrWhere nvarchar(4000)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
|
||||
齐套时间,计划开始时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
102
db_backups/计划排产_阀类任务查询_before_progress_20260618_101940.sql
Normal file
102
db_backups/计划排产_阀类任务查询_before_progress_20260618_101940.sql
Normal file
@@ -0,0 +1,102 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_阀类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
|
||||
齐套时间,计划开始时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
129
db_backups/计划排产_阀类任务查询_before_sap_min_date_20260618_143411.sql
Normal file
129
db_backups/计划排产_阀类任务查询_before_sap_min_date_20260618_143411.sql
Normal file
@@ -0,0 +1,129 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_阀类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,ISNULL(预计送检日期, DATEADD(DAY, 3, 齐套时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
|
||||
齐套时间,计划开始时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
@@ -0,0 +1,129 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_阀类任务查询]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
declare @selectStr nvarchar(max)
|
||||
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
|
||||
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
|
||||
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
|
||||
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
|
||||
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
|
||||
case when zj.计划号 is not null then ''是'' else ''否'' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,
|
||||
ISNULL(zp.装配工时, 0) as 任务装配工时,
|
||||
ISNULL(zj1.质检工时, 0) as 任务质检工时,
|
||||
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
|
||||
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') as 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') as 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') as 质检进行中 FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT 计划号
|
||||
FROM dbo.YL_质量检验_质检记录
|
||||
WHERE 质检类型 = ''终检''
|
||||
) zj ON v.[订单编号] = zj.计划号
|
||||
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
|
||||
ON v.[订单编号] = g.订单编号
|
||||
AND v.[订单行号] = g.工艺顺序
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
|
||||
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
|
||||
齐套时间,计划开始时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
210
db_backups/计划排产_阀类任务查询_导出_alter_match_page_20260618_103122.sql
Normal file
210
db_backups/计划排产_阀类任务查询_导出_alter_match_page_20260618_103122.sql
Normal file
@@ -0,0 +1,210 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_阀类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*8 AS 齐套,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 齐套,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), DATEADD(DAY, 3, CONVERT(date, v.齐套时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), s.交货日期理论齐套日期, 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END, 齐套时间, 计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
214
db_backups/计划排产_阀类任务查询_导出_alter_sap_min_date_20260618_143447.sql
Normal file
214
db_backups/计划排产_阀类任务查询_导出_alter_sap_min_date_20260618_143447.sql
Normal file
@@ -0,0 +1,214 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_阀类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*8 AS 齐套,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 齐套,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.齐套时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN (
|
||||
SELECT 项目号, 物料号, MIN(交货日期理论齐套日期) as 交货日期理论齐套日期
|
||||
FROM SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2
|
||||
GROUP BY 项目号, 物料号
|
||||
) s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END, 齐套时间, 计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
@@ -0,0 +1,210 @@
|
||||
ALTER PROCEDURE [dbo].[计划排产_阀类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*8 AS 齐套,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 齐套,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.齐套时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END, 齐套时间, 计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
@@ -0,0 +1,65 @@
|
||||
|
||||
CREATE PROCEDURE [dbo].[计划排产_阀类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
-- 导出文件名和类型
|
||||
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
|
||||
|
||||
-- 字段宽度
|
||||
SELECT 256*20 AS 齐套时间, 256*20 AS 计划开始时间, 256*20 AS 派工时间, 256*10 AS 齐套, 256*10 AS 合同号,
|
||||
256*10 AS 订单号, 256*40 AS 产品编码, 256*20 AS 产品名称, 256*10 AS 计划数量, 256*10 AS 二次派工, 256*20 AS 预计送检时间, 256*20 AS 销售要求日期,
|
||||
256*20 AS 要求发货日期
|
||||
|
||||
-- 是否计算列
|
||||
SELECT 0 AS 齐套时间, 0 AS 计划开始时间, 0 AS 派工时间, 0 AS 齐套, 0 AS 合同号,
|
||||
0 AS 订单号, 0 AS 产品编码, 0 AS 产品名称, 0 AS 计划数量, 0 AS 二次派工, 0 AS 预计送检时间, 0 AS 销售要求日期,
|
||||
0 AS 要求发货日期
|
||||
|
||||
-- 导出数据:每行都填满完整信息
|
||||
|
||||
declare @selectStr nvarchar(4000)
|
||||
declare @selectStrWhere nvarchar(4000)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
|
||||
|
||||
if(@物料类型='自制件') --自制件
|
||||
|
||||
set @selectStr='
|
||||
SELECT v.齐套时间,计划开始时间,v.派工时间,v.齐套,[合同号],v.[订单编号] as 订单号,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
|
||||
[二次派工],DATEADD(DAY, 3, CONVERT(DATE, v.齐套时间)),1,要求发货日期
|
||||
FROM [View_生产订单_MES] v'
|
||||
if(@订单号>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@订单号)
|
||||
if(@合同号<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%'''
|
||||
if(@产品编码<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%'''
|
||||
if(@产品名称<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%'''
|
||||
if(@辅助配件 = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
|
||||
if(@工序名称<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+''''
|
||||
if(@要求完工日期1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+''''
|
||||
if(@要求完工日期2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+''''
|
||||
if(@计划开始 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+''''
|
||||
if(@计划完成 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+''''
|
||||
if(@排产状态='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
|
||||
else if(@排产状态='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
|
||||
if(@物料类型='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否'''
|
||||
if(@物料类型='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否'''
|
||||
if(@指派对象<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))'
|
||||
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
|
||||
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
|
||||
齐套时间 '
|
||||
set @selectStr=@selectStr+@selectStrWhere
|
||||
print @selectStr
|
||||
EXEC sp_executesql @selectStr
|
||||
END
|
||||
@@ -0,0 +1,210 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_阀类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*8 AS 齐套,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 齐套,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.齐套时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END, 齐套时间, 计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
@@ -0,0 +1,210 @@
|
||||
CREATE PROCEDURE [dbo].[计划排产_阀类任务查询_导出]
|
||||
@订单号 int=0,
|
||||
@物料类型 nvarchar(50)='', --自制件、装配件
|
||||
@合同号 nvarchar(50)='',
|
||||
@产品编码 nvarchar(50)='',
|
||||
@产品名称 nvarchar(50)='',
|
||||
@工序名称 nvarchar(50)='',
|
||||
@要求完工日期1 nvarchar(50)='',
|
||||
@要求完工日期2 nvarchar(50)='',
|
||||
@计划开始 nvarchar(50)='',
|
||||
@计划完成 nvarchar(50)='',
|
||||
@排产状态 nvarchar(50)='全部' , --全部,已完成、未完成
|
||||
@指派对象 nvarchar(50)='全部',
|
||||
@辅助配件 nvarchar(50)='不含'
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
|
||||
|
||||
SELECT 256*12 AS 发料齐套,
|
||||
256*18 AS 计划开始,
|
||||
256*12 AS 派工时间,
|
||||
256*8 AS 齐套,
|
||||
256*14 AS 销售订单,
|
||||
256*10 AS 生产订单,
|
||||
256*24 AS 物料编码,
|
||||
256*24 AS 物料名称,
|
||||
256*10 AS 计划数,
|
||||
256*20 AS 二次派工,
|
||||
256*14 AS 预计送检日期,
|
||||
256*14 AS 销售要求日期,
|
||||
256*14 AS 发货要求日期,
|
||||
256*40 AS 异常报警信息,
|
||||
256*40 AS 装配进行中,
|
||||
256*40 AS 质检进行中,
|
||||
256*14 AS 任务装配工时,
|
||||
256*14 AS 任务质检工时,
|
||||
256*14 AS 合同装配工时,
|
||||
256*14 AS 合同质检工时,
|
||||
256*24 AS 装配工序说明,
|
||||
256*24 AS 质检工序说明,
|
||||
256*14 AS 要求完工日期,
|
||||
256*12 AS 工序名称,
|
||||
256*10 AS 计划号,
|
||||
256*18 AS 指派对象,
|
||||
256*12 AS 指派数量,
|
||||
256*10 AS 优先级,
|
||||
256*20 AS 未完成说明,
|
||||
256*20 AS 派工特殊备注,
|
||||
256*14 AS 占用情况,
|
||||
256*14 AS 最后编辑人,
|
||||
256*20 AS 最后编辑时间;
|
||||
|
||||
SELECT 0 AS 发料齐套,
|
||||
0 AS 计划开始,
|
||||
0 AS 派工时间,
|
||||
0 AS 齐套,
|
||||
0 AS 销售订单,
|
||||
0 AS 生产订单,
|
||||
0 AS 物料编码,
|
||||
0 AS 物料名称,
|
||||
0 AS 计划数,
|
||||
0 AS 二次派工,
|
||||
0 AS 预计送检日期,
|
||||
0 AS 销售要求日期,
|
||||
0 AS 发货要求日期,
|
||||
0 AS 异常报警信息,
|
||||
0 AS 装配进行中,
|
||||
0 AS 质检进行中,
|
||||
0 AS 任务装配工时,
|
||||
0 AS 任务质检工时,
|
||||
0 AS 合同装配工时,
|
||||
0 AS 合同质检工时,
|
||||
0 AS 装配工序说明,
|
||||
0 AS 质检工序说明,
|
||||
0 AS 要求完工日期,
|
||||
0 AS 工序名称,
|
||||
0 AS 计划号,
|
||||
0 AS 指派对象,
|
||||
0 AS 指派数量,
|
||||
0 AS 优先级,
|
||||
0 AS 未完成说明,
|
||||
0 AS 派工特殊备注,
|
||||
0 AS 占用情况,
|
||||
0 AS 最后编辑人,
|
||||
0 AS 最后编辑时间;
|
||||
|
||||
DECLARE @selectStr nvarchar(max);
|
||||
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4';
|
||||
|
||||
IF(@物料类型='自制件')
|
||||
SET @selectStr='
|
||||
SELECT
|
||||
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
|
||||
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
|
||||
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
|
||||
CASE WHEN v.齐套 = 1 THEN ''是'' ELSE ''否'' END AS 齐套,
|
||||
v.[合同号] AS 销售订单,
|
||||
v.[订单编号] AS 生产订单,
|
||||
v.[物料编号] AS 物料编码,
|
||||
v.[物料描述] AS 物料名称,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
|
||||
[二次派工] AS 二次派工,
|
||||
CONVERT(varchar(10), DATEADD(DAY, 3, CONVERT(date, v.齐套时间)), 120) AS 预计送检日期,
|
||||
CONVERT(varchar(10), s.交货日期理论齐套日期, 120) AS 销售要求日期,
|
||||
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
|
||||
FROM [YL_MESDB].[dbo].[流程表] lc
|
||||
WHERE lc.已关联计划号 = v.[订单编号]
|
||||
), '''') AS 异常报警信息,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''装配''
|
||||
) jxz
|
||||
), '''') AS 装配进行中,
|
||||
ISNULL((
|
||||
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
|
||||
FROM (
|
||||
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
|
||||
FROM [dbo].[YL_加工中心_操作记录表] t
|
||||
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
|
||||
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
|
||||
WHERE t.操作类别 = ''开始加工''
|
||||
AND t.结束时间 IS NULL
|
||||
AND t.操作数值 IS NOT NULL
|
||||
AND pt.订单编号 = v.[订单编号]
|
||||
AND ry.班组 = ''质检''
|
||||
) jxz
|
||||
), '''') AS 质检进行中,
|
||||
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
|
||||
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
|
||||
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
|
||||
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
|
||||
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
|
||||
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
|
||||
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
|
||||
[工序名称] AS 工序名称,
|
||||
v.计划号 AS 计划号,
|
||||
指派对象 AS 指派对象,
|
||||
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
|
||||
[优先级] AS 优先级,
|
||||
[未完成说明] AS 未完成说明,
|
||||
[派工特殊说明] AS 派工特殊备注,
|
||||
[占用情况] AS 占用情况,
|
||||
[最后编辑人] AS 最后编辑人,
|
||||
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
|
||||
FROM [View_生产订单_MES] v
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.订单号
|
||||
) zp ON v.[订单编号] = zp.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.订单号
|
||||
) zj1 ON v.[订单编号] = zj1.订单号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''装配''
|
||||
GROUP BY gs.合同号
|
||||
) htzp ON v.[合同号] = htzp.合同号
|
||||
LEFT JOIN (
|
||||
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
|
||||
FROM [dbo].[View_生产工时视图] gs
|
||||
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
|
||||
WHERE ry.班组 = ''质检''
|
||||
GROUP BY gs.合同号
|
||||
) htzj ON v.[合同号] = htzj.合同号
|
||||
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
|
||||
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
|
||||
|
||||
IF(@订单号>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@合同号<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@合同号+'%''';
|
||||
IF(@产品编码<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@产品编码+'%''';
|
||||
IF(@产品名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@产品名称+'%''';
|
||||
IF(@辅助配件 = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
|
||||
IF(@工序名称<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@工序名称+'''';
|
||||
IF(@要求完工日期1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@要求完工日期1+'''';
|
||||
IF(@要求完工日期2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@要求完工日期2+'''';
|
||||
IF(@计划开始 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@计划开始+'''';
|
||||
IF(@计划完成 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@计划完成+'''';
|
||||
IF(@排产状态='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
|
||||
ELSE IF(@排产状态='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
|
||||
IF(@物料类型='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''否''';
|
||||
IF(@物料类型='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''否''';
|
||||
IF(@指派对象<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@指派对象+''', '',''))';
|
||||
|
||||
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END, 齐套时间, 计划开始时间';
|
||||
SET @selectStr=@selectStr+@selectStrWhere;
|
||||
PRINT @selectStr;
|
||||
EXEC sp_executesql @selectStr;
|
||||
END
|
||||
40
db_backups/计划排产_阀类装配任务_修改日期_create_20260618_141211.sql
Normal file
40
db_backups/计划排产_阀类装配任务_修改日期_create_20260618_141211.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
CREATE OR ALTER PROCEDURE [dbo].[计划排产_阀类装配任务_修改预计送检日期]
|
||||
@editstr nvarchar(100),
|
||||
@订单号 int=0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @whereStr nvarchar(max)=' where 1=1 ';
|
||||
DECLARE @updateStr nvarchar(max)='update [MES_接口_生产计划] set ';
|
||||
DECLARE @selStr nvarchar(max)='';
|
||||
|
||||
IF(@订单号>0) SET @whereStr=@whereStr + ' and [订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@editstr<>'') SET @updateStr = @updateStr + @editstr;
|
||||
SET @selStr=@updateStr+@whereStr;
|
||||
|
||||
PRINT @selStr;
|
||||
EXEC sp_executesql @selStr;
|
||||
SELECT '1' AS result;
|
||||
END;
|
||||
GO
|
||||
|
||||
CREATE OR ALTER PROCEDURE [dbo].[计划排产_阀类装配任务_修改销售要求日期]
|
||||
@editstr nvarchar(100),
|
||||
@订单号 int=0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @whereStr nvarchar(max)=' where 1=1 ';
|
||||
DECLARE @updateStr nvarchar(max)='update [MES_接口_生产计划] set ';
|
||||
DECLARE @selStr nvarchar(max)='';
|
||||
|
||||
IF(@订单号>0) SET @whereStr=@whereStr + ' and [订单编号]='+CONVERT(varchar(10),@订单号);
|
||||
IF(@editstr<>'') SET @updateStr = @updateStr + @editstr;
|
||||
SET @selStr=@updateStr+@whereStr;
|
||||
|
||||
PRINT @selStr;
|
||||
EXEC sp_executesql @selStr;
|
||||
SELECT '1' AS result;
|
||||
END;
|
||||
Reference in New Issue
Block a user