feat: 增加LG/TCS-AGV接口并完善物料校验与Function逻辑

This commit is contained in:
XingCheng3
2026-07-16 16:47:45 +08:00
parent 7303ddde9a
commit 8e44e11248
74 changed files with 4324 additions and 1091 deletions

View File

@@ -0,0 +1,711 @@
SET NOCOUNT ON
GO
IF OBJECT_ID(N'dbo.XD_TCS_AGV_配置', N'U') IS NULL
BEGIN
CREATE TABLE dbo.XD_TCS_AGV_配置
(
nvarchar(50) NOT NULL CONSTRAINT PK_XD_TCS_AGV_配置 PRIMARY KEY,
nvarchar(500) NOT NULL,
nvarchar(200) NULL,
bit NOT NULL CONSTRAINT DF_XD_TCS_AGV_配置_是否启用 DEFAULT(1),
datetime NOT NULL CONSTRAINT DF_XD_TCS_AGV_配置_操作时间 DEFAULT(GETDATE())
)
END
GO
IF OBJECT_ID(N'dbo.XD_TCS_AGV_点位配置', N'U') IS NULL
BEGIN
CREATE TABLE dbo.XD_TCS_AGV_点位配置
(
ID int IDENTITY(1,1) NOT NULL CONSTRAINT PK_XD_TCS_AGV_点位配置 PRIMARY KEY,
线 nvarchar(20) NOT NULL,
MES工位号 nvarchar(50) NOT NULL,
nvarchar(50) NOT NULL,
WorkStation nvarchar(50) NOT NULL,
XSDProgramName nvarchar(100) NOT NULL,
XSEProgramName nvarchar(100) NOT NULL,
XSDProgramName nvarchar(100) NOT NULL,
XSEProgramName nvarchar(100) NOT NULL,
int NOT NULL,
bit NOT NULL CONSTRAINT DF_XD_TCS_AGV_点位配置_是否启用 DEFAULT(1),
datetime NOT NULL CONSTRAINT DF_XD_TCS_AGV_点位配置_操作时间 DEFAULT(GETDATE()),
CONSTRAINT UK_XD_TCS_AGV_点位配置_MES工位号 UNIQUE(MES工位号),
CONSTRAINT UK_XD_TCS_AGV_点位配置_WorkStation UNIQUE(WorkStation)
)
END
GO
IF OBJECT_ID(N'dbo.XD_TCS_AGV_型号动作映射', N'U') IS NULL
BEGIN
CREATE TABLE dbo.XD_TCS_AGV_型号动作映射
(
ID int IDENTITY(1,1) NOT NULL CONSTRAINT PK_XD_TCS_AGV_型号动作映射 PRIMARY KEY,
线 nvarchar(20) NOT NULL,
nvarchar(100) NOT NULL,
nvarchar(10) NOT NULL,
XSD bit NOT NULL,
XSE bit NOT NULL,
bit NOT NULL CONSTRAINT DF_XD_TCS_AGV_型号动作映射_是否启用 DEFAULT(1),
datetime NOT NULL CONSTRAINT DF_XD_TCS_AGV_型号动作映射_操作时间 DEFAULT(GETDATE()),
CONSTRAINT UK_XD_TCS_AGV_型号动作映射 UNIQUE(线,,),
CONSTRAINT CK_XD_TCS_AGV_型号动作映射_动作 CHECK( IN(N'',N'')),
CONSTRAINT CK_XD_TCS_AGV_型号动作映射_组合 CHECK(XSD=1 OR XSE=1)
)
END
GO
IF OBJECT_ID(N'dbo.XD_TCS_AGV_任务', N'U') IS NULL
BEGIN
CREATE TABLE dbo.XD_TCS_AGV_任务
(
ID bigint IDENTITY(1,1) NOT NULL CONSTRAINT PK_XD_TCS_AGV_任务 PRIMARY KEY,
nvarchar(100) NOT NULL,
nvarchar(100) NULL,
MES工位号 nvarchar(50) NOT NULL,
nvarchar(50) NULL,
TCS站点 nvarchar(50) NULL,
nvarchar(20) NOT NULL,
nvarchar(100) NULL,
nvarchar(20) NULL,
ProgramName nvarchar(100) NULL,
nvarchar(50) NOT NULL,
nvarchar(max) NOT NULL,
int NOT NULL,
nvarchar(50) NULL,
IP nvarchar(50) NULL,
nvarchar(20) NOT NULL,
nvarchar(50) NULL,
int NOT NULL CONSTRAINT DF_XD_TCS_AGV_任务_任务状态 DEFAULT(0),
nvarchar(50) NOT NULL CONSTRAINT DF_XD_TCS_AGV_任务_状态说明 DEFAULT(N'未开始'),
nvarchar(50) NULL,
nvarchar(50) NULL,
TCS备注 nvarchar(1000) NULL,
nvarchar(max) NULL,
nvarchar(max) NULL,
nvarchar(2000) NULL,
PLC bit NOT NULL CONSTRAINT DF_XD_TCS_AGV_任务_是否通知PLC DEFAULT(0),
PLC已通知 bit NOT NULL CONSTRAINT DF_XD_TCS_AGV_任务_PLC已通知 DEFAULT(0),
int NOT NULL CONSTRAINT DF_XD_TCS_AGV_任务_处理状态 DEFAULT(0),
bit NOT NULL CONSTRAINT DF_XD_TCS_AGV_任务_已复位 DEFAULT(0),
nvarchar(50) NULL,
datetime NULL,
nvarchar(1000) NULL,
datetime NOT NULL CONSTRAINT DF_XD_TCS_AGV_任务_创建时间 DEFAULT(GETDATE()),
datetime NOT NULL CONSTRAINT DF_XD_TCS_AGV_任务_更新时间 DEFAULT(GETDATE()),
CONSTRAINT UK_XD_TCS_AGV_任务_外部任务编号 UNIQUE(),
CONSTRAINT CK_XD_TCS_AGV_任务_状态 CHECK( IN (0,1,2,3,4,5))
)
CREATE INDEX IX_XD_TCS_AGV_任务_状态时间
ON dbo.XD_TCS_AGV_任务(, DESC)
CREATE INDEX IX_XD_TCS_AGV_任务_工位时间
ON dbo.XD_TCS_AGV_任务(MES工位号, DESC)
END
GO
IF COL_LENGTH(N'dbo.XD_TCS_AGV_任务', N'产品型号') IS NULL
ALTER TABLE dbo.XD_TCS_AGV_任务 ADD nvarchar(100) NULL
GO
IF COL_LENGTH(N'dbo.XD_TCS_AGV_任务', N'动作组合') IS NULL
ALTER TABLE dbo.XD_TCS_AGV_任务 ADD nvarchar(20) NULL
GO
IF COL_LENGTH(N'dbo.XD_TCS_AGV_任务', N'已复位') IS NULL
BEGIN
ALTER TABLE dbo.XD_TCS_AGV_任务 ADD bit NOT NULL
CONSTRAINT DF_XD_TCS_AGV_任务_已复位 DEFAULT(0)
END
GO
IF EXISTS
(
SELECT 1 FROM sys.check_constraints
WHERE parent_object_id=OBJECT_ID(N'dbo.XD_TCS_AGV_任务')
AND name=N'CK_XD_TCS_AGV_任务_状态'
)
ALTER TABLE dbo.XD_TCS_AGV_任务 DROP CONSTRAINT CK_XD_TCS_AGV_任务_状态
GO
ALTER TABLE dbo.XD_TCS_AGV_任务 ADD CONSTRAINT CK_XD_TCS_AGV_任务_状态
CHECK( IN (0,1,2,3,4,5))
GO
IF OBJECT_ID(N'dbo.XD_TCS_AGV_位置状态', N'U') IS NULL
BEGIN
CREATE TABLE dbo.XD_TCS_AGV_位置状态
(
ID int NOT NULL CONSTRAINT PK_XD_TCS_AGV_位置状态 PRIMARY KEY,
IP nvarchar(50) NULL,
nvarchar(100) NULL,
nvarchar(100) NULL,
nvarchar(max) NULL,
datetime NOT NULL CONSTRAINT DF_XD_TCS_AGV_位置状态_更新时间 DEFAULT(GETDATE()),
CONSTRAINT CK_XD_TCS_AGV_位置状态_单车 CHECK(ID = 1)
)
END
GO
IF OBJECT_ID(N'dbo.XD_TCS_AGV_操作记录', N'U') IS NULL
BEGIN
CREATE TABLE dbo.XD_TCS_AGV_操作记录
(
ID bigint IDENTITY(1,1) NOT NULL CONSTRAINT PK_XD_TCS_AGV_操作记录 PRIMARY KEY,
nvarchar(100) NULL,
MES工位号 nvarchar(50) NULL,
nvarchar(50) NOT NULL,
nvarchar(50) NULL,
nvarchar(max) NULL,
nvarchar(max) NULL,
bit NOT NULL,
nvarchar(1000) NULL,
datetime NOT NULL CONSTRAINT DF_XD_TCS_AGV_操作记录_操作时间 DEFAULT(GETDATE())
)
CREATE INDEX IX_XD_TCS_AGV_操作记录_时间
ON dbo.XD_TCS_AGV_操作记录( DESC)
END
GO
DECLARE @ TABLE
(
nvarchar(50),
nvarchar(500),
nvarchar(200)
)
INSERT INTO @ VALUES
(N'TCS_BaseUrl', N'http://10.112.111.21:11008', N'TCS调度服务地址客户已确认'),
(N'TCS_Enabled', N'0', N'1启用真实下发0仅允许查询配置'),
(N'McrGroup', N'G001', N'机器人组'),
(N'McrIp', N'10.146.79.9', N'客户确认的单台AGV IP'),
(N'TCS_OperatorUserId', N'BZS001', N'TCS任务状态定向推送标识'),
(N'DefaultPriority', N'1', N'默认任务优先级'),
(N'HttpTimeoutSeconds', N'15', N'TCS HTTP超时秒数')
MERGE dbo.XD_TCS_AGV_配置 AS T
USING @ AS S ON T. = S.
WHEN NOT MATCHED THEN
INSERT(,,) VALUES(S.,S.,S.);
GO
DECLARE @线 nvarchar(20)
SELECT TOP 1 @线 = FROM dbo. WHERE = N'产线名称'
DECLARE @ TABLE
(
线 nvarchar(20), MES工位号 nvarchar(50), nvarchar(50), WorkStation nvarchar(50),
XSD nvarchar(100), XSE nvarchar(100), XSD nvarchar(100), XSE nvarchar(100), int
)
IF @线 = N'GLKG'
BEGIN
INSERT INTO @ VALUES
(N'GLKG',N'AC0909-01',N'GIS1',N'S000214',N'214GIS1插XSD',N'214GIS1插XSE',N'214GIS1拔XSD',N'214GIS1拔XSE',1),
(N'GLKG',N'AC0909-02',N'GIS2',N'S000215',N'215GIS2插XSD',N'215GIS2插XSE',N'215GIS2拔XSD',N'215GIS2拔XSE',2),
(N'GLKG',N'AC0909-03',N'GIS3',N'S000217',N'217GIS3插XSD',N'217GIS3插XSE',N'217GIS3拔XSD',N'217GIS3拔XSE',3),
(N'GLKG',N'AC0909-04',N'GIS4',N'S000218',N'218GIS4插XSD',N'218GIS4插XSE',N'218GIS4拔XSD',N'218GIS4拔XSE',4),
(N'GLKG',N'AC0909-05',N'GIS5',N'S000219',N'219GIS5插XSD',N'219GIS5插XSE',N'219GIS5拔XSD',N'219GIS5拔XSE',5),
(N'GLKG',N'AC0909-06',N'GIS6',N'S000220',N'220GIS6插XSD',N'220GIS6插XSE',N'220GIS6拔XSD',N'220GIS6拔XSE',6),
(N'GLKG',N'AC0909-07',N'GIS7',N'S000221',N'221GIS7插XSD',N'221GIS7插XSE',N'221GIS7拔XSD',N'221GIS7拔XSE',7),
(N'GLKG',N'AC0909-08',N'GIS8',N'S000222',N'222GIS8插XSD',N'222GIS8插XSE',N'222GIS8拔XSD',N'222GIS8拔XSE',8),
(N'GLKG',N'AC0909-09',N'GIS9',N'S000201',N'201GIS9插XSD',N'201GIS9插XSE',N'201GIS9拔XSD',N'201GIS9拔XSE',9),
(N'GLKG',N'AC0909-10',N'GIS10',N'S000202',N'202GIS10插XSD',N'202GIS10插XSE',N'202GIS10拔XSD',N'202GIS10拔XSE',10)
END
ELSE IF @线 = N'DLQ'
BEGIN
INSERT INTO @ VALUES
(N'DLQ',N'AC0605-01',N'GCB1',N'S000225',N'225GCB1插XSD',N'225GCB1插XSE',N'225GCB1拔XSD',N'225GCB1拔XSE',1),
(N'DLQ',N'AC0605-02',N'GCB2',N'S000226',N'226GCB2插XSD',N'226GCB2插XSE',N'226GCB2拔XSD',N'226GCB2拔XSE',2),
(N'DLQ',N'AC0605-03',N'GCB3',N'S000227',N'227GCB3插XSD',N'227GCB3插XSE',N'227GCB3拔XSD',N'227GCB3拔XSE',3),
(N'DLQ',N'AC0605-04',N'GCB4',N'S000228',N'228GCB4插XSD',N'228GCB4插XSE',N'228GCB4拔XSD',N'228GCB4拔XSE',4)
END
MERGE dbo.XD_TCS_AGV_点位配置 AS T
USING @ AS S ON T.MES工位号 = S.MES工位号
WHEN MATCHED THEN UPDATE SET
T.线=S.线,T.=S.,T.WorkStation=S.WorkStation,
T.XSDProgramName=S.XSD,T.XSEProgramName=S.XSE,
T.XSDProgramName=S.XSD,T.XSEProgramName=S.XSE,
T.=S.,T.=1,T.=GETDATE()
WHEN NOT MATCHED THEN INSERT
(线,MES工位号,,WorkStation,XSDProgramName,XSEProgramName,XSDProgramName,XSEProgramName,)
VALUES(S.线,S.MES工位号,S.,S.WorkStation,S.XSD,S.XSE,S.XSD,S.XSE,S.);
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_配置_获取
AS
BEGIN
SET NOCOUNT ON
SELECT
TCS_BaseUrl = MAX(CASE WHEN =N'TCS_BaseUrl' THEN END),
TCS_Enabled = MAX(CASE WHEN =N'TCS_Enabled' THEN END),
McrGroup = MAX(CASE WHEN =N'McrGroup' THEN END),
McrIp = MAX(CASE WHEN =N'McrIp' THEN END),
TCS_OperatorUserId = MAX(CASE WHEN =N'TCS_OperatorUserId' THEN END),
DefaultPriority = MAX(CASE WHEN =N'DefaultPriority' THEN END),
HttpTimeoutSeconds = MAX(CASE WHEN =N'HttpTimeoutSeconds' THEN END)
FROM dbo.XD_TCS_AGV_配置 WHERE =1
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_点位配置_查询
@MES工位号 nvarchar(50) = N''
AS
BEGIN
SET NOCOUNT ON
SELECT * FROM dbo.XD_TCS_AGV_点位配置
WHERE =1 AND (@MES工位号=N'' OR MES工位号=@MES工位号)
ORDER BY
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_型号动作映射_查询
@线 nvarchar(20),
@ nvarchar(100),
@ nvarchar(10)
AS
BEGIN
SET NOCOUNT ON
SELECT TOP 1 ID,线,,,XSD,XSE,
CASE WHEN XSD=1 AND XSE=1 THEN N'XSD+XSE'
WHEN XSD=1 THEN N'XSD' ELSE N'XSE' END
FROM dbo.XD_TCS_AGV_型号动作映射
WHERE 线=@线 AND =@
AND =@ AND =1
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_库位产品_查询
@MES工位号 nvarchar(50)
AS
BEGIN
SET NOCOUNT ON
SELECT TOP 1 ,
FROM dbo.XD_磨合_状态
WHERE =@MES工位号
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_创建
@ nvarchar(100),
@ nvarchar(100)=N'',
@MES工位号 nvarchar(50),
@ nvarchar(20),
@ nvarchar(100)=N'',
@ nvarchar(20)=N'',
@ProgramName nvarchar(100)=N'',
@ nvarchar(50),
@ nvarchar(max),
@ int,
@ nvarchar(50)=N'',
@IP nvarchar(50)=N'',
@ nvarchar(20),
@ nvarchar(50)=N'',
@PLC bit=0
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN TRAN
IF NOT EXISTS(SELECT 1 FROM dbo.XD_TCS_AGV_点位配置 WHERE MES工位号=@MES工位号 AND =1)
BEGIN
ROLLBACK
SELECT 2 result,N'工位未配置TCS点位' msg
RETURN
END
IF EXISTS(SELECT 1 FROM dbo.XD_TCS_AGV_任务 WHERE =@)
BEGIN
ROLLBACK
SELECT 2 result,N'外部任务编号已存在' msg
RETURN
END
IF ISNULL(@,N'')<>N''
BEGIN
DECLARE @ nvarchar(50),@ int,@ int,@ bit
SELECT @=MES工位号,@=,
@=,@=
FROM dbo.XD_TCS_AGV_任务 WITH(UPDLOCK,HOLDLOCK)
WHERE =@
IF @ IS NULL
BEGIN
ROLLBACK
SELECT 2 result,N'原失败任务不存在' msg
RETURN
END
IF @ NOT IN(4,5) OR ISNULL(@,0)<>0
BEGIN
ROLLBACK
SELECT 2 result,N'原任务不是待处理的失败任务' msg
RETURN
END
IF ISNULL(@,0)<>1
BEGIN
ROLLBACK
SELECT 2 result,N'请先复位原失败任务对应的移动机器人' msg
RETURN
END
IF @<>@MES工位号
BEGIN
ROLLBACK
SELECT 2 result,N'恢复任务工位必须与原失败任务一致' msg
RETURN
END
END
-- MES允许各工位独立下发任务排队与执行顺序由TCS调度。
DECLARE @ nvarchar(50),@TCS站点 nvarchar(50)
SELECT @=,@TCS站点=WorkStation
FROM dbo.XD_TCS_AGV_点位配置 WHERE MES工位号=@MES工位号 AND =1
INSERT INTO dbo.XD_TCS_AGV_任务
(,,MES工位号,,TCS站点,,,,ProgramName,,,
,,IP,,,PLC)
VALUES
(@,NULLIF(@,N''),@MES工位号,@,@TCS站点,@,NULLIF(@,N''),NULLIF(@,N''),NULLIF(@ProgramName,N''),
@,@,@,@,@IP,@,@,@PLC)
DECLARE @ID bigint=SCOPE_IDENTITY()
COMMIT
SELECT 1 result,N'任务已创建' msg,@ID ID,@
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_下发结果更新
@ nvarchar(100),
@ nvarchar(max)=N'',
@ nvarchar(max)=N'',
@ bit,
@ nvarchar(2000)=N''
AS
BEGIN
SET NOCOUNT ON
UPDATE dbo.XD_TCS_AGV_任务 SET
=@,=@,
=CASE WHEN @=1 THEN 0 ELSE 4 END,
=CASE WHEN @=1 THEN N'未开始' ELSE N'任务错误' END,
=NULLIF(@,N''),=GETDATE()
WHERE =@
SELECT CASE WHEN @@ROWCOUNT=1 THEN 1 ELSE 2 END result
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_状态更新
@ nvarchar(100),
@ int,
@IP nvarchar(50)=N'',
@ nvarchar(50)=N'',
@ nvarchar(50)=N'',
@ nvarchar(50)=N'',
@ nvarchar(1000)=N''
AS
BEGIN
SET NOCOUNT ON
IF @ NOT IN(0,1,2,3,4,5)
BEGIN
SELECT 2 result,N'任务状态不正确' msg
RETURN
END
IF NOT EXISTS(SELECT 1 FROM dbo.XD_TCS_AGV_任务 WHERE =@)
BEGIN
SELECT 2 result,N'外部任务编号不存在' msg
RETURN
END
DECLARE @ int
SELECT @= FROM dbo.XD_TCS_AGV_任务 WHERE =@
IF (@ IN(2,3,5) AND @<>@)
OR (@=4 AND @ NOT IN(4,5))
BEGIN
SELECT 1 result,N'已忽略结束状态变更' msg,MES工位号,,PLC,PLC已通知
FROM dbo.XD_TCS_AGV_任务 WHERE =@
RETURN
END
UPDATE dbo.XD_TCS_AGV_任务 SET
=@,
=CASE @ WHEN 0 THEN N'未开始' WHEN 1 THEN N'进行中' WHEN 2 THEN N'已完成' WHEN 3 THEN N'已取消' WHEN 4 THEN N'任务错误' ELSE N'任务错误(已处理)' END,
IP=CASE WHEN @IP=N'' THEN IP ELSE @IP END,
=CASE WHEN @=N'' THEN ELSE @ END,
=CASE WHEN @=N'' THEN ELSE @ END,
=CASE WHEN @=N'' THEN ELSE @ END,
TCS备注=NULLIF(@,N''),
=CASE WHEN @=4 THEN NULLIF(@,N'') ELSE END,
=CASE WHEN @=5 THEN 1 ELSE END,
=GETDATE()
WHERE =@
SELECT 1 result,N'状态已更新' msg,MES工位号,,PLC,PLC已通知
FROM dbo.XD_TCS_AGV_任务 WHERE =@
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_PLC通知完成
@ nvarchar(100)
AS
BEGIN
SET NOCOUNT ON
UPDATE dbo.XD_TCS_AGV_任务 SET PLC已通知=1,=GETDATE()
WHERE =@ AND =2
SELECT CASE WHEN @@ROWCOUNT=1 THEN 1 ELSE 2 END result
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_获取
@ nvarchar(100)
AS
BEGIN
SET NOCOUNT ON
SELECT * FROM dbo.XD_TCS_AGV_任务 WHERE =@
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_人工处理
@ nvarchar(100),
@ nvarchar(50)=N'',
@ nvarchar(1000)=N''
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS(SELECT 1 FROM dbo.XD_TCS_AGV_任务 WHERE =@ AND IN(4,5))
BEGIN
SELECT 2 result,N'仅任务错误状态可以标记人工处理' msg
RETURN
END
IF NOT EXISTS(SELECT 1 FROM dbo.XD_TCS_AGV_任务 WHERE =@ AND =1)
BEGIN
SELECT 2 result,N'请先复位移动机器人再完成人工处理' msg
RETURN
END
UPDATE dbo.XD_TCS_AGV_任务 SET =1,=@,=GETDATE(),=@,=GETDATE()
WHERE =@
SELECT 1 result,N'已标记人工处理' msg
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_复位标记
@ nvarchar(100)
AS
BEGIN
SET NOCOUNT ON
UPDATE dbo.XD_TCS_AGV_任务 SET =1,=GETDATE()
WHERE =@ AND IN(4,5)
SELECT CASE WHEN @@ROWCOUNT=1 THEN 1 ELSE 2 END result,
CASE WHEN @@ROWCOUNT=1 THEN N'复位状态已记录' ELSE N'未找到对应失败任务' END msg
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_本地状态设置
@ nvarchar(100),
@ int,
@ nvarchar(50),
@ nvarchar(2000)=N''
AS
BEGIN
SET NOCOUNT ON
UPDATE dbo.XD_TCS_AGV_任务 SET =@,=@,
=NULLIF(@,N''),=GETDATE()
WHERE =@
SELECT CASE WHEN @@ROWCOUNT=1 THEN 1 ELSE 2 END result
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_分页查询
@ nvarchar(50)=N'',
@ nvarchar(50)=N'',
@MES工位号 nvarchar(50)=N'',
@ nvarchar(100)=N'',
@ nvarchar(20)=N'',
@ nvarchar(10)=N'',
@ nvarchar(20)=N'',
@PageCurrent int=1,
@PageSize int=20,
@PageCount int output,
@ItemCount int output
AS
BEGIN
SET NOCOUNT ON
DECLARE @where nvarchar(2000)=N'1=1'
IF @<>N'' SET @where+=N' AND 创建时间>='''+REPLACE(@,'''','''''')+N''''
IF @<>N'' SET @where+=N' AND 创建时间<='''+REPLACE(@,'''','''''')+N''''
IF @MES工位号<>N'' SET @where+=N' AND MES工位号='''+REPLACE(@MES工位号,'''','''''')+N''''
IF @<>N'' SET @where+=N' AND 外部任务编号 LIKE ''%'+REPLACE(@,'''','''''')+N'%'''
IF @<>N'' SET @where+=N' AND 任务动作='''+REPLACE(@,'''','''''')+N''''
IF @<>N'' SET @where+=N' AND 任务状态='+CONVERT(nvarchar(10),CONVERT(int,@))
IF @<>N'' SET @where+=N' AND 来源='''+REPLACE(@,'''','''''')+N''''
EXEC sp_xt_pagesplit N'XD_TCS_AGV_任务',N'ID',@where,
N'ID,外部任务编号,原任务编号,MES工位号,现场位置,TCS站点,任务动作,产品型号,动作组合,ProgramName,任务类型,优先级,机器人组,机器人IP,来源,操作人,任务状态,状态说明,开始时间,结束时间,TCS备注,错误信息,是否通知PLC,PLC已通知,处理状态,已复位,处理人,处理时间,处理说明,创建时间,更新时间',
N'ID DESC',@PageCurrent,@PageSize,@PageCount output,@ItemCount output
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_详情查询
@ nvarchar(100)
AS
BEGIN
SET NOCOUNT ON
SELECT * FROM dbo.XD_TCS_AGV_任务 WHERE =@
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_当前查询
AS
BEGIN
SET NOCOUNT ON
SELECT TOP 1 * FROM dbo.XD_TCS_AGV_任务
WHERE =1
ORDER BY DESC,ID DESC
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_任务_概览查询
AS
BEGIN
SET NOCOUNT ON
SELECT
ISNULL(SUM(CASE WHEN =0 THEN 1 ELSE 0 END),0) ,
ISNULL(SUM(CASE WHEN =1 THEN 1 ELSE 0 END),0) ,
ISNULL(SUM(CASE WHEN IN(4,5) AND =0 THEN 1 ELSE 0 END),0)
FROM dbo.XD_TCS_AGV_任务
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_工位日志_分页查询
@MES工位号 nvarchar(50)=N'',
@ nvarchar(50)=N'',
@ nvarchar(200)=N'',
@ nvarchar(50)=N'',
@ nvarchar(50)=N'',
@PageCurrent int=1,
@PageSize int=20,
@PageCount int OUTPUT,
@ItemCount int OUTPUT
AS
BEGIN
SET NOCOUNT ON
IF ISNULL(@PageCurrent,0)<1 SET @PageCurrent=1
IF ISNULL(@PageSize,0)<1 SET @PageSize=20
DECLARE @ datetime=TRY_CONVERT(datetime,NULLIF(@,N''))
DECLARE @ datetime=TRY_CONVERT(datetime,NULLIF(@,N''))
SELECT @ItemCount=COUNT(1)
FROM dbo.MES_系统日志 L
WHERE EXISTS
(
SELECT 1 FROM dbo.XD_TCS_AGV_点位配置 P
WHERE P.MES工位号=L. AND P.=1
)
AND (@MES工位号=N'' OR L.=@MES工位号)
AND (@=N'' OR L.=@)
AND (@=N'' OR L. LIKE N'%'+@+N'%')
AND (@ IS NULL OR L.>=@)
AND (@ IS NULL OR L.<=@)
SET @PageCount=CASE WHEN @ItemCount=0 THEN 0 ELSE CEILING(@ItemCount*1.0/@PageSize) END
SELECT L.ID,L.,L.,L.,L.
FROM dbo.MES_系统日志 L
WHERE EXISTS
(
SELECT 1 FROM dbo.XD_TCS_AGV_点位配置 P
WHERE P.MES工位号=L. AND P.=1
)
AND (@MES工位号=N'' OR L.=@MES工位号)
AND (@=N'' OR L.=@)
AND (@=N'' OR L. LIKE N'%'+@+N'%')
AND (@ IS NULL OR L.>=@)
AND (@ IS NULL OR L.<=@)
ORDER BY L. DESC,L.ID DESC
OFFSET (@PageCurrent-1)*@PageSize ROWS FETCH NEXT @PageSize ROWS ONLY
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_位置_更新
@IP nvarchar(50)=N'',
@ nvarchar(100)=N'',
@ nvarchar(100)=N'',
@ nvarchar(max)=N''
AS
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT 1 FROM dbo.XD_TCS_AGV_位置状态 WHERE ID=1)
UPDATE dbo.XD_TCS_AGV_位置状态 SET IP=@IP,=@,=@,=@,=GETDATE() WHERE ID=1
ELSE
INSERT INTO dbo.XD_TCS_AGV_位置状态(ID,IP,,,) VALUES(1,@IP,@,@,@)
SELECT 1 result
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_位置_查询
AS
BEGIN
SET NOCOUNT ON
SELECT * FROM dbo.XD_TCS_AGV_位置状态 WHERE ID=1
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_操作记录_增加
@ nvarchar(100)=N'',
@MES工位号 nvarchar(50)=N'',
@ nvarchar(50),
@ nvarchar(50)=N'',
@ nvarchar(max)=N'',
@ nvarchar(max)=N'',
@ bit,
@ nvarchar(1000)=N''
AS
BEGIN
SET NOCOUNT ON
INSERT INTO dbo.XD_TCS_AGV_操作记录(,MES工位号,,,,,,)
VALUES(NULLIF(@,N''),NULLIF(@MES工位号,N''),@,@,@,@,@,@)
SELECT 1 result
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_操作记录_分页查询
@ nvarchar(50)=N'',
@ nvarchar(50)=N'',
@ nvarchar(50)=N'',
@PageCurrent int=1,
@PageSize int=20,
@PageCount int output,
@ItemCount int output
AS
BEGIN
SET NOCOUNT ON
DECLARE @where nvarchar(1000)=N'1=1'
IF @<>N'' SET @where+=N' AND 操作时间>='''+REPLACE(@,'''','''''')+N''''
IF @<>N'' SET @where+=N' AND 操作时间<='''+REPLACE(@,'''','''''')+N''''
IF @<>N'' SET @where+=N' AND 操作类型='''+REPLACE(@,'''','''''')+N''''
EXEC sp_xt_pagesplit N'XD_TCS_AGV_操作记录',N'ID',@where,
N'ID,外部任务编号,MES工位号,操作类型,操作人,是否成功,操作结果,操作时间',
N'ID DESC',@PageCurrent,@PageSize,@PageCount output,@ItemCount output
END
GO
CREATE OR ALTER PROCEDURE dbo.XD_TCS_AGV_操作记录_任务查询
@ nvarchar(100)
AS
BEGIN
SET NOCOUNT ON
SELECT ID,,MES工位号,,,,,
FROM dbo.XD_TCS_AGV_操作记录
WHERE =@
ORDER BY ID DESC
END
GO