From fbb7c2253c86d58583d7e3b0a8a44d0342c43c73 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期五, 25 七月 2025 17:20:52 +0800
Subject: [PATCH] 完善单容器多物料场景的优化重构, 优化ERP回报信息的处理

---
 api/ApiHelper.cs |   43 +++++++++++++++++++++----------------------
 1 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs
index 2466c03..54515d1 100644
--- a/api/ApiHelper.cs
+++ b/api/ApiHelper.cs
@@ -371,15 +371,15 @@
                     return BuildSimpleResult(3, $"璇ヤ换鍔″凡鏈夌粓鐐�);
                 }
 
-                var cgDetail = db.Queryable<TN_CG_Detail>()
-                    .Where(a => a.S_CNTR_CODE == task.S_CNTR_CODE).First();
+                var cgDetailList = db.Queryable<TN_CG_Detail>()
+                    .Where(a => a.S_CNTR_CODE == task.S_CNTR_CODE).ToList();
 
-                if (cgDetail == null) {
+                if (cgDetailList.Count == 0) {
                     return BuildSimpleResult(4, $"鎵樼洏鐗╂枡涓嶅瓨鍦�);
                 }
 
                 var endLoc = new TN_Location();
-                if (cgDetail.F_WEIGHT > 2000) {
+                if (task.F_WEIGHT > 2000) {
                     // 閲嶉噺瓒呰繃2t锛屾姤閿�                     if (GZRobot.TryGetInteractionInfoId(task.S_CODE, out var id1)) {
                         if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo {
@@ -400,9 +400,9 @@
                         //return BuildSimpleResult(8, $"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触");
                     }
 
-                    return BuildSimpleResult(8, $"鐗╂枡閲嶉噺{cgDetail.F_WEIGHT}瓒呰繃2t");
+                    return BuildSimpleResult(8, $"鐗╂枡閲嶉噺{task.F_WEIGHT}瓒呰繃2t");
                 }
-                else if (cgDetail.F_WEIGHT > 1500) {
+                else if (task.F_WEIGHT > 1500) {
                     // 閲嶉噺瓒呰繃1.5t锛岄渶瑕侀�鎷�-2灞傝揣鏋�                     endLoc = db.Queryable<TN_Location>()
                         .Where(a => a.S_CODE == model.EndLoc)
@@ -412,7 +412,7 @@
                         .Where(a => a.N_LAYER <= 2)
                         .First();
                 }
-                else if (cgDetail.F_WEIGHT > 0) {
+                else if (task.F_WEIGHT > 0) {
                     endLoc = db.Queryable<TN_Location>()
                         .Where(a => a.S_CODE == model.EndLoc)
                         .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y")
@@ -423,7 +423,7 @@
                         .First();
                 }
                 else {
-                    return BuildSimpleResult(5, $"鐗╂枡閲嶉噺淇℃伅涓嶅悎娉曪細{cgDetail.F_WEIGHT}");
+                    return BuildSimpleResult(5, $"鐗╂枡閲嶉噺淇℃伅涓嶅悎娉曪細{task.F_WEIGHT}");
                 }
 
                 // 娌℃湁绗﹀悎鏉′欢鐨勮揣浣�@@ -645,8 +645,8 @@
                     return BuildSimpleResult(2, $"褰撳墠璐т綅{model.startLoc}娌℃湁璐т綅瀹瑰櫒缁戝畾鍏崇郴锛屾棤闇�В缁戯紒");
                 }
 
-                var cgDetail = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == locCntrRel.S_CNTR_CODE);
-                if (cgDetail != null) {
+                var cgDetailList = db.Queryable<TN_CG_Detail>().Where(a => a.S_CNTR_CODE == locCntrRel.S_CNTR_CODE).ToList();
+                if (cgDetailList.Count != 0) {
                     return BuildSimpleResult(3, $"褰撳墠璐т綅{model.startLoc}瀹瑰櫒瀛樻斁鐨勭墿鏂欐暟閲忎笉涓�锛屾棤娉曡В缁戯紒");
                 }
 
@@ -855,7 +855,7 @@
                     return BuildErpResult(400, "涓嶈兘浼犲叆绌虹殑鏁版嵁鍒楄〃");
                 }
 
-                var insetRecordList = new List<TN_Inbound_DataRecord>();
+                var insertRecordList = new List<TN_Inbound_DataRecord>();
                 //var deleteRecordOldList = new List<TN_Inbound_DataRecord> ();
 
                 foreach (var transaction in model.stockTransactions) {
@@ -886,7 +886,7 @@
                         S_SUPPLIER_NAME = transaction.supplierName,
                         S_INVENTORY_MAN = transaction.inventoryManager
                     };
-                    insetRecordList.Add(record);
+                    insertRecordList.Add(record);
 
                 }
                 
@@ -896,7 +896,7 @@
                     //    return BuildErpResult(500, $"鍒犻櫎鏃у叆搴撹褰曟暟鎹け璐ワ細{JsonConvert.SerializeObject(deleteRecordOldList)}");
                     //}
 
-                    if (db.Insertable<TN_Inbound_DataRecord>(insetRecordList).ExecuteCommand() <= 0) {
+                    if (db.Insertable<TN_Inbound_DataRecord>(insertRecordList).ExecuteCommand() <= 0) {
                         tran.RollbackTran();
                         return BuildErpResult(500, $"鍐欏叆鍏ュ簱璁板綍琛ㄥけ璐�");
                     }
@@ -919,7 +919,7 @@
                     return BuildErpResult(400, "涓嶈兘浼犲叆绌虹殑鏁版嵁鍒楄〃");
                 }
 
-                var insetRecordList = new List<TN_Outbound_DataRecord>();
+                var insertRecordList = new List<TN_Outbound_DataRecord>();
                 //var deleteRecordOldList = new List<TN_Outbound_DataRecord>();
                 foreach (var issue in model.materialIssues) {
                     //var recordOld = db.Queryable<TN_Outbound_DataRecord>()
@@ -948,7 +948,7 @@
                         S_LINE_CODE = issue.lineCode,
                         S_BATCH_NO = issue.batchNo
                     };
-                    insetRecordList.Add(record);
+                    insertRecordList.Add(record);
                 }
 
                 using (var tran = db.Ado.UseTran()) {
@@ -957,7 +957,7 @@
                     //    return BuildErpResult(500, $"鍒犻櫎鏃у嚭搴撹褰曟暟鎹け璐ワ細{JsonConvert.SerializeObject(deleteRecordOldList)}");
                     //}
 
-                    if (db.Insertable<TN_Outbound_DataRecord>(insetRecordList).ExecuteCommand() <= 0) {
+                    if (db.Insertable<TN_Outbound_DataRecord>(insertRecordList).ExecuteCommand() <= 0) {
                         tran.RollbackTran();
                         return BuildErpResult(500, $"鍐欏叆鍑哄簱璁板綍琛ㄥけ璐�);
                     }
@@ -1220,9 +1220,9 @@
                 }
 
                 var cgDetail = db.Queryable<TN_CG_Detail>()
-                    .Where(d => d.S_CNTR_CODE == locCntrRel.S_CNTR_CODE).First();
+                    .Where(d => d.S_CNTR_CODE == locCntrRel.S_CNTR_CODE && d.S_ITEM_CODE == model.itemCode).First();
                 if (cgDetail == null) {
-                    return BuildSimpleResult(3, $"褰撳墠璐т綅{model.locCode}涓婄殑瀹瑰櫒{locCntrRel.S_CNTR_CODE}娌℃湁鐗╁搧锛�);
+                    return BuildSimpleResult(3, $"褰撳墠璐т綅{model.locCode}涓婄殑瀹瑰櫒{locCntrRel.S_CNTR_CODE}娌℃湁鐗╁搧{model.itemCode}锛�);
                 }
 
                 //var countDiff = new TN_Count_Diff {
@@ -1231,11 +1231,10 @@
                 //    F_ACTUAL_QTY = model.qty
                 //};
 
-                var countDiff = db.Queryable<TN_AG_Count_Diff>().Where(d => d.S_CNTR_CODE == locCntrRel.S_CNTR_CODE).First();
+                var countDiff = db.Queryable<TN_AG_Count_Diff>().Where(d => d.S_CNTR_CODE == locCntrRel.S_CNTR_CODE && d.S_ITEM_CODE == model.itemCode).First();
                 if (countDiff == null) {
-                    return BuildSimpleResult(4, $"褰撳墠鐗╂枡鎵�湪瀹瑰櫒{locCntrRel.S_CNTR_CODE}鐗╂枡淇℃伅娌℃湁鐢熸垚瀵瑰簲鐨勭洏鐐瑰樊寮傝〃锛�);
+                    return BuildSimpleResult(4, $"褰撳墠鐗╂枡鎵�湪瀹瑰櫒{locCntrRel.S_CNTR_CODE}鐗╂枡淇℃伅{model.itemCode}娌℃湁鐢熸垚瀵瑰簲鐨勭洏鐐瑰樊寮傝〃锛�);
                 }
-
 
                 countDiff.F_QTY = cgDetail.F_QTY;
                 countDiff.F_ACTUAL_QTY = model.qty;
@@ -1247,7 +1246,7 @@
                 using (var tran = db.Ado.UseTran()) {
                     if (db.Updateable<TN_AG_Count_Diff>(countDiff).ExecuteCommand() <= 0) {
                         tran.RollbackTran();
-                        return BuildSimpleResult(5, $"鎻掑叆鐩樼偣宸紓琛ㄥけ璐�);
+                        return BuildSimpleResult(5, $"鏇存柊鐩樼偣宸紓琛ㄥけ璐�);
                     }
 
                     if (db.Updateable<TN_CG_Detail>(cgDetail).ExecuteCommand() <= 0) {

--
Gitblit v1.9.1