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