From abf782e4e9d505184652635aa0912781f572f843 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期四, 24 七月 2025 17:26:41 +0800 Subject: [PATCH] 后端实现添加物料绑定货位, 优化货位容器绑定时容器表插入, 多个物料信息记录的功能 --- wms/LocationHelper.cs | 50 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 34 insertions(+), 16 deletions(-) diff --git a/wms/LocationHelper.cs b/wms/LocationHelper.cs index 246ed9d..d03cf2f 100644 --- a/wms/LocationHelper.cs +++ b/wms/LocationHelper.cs @@ -210,7 +210,6 @@ } cntrs = lcrList.Select(a => a.S_CNTR_CODE).ToList(); - var log = JsonConvert.SerializeObject(cntrs); var location = db.Queryable<TN_Location>().First(a => a.S_CODE == loc); if (location != null) @@ -219,13 +218,19 @@ location.S_LOCK_STATE = "鏃�; location.N_LOCK_STATE = 0; + var updateCgDetalList = db.Queryable<TN_CG_Detail>().Where(d => cntrs.Contains(d.S_CNTR_CODE)).ToList(); + if (updateCgDetalList.Count == 0) { + LogHelper.Info($"娌℃湁鏇存柊鐨勭墿鏂欏垪琛�); + } + 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) - { - LogHelper.Info($"鍒犻櫎璐т綅瀹瑰櫒鍏崇郴琛ㄦ垚鍔燂紝{log}"); + if (updateCgDetalList.Count > 0 && db.Updateable(updateCgDetalList).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return "鏇存柊鐗╂枡淇℃伅鍒楄〃澶辫触"; // ADD锛氳ˉ鍏呴拡瀵筆DA鍒嗘嫞 } - else + + if (lcrList.Count > 0 && db.Deleteable<TN_Loc_Container>().Where(it => cntrs.Contains(it.S_CNTR_CODE) && it.S_LOC_CODE == loc).ExecuteCommand() <= 0) { tran.RollbackTran(); @@ -286,24 +291,42 @@ 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(); + if (cgDetail == null) { + bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item, S_IMG_URL = "", N_LOCK_STATE = 0 }); + } + else { + bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item, S_IMG_URL = cgDetail.S_EXT_ATTR5, N_LOCK_STATE = cgDetail.N_LOCK_STATE }); + } + } - var log = JsonConvert.SerializeObject(bindLocCntList); + var updateCgDetalList = db.Queryable<TN_CG_Detail>().Where(d => cntrs.Contains(d.S_CNTR_CODE)).ToList(); + if (updateCgDetalList.Count == 0) { + LogHelper.Info($"娌℃湁鏇存柊鐨勭墿鏂欏垪琛�); + } + using (var tran = db.Ado.UseTran()) { - if (db.Insertable<TN_Loc_Container>(bindLocCntList).ExecuteCommand() > 0) + if (db.Insertable<TN_Loc_Container>(bindLocCntList).ExecuteCommand() > 0) { LogHelper.Info($"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄦ垚鍔燂紝{log}"); } else { - db.RollbackTran(); + tran.RollbackTran(); LogHelper.Info($"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐ワ紝{log}"); return "璐т綅缁戝畾瀹瑰櫒澶辫触锛� + logs; } + + if (updateCgDetalList.Count > 0 && db.Updateable(updateCgDetalList).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return "鏇存柊鐗╂枡淇℃伅鍒楄〃澶辫触"; + } + var location = db.Queryable<TN_Location>().First(a => a.S_CODE == loc); if (location != null) @@ -315,13 +338,13 @@ if (db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand() > 0) { - db.CommitTran(); + tran.CommitTran(); LogHelper.Info($"鏇存柊璐т綅琛ㄦ垚鍔燂紝{log}"); } else { - db.RollbackTran(); + tran.RollbackTran(); LogHelper.Info($"鏇存柊璐т綅琛ㄥけ璐ワ紝{log}"); @@ -516,11 +539,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