feat: add delivery notice list

This commit is contained in:
2026-06-26 18:09:33 +08:00
parent abf822fd2c
commit ebee02d103
4 changed files with 430 additions and 4 deletions

View File

@@ -0,0 +1,110 @@
USE [YL_MESDB]
GO
SET NOCOUNT ON;
DECLARE @Title nvarchar(100) = N'发货通知列表';
DECLARE @Path nvarchar(300) = N'DeliveryNoticeList/index';
DECLARE @Component nvarchar(300) = N'/ProductionManagement/DeliveryNoticeList/index';
DECLARE @Name nvarchar(100) = N'DeliveryNoticeList';
DECLARE @Icon nvarchar(100) = N'DocumentImport';
DECLARE @TargetRole int = NULL;
IF OBJECT_ID(N'dbo.登录基础数据_二级菜单', N'U') IS NULL
BEGIN
RAISERROR(N'未找到表 dbo.登录基础数据_二级菜单。', 16, 1);
RETURN;
END;
DECLARE @IdIsIdentity bit = ISNULL(COLUMNPROPERTY(OBJECT_ID(N'dbo.登录基础数据_二级菜单'), N'id', 'IsIdentity'), 0);
IF @IdIsIdentity = 1
BEGIN
;WITH SourceRows AS (
SELECT
src.[账号代码],
src.[id] AS [pid]
FROM [dbo].[登录基础数据_二级菜单] src
WHERE src.[是否启用] = 1
AND (@TargetRole IS NULL OR src.[账号代码] = @TargetRole)
AND src.[pid] = 0
AND src.[title] = N'生产管理'
AND NOT EXISTS (
SELECT 1
FROM [dbo].[登录基础数据_二级菜单] existing
WHERE existing.[账号代码] = src.[账号代码]
AND (existing.[path] = @Path OR existing.[componet] = @Component OR existing.[title] = @Title)
)
)
INSERT INTO [dbo].[登录基础数据_二级菜单]
([pid], [path], [componet], [redirect], [name], [title], [icon], [账号代码], [是否启用], [操作时间])
SELECT
[pid],
@Path,
@Component,
NULL,
@Name,
@Title,
@Icon,
[账号代码],
1,
GETDATE()
FROM SourceRows;
END
ELSE
BEGIN
;WITH SourceRows AS (
SELECT
ROW_NUMBER() OVER (ORDER BY src.[账号代码], src.[id]) AS rn,
src.[账号代码],
src.[id] AS [pid]
FROM [dbo].[登录基础数据_二级菜单] src
WHERE src.[是否启用] = 1
AND (@TargetRole IS NULL OR src.[账号代码] = @TargetRole)
AND src.[pid] = 0
AND src.[title] = N'生产管理'
AND NOT EXISTS (
SELECT 1
FROM [dbo].[登录基础数据_二级菜单] existing
WHERE existing.[账号代码] = src.[账号代码]
AND (existing.[path] = @Path OR existing.[componet] = @Component OR existing.[title] = @Title)
)
),
BaseId AS (
SELECT ISNULL(MAX([id]), 0) AS maxId
FROM [dbo].[登录基础数据_二级菜单]
)
INSERT INTO [dbo].[登录基础数据_二级菜单]
([id], [pid], [path], [componet], [redirect], [name], [title], [icon], [账号代码], [模块代码], [是否启用], [操作时间])
SELECT
BaseId.maxId + SourceRows.rn,
SourceRows.[pid],
@Path,
@Component,
NULL,
@Name,
@Title,
@Icon,
SourceRows.[账号代码],
BaseId.maxId + SourceRows.rn,
1,
GETDATE()
FROM SourceRows
CROSS JOIN BaseId;
END;
UPDATE [dbo].[登录基础数据_二级菜单]
SET
[path] = @Path,
[componet] = @Component,
[name] = @Name,
[title] = @Title,
[模块代码] = [id],
[是否启用] = 1
WHERE [title] = @Title OR [componet] = @Component;
SELECT [id], [pid], [path], [componet], [name], [title], [icon], [账号代码], [模块代码], [是否启用]
FROM [dbo].[登录基础数据_二级菜单]
WHERE [path] = @Path OR [componet] = @Component OR [title] = @Title
ORDER BY [账号代码], [id];
GO

View File

@@ -0,0 +1,76 @@
USE [YL_MESDB]
GO
ALTER PROCEDURE [dbo].[装配中心任务看板_发货状态查询]
@生产订单 nvarchar(4000) = N'0',
@销售订单 nvarchar(4000) = N'0',
@物料名称 nvarchar(4000) = N'0',
@物料编码 nvarchar(4000) = N'0',
@要求发货日期 datetime = NULL,
@齐套 nvarchar(20) = N'',
@发料状态 nvarchar(20) = N''
AS
BEGIN
SET NOCOUNT ON;
SELECT
a.TaskAID,
a.[订单编号],
a.[合同号],
a.[订单类型],
a.[订单状态],
a.[物料编号],
a.[物料描述],
a.[计划数量],
a.[计量单位],
a.[下达日期],
a.[计划开始],
a.[计划完成],
a.[项目代码],
a.[重量],
a.[占用情况],
a.[加急状态],
a.[排产状态],
a.[同步时间],
a.[任务状态],
a.[标准工艺],
a.[生产工艺],
a.[齐套],
a.[自制件属性],
a.[周转单打印次数],
a.[单据状态],
a.[发料状态],
a.[拣配状态],
a.[计划号],
a.[加急数量],
a.[发货状态],
a.[要求发货日期],
a.[加急总数],
a.[入库数量],
b.操作人,
c.交货数量
FROM [YL_MESDB].[dbo].[View_生产订单_MES] a
LEFT JOIN [dbo].[YL_加工中心_操作记录表] b ON a.TaskAID = b.TaskAID
LEFT JOIN SAP.SBO_YL.dbo.UBT_ODRF_ODLNMES c ON a.订单编号 = c.生产单号
WHERE ISNULL(a.发货状态, N'') = N'1'
AND ISNULL(a.任务状态, 0) < 4
AND a.自制件属性 LIKE N'%装配%'
AND (@生产订单 = N'0' OR CONVERT(nvarchar(100), a.订单编号) LIKE N'%' + @生产订单 + N'%')
AND (@销售订单 = N'0' OR ISNULL(a.合同号, N'') LIKE N'%' + @销售订单 + N'%')
AND (@物料名称 = N'0' OR ISNULL(a.物料描述, N'') LIKE N'%' + @物料名称 + N'%')
AND (@物料编码 = N'0' OR ISNULL(a.物料编号, N'') LIKE N'%' + @物料编码 + N'%')
AND (@要求发货日期 IS NULL OR CONVERT(date, a.要求发货日期) = CONVERT(date, @要求发货日期))
AND (
ISNULL(@齐套, N'') = N''
OR (@齐套 = N'是' AND ISNULL(a.齐套, 0) = 1)
OR (@齐套 = N'否' AND ISNULL(a.齐套, 0) <> 1)
)
AND (
ISNULL(@发料状态, N'') = N''
OR (@发料状态 = N'发料齐套' AND (a.发料状态 = N'发料齐套' OR ISNULL(a.发料状态, N'') = N'1'))
OR (@发料状态 = N'发料缺件' AND (a.发料状态 = N'发料缺件' OR ISNULL(a.发料状态, N'') = N'2'))
OR (@发料状态 = N'未发料' AND ISNULL(a.发料状态, N'') NOT IN (N'1', N'2', N'发料齐套', N'发料缺件'))
)
ORDER BY a.要求发货日期;
END
GO