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