From 2aa6ffae020b4dab66ac30ee4436346aa15ff3cb Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期二, 15 七月 2025 17:26:54 +0800
Subject: [PATCH] 修复绑定解绑可能导致的信息丢失问题

---
 wms/LocationHelper.cs |   41 +++++++++++------------------------------
 1 files changed, 11 insertions(+), 30 deletions(-)

diff --git a/wms/LocationHelper.cs b/wms/LocationHelper.cs
index 50e1f21..be96181 100644
--- a/wms/LocationHelper.cs
+++ b/wms/LocationHelper.cs
@@ -1,5 +1,4 @@
 锘縰sing HH.WCS.Mobox3.AnGang.models;
-using HH.WCS.Mobox3.AnGang.config;
 using Newtonsoft.Json;
 using SqlSugar;
 using System;
@@ -106,22 +105,6 @@
                         {
                             site = Location.S_AGV_SITE;
                         }
-                        //if (Location.N_CURRENT_NUM == 1)
-                        //{
-                        //    site = Location.S_AGV_SITE2;
-                        //}
-                        //if (Location.N_CURRENT_NUM == 2)
-                        //{
-                        //    site = Location.S_AGV_SITE3;
-                        //}
-                        //if (Location.N_CURRENT_NUM == 3)
-                        //{
-                        //    site = Location.S_AGV_SITE4;
-                        //}
-                        //if (Location.N_CURRENT_NUM == 4)
-                        //{
-                        //    site = Location.S_AGV_SITE5;
-                        //}
                     }
                 }
             }
@@ -135,11 +118,10 @@
         }
 
         /// <summary>
-        /// 鍏ュ簱閿佸畾缁堢偣锛屽嚭搴撻攣瀹氳捣鐐�-        /// 浣犲垱寤轰换鍔¢攣瀹氳揣浣嶇殑鏃跺�锛屾妸閿佺殑鏉ユ簮灏辨槸浠诲姟鍙蜂篃鍐欎笂鍘伙紙鍔犻攣鐨勬柟娉曞姞涓弬鏁帮紝鍙┖鐨勫弬鏁帮級锛岃В閿佺殑鏃跺�鎶婃潵婧愮疆绌恒�
+        /// 璧风偣鍑哄簱閿侊細2 --- 缁堢偣鍏ュ簱閿侊細1
         /// </summary>
         /// <param name="loc"></param>
-        /// <param name="lockState">1:鍏ュ簱閿併�2:鍑哄簱閿併�2:鍏跺畠閿�/param>
+        /// <param name="lockState">1:鍏ュ簱閿併�2:鍑哄簱閿併�3:鍏跺畠閿�/param>
         /// <param name="lockSource">閿佺殑鏉ユ簮=浠诲姟鍙�/param>
         /// <returns></returns>
         public static bool LockLoc(ref TN_Location loc, int lockState, string lockSource = "") {
@@ -160,7 +142,7 @@
         /// 浣犲垱寤轰换鍔¢攣瀹氳揣浣嶇殑鏃跺�锛屾妸閿佺殑鏉ユ簮灏辨槸浠诲姟鍙蜂篃鍐欎笂鍘伙紙鍔犻攣鐨勬柟娉曞姞涓弬鏁帮紝鍙┖鐨勫弬鏁帮級锛岃В閿佺殑鏃跺�鎶婃潵婧愮疆绌恒�
         /// </summary>
         /// <param name="loc"></param>
-        /// <param name="lockState">1:鍏ュ簱閿併�2:鍑哄簱閿併�2:鍏跺畠閿�/param>
+        /// <param name="lockState">1:鍏ュ簱閿併�2:鍑哄簱閿併�3:鍏跺畠閿�/param>
         /// <param name="lockSource">閿佺殑鏉ユ簮=浠诲姟鍙�/param>
         /// <returns></returns>
         public static bool LockLoc(string loc, int lockState, string lockSource = "")
@@ -239,7 +221,8 @@
 
                     using (var tran = db.Ado.UseTran())
                     {
-                        if (db.Deleteable<TN_Loc_Container>().Where(it => cntrs.Contains(it.S_CNTR_CODE) && it.S_LOC_CODE == loc).ExecuteCommand() > 0)
+                        if (db.Deleteable<TN_Loc_Container>().Where(it => cntrs.Contains(it.S_CNTR_CODE) && it.S_LOC_CODE == loc).ExecuteCommand() > 0 && 
+                            db.Updateable<TN_CG_Detail>().SetColumns(d => d.S_LOC_CODE == null).Where(d => cntrs.Contains(d.S_CNTR_CODE)).ExecuteCommand() > 0) // ADD锛氳ˉ鍏呴拡瀵筆DA鍒嗘嫞
                         {
                             LogHelper.Info($"鍒犻櫎璐т綅瀹瑰櫒鍏崇郴琛ㄦ垚鍔燂紝{log}");
                         }
@@ -304,15 +287,18 @@
                 var bindLocCntList = new List<TN_Loc_Container>();
                 foreach (var item in cntrs)
                 {
-                    bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item });
+                    // 琛ュ厖閫昏緫锛氶伩鍏嶈В缁戝鑷寸殑淇℃伅涓㈠け (N_LOCK_STATE涓嶤G_Detail淇濇寔涓�嚧鎵�互鐩存帴璧嬪�灏辫锛汭MGURL璐т綅绉诲姩浜嗗氨鍒犻櫎锛屼篃寰堝悎鐞嗭級
+                    var cgDetail = db.Queryable<TN_CG_Detail>().Where(d => d.S_CNTR_CODE == item).First();
+                    //bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item, S_IMG_URL = "", N_LOCK_STATE = cgDetail?.N_LOCK_STATE ?? 1 });
+                    bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item, S_IMG_URL = "", N_LOCK_STATE = cgDetail?.N_LOCK_STATE ?? 0 });
                 }
-
 
                 var log = JsonConvert.SerializeObject(bindLocCntList);
 
                 using (var tran = db.Ado.UseTran())
                 {
-                    if (db.Insertable<TN_Loc_Container>(bindLocCntList).ExecuteCommand() > 0)
+                    if (db.Insertable<TN_Loc_Container>(bindLocCntList).ExecuteCommand() > 0 &&
+                        db.Updateable<TN_CG_Detail>().SetColumns(d => d.S_LOC_CODE == loc).Where(d => cntrs.Contains(d.S_CNTR_CODE)).ExecuteCommand() > 0) // ADD锛氳ˉ鍏呴拡瀵筆DA鍒嗘嫞
                     {
                         LogHelper.Info($"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄦ垚鍔燂紝{log}");
                     }
@@ -534,11 +520,6 @@
     public class EmptyUnBindInfo
     {
         public string cntID { get; set; }//瀹瑰櫒ID
-    }
-
-    public class CancleTaskInfo
-    {
-        public string taskNO { get; set; }//浠诲姟鍙�     }
 
     public class PDAFullInAreaInfo

--
Gitblit v1.9.1