From 505e0d47a72f51b0dc4dc315f8fce36cc73abc89 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期二, 29 七月 2025 17:28:28 +0800
Subject: [PATCH] 添加看板获取货位状态接口, 修复容器插入, 货位容器绑定货位字段未更新的问题

---
 core/WCSCore.cs |   47 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 30 insertions(+), 17 deletions(-)

diff --git a/core/WCSCore.cs b/core/WCSCore.cs
index b243075..15daf57 100644
--- a/core/WCSCore.cs
+++ b/core/WCSCore.cs
@@ -153,10 +153,10 @@
                     return;
                 }
 
-                var cgDetail = db.Queryable<TN_CG_Detail>()
-                    .Where(d => d.S_CNTR_CODE == tn_task.S_CNTR_CODE).First();
+                var cgDetailList = db.Queryable<TN_CG_Detail>()
+                    .Where(d => d.S_CNTR_CODE == tn_task.S_CNTR_CODE).ToList();
 
-                if (cgDetail == null) {
+                if (cgDetailList.Count == 0) {
                     LogHelper.Info("璁剧疆缁堢偣璐т綅澶辫触锛氬綋鍓嶄换鍔$殑鎵樼洏鍙峰湪鐗╂枡琛ㄤ腑涓嶅瓨鍦�);
                     return;
                 }
@@ -171,11 +171,11 @@
                     var weight_str = data[0].parameter_varchar200_up.Split(';')[1].Split('-')[1];
 
                     var weight = float.Parse(weight_str);
-                    cgDetail.F_WEIGHT = weight;
+                    cgDetailList.ForEach(d => d.F_WEIGHT = weight);
                     tn_task.F_WEIGHT = weight;
 
                     using (var tran = db.Ado.UseTran()) {
-                        if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_WEIGHT).ExecuteCommand() <= 0) {
+                        if (db.Updateable<TN_CG_Detail>(cgDetailList).UpdateColumns(it => it.F_WEIGHT).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
                             LogHelper.Info("淇敼鐗╂枡琛ㄩ噸閲忓け璐�);
                             return;
@@ -210,7 +210,7 @@
                 //row -= 100; // 111-118 => 1-8
 
                 // 鍙綋涔嬪墠鎸囧畾缁堢偣璐ф灦鍚庯紝鎵嶅皾璇曡绠楃粓鐐硅揣浣�-                if (cgDetail.F_WEIGHT > 2000) {
+                if (tn_task.F_WEIGHT > 2000) {
                     // 閲嶉噺瓒呰繃 2t 
                     endLoc = null;
                     LogHelper.Info("閲嶉噺瓒呰繃2t锛屼笉鍏佽鍏ュ簱");
@@ -234,13 +234,13 @@
 
                     return; // 瓒呴噸浼氳嚜宸眗eturn锛屽鏋滃浗鑷猘gv娌℃帴鍙楀埌涔熶笉闇�鎻愬墠return
                 }
-                else if (cgDetail.F_WEIGHT > 1500) {
+                else if (tn_task.F_WEIGHT > 1500) {
                     // 閲嶉噺瓒呰繃1.5t锛岄渶瑕侀�鎷�-2灞傝揣鏋�                     endLoc = db.Queryable<TN_Location>()
                         .First(a => a.N_ROW == row && a.N_LAYER <= 2
                         && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y");
                 }
-                else if (cgDetail.F_WEIGHT > 0) {
+                else if (tn_task.F_WEIGHT > 0) {
                     // 閲嶉噺鏈秴杩�.5t锛屽湪鎸囧畾璐ф灦闅忎究閫夋嫨1涓�                     endLoc = db.Queryable<TN_Location>().Where(a => a.N_ROW == row
                         && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y")
@@ -249,7 +249,7 @@
                 else {
                     // 娌℃湁鎺ユ敹鍒伴噸閲忥紝鎴栭噸閲忓嚭閿�                     endLoc = null;
-                    LogHelper.Info($"閿欒鐨勯噸閲忎俊鎭細{cgDetail.F_WEIGHT}");
+                    LogHelper.Info($"閿欒鐨勯噸閲忎俊鎭細{tn_task.F_WEIGHT}");
                     return;
                 }
 
@@ -332,10 +332,10 @@
 
             try {
 
-                var cgDetail = db.Queryable<TN_CG_Detail>()
-                    .Where(d => d.S_CNTR_CODE == tn_task.S_CNTR_CODE).First();
+                var cgDetailList = db.Queryable<TN_CG_Detail>()
+                    .Where(d => d.S_CNTR_CODE == tn_task.S_CNTR_CODE).ToList();
 
-                if (cgDetail == null) {
+                if (cgDetailList == null) {
                     LogHelper.Info("鏇存柊鐗╂枡閲嶉噺澶辫触锛氬綋鍓嶄换鍔$殑鎵樼洏鍙峰湪鐗╂枡琛ㄤ腑涓嶅瓨鍦�);
                     return;
                 }
@@ -349,9 +349,9 @@
                 var weight_str = data[0].parameter_varchar200_up.Split(';')[1].Split('-')[1];
 
                 var weight = float.Parse(weight_str);
-                cgDetail.F_WEIGHT = weight;
-
-                if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_WEIGHT).ExecuteCommand() <= 0) {
+                cgDetailList.ForEach(a => a.F_WEIGHT = weight);
+                
+                if (db.Updateable<TN_CG_Detail>(cgDetailList).UpdateColumns(it => it.F_WEIGHT).ExecuteCommand() <= 0) {
                     LogHelper.Info("淇敼鐗╂枡琛ㄩ噸閲忓け璐�);
                     return;
                 }
@@ -371,16 +371,29 @@
         internal static void Dispatch() {
             //鏌ヨ浠诲姟
             //鑾峰彇鎵�湁绛夊緟鐨勪换鍔�+            //var list = WCSHelper.GetWaitingTaskList();
+            //LogHelper.Info("绛夊緟浠诲姟淇℃伅" + JsonConvert.SerializeObject(list), "API");
+            //if (list.Count > 0) {
+            //    list.ForEach(task => {
+            //        //浣跨敤鑷畾涔変换鍔℃帹閫�+            //        TaskProcess.SendTask(task);//璋冨害NDC鎴栨澀濂ユ垨鍥借嚜璁惧
+            //    });
+            //}
+            //else {
+            //    LogHelper.Info("鏆傛棤浠诲姟");
+            //}
+
             var list = WCSHelper.GetWaitingTaskList();
-            LogHelper.Info("绛夊緟浠诲姟淇℃伅" + JsonConvert.SerializeObject(list), "API");
             if (list.Count > 0) {
+                LogHelper.Info($"杞锛氫换鍔″垎鍙戯細绛夊緟浠诲姟淇℃伅\n\n{JsonConvert.SerializeObject(list)}\n");
                 list.ForEach(task => {
                     //浣跨敤鑷畾涔変换鍔℃帹閫�+                    //TaskProcess.SendTask(task);//璋冨害NDC鎴栨澀濂ユ垨鍥借嚜璁惧
                     TaskProcess.SendTask(task);//璋冨害NDC鎴栨澀濂ユ垨鍥借嚜璁惧
                 });
             }
             else {
-                LogHelper.Info("鏆傛棤浠诲姟");
+                LogHelper.Debug("杞锛氫换鍔″垎鍙戯細鏆傛棤浠诲姟");
             }
         }
 

--
Gitblit v1.9.1