From 91b3014f920903721af7590ce1049d91b20bfd96 Mon Sep 17 00:00:00 2001
From: 杨张扬 <634643841@qq.com>
Date: 星期三, 11 六月 2025 17:25:22 +0800
Subject: [PATCH] 临时取消容器ID的解析

---
 api/ApiHelper.cs |   80 ++++++++++++++++++++++++++++-----------
 1 files changed, 57 insertions(+), 23 deletions(-)

diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs
index 20f8b26..d05b32b 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
@@ -320,7 +338,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 +383,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,15 +678,15 @@
             LogHelper.Info("瑙﹀彂API锛歅DA婊℃墭涓嬬嚎鍏ュ簱" + JsonConvert.SerializeObject(model), "API");
             try
             {
-                if( model.RfId.Length < 16)
-                {
-                    result.resultCode = 1;
-                    result.resultMsg = $"杈撳叆鐨凴FID锛岄暱搴︿笉澶燂紝瑕佸ぇ浜�6浣�;
-                    LogHelper.Info(result.resultMsg);
-                    return result;
-                }
+                //if( model.RfId.Length < 16)
+                //{
+                //    result.resultCode = 1;
+                //    result.resultMsg = $"杈撳叆鐨凴FID锛岄暱搴︿笉澶燂紝瑕佸ぇ浜�6浣�;
+                //    LogHelper.Info(result.resultMsg);
+                //    return result;
+                //}
 
-                model.RfId = WMSHelper.ConvertHexToAscii(model.RfId);
+                //model.RfId = WMSHelper.ConvertHexToAscii(model.RfId);
 
                 //璇ヤ骇绾跨殑婊℃墭涓嬬嚎浣嶇疆锛岃捣鐐�                 var startPoint = Settings.ProductionLines.FirstOrDefault(a => a.PointOut == model.StartLoc);
@@ -728,7 +752,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 +997,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 +1292,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 +1620,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 +1854,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