From abc98971653a3716274f947d41b080aa08887c36 Mon Sep 17 00:00:00 2001 From: 杨张扬 <634643841@qq.com> Date: 星期五, 13 六月 2025 16:18:40 +0800 Subject: [PATCH] 启用容器号解析 --- api/ApiHelper.cs | 74 ++++++++++++++++++++++++++++-------- 1 files changed, 57 insertions(+), 17 deletions(-) diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index 20f8b26..ff81f44 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -161,7 +161,10 @@ cG_Detail.N_ITEM_STATE = 0; cG_Detail.S_ITEM_STATE = "鍚堟牸"; endLoc = db.Queryable<TN_Location>(). - Where(o => o.S_AREA_CODE == Settings.Areas[1] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). + Where(o => o.S_AREA_CODE == Settings.Areas[1] + && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == o.S_CODE).NotAny() + && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣� } else if (model.cgState == 4)//鎶�湳鍚堟牸鍥炲簱 @@ -169,7 +172,10 @@ cG_Detail.N_ITEM_STATE = 4; cG_Detail.S_ITEM_STATE = "鎶�湳鍚堟牸"; endLoc = db.Queryable<TN_Location>(). - Where(o => o.S_AREA_CODE == Settings.Areas[8] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). + Where(o => o.S_AREA_CODE == Settings.Areas[8] + && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == o.S_CODE).NotAny() + && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣� } else if (model.cgState == 2)//涓嶅悎鏍煎洖鐐�@@ -177,7 +183,10 @@ cG_Detail.N_ITEM_STATE = 2; cG_Detail.S_ITEM_STATE = "涓嶅悎鏍�; endLoc = db.Queryable<TN_Location>(). - Where(o => o.S_AREA_CODE == Settings.Areas[8] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). + Where(o => o.S_AREA_CODE == Settings.Areas[8] + && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == o.S_CODE).NotAny() + && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣� } else if (model.cgState == 5)//娣峰悎涔熷洖搴擄紝閫氳繃鐐瑰鐐瑰啀鍙戠嚎杈�@@ -185,7 +194,10 @@ cG_Detail.N_ITEM_STATE = 5; cG_Detail.S_ITEM_STATE = "娣峰悎"; endLoc = db.Queryable<TN_Location>(). - Where(o => o.S_AREA_CODE == Settings.Areas[2] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). + Where(o => o.S_AREA_CODE == Settings.Areas[2] + && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == o.S_CODE).NotAny() + && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣� } else if (model.cgState == 6)//涓�骇鏂欎簩绾ф枡鍥炲簱 @@ -193,7 +205,10 @@ cG_Detail.N_ITEM_STATE = 6; cG_Detail.S_ITEM_STATE = "涓�骇鏂�; endLoc = db.Queryable<TN_Location>(). - Where(o => o.S_AREA_CODE == Settings.Areas[2] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). + Where(o => o.S_AREA_CODE == Settings.Areas[2] + && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == o.S_CODE).NotAny() + && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣� } else if (model.cgState == 7)//涓�骇鏂欎簩绾ф枡鍥炲簱 @@ -201,7 +216,10 @@ cG_Detail.N_ITEM_STATE = 7; cG_Detail.S_ITEM_STATE = "浜岀骇鏂�; endLoc = db.Queryable<TN_Location>(). - Where(o => o.S_AREA_CODE == Settings.Areas[2] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). + Where(o => o.S_AREA_CODE == Settings.Areas[2] + && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == o.S_CODE).NotAny() + && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣� } else @@ -230,7 +248,13 @@ LocationHelper.LockLoc(endLoc.S_CODE, 1);//缁堢偣鍏ュ簱閿� LogHelper.Info($"鐢熸垚{typeName}浠诲姟鎴愬姛锛屽鍣ㄥ彿{locCnt.S_CNTR_CODE}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐箋endLoc.S_CODE}"); - db.Updateable<TN_CG_Detail>().UpdateColumns(it => new { it.S_ITEM_STATE, it.N_ITEM_STATE }).ExecuteCommand(); + if( db.Updateable<TN_CG_Detail>(cG_Detail).UpdateColumns(it => new { it.S_ITEM_STATE, it.N_ITEM_STATE }).ExecuteCommand() <= 0) + { + result.resultCode = 5; + result.resultMsg = $"鏇存柊瀹瑰櫒{locCnt.S_CNTR_CODE}鐨勮揣鍝佹槑缁嗗け璐�; + LogHelper.Info(result.resultMsg); + return result; + } Task task99 = Task.Run(() => { @@ -320,7 +344,13 @@ return result; } - var endLoc = db.Queryable<TN_Location>().First(o =>o.S_AREA_CODE == Settings.Areas[11] && o.N_CURRENT_NUM == 0 && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃�); + var endLoc = db.Queryable<TN_Location>(). + Where(o =>o.S_AREA_CODE == Settings.Areas[11] + && o.N_CURRENT_NUM == 0 + && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == o.S_CODE).NotAny() + ).First(); + if (endLoc == null) { result.resultCode = 2; @@ -359,7 +389,7 @@ endLoc.N_LOCK_STATE = 1; endLoc.S_LOCK_STATE = "鍏ュ簱閿�; - startLoc.T_MODIFY = System.DateTime.Now; + endLoc.T_MODIFY = System.DateTime.Now; using (var tran = db.Ado.UseTran()) { @@ -654,7 +684,7 @@ LogHelper.Info("瑙﹀彂API锛歅DA婊℃墭涓嬬嚎鍏ュ簱" + JsonConvert.SerializeObject(model), "API"); try { - if( model.RfId.Length < 16) + if (model.RfId.Length < 16) { result.resultCode = 1; result.resultMsg = $"杈撳叆鐨凴FID锛岄暱搴︿笉澶燂紝瑕佸ぇ浜�6浣�; @@ -728,7 +758,11 @@ }; var endLoc = db.Queryable<TN_Location>(). - Where(c => c.S_AREA_CODE == Settings.Areas[1] && c.S_LOCK_STATE == "鏃� && c.N_LOCK_STATE == 0 && c.N_CURRENT_NUM == 0 && c.C_ENABLE == "Y"). + Where(c => c.S_AREA_CODE == Settings.Areas[1] + && c.S_LOCK_STATE == "鏃� && c.N_LOCK_STATE == 0 + && c.N_CURRENT_NUM == 0 && c.C_ENABLE == "Y" + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == c.S_CODE).NotAny()//涓嶈兘鏈夎揣 + ). OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣嶏紝鐩存帴鍒ゆ柇褰撳墠鏁伴噺涓�鍗冲彲 if (endLoc != null) @@ -969,7 +1003,7 @@ return result; } - if (endLoc.N_CURRENT_NUM != 0) + if (endLoc.N_CURRENT_NUM != 0 || db.Queryable<TN_Loc_Container>().Any(b => b.S_LOC_CODE == model.EndLoc))//涓嶈兘鏈夎揣 { result.resultCode = 5; result.resultMsg = $"璇ョ粓鐐硅揣浣峽model.EndLoc}宸叉弧"; @@ -1264,7 +1298,9 @@ //鏌ヨ绗﹀悎鐨勬湭閿佸畾宸插惎鐢ㄦ寚瀹氳揣鍖虹殑璐т綅锛岀粓鐐� var endLoc = db.Queryable<TN_Location>(). - First(o => o.S_AREA_CODE == Settings.Areas[9] && o.S_CODE == weightPoint && o.C_ENABLE == "Y");//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣�+ First(o => o.S_AREA_CODE == Settings.Areas[9] + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == o.S_CODE).NotAny() + && o.S_CODE == weightPoint && o.C_ENABLE == "Y");//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣� if (endLoc == null) { @@ -1590,10 +1626,14 @@ } var endLoc_Ok = db.Queryable<TN_Location>(). - First(o => o.S_AREA_CODE == Settings.Areas[9] && o.S_CODE == weightPoint);//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣嶏紝鍘荤О閲�+ First(o => o.S_AREA_CODE == Settings.Areas[9] + && o.S_CODE == weightPoint);//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣嶏紝鍘荤О閲� var endLoc_NG = db.Queryable<TN_Location>(). - First(o => o.S_AREA_CODE == Settings.Areas[8] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� && o.N_CURRENT_NUM == 0);//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣�+ Where(o => o.S_AREA_CODE == Settings.Areas[8] + && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "鏃� + && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == o.S_CODE).NotAny()//涓嶈兘鏈夎揣 + && o.N_CURRENT_NUM == 0).First();//鏌ヨ鍚堥�鐨勭粓鐐硅揣浣� if (endLoc_Ok == null) { @@ -1820,10 +1860,10 @@ var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc); - if (!(endLoc != null && endLoc.N_CURRENT_NUM == 0 && endLoc.N_LOCK_STATE == 0 && endLoc.S_LOCK_STATE == "鏃�)) + if (!(endLoc != null && endLoc.N_CURRENT_NUM == 0 && endLoc.N_LOCK_STATE == 0 && endLoc.S_LOCK_STATE == "鏃�) || db.Queryable<TN_Loc_Container>().Any(a=>a.S_LOC_CODE == endLoc.S_CODE)) { result.resultCode = 2; - result.resultMsg = $"缁堢偣浣嶇疆{model.endLoc}涓嶆弧瓒虫潯浠讹細endLoc != null && endLoc.N_CURRENT_NUM == 0 && endLoc.N_LOCK_STATE == 0 && endLoc.S_LOCK_STATE == 鏃�; + result.resultMsg = $"缁堢偣浣嶇疆{model.endLoc}宸查攣浣忔垨宸叉弧"; LogHelper.Info(result.resultMsg); return result; } -- Gitblit v1.9.1