From cdf20a4525a2ff9f6fe2c1e9b69fa2854c5848fd Mon Sep 17 00:00:00 2001 From: zxx <Zxx@HanInfo> Date: 星期二, 27 五月 2025 17:17:03 +0800 Subject: [PATCH] 巨石 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/core/WMSCore.cs | 170 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 136 insertions(+), 34 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 562e821..28d7508 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/core/WMSCore.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/core/WMSCore.cs @@ -1,4 +1,5 @@ 锘縰sing HH.WCS.JuShi.api; +using HH.WCS.JuShi.device; using HH.WCS.JuShi.process; using HH.WCS.JuShi.util; using HH.WCS.JuShi.wms; @@ -172,49 +173,56 @@ // } //} - + //鐩戞祴鎽勫儚澶村璐т綅(閫佹鍏ュ簱鍖�绌烘弧鐘舵� 婊$殑灏卞弶鍒扮珛搴� public static void MonitorFullStatus() { //bool result = false; //鎵鹃�妫�叆搴撳尯婊℃墭鐩樼殑璐т綅 - var db = new SqlHelper<Location>().GetInstance(); + var db = new SqlHelper<object>().GetInstance(); try { - var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "閫佹鍏ュ簱鍖�).FirstOrDefault(); - var reservoirs2 = Settings.ReservoirAreas.Where(s => s.areaName == "RGV搴撳尯").FirstOrDefault(); - //涓夎〃鑱旀煡鏌ュ嚭鎵樼洏婊$殑 鎸夊垱寤烘椂闂撮『搴�- var locCntrs = db.Queryable<LocCntrRel>().LeftJoin<Container>((p, c) => p.S_CNTR_CODE == c.S_CODE) - .Where((p, c) => c.C_FULL == "2") - .OrderBy((p, c) => p.T_CREATE) - .Select((p, c) => p.S_LOC_CODE) // 閫夋嫨鎵樼洏鐗╂枡琛ㄧ殑鏁版嵁 - .ToList(); + var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "閫佹鍏ュ簱鍖�).FirstOrDefault(); + var reservoirs2 = Settings.ReservoirAreas.Where(s => s.areaName == "绔嬪簱鍏ュ簱鍖�).FirstOrDefault(); + //涓夎〃鑱旀煡鏌ュ嚭鎵樼洏婊$殑 鎸夊垱寤烘椂闂撮『搴�+ var locCntrs = db.Queryable<LocCntrRel>().LeftJoin<Container>((p, c) => p.S_CNTR_CODE == c.S_CODE) + .Where((p, c) => c.C_FULL == "2") + .OrderBy((p, c) => p.T_CREATE) + .Select((p, c) => p.S_LOC_CODE) // 閫夋嫨鎵樼洏鐗╂枡琛ㄧ殑鏁版嵁 + .ToList(); - //鎵鹃�妫�叆搴撳尯鍐呮墭鐩樻弧浜嗙殑璐т綅 - var locList = db.Queryable<Location>() - .Where(p => p.S_AREA_CODE == reservoirs.areaCode && p.N_LOCK_STATE == 0) - .Where(s => locCntrs.Contains(s.S_CODE.Trim())) - .ToList(); + //鎵鹃�妫�叆搴撳尯鍐呮墭鐩樻弧浜嗙殑璐т綅 + var locList = db.Queryable<Location>() + .Where(p => p.S_AREA_CODE == reservoirs.areaCode && p.N_LOCK_STATE == 0) + .Where(s => locCntrs.Contains(s.S_CODE.Trim())) + .ToList(); - if (locList.Any()) - { - //寤轰换鍔�- var startLoc = locList.FirstOrDefault(); - var endLoc = TaskProcess.InWorkTransport(reservoirs2.areaCode); + if (locList.Any()) + { + LogHelper.Info($"浠诲姟鎽勫儚澶寸洃娴嬬┖婊$姸鎬佹壘鍒拌揣浣峽JsonConvert.SerializeObject(locList)}"); + //寤轰换鍔�+ var startLoc = locList.FirstOrDefault(); + var endLoc = TaskProcess.InWorkTransport(reservoirs2.areaCode); + LogHelper.Info($"浠诲姟鎽勫儚澶寸洃娴嬫壘鍒扮粓鐐硅揣浣嶏細{JsonConvert.SerializeObject(endLoc)}"); + if (endLoc!=null) + { + var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First(); + LogHelper.Info($"浠诲姟鎽勫儚澶寸洃娴嬫壘鍒版墭鐩橈細{JsonConvert.SerializeObject(locCntrRel)}"); - var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == endLoc.S_CODE).First(); - TaskProcess.CreateTransport(startLoc.S_CODE, endLoc.S_CODE, "鎽勫儚澶寸洃娴�, locCntrRel.S_CNTR_CODE, 1, 1); + TaskProcess.CreateTransport(startLoc.S_CODE, endLoc.S_CODE, "鎽勫儚澶寸洃娴�, locCntrRel.S_CNTR_CODE, 1, 1); - } - } + } + + } + } catch (Exception ex) - { - Console.WriteLine("AutoReplenish:" + ex.Message + ex.StackTrace); - LogHelper.Error("AutoReplenish:" + ex.Message, ex); - throw; - } + { + Console.WriteLine("MonitorFullStatus:" + ex.Message + ex.StackTrace); + LogHelper.Error("MonitorFullStatus:" + ex.Message, ex); + throw; + } - + //return result; @@ -222,7 +230,12 @@ //甯歌閫佹绌轰簡鑷姩浠庨�妫�紦瀛樺尯鍙栦竴涓�杩囧幓 public static void AutoReplenish() { - var db = new SqlHelper<Location>().GetInstance(); + var db = new SqlHelper<object>().GetInstance(); + var isusinglist = db.Queryable<Isusing>().Where(a => a.S_TYPE == "鑷姩琛ヨ揣").First(); + if (isusinglist.S_STATUS == 0) + { + return; + } try { var cgreservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "甯歌閫佹鍖�).FirstOrDefault(); @@ -233,7 +246,8 @@ var hcreservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "閫佹缂撳瓨鍖�).FirstOrDefault(); //鎵鹃�妫�紦瀛樺尯鏈夎揣鐨勮揣浣� var startloc = TaskProcess.OutWorkTransport(hcreservoirs.areaCode); - if (startloc!=null) + //LogHelper.Info($"AutoReplenish 鑷姩琛ヨ揣 璧风偣璐т綅{JsonConvert.SerializeObject(startloc)}"); + if (startloc != null) { //鍒涘缓閫佹浠诲姟 var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startloc.S_CODE).First(); @@ -245,7 +259,96 @@ } } - } + } + } + catch (Exception ex) + { + Console.WriteLine("AutoReplenish:" + ex.Message + ex.StackTrace); + LogHelper.Error("AutoReplenish:" + ex.Message, ex); + throw; + } + + } + //绌烘墭缂撳瓨鍖烘湁缁戝畾鐨勬墭鐩樺氨閫佸埌鎷嗘墭鏈�+ public static void AutoSendMachine() + { + var db = new SqlHelper<object>().GetInstance(); + var isusinglist = db.Queryable<Isusing>().Where(a => a.S_TYPE == "鑷姩閫佹墭").First(); + if (isusinglist.S_STATUS == 0) + { + return; + } + 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 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) { @@ -257,7 +360,6 @@ } - } -- Gitblit v1.9.1