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 | 55 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 34 insertions(+), 21 deletions(-) diff --git a/core/WCSCore.cs b/core/WCSCore.cs index 16a7910..15daf57 100644 --- a/core/WCSCore.cs +++ b/core/WCSCore.cs @@ -70,8 +70,9 @@ break; case 4: // 鍙栬揣瀹屾垚 WCSHelper.UpdateStatus(TN_Task, "鍙栬揣瀹屾垚"); // 浠诲姟鐘舵�鏀规垚鍙栬揣瀹屾垚 + TaskProcess.OperateStatus(TN_Task, 4); // 璧风偣瀹瑰櫒璐т綅瑙g粦,瑙i攣璧风偣 - if (TN_Task.S_TYPE == TaskName.浜у搧鍏ュ簱 || TN_Task.S_TYPE == TaskName.浜у搧閮ㄥ垎鍥炲簱) { + if (TN_Task.S_TYPE == TaskName.浜у搧鍏ュ簱 || TN_Task.S_TYPE == TaskName.浜у搧閮ㄥ垎鍥炲簱 || TN_Task.S_TYPE == TaskName.鎸囧畾璐т綅鍏ュ簱 || TN_Task.S_TYPE == TaskName.鐩樼偣鐞嗚揣鍥炲簱) { var captureTask = Task.Run(() => { CapturePic(TN_Task); LogHelper.Info($"{TN_Task}锛氭媿鐓ask缁撴潫"); @@ -86,14 +87,13 @@ }); } - if (TN_Task.S_TYPE == TaskName.浜у搧閮ㄥ垎鍥炲簱) { + if (TN_Task.S_TYPE == TaskName.浜у搧閮ㄥ垎鍥炲簱 || TN_Task.S_TYPE == TaskName.鎸囧畾璐т綅鍏ュ簱 || TN_Task.S_TYPE == TaskName.鐩樼偣鐞嗚揣鍥炲簱) { var weightTask = Task.Run(() => { UpdateWeight(TN_Task); LogHelper.Info("绉伴噸Task缁撴潫"); }); } - - TaskProcess.OperateStatus(TN_Task, 4); // 璧风偣瀹瑰櫒璐т綅瑙g粦,瑙i攣璧风偣 + break; case 5: // 寮�鍗歌揣 WCSHelper.UpdateStatus(TN_Task, "寮�鍗歌揣"); // 浠诲姟鐘舵�鏀规垚寮�鍗歌揣 @@ -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_QTY = 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_QTY).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_QTY > 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_QTY > 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_QTY > 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_QTY}"); + 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_QTY = weight; - - if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_QTY).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