ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-07-28

2021-07-28 10:31:51  阅读:201  来源: 互联网

标签:BEGIN END 07 -- barcode 28 PalletID 2021 码垛


一个码垛的自动打包项目

本程序设计实现,机器人与码垛方式与物体的码垛定位。只提供个人学习,
禁止转载。

在这里插入图片描述

USE [PalletDB]
GO
/****** Object:  StoredProcedure [dbo].[AddBarCode]    Script Date: 2021/7/28 10:08:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[AddBarCode]
-- Add the parameters for the stored procedure here
	@barcode nvarchar(500),
	@PT nvarchar(50),
	@MSG VARCHAR(200) OUTPUT
AS

----调试
--DECLARE @barcode nvarchar(500);
--DECLARE @PT nvarchar(50);
--set @barcode = '52391123454';
--set @PT = '192.158.3.8';
DECLARE @PalletSum1 INT = 0;
DECLARE @PalletSum2 INT = 0;
DECLARE @PalletID VARCHAR(200) = '';
DECLARE @REPETITION int = 0;
BEGIN
	BEGIN TRY
		--开启事务
		BEGIN TRAN
			BEGIN
				--查找当前的PID
				SELECT @PalletID = [PalletID] FROM[PalletDB].[dbo].[Pallet] WHERE [BarCodeHead] = LEFT(@barcode,5)  AND [PT] = @PT AND [IsAutomaticEnd] = -1;
				print 'PalletID:' + @PalletID;
				IF LEN(@PalletID)>0
					BEGIN
						SELECT @REPETITION = COUNT(1) FROM [PalletDB].[dbo].[PalletStacking]  WHERE[PalletID] = @PalletID AND [BarCode] = @barcode;
						IF @REPETITION >0
						BEGIN
							PRINT '条码['+@barcode +']重复码垛';
							SET @MSG =  '条码['+@barcode +']重复码垛';
						END
						ELSE BEGIN
							--添加编码到对应位置
							UPDATE [PalletDB].[dbo].[PalletStacking] SET [BarCode] = @barcode ,[Note] = '成功'  WHERE[PalletID] =  @PalletID AND[Coordinates] = ( SELECT TOP 1  [Coordinates] FROM[PalletDB].[dbo].[PalletStacking] WHERE[BarCode] IS NULL);
							--整板装完更新整板的状态为自动结束1
							SELECT @PalletSum1 = COUNT([PalletID]) FROM [PalletDB].[dbo].[PalletStacking] WHERE[PalletID] = @PalletID AND [BarCode] IS NULL ;
							print 'OK,码垛剩余空位:'+CONVERT(VARCHAR(20) ,@PalletSum1)+'个';
							SET @MSG =   'OK,码垛剩余空位:'+CONVERT(VARCHAR(20) ,@PalletSum1)+'个';
							--IsAutomaticEnd -1:默认值,0:手动结束,1:自动结束
							IF(@PalletSum1 = 0)
							BEGIN
								UPDATE  [PalletDB].[dbo].[Pallet] SET [IsAutomaticEnd] = 1  WHERE [PalletID] = @PalletID  AND [IsAutomaticEnd] = -1;
								print 'OK,码垛完成';
								SET @MSG =   'OK,码垛完成'; 
							END
							
						END
					END
				ELSE BEGIN 
					print '没有对应的PalletID[整板编号]';
					SET @MSG = '没有对应的PalletID[整板编号]';
				END
				COMMIT TRAN;
			END
	END TRY
	BEGIN CATCH
		IF @@TRANCOUNT > 0
		BEGIN
			SET @MSG = '数据异常:' + 'barcode:' + @barcode + ' PT' +@PT ;
			ROLLBACK TRAN
		END 
	END CATCH
END

标签:BEGIN,END,07,--,barcode,28,PalletID,2021,码垛
来源: https://blog.csdn.net/zgp11zgp/article/details/119172029

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有