From 2c1dee31661172d73830cb6d7cf86ed503e5805e Mon Sep 17 00:00:00 2001
From: czw <selecti@yeah.net>
Date: 星期二, 17 六月 2025 20:18:58 +0800
Subject: [PATCH] qx

---
 HH.WCS.QingXiNongfu/core/Monitor.cs |   36 ++++++++++++++++++++++--------------
 1 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/HH.WCS.QingXiNongfu/core/Monitor.cs b/HH.WCS.QingXiNongfu/core/Monitor.cs
index 3690997..ecc7d8f 100644
--- a/HH.WCS.QingXiNongfu/core/Monitor.cs
+++ b/HH.WCS.QingXiNongfu/core/Monitor.cs
@@ -1018,7 +1018,7 @@
             //InworkLock = false;
             var usingSpace = new List<string> { "鍏ュ簱鎺ラ┏鍖�, "搴撳唴鎺ラ┏鍖�, "鍑哄簱鎺ラ┏鍖�, "鎻愬崌鏈洪�鏂欏彛" };
             //usingSpace = new List<string> { "YWLRGDD", "YWLWJJB", "YWLYLTKQ", "YWLTKKTQ", "YWLKTDDQ", "YWLT1TSJ", "YWLT1TSJCD", "YWLT2TSJ", "YWLT2TSJCD" };
-            usingSpace = new List<string> { "YWLRGDD", "YWLWJJB", "YWLYLTKQ", "YWLTKKTQ", "YWLT1TSJ", "YWLT2TSJ" };
+            usingSpace = new List<string> { "YWLWJJB", "YWLYLTKQ", "YWLTKKTQ", "YWLRGDD", "YWLT1TSJ", "YWLT2TSJ" };
             foreach (var area in usingSpace)
             {
                 try
@@ -1435,6 +1435,15 @@
                                     {
                                         var srloclist = rs.OrderBy(x => x.N_COL).ToList();
                                         var lastfull = srloclist.FindAll(x => x.N_CURRENT_NUM > 0).LastOrDefault();
+                                        if (lastfull != null)
+                                        {
+                                            var c = LocationHelper.GetList<LocCntrRel>(x => x.S_LOC_CODE == lastfull.S_LOC_CODE);
+                                            var xcirs = ContainerHelper.GetCntrItemRel(c.FirstOrDefault().S_CNTR_CODE);
+                                            if (!xcirs.Any()) continue;
+                                            var xcir = xcirs.OrderByDescending(x => x.T_CREATE).FirstOrDefault();
+                                            if (cir.S_ITEM_CODE != xcir.S_ITEM_CODE || cir.S_ITEM_NAME != xcir.S_ITEM_NAME || xcir.S_CJ_NAME != cir.S_CJ_NAME)
+                                                continue;
+                                        }
                                         EndBit = srloclist.Find(x => x.S_LOCK_STATE == "鏃� && x.N_CURRENT_NUM < Math.Min(x.N_CAPACITY, 3) && x.S_LOCK_STATE != "鎶ュ簾" && x.N_COL >= (lastfull?.N_COL ?? 0));
                                         if (EndBit != null)
                                             break;
@@ -3628,7 +3637,7 @@
                                 Location StartBit = null;
                                 List<LocCntrRel> _clrel = new List<LocCntrRel>();
 
-                                foreach (var area in v.Concat(od.S_ROW.Split('$')).Distinct())
+                                foreach (var area in v) //.Concat(od.S_ROW.Split('$')).Distinct())
                                 {
                                     var AreaRowlist = LocationHelper.GetAreaNormalLocList(area);
                                     foreach (var item in AreaRowlist.GroupBy(x => x.N_ROW))
@@ -3669,7 +3678,7 @@
                                 }
                                 else
                                 {
-                                    Endbit = LocationHelper.GetAreaNormalLocList(PLC.areaPriy[0]).Find(x => x.N_CURRENT_NUM == 0);
+                                    Endbit = LocationHelper.GetAreaNormalLocList(PLC.areaPriy[0]).Find(x => x.S_LOCK_STATE == "鏃� && x.N_CURRENT_NUM == 0);
                                 }
 
                                 if (StartBit != null && Endbit != null)
@@ -3691,7 +3700,6 @@
                                     var b = TaskProcess.CreateTransport(od.SQL_WorkNo, StartBit.S_LOC_CODE, EndBit, "鍘熺墿鏂欐惉杩�绾哥", crs, StartBit.N_CURRENT_NUM - crs.Count + 1, 1, crs.Count, PLC.taskPri, "", Endbit.S_LOC_CODE);
                                     if (b)
                                     {
-
                                         var r = new RowLock { S_LOCK_SRC = od.SQL_ItemCode, T_LOCK_TIME = DateTime.Now, S_LOCK_STATE = "鍑哄簱閿�, S_AREA_CODE = StartBit.S_AREA_CODE, N_ROW = StartBit.N_ROW };
                                         var db = new SqlHelper<object>().GetInstance();
                                         //缁欑粓鐐归攣瀹氫綇
@@ -3704,16 +3712,16 @@
                                             LogHelper.Info(Endbit.S_LOC_CODE + "LockLoc:閿佺粨鏋� + res);
                                         }
                                         //鎺掗攣
-                                        var row = db.Queryable<RowLock>().Where(x => x.S_AREA_CODE == r.S_AREA_CODE && r.N_ROW == x.N_ROW).First();
-                                        if (row != null)
-                                        {
-                                            if (row.S_LOCK_SRC != r.S_LOCK_SRC)
-                                            {
-                                                db.Deleteable(row).ExecuteCommand();
-                                                db.Insertable(r).ExecuteCommand();
-                                            }
-                                        }
-                                        else db.Insertable(r).ExecuteCommand();
+                                        //var row = db.Queryable<RowLock>().Where(x => x.S_AREA_CODE == r.S_AREA_CODE && r.N_ROW == x.N_ROW).First();
+                                        //if (row != null)
+                                        //{
+                                        //    if (row.S_LOCK_SRC != r.S_LOCK_SRC)
+                                        //    {
+                                        //        db.Deleteable(row).ExecuteCommand();
+                                        //        db.Insertable(r).ExecuteCommand();
+                                        //    }
+                                        //}
+                                        //else db.Insertable(r).ExecuteCommand();
                                         od.TagOverTime = DateTime.Now;
                                         db.Updateable(od).UpdateColumns(it => new { it.TagOverTime }).ExecuteCommand();
                                         break;

--
Gitblit v1.9.1