From bb56b2b6f21acb7c69c02585e5bc534d2f67715f Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 27 三月 2025 17:13:35 +0800
Subject: [PATCH] WMS首页优化,WCS优化AGV和产线、输送线交互逻辑

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ProductionLineJob/CommonProductionLineJob.cs |   87 +++++++++++++++++++++----------------------
 1 files changed, 42 insertions(+), 45 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ProductionLineJob/CommonProductionLineJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ProductionLineJob/CommonProductionLineJob.cs"
index ae23e5f..e29bab2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ProductionLineJob/CommonProductionLineJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ProductionLineJob/CommonProductionLineJob.cs"
@@ -8,6 +8,7 @@
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.DTO;
 using WIDESEAWCS_QuartzJob.Service;
 using WIDESEAWCS_Tasks.ProductionLineJob;
 using WIDESEAWCS_Tasks.StackerCraneJob;
@@ -35,19 +36,19 @@
         {
             try
             {
-                //ProductionLineDTO MaterielGroupDTO = new ProductionLineDTO()
-                //{
-                //    stationCode = "MDX01",
-                //    traytype = 4,
-                //    Barcode = "25" + i.ToString("000000"),
-                //    batchNo = "20250222T3",
-                //};
-                //var content = ProductionLineToWMSRequest(MaterielGroupDTO);
-                //i++;
                 #region MyRegion
                 OtherDevice ProductionLine = (OtherDevice)context.JobDetail.JobDataMap.Get("JobParams");
                 if (ProductionLine != null)
                 {
+                    //ProductionLineDTO MaterielGroupDTO = new ProductionLineDTO()
+                    //{
+                    //    stationCode = ProductionLine.DeviceCode,
+                    //    traytype = 4,
+                    //    Barcode = "25000037",
+                    //    batchNo = "250325T1",
+                    //};
+                    //var content = ProductionLineToWMSRequest(MaterielGroupDTO);
+                    #region MyRegion
                     var request = ProductionLine.GetValue<ProductionLineDBName, short>(ProductionLineDBName.request);
                     if (request == 1)
                     {
@@ -55,46 +56,26 @@
                         //var content = Request(ProductionLine, traytype, ProductionLine.DeviceCode);
                         if (traytype == 4)
                         {
-                            var Barcode = ProductionLine.GetValue<ProductionLineDBName, string>(ProductionLineDBName.trayBarcode);
-                            var batchNo = ProductionLine.GetValue<ProductionLineDBName, string>(ProductionLineDBName.batchNo);
-                            ProductionLineDTO MaterielGroupDTO = new ProductionLineDTO()
+                            var Barcode = ProductionLine.GetValue<ProductionLineDBName, string>(ProductionLineDBName.trayBarcode).Replace("\0", "");
+                            var task = _taskRepository.QueryFirst(x => x.PalletCode == Barcode);
+                            if (task == null)
                             {
-                                stationCode = ProductionLine.DeviceCode,
-                                traytype = traytype,
-                                Barcode = Barcode,
-                                batchNo = batchNo,
-                            };
-                            var content = ProductionLineToWMSRequest(MaterielGroupDTO);
-                            if (content.Status) ProductionLine.SetValue(ProductionLineDBName.Wrequest, 1);
+                                var batchNo = ProductionLine.GetValue<ProductionLineDBName, string>(ProductionLineDBName.batchNo).Replace("\0", "");
+                                ProductionLineDTO MaterielGroupDTO = new ProductionLineDTO()
+                                {
+                                    stationCode = ProductionLine.DeviceCode,
+                                    traytype = traytype,
+                                    Barcode = Barcode,
+                                    batchNo = batchNo,
+                                };
+                                var content = ProductionLineToWMSRequest(MaterielGroupDTO);
+                                if (content.Status)
+                                    ProductionLine.SetValue(ProductionLineDBName.Wrequest, request);
+                            }
                         }
                     }
+                    #endregion
                 }
-                #endregion
-                #region MyRegion
-                //short[] shorts = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 };
-                //ProductionLineDTO MaterielGroupDTO = new ProductionLineDTO()
-                //{
-                //    Barcode = "A1001",
-                //    batchNo = "20241212001T1",
-                //    stationCode = "Z1",
-                //    productQty = string.Join(",", shorts),
-                //    traytype = 4
-                //};
-                //ProductionLineToWMSRequest(MaterielGroupDTO);
-                //if (ProductionLine != null)
-                //{
-                //    switch (ProductionLine.DeviceName)
-                //    {
-                //        case "鍏ュ簱浜х嚎":
-                //            ProductionLineIn(ProductionLine);
-                //            break;
-                //        case "鍑哄簱浜х嚎":
-                //            ProductionLineOut(ProductionLine);
-                //            break;
-                //        default:
-                //            throw new Exception("鏈畾涔変骇绾�");
-                //    }
-                //} 
                 #endregion
             }
             catch (Exception ex)
@@ -103,5 +84,21 @@
             }
             return Task.CompletedTask;
         }
+
+        public string GetString<TEnum, TResult>(TEnum value, OtherDevice ProductionLine) where TEnum : Enum
+        {
+            TEnum value2 = value;
+            if (!ProductionLine.IsConnected)
+            {
+                throw new Exception("閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
+            }
+            DeviceProDTO deviceProDTO = ProductionLine.DeviceProDTOs.FirstOrDefault((DeviceProDTO x) => x.DeviceProParamName == value2.ToString());
+            if (deviceProDTO != null)
+            {
+                return Encoding.ASCII.GetString(ProductionLine.Communicator.Read(deviceProDTO.DeviceProAddress, deviceProDTO.DeviceProDataLength)).Replace("\0", "");
+                //return (TResult)Communicator.ReadAsObj(deviceProDTO.DeviceProAddress, deviceProDTO.DeviceDataType);
+            }
+            throw new Exception("璇诲彇鏁版嵁閿欒,鏈湪鍗忚淇℃伅閲岄潰鎵惧埌鍙傛暟" + value2.ToString());
+        }
     }
 }

--
Gitblit v1.9.3