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 | 199 ++++++++++++++----------------------------------- 1 files changed, 58 insertions(+), 141 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 374ec39..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() { @@ -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) @@ -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) { @@ -428,87 +357,75 @@ var db = new SqlHelper<object>().GetInstance(); try { - - - var reservoirs1 = Settings.ReservoirAreas.Where(s => s.areaName == "3min绌烘墭鍖�).FirstOrDefault(); - 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) - .PartitionBy(a => a.N_ROW) - .OrderByDescending(a => a.N_COL).Take(1).ToList(); - if (list.Count > 0) + //鏌ヨ嚜鍔ㄨˉ鎵樿〃 + var autoLists = db.Queryable<AutoRepairEmptyTray>().ToList(); + foreach (var autolist in autoLists) { - for (int i = 0; i < list.Count; i++) + //鎵捐捣鐐�+ 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 loc = list[i]; - //鍒ゆ柇閫佸線3瀵歌繕鏄�瀵告媶鎵樻満 - string endLoc = null; - string dev = null; - if (list[i].S_AREA_CODE == reservoirs1.areaCode) - { - endLoc = linePlcInfo1.inLoca; - dev = "1"; - } - else if (list[i].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")) + //鎵剧粓鐐�+ if (autolist.S_TYPE == "涓夊") { - var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == list[i].S_CODE).First(); + 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($"鍒涘缓浠诲姟 璧风偣:{list[i].S_CODE}缁堢偣:{endLoc}"); - var res = TaskProcess.CreateTransport(list[i].S_CODE, endLoc, "閫佹墭", locCntrRel.S_CNTR_CODE, 1, 1); - if (res) - { - LogHelper.Info($"璧风偣:{list[i].S_CODE}缁堢偣:{endLoc}浠诲姟鍒涘缓鎴愬姛"); - } - else - { - LogHelper.Info($"璧风偣:{list[i].S_CODE}缁堢偣:{endLoc}浠诲姟鍒涘缓澶辫触"); + 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 + else if (autolist.S_TYPE == "鍏") { - LogHelper.Info($"鎷嗘墭鏈簕endLoc}涓嶅厑璁告斁妗�); + 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("AutoReplenish:" + ex.Message + ex.StackTrace); - LogHelper.Error("AutoReplenish:" + ex.Message, ex); + Console.WriteLine("AutoRepairEmptyTray:" + ex.Message + ex.StackTrace); + LogHelper.Error("AutoRepairEmptyTray:" + ex.Message, ex); throw; } -- Gitblit v1.9.1