From e3ee006de3ccd8940ad2a600c03675cd2ac5e2cb Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期五, 27 六月 2025 17:38:42 +0800
Subject: [PATCH] 合肥佳通优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs |   77 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 75 insertions(+), 2 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs
index 94f4928..0d6c69c 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/LocationHelper.cs
@@ -293,11 +293,11 @@
             Location loc = new Location();
             var db = new SqlHelper<object>().GetInstance();
             string CntrCodeWith = "";
-            if (type.Trim() == "PM")
+            if (type.Trim().Contains("MA"))
             {
                 CntrCodeWith = "MA";
             }
-            else if (type.Trim() == "PN")
+            else if (type.Trim().Contains("NA"))
             {
                 CntrCodeWith = "NA";
             }
@@ -619,18 +619,91 @@
             var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First();
             try
             {
+                LogHelper.Info($"BindingLoc锛氬紑濮嬭В缁戝鍣細{JsonConvert.SerializeObject(cntrs)}");
                 db.BeginTran();
                 var lcrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == loc).ToList();
+                //if (!string.IsNullOrEmpty(location.S_NOTE) && lcrList.Count > 0)
+                //{
+                //    if (location.S_NOTE == "鍙犵洏" || location.S_NOTE.Trim() == "鐗囪兌鍫嗗彔浣�)
+                //    {
+                //        LogHelper.Info("鍙犵洏璐т綅鍒犻櫎鎵樼洏");
+                //        cntrs = lcrList.Select(a => a.S_CNTR_CODE).ToList();
+
+                //    }
+                //}
+                if (lcrList.Count > 0)
+                {
+                    cntrs = lcrList.Select(a => a.S_CNTR_CODE).ToList();
+                }
                 var count = db.Deleteable<LocCntrRel>().Where(it => cntrs.Contains(it.S_CNTR_CODE.Trim()) && it.S_LOC_CODE.Trim() == loc).ExecuteCommand();
                 location.N_CURRENT_NUM = lcrList.Count - count;
                 location.S_LOCK_STATE = "鏃�;
                 location.N_LOCK_STATE = 0;
                 db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand();
+                LogHelper.Info($"BindingLoc锛氳В缁戝鍣細{JsonConvert.SerializeObject(cntrs)}鎴愬姛");
                 db.CommitTran();
                 res = true;
             }
             catch (Exception ex)
             {
+                LogHelper.Info($"BindingLoc Error:{ex}");
+                db.RollbackTran();
+            }
+            return res;
+        }
+
+        /// <summary>
+        /// 搴撲綅娓呯┖
+        /// </summary>
+        /// <param name="loc"></param>
+        /// <param name="cntrs"></param>
+        /// <returns></returns>
+        public static bool Clear(string loc, List<string> cntrs)
+        {
+            var res = false;
+            var db = new SqlHelper<object>().GetInstance();
+          
+            try
+            {
+                var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First();
+                if (location == null)
+                {
+                    LogHelper.Info($"Clear锛氳揣浣嶏細{loc}璐т綅琛ㄦ煡璇㈤敊璇紝璇峰亣鏌ヨ揣浣嶈〃");
+                    return res;
+                }
+                LogHelper.Info($"Clear锛氬紑濮嬭В缁戝鍣細{JsonConvert.SerializeObject(cntrs)}");
+                db.BeginTran();
+                var lcrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == loc).ToList();
+                if (lcrList.Count > 0)
+                {
+                    cntrs = lcrList.Select(a => a.S_CNTR_CODE).ToList();
+                }
+                var count = db.Deleteable<LocCntrRel>().Where(it => cntrs.Contains(it.S_CNTR_CODE.Trim()) && it.S_LOC_CODE.Trim() == loc).ExecuteCommand();
+                LogHelper.Info($"Clear锛氬紑濮嬪垹闄ゅ鍣細{JsonConvert.SerializeObject(cntrs)}");
+                db.Deleteable<Container>().Where(it => cntrs.Contains(it.S_CODE)).ExecuteCommand();
+            
+                location.N_CURRENT_NUM = lcrList.Count - count;
+                location.S_LOCK_STATE = "鏃�;
+                location.N_LOCK_STATE = 0;
+                db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand();
+                LogHelper.Info($"Clear锛氬紑濮嬪垹闄ゅ鍣ㄧ墿鏂欙細{JsonConvert.SerializeObject(cntrs)}");
+                var CntrItem = db.Queryable<CntrItemDetail>().Where(a => cntrs.Contains(a.S_CNTR_CODE.Trim())).First();
+                if (CntrItem != null)
+                {
+                    db.Deleteable<CntrItemDetail>().Where(it => cntrs.Contains(it.S_CNTR_CODE)).ExecuteCommand();
+                }
+                else
+                {
+                    LogHelper.Info($"Clear=銆嬫墭鐩�{JsonConvert.SerializeObject(cntrs)}鏃犵墿鏂欐暟鎹�);
+
+                }
+                LogHelper.Info($"BindingLoc锛氳В缁戝鍣細{JsonConvert.SerializeObject(cntrs)}鎴愬姛");
+                db.CommitTran();
+                res = true;
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Info($"BindingLoc Error:{ex}");
                 db.RollbackTran();
             }
             return res;

--
Gitblit v1.9.1