From 766d0cae552e0e549b302a1763d113416346832a Mon Sep 17 00:00:00 2001 From: zxx <Zxx@HanInfo> Date: 星期二, 10 六月 2025 17:21:44 +0800 Subject: [PATCH] jushi --- HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/core/WMSCore.cs | 161 ++++++++++++++++++++++++++++------------------------- 1 files changed, 85 insertions(+), 76 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/core/WMSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/core/WMSCore.cs index dd55966..af40a22 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/core/WMSCore.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/core/WMSCore.cs @@ -174,7 +174,7 @@ // } //} - + //鐩戞祴鎽勫儚澶村璐т綅(閫佹鍏ュ簱鍖�绌烘弧鐘舵� 婊$殑灏卞弶鍒扮珛搴� public static void MonitorFullStatus() { @@ -194,7 +194,7 @@ //鎵鹃�妫�叆搴撳尯鍐呮墭鐩樻弧浜嗙殑璐т綅 var locList = db.Queryable<Location>() - .Where(p => p.S_AREA_CODE == reservoirs.areaCode && p.N_LOCK_STATE == 0) + .Where(p => p.S_AREA_CODE == reservoirs.areaCode && p.N_LOCK_STATE == 0 && p.C_ENABLE == "Y") .Where(s => locCntrs.Contains(s.S_CODE.Trim())) .ToList(); @@ -205,7 +205,7 @@ var startLoc = locList.FirstOrDefault(); var endLoc = TaskProcess.InWorkTransport(reservoirs2.areaCode); LogHelper.Info($"浠诲姟鎽勫儚澶寸洃娴嬫壘鍒扮粓鐐硅揣浣嶏細{JsonConvert.SerializeObject(endLoc)}"); - if (endLoc!=null) + if (endLoc != null) { var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First(); LogHelper.Info($"浠诲姟鎽勫儚澶寸洃娴嬫壘鍒版墭鐩橈細{JsonConvert.SerializeObject(locCntrRel)}"); @@ -285,18 +285,10 @@ var reservoirs2 = Settings.ReservoirAreas.Where(s => s.areaName == "6min绌烘墭鍖�).FirstOrDefault(); var linePlcInfo1 = Settings.linePlcInfos.Where(s => s.deviceNo == "1").FirstOrDefault(); var linePlcInfo2 = Settings.linePlcInfos.Where(s => s.deviceNo == "2").FirstOrDefault(); - ////鎵惧埌绌烘墭缂撳瓨鍖虹殑鎵�湁璐т綅缂栧彿 - //var locList = db.Queryable<Location>() - // .Where(s => s.S_AREA_CODE == reservoirs1.areaCode || s.S_AREA_CODE == reservoirs2.areaCode) - // .Where(s => s.N_LOCK_STATE == 0) - // .OrderByDescending(s => s.N_ROW).OrderByDescending(s => s.N_COL).OrderBy(s => s.N_LAYER) - // .Select(s => s.S_CODE) - // .ToList(); - //鏌ヨ姣忔帓鏈�悗涓�垪鏈夋墭鐩樼殑璐т綅 鏍规嵁琛屽垎鍖�鍐嶆壘姣忎竴琛岀殑鏈�悗涓�垪鏈夎揣鐨勮揣浣� var list = db.Queryable<Location>(). - Where(a => a.N_CURRENT_NUM > 0 ).Where(a=> a.S_AREA_CODE.Trim() == reservoirs1.areaCode|| a.S_AREA_CODE.Trim() == reservoirs2.areaCode) + Where(a => a.N_CURRENT_NUM > 0).Where(a => a.S_AREA_CODE.Trim() == reservoirs1.areaCode || a.S_AREA_CODE.Trim() == reservoirs2.areaCode) .PartitionBy(a => a.N_ROW) .OrderByDescending(a => a.N_COL).Take(1).ToList(); if (list.Count > 0) @@ -318,7 +310,7 @@ dev = "2"; } var endLocation = db.Queryable<Location>().Where(s => s.S_CODE == endLoc).First(); - if (endLocation == null || endLocation.N_LOCK_STATE != 0) + if (endLocation == null || endLocation.N_LOCK_STATE != 0 || endLocation.C_ENABLE != "Y") { //LogHelper.Info($"鎷嗘墭鏈鸿揣浣峽endLoc}涓嶅瓨鍦ㄦ垨宸茶閿�); return; @@ -348,69 +340,6 @@ } } } - - - - - - ////鎵惧埌缁戜簡鎵樼洏鐨勮揣浣嶅彿 - //var locCntrs = db.Queryable<LocCntrRel>() - // .Where(s => locList.Contains(s.S_LOC_CODE.Trim())) - // .Select(s => s.S_LOC_CODE) - // .ToList(); - //if (locCntrs.Any()) - //{ - // //LogHelper.Info($"绌烘墭缂撳瓨鍖烘湁缁戝畾璐т綅锛歿JsonConvert.SerializeObject(locCntrs)}"); - // //var loccode = locCntrs.First(); - // foreach (var loccode in locCntrs) - // { - // var loc = db.Queryable<Location>().Where(s => s.S_CODE == loccode).First(); - // //鍒ゆ柇閫佸線3瀵歌繕鏄�瀵告媶鎵樻満 - // string endLoc = null; - // string dev = null; - // if (loc.S_AREA_CODE == reservoirs1.areaCode) - // { - // endLoc = linePlcInfo1.inLoca; - // dev = "1"; - // } - // else if (loc.S_AREA_CODE == reservoirs2.areaCode) - // { - // endLoc = linePlcInfo2.inLoca; - // dev = "2"; - // } - // var endLocation = db.Queryable<Location>().Where(s => s.S_CODE == endLoc).First(); - // if (endLocation == null || endLocation.N_LOCK_STATE != 0) - // { - // //LogHelper.Info($"鎷嗘墭鏈鸿揣浣峽endLoc}涓嶅瓨鍦ㄦ垨宸茶閿�); - // return; - // } - // //鏍¢獙鏄惁鍏佽鏀捐揣 - // var plcDeviceTable = S7Helper.plcDeviceTables; - // LogHelper.Info($"鑷姩閫佹墭 鎷嗘墭鏈簕dev}:{plcDeviceTable.requestPut1}"); - // if ((plcDeviceTable.requestPut1 && dev == "1") || - // (plcDeviceTable.requestPut2 && dev == "2")) - // { - // var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == loccode).First(); - - // LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{loccode}缁堢偣:{endLoc}"); - // var res = TaskProcess.CreateTransport(loccode, endLoc, "閫佹墭", locCntrRel.S_CNTR_CODE, 1, 1); - // if (res) - // { - // LogHelper.Info($"璧风偣:{loccode}缁堢偣:{endLoc}浠诲姟鍒涘缓鎴愬姛"); - // } - // else - // { - // LogHelper.Info($"璧风偣:{loccode}缁堢偣:{endLoc}浠诲姟鍒涘缓澶辫触"); - // } - // } - // else - // { - // LogHelper.Info($"鎷嗘墭鏈簕endLoc}涓嶅厑璁告斁妗�); - // } - // } - - //} - } catch (Exception ex) { @@ -422,7 +351,87 @@ } + //浜х嚎鑷姩琛ョ┖鎵�+ public static void AutoRepairEmptyTray() + { + var db = new SqlHelper<object>().GetInstance(); + try + { + //鏌ヨ嚜鍔ㄨˉ鎵樿〃 + var autoLists = db.Queryable<AutoRepairEmptyTray>().ToList(); + foreach (var autolist in autoLists) + { + //鎵捐捣鐐�+ var priorityLoc = Settings.PriorityLocs.Where(s => s.Name == autolist.S_LOC_CODE).FirstOrDefault(); + var startLoc = db.Queryable<Location>() + .Where(s => s.S_CODE == priorityLoc.Location).First(); + if (startLoc != null && startLoc.N_LOCK_STATE == 0 && startLoc.C_ENABLE == "Y") + { + var plcDeviceTable = S7Helper.plcDeviceTables; + //鎵剧粓鐐�+ if (autolist.S_TYPE == "涓夊") + { + var linePlcInfo = Settings.linePlcInfos.Where(s => s.deviceNo == "1").FirstOrDefault(); + //鏍¢獙鏄惁鍏佽鏀捐揣 + var endLoc = db.Queryable<Location>() + .Where(s => s.S_CODE == linePlcInfo.outLoca).First(); + if (endLoc != null && endLoc.N_LOCK_STATE == 0 && endLoc.C_ENABLE == "Y") + { + if (plcDeviceTable.requestTake1) + { + var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First(); + LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}"); + var res = TaskProcess.CreateTransport(startLoc.S_CODE, endLoc.S_CODE, "閫佹墭", locCntrRel.S_CNTR_CODE, 1, 1); + if (res) + { + LogHelper.Info($"璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}浠诲姟鍒涘缓鎴愬姛"); + } + else + { + LogHelper.Info($"璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}浠诲姟鍒涘缓澶辫触"); + } + } + } + } + else if (autolist.S_TYPE == "鍏") + { + var linePlcInfo = Settings.linePlcInfos.Where(s => s.deviceNo == "2").FirstOrDefault(); + //鏍¢獙鏄惁鍏佽鏀捐揣 + var endLoc = db.Queryable<Location>() + .Where(s => s.S_CODE == linePlcInfo.outLoca).First(); + if (endLoc != null && endLoc.N_LOCK_STATE == 0 && endLoc.C_ENABLE == "Y") + { + if (plcDeviceTable.requestTake2) + { + var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First(); + + LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}"); + var res = TaskProcess.CreateTransport(startLoc.S_CODE, endLoc.S_CODE, "閫佹墭", locCntrRel.S_CNTR_CODE, 1, 1); + if (res) + { + LogHelper.Info($"璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}浠诲姟鍒涘缓鎴愬姛"); + } + else + { + LogHelper.Info($"璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}浠诲姟鍒涘缓澶辫触"); + } + } + } + } + } + } + } + catch (Exception ex) + { + Console.WriteLine("AutoRepairEmptyTray:" + ex.Message + ex.StackTrace); + LogHelper.Error("AutoRepairEmptyTray:" + ex.Message, ex); + throw; + } + + + + } } } -- Gitblit v1.9.1