From db6156a92cc59467bde608a00c76952ebc75e488 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 05 三月 2024 09:51:05 +0800
Subject: [PATCH] 优化代码

---
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 51 insertions(+), 5 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
index e953d35..788360d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs"
@@ -15,6 +15,7 @@
 using WIDESEA_Core.EFDbContext;
 using WIDESEA_Core.Extensions;
 using WIDESEA_Core.FreeDB;
+using WIDESEA_Entity.DomainModels;
 using WIDESEA_WCS.IRepositories;
 using WIDESEA_WCS.Jobs;
 using WIDESEA_WCS.Repositories;
@@ -85,7 +86,7 @@
 
 
                 ///鏌ユ壘涓婃枡鍖虹殑璐т綅
-                var Stations = stationinfoRepository.Find(x => x.area == "6");
+                var Stations = stationinfoRepository.Find(x => x.area == area_code(number));
                 //缂撳瓨鏋舵湭鍚敤绂佹妗佹灦杩涘叆
                 foreach (var station in Stations)
                 {
@@ -93,12 +94,18 @@
                         Gantry_client.WriteByOrder("W_RequestUnload", false, number);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆
                 }
 
-                var Station = Stations?.Where(x => x.enable && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderBy(x => x.quantity).First();
+                var Station = Stations?.Where(x => x.enable && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderBy(x => x.quantity).FirstOrDefault();
                 if (Station != null)
                 {
                     var SNS = Station.bindSN.Split(",");
+                    List<string> list = new List<string>();
+                    foreach (var SN in SNS)
+                    {
+                        if (!string.IsNullOrEmpty(SN))
+                            list.Add(SN);
+                    }
                     //缂撳瓨鏋朵笂杞﹁疆鏁伴噺涓嶴N鍙锋暟閲忎笉涓�鑷�
-                    if (SNS.Length != Station.quantity)
+                    if (list.Count != Station.quantity)
                     {
                         Station.location_state = LocationStateEnum.Abnormal.ToString();
                         stationinfoRepository.Update(Station, true);
@@ -114,7 +121,7 @@
                         Gantry_client.WriteByOrder("W_AreaNr", (Int16)area, number);//鍖哄煙璐т綅鍙�
                         Gantry_client.WriteByOrder("W_IndexNr", (Int16)SNS.Length, number);//鎵樼洏涓婄殑绗嚑涓溅杞�
                         Gantry_client.WriteByOrder("W_Storage_Type", (Int16)1, number); //鎵樼洏绫诲瀷1-妯斁;2-绔栨斁
-                        Gantry_client.WriteByOrder("W_Wheel_Type", (Int16)Convert.ToInt16(Station.stationType), number);//杞﹁疆绫诲瀷
+                        Gantry_client.WriteByOrder("W_Wheel_Type", (Int16)Convert.ToInt16(QueryMateriel(Station.stationType)), number);//杞﹁疆绫诲瀷
                         Gantry_client.WriteByOrder("W_Wheel_id", SNS[SNS.Length - 1], number);//杞﹁疆SN鍙�
                         Gantry_client.WriteByOrder("W_RequestUnload", true, number);
                     }
@@ -139,22 +146,47 @@
                         }
                     }
                     var finished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Unlod_finished").First(), Gantry_client);//澶瑰彇瀹屾垚
-                    if (finished)
+                    var updatefinished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "W_Storage_update").First(), Gantry_client);//璐т綅鐘舵�佹洿鏂�
+                    if (!finished && updatefinished)
+                        Gantry_client.WriteByOrder("W_Storage_update", false, number);//璐т綅鐘舵�佹洿鏂�
+                    if (finished && !updatefinished)
                     {
                         Station.quantity = Station.quantity - 1;
                         Station.bindSN = OperStr(SNS);
+                        if (Station.quantity <= 0)
+                        {
+                            Station.stationType = string.Empty;
+                            //Station.location_state = LocationStateEnum.Empty.ToString();
+                            Station.Number = string.Empty;
+                            Station.heatNumber = string.Empty;
+                        }
                         var count = stationinfoRepository.Update(Station, true);
                         if (count < 1)
                             throw new Exception($"涓婃枡浣嶄俊鎭洿鏂板け璐ワ紒涓婃枡浣嶇紪鍙凤細{Station.stationCode}");
                         Gantry_client.WriteByOrder("W_Storage_update", true, number);//璐т綅鐘舵�佹洿鏂�
                         Gantry_client.WriteByOrder("W_RequestUnload", false, number);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆
+                        //finished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Unlod_finished").First(), Gantry_client);
+                        //while (finished)
+                        //{
+                        //    finished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Unlod_finished").First(), Gantry_client);
+                        //    Gantry_client.WriteByOrder("W_Storage_update", false, number);//璐т綅鐘舵�佹洿鏂�
+                        //}
                     }
+                    //else if (!finished && updatefinished)
+                    //    Gantry_client.WriteByOrder("W_Storage_update", false, number);//璐т綅鐘舵�佹洿鏂�
+
                 }
             }
             catch (Exception ex)
             {
                 //WritePCSLog.LogAdd(requestin.AreaNr.ToString(), respone.success == 1 ? "鎴愬姛 " : "澶辫触", "WMS", "AGV", json, JsonConvert.SerializeObject(respone), remark, "妫�娴嬬嚎涓婃枡鍖�", ex.Message);
             }
+        }
+        public static string area_code(string area_name)
+        {
+            FreeDB freeDB = new FreeDB();
+            var areainfo = freeDB.Select<dt_areainfo>().Where(x => x.area_name == area_name).First();
+            return areainfo.area_code.ToString();
         }
 
         private string OperStr(string[] strArrty)
@@ -164,5 +196,19 @@
 
             return Newsn;
         }
+        private int QueryMateriel(string type)
+        {
+            VOLContext Context = new VOLContext();
+            Idt_geometry_dataRepository dataRepository = new dt_geometry_dataRepository(Context);
+            var materielinfo = dataRepository.FindFirst(x => x.Description == type);
+            return materielinfo.TypeId;
+        }
+        public static string QueryMateriel(int  typeId)
+        {
+            VOLContext Context = new VOLContext();
+            Idt_geometry_dataRepository dataRepository = new dt_geometry_dataRepository(Context);
+            var materielinfo = dataRepository.FindFirst(x => x.TypeId == typeId);
+            return materielinfo.Description;
+        }
     }
 }

--
Gitblit v1.9.3