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