From 34b61fb9c6e18f4d07f3e8d33f3e9e184364ac43 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期六, 15 二月 2025 10:26:46 +0800
Subject: [PATCH] 添加线体偏移量接口

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs              |    1 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolController.cs |   10 ++++
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs               |   65 ++++++++++++++++++++++++++++++++
 3 files changed, 74 insertions(+), 2 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs
index 3aee210..dbdaa48 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs
@@ -84,5 +84,68 @@
         //{
         //    Type type = typeof();
         //}
+        
+
+        // 灏佽妫�鏌ラ�昏緫
+        private bool DeviceProtocolExists(int DeviceID, string DeviceChildCode, decimal DeviceProOffset)
+        {
+            return BaseDal.QueryFirst(x => x.DeviceId == DeviceID && x.DeviceChildCode == DeviceChildCode && x.DeviceProOffset == DeviceProOffset) != null;
+        }
+
+        // 灏佽瀵硅薄鍒涘缓閫昏緫
+        private Dt_DeviceProtocol CreateDeviceProtocol(int DeviceID, string DeviceChildCode, decimal DeviceProOffset, int additionalOffset, string dataType, int dataLength, string paramName)
+        {
+            decimal DeviceProOffsets = DeviceProOffset + additionalOffset;
+            return new Dt_DeviceProtocol
+            {
+                DeviceId = DeviceID,
+                DeviceChildCode = DeviceChildCode,
+                DeviceProDataBlock = "DB1000",
+                DeviceProOffset = DeviceProOffsets,
+                DeviceProDataLength = dataLength,
+                DeviceProDataType = dataType,
+                DeviceProParamName = paramName,
+                DeviceProParamType = "DeviceCommand",
+                DeviceProParamDes = "1",
+                DeviceProRemark = "",
+                Creater = "admin",
+                CreateDate = DateTime.Now,
+            };
+        }
+
+        public WebResponseContent AddDeviceProtocol(int DeviceID, string DeviceChildCode, decimal DeviceProOffset)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (DeviceProtocolExists(DeviceID, DeviceChildCode, DeviceProOffset))
+                {
+                    throw new InvalidOperationException("宸插瓨鍦ㄨ鑺傜偣鏄庣粏");
+                }
+
+                var protocols = new List<Dt_DeviceProtocol>
+                {
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 0, "int", 1, "ConveyorLineTargetAddress"),
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 2, "int", 1, "ConveyorLineTaskNum"),
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 6, "string", 25, "ConveyorLineBarcode"),
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 34, "int", 1, "Reserve1"),
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 36, "int", 1, "Reserve2"),
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 38, "int", 1, "Reserve3"),
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 40, "byte", 1, "InteractiveSignal"),
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 42, "int", 1, "HasPallet"),
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 44, "int", 1, "ConveyorLineAlarm"),
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 46, "int", 1, "ResponState"),
+                    CreateDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset, 48, "int", 1, "Reserve5")
+
+                };
+                var result=BaseDal.AddData(protocols);
+                return content.OK(data:result);
+            }
+            catch (Exception ex)
+            {
+                return content.Error(ex.Message);
+            }
+            
+        }
     }
-}
+}
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs
index f2b8023..5b63f18 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs
@@ -36,5 +36,6 @@
         /// <param name="fileInput">鏂囦欢</param>
         /// <returns>杩斿洖璇诲彇缁撴灉锛屾垚鍔熻繑鍥炴暟鎹紝澶辫触杩斿洖閿欒淇℃伅</returns>
         WebResponseContent GetImportData(List<IFormFile> fileInput);
+        WebResponseContent AddDeviceProtocol(int DeviceID, string DeviceChildCode, decimal DeviceProOffset);
     }
 }
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolController.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolController.cs
index 68078c5..48181c7 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolController.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolController.cs
@@ -1,4 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
+锘縰sing Autofac.Core;
+using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using WIDESEAWCS_Core;
@@ -20,5 +21,12 @@
         {
             return Service.GetImportData(fileInput);
         }
+
+        [HttpPost, Route("AddDeviceProtocol"), AllowAnonymous]
+        public WebResponseContent AddDeviceProtocol(int DeviceID,string DeviceChildCode, decimal DeviceProOffset)
+        {
+            
+            return Service.AddDeviceProtocol(DeviceID, DeviceChildCode, DeviceProOffset);
+        }
     }
 }

--
Gitblit v1.9.3