From 071a7efe34469cbfc0f5401291c6e3ba21f31b19 Mon Sep 17 00:00:00 2001 From: 18256738414 <634643841@qq.com> Date: 星期四, 24 七月 2025 21:29:16 +0800 Subject: [PATCH] 双钱,空托自动上线优先空托货架区 --- api/ApiHelper.cs | 143 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 142 insertions(+), 1 deletions(-) diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index b5da79d..0cb6082 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -298,6 +298,7 @@ ITEMCODE = cG_Detail.S_ITEM_CODE, LOGINNAME = model.staff, SHIFT = model.shift, + STARTLOC = startLoc.S_CODE, }; SpecHelper.InsertInventoryM(target); } @@ -313,6 +314,136 @@ result.resultMsg = $"鐢熸垚{typeName}浠诲姟澶辫触锛屽鍣ㄥ彿{locCnt.S_CNTR_CODE}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐箋endLoc.S_CODE}"; LogHelper.Info(result.resultMsg); return result; + } + } + catch (Exception ex) + { + result.resultCode = -1; + result.resultMsg = $"PDA婊℃墭澶嶆鍒ゆ柇锛屽彂鐢熶簡寮傚父锛歿ex.Message}"; + LogHelper.Info(result.resultMsg); + return result; + } + } + + /// <summary> + /// 绾胯竟绌烘墭鍒扮┖鎵樺爢鍙犲尯 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + internal static SimpleResult EmptyLineToEmptyMax(EmptyLineToEmptyMaxInfo model) + { + LogHelper.Info("瑙﹀彂API锛氱嚎杈圭┖鎵樺埌绌烘墭鍫嗗彔鍖� + JsonConvert.SerializeObject(model), "API"); + var result = new SimpleResult();//杩斿洖缁撴灉 + try + { + var db = new SqlHelper<object>().GetInstance(); + + if (model.cntCount<=0) + { + result.resultCode = 1; + result.resultMsg = $"鍙傛暟cntCount蹇呴』澶т簬0锛屽嵆鏈�皯瑕佹湁涓�釜绌烘墭"; + LogHelper.Info(result.resultMsg); + return result; + } + + var startLoc = db.Queryable<TN_Location>().First(it => it.S_CODE == model.startLoc); + + if (startLoc == null) + { + result.resultCode = 2; + result.resultMsg = $"鏈壘鍒拌璧风偣{model.startLoc}"; + LogHelper.Info(result.resultMsg); + return result; + } + + var settingArea = Settings.Areas[13]; + if (startLoc.S_AREA_CODE != settingArea) + { + result.resultCode = 3; + result.resultMsg = $"璇ヨ捣鐐箋model.startLoc}蹇呴』鍦ㄦ搴撳尯鍐厈settingArea}"; + LogHelper.Info(result.resultMsg); + return result; + } + + if (startLoc.N_LOCK_STATE != 0 || startLoc.S_LOCK_STATE != "鏃�) + { + result.resultCode = 4; + result.resultMsg = $"璇ヨ捣鐐箋model.startLoc}宸查攣瀹氾紝浠诲姟姝e湪鎼�"; + LogHelper.Info(result.resultMsg); + return result; + } + + //鏌ヨ绗﹀悎鐨勬湭閿佸畾宸插惎鐢ㄦ寚瀹氳揣鍖虹殑褰撳墠鏁伴噺鍚堣鍚庢渶鎺ヨ繎瀹归噺鐨勮揣浣嶏紝缁堢偣 + var endLoc = db.Queryable<TN_Location>(). + Where(a => a.N_CURRENT_NUM + model.cntCount <= a.N_CAPACITY && a.S_AREA_CODE == Settings.Areas[3] && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y"). + ToList().OrderByDescending(a => a.N_CURRENT_NUM + model.cntCount - a.N_CAPACITY).ThenBy(a => a.N_ROW).ThenBy(a => a.N_COL).ToList().First(); + + using (var trans = db.Ado.UseTran()) + { + startLoc.N_CURRENT_NUM = model.cntCount; + startLoc.N_LOCK_STATE = 2; + startLoc.S_LOCK_STATE = "鍑哄簱閿�; + + endLoc.N_LOCK_STATE = 1; + endLoc.S_LOCK_STATE = "鍏ュ簱閿�; + + var locCntList = new List<TN_Loc_Container>(); + string cntStr = ""; + for (int i = 0; i < model.cntCount; i++) + { + var locCnt = new TN_Loc_Container() + { + S_LOC_CODE = startLoc.S_CODE, + S_CNTR_CODE = Guid.NewGuid().ToString("D"), + }; + cntStr += locCnt.S_CNTR_CODE + ","; + + locCntList.Add(locCnt); + } + cntStr= cntStr.Trim(','); + + + var task = new TN_Task() + { + S_CODE = WCSHelper.GenerateTaskNo(), + S_START_AREA = startLoc.S_AREA_CODE, + S_END_AREA = endLoc.S_AREA_CODE, + S_START_LOC = startLoc.S_CODE, + S_END_LOC = endLoc.S_CODE, + S_TYPE = "绌烘墭涓嬬嚎鍫嗗彔", + N_PRIORITY = 3, + N_SCHEDULE_TYPE = 1, + N_B_STATE = 0, + S_B_STATE = "绛夊緟", + S_CNTR_CODE = cntStr, + }; + + if ( + db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { it.N_CURRENT_NUM, it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() == 1 && + db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() == 1 && + db.Insertable<TN_Loc_Container>(locCntList).ExecuteCommand() == 1 && + db.Insertable<TN_Task>(task).ExecuteCommand() == 1 + ) + { + Task task1 = Task.Run(() => + { + WMSHelper.InsertOpInfo(model.staff, "鐐瑰鐐�, cntStr); + }); + + trans.CommitTran(); + result.resultCode = 0; + result.resultMsg = $"鍒涘缓 绌烘墭涓嬬嚎鍫嗗彔 浠诲姟鎴愬姛锛岃捣鐐癸細{startLoc.S_CODE}锛岀粓鐐癸細{endLoc.S_CODE}"; + LogHelper.Info(result.resultMsg); + return result; + } + else + { + trans.RollbackTran(); + result.resultCode = 12; + result.resultMsg = $"鍒涘缓 绌烘墭涓嬬嚎鍫嗗彔 浠诲姟澶辫触锛岃捣鐐癸細{startLoc.S_CODE}锛岀粓鐐癸細{endLoc.S_CODE}"; + LogHelper.Info(result.resultMsg); + return result; + } } } catch (Exception ex) @@ -397,7 +528,7 @@ if (endLoc.S_AREA_CODE != endLocArea) { result.resultCode = 8; - result.resultMsg = $"姝よ揣浣嶏細{endLoc.S_CODE}锛屼笉灞炰簬鍘熸潗鏂欎骇绾跨┖鎵樺尯{endLocArea}"; + result.resultMsg = $"姝よ揣浣嶏細{endLoc.S_CODE}锛屼笉灞炰簬鍘熸潗鏂欎骇绾跨┖鎵樹笂绾垮彛搴撳尯{endLocArea}"; LogHelper.Info(result.resultMsg); return result; } @@ -470,6 +601,11 @@ { Settings.LineSorting = 0; } + + Task task1 = Task.Run(() => + { + WMSHelper.InsertOpInfo(model.staff, "鐐瑰鐐�, Cnt); + }); trans.CommitTran(); @@ -1033,6 +1169,7 @@ ITEMSTATE = "寰呮", LOGINNAME = model.staff, SHIFT = model.shift, + STARTLOC = startLoc.S_CODE, }; SpecHelper.InsertInventoryM(target); }); @@ -1536,6 +1673,7 @@ ITEMCODE = cG_Detail.S_ITEM_CODE, LOGINNAME = model.staff, SHIFT = model.shift, + STARTLOC = startLoc_New.S_CODE, }; SpecHelper.InsertInventoryM(target); }); @@ -1962,6 +2100,7 @@ ITEMCODE = cG_old_Detail.S_ITEM_CODE, LOGINNAME = model.staff, SHIFT = model.shift, + STARTLOC = startLoc_Old.S_CODE, }; SpecHelper.InsertInventoryM(target); } @@ -1977,6 +2116,7 @@ ITEMCODE = cG_new_Detail_Ins.S_ITEM_CODE, LOGINNAME = model.staff, SHIFT = model.shift, + STARTLOC = startLoc_New.S_CODE, }; SpecHelper.InsertInventoryM(target); } @@ -2115,6 +2255,7 @@ ITEMCODE = cginfo.S_ITEM_CODE, LOGINNAME = model.staff, SHIFT = model.shift, + STARTLOC = model.startLoc, }; SpecHelper.InsertInventoryM(target); } -- Gitblit v1.9.1