From c2d2f4eb78c54bdfdb6ffb0df5932751d538ed14 Mon Sep 17 00:00:00 2001 From: 杨张扬 <634643841@qq.com> Date: 星期一, 14 七月 2025 17:35:02 +0800 Subject: [PATCH] 新增PDA搬送,线边空托到原材料上线口 --- api/ApiHelper.cs | 204 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 194 insertions(+), 10 deletions(-) diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index 39fb574..b5da79d 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -123,10 +123,12 @@ internal static SimpleResult PDAFullCheckIn(PDAFullCheckInfo model) { LogHelper.Info("瑙﹀彂API锛歅DA婊℃墭澶嶆鍒ゆ柇" + JsonConvert.SerializeObject(model), "API"); - var db = new SqlHelper<object>().GetInstance(); + var result = new SimpleResult();//杩斿洖缁撴灉 try { + var db = new SqlHelper<object>().GetInstance(); + var locCnt = db.Queryable<TN_Loc_Container>().First(a => a.S_CNTR_CODE == model.rfId); if (locCnt == null) { @@ -323,6 +325,179 @@ } /// <summary> + /// 绾胯竟绌烘墭鍒板師鏉愭枡杈撻�绾�+ /// </summary> + /// <param name="model"></param> + /// <returns></returns> + internal static SimpleResult EmptyLineToLine(EmptyLineToLineInfo model) + { + LogHelper.Info("瑙﹀彂API锛氱嚎杈圭┖鎵樺埌鍘熸潗鏂欒緭閫佺嚎" + JsonConvert.SerializeObject(model), "API"); + var result = new SimpleResult();//杩斿洖缁撴灉 + try + { + var db = new SqlHelper<object>().GetInstance(); + + var startLoc = db.Queryable<TN_Location>().First(o => o.S_CODE == model.startLoc); + if (startLoc == null) + { + result.resultCode = 1; + result.resultMsg = $"鏁版嵁搴撲腑鏈壘鍒版璐т綅锛歿model.startLoc}"; + LogHelper.Info(result.resultMsg); + return result; + } + if (startLoc.N_CURRENT_NUM == 1 || db.Queryable<TN_Loc_Container>().Any(a=>a.S_LOC_CODE==model.startLoc)) + { + result.resultCode = 2; + result.resultMsg = $"姝よ揣浣嶏細{model.startLoc}锛屽凡缁戝畾鎵樼洏"; + LogHelper.Info(result.resultMsg); + return result; + } + if (startLoc.N_LOCK_STATE != 0 || startLoc.S_LOCK_STATE != "鏃�) + { + result.resultCode = 3; + result.resultMsg = $"姝よ揣浣嶏細{model.startLoc}锛屽凡涓婇攣"; + LogHelper.Info(result.resultMsg); + return result; + } + if (startLoc.C_ENABLE != "Y") + { + result.resultCode = 4; + result.resultMsg = $"姝よ揣浣嶏細{model.startLoc}锛屾湭鍚敤"; + LogHelper.Info(result.resultMsg); + return result; + } + var startLocArea = Settings.Areas[13]; + if (startLoc.S_AREA_CODE != startLocArea) + { + result.resultCode = 5; + result.resultMsg = $"姝よ揣浣嶏細{model.startLoc}锛屼笉灞炰簬绾胯竟绌烘墭鍖簕startLocArea}"; + LogHelper.Info(result.resultMsg); + return result; + } + + + var endLocIndex = Settings.LineSorting; + var endLocLine = Settings.ProductionLines.FirstOrDefault(a => a.Sorting == endLocIndex); + if (endLocLine == null) + { + result.resultCode = 6; + result.resultMsg = $"閰嶇疆鏂囦欢涓湭鎵惧埌搴忓彿涓猴細{endLocIndex}鐨勫師鏉愭枡浜х嚎鐨勪俊鎭�; + LogHelper.Info(result.resultMsg); + return result; + } + var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == endLocLine.PointIn); + if (endLoc == null) + { + result.resultCode = 7; + result.resultMsg = $"鏁版嵁搴撲腑鏈壘鍒板師鏉愭枡浜х嚎绌烘墭涓婄嚎鍙o細{endLocLine.PointIn}"; + LogHelper.Info(result.resultMsg); + return result; + } + var endLocArea = Settings.Areas[14]; + if (endLoc.S_AREA_CODE != endLocArea) + { + result.resultCode = 8; + result.resultMsg = $"姝よ揣浣嶏細{endLoc.S_CODE}锛屼笉灞炰簬鍘熸潗鏂欎骇绾跨┖鎵樺尯{endLocArea}"; + LogHelper.Info(result.resultMsg); + return result; + } + if (endLoc.N_CURRENT_NUM == 1 || db.Queryable<TN_Loc_Container>().Any(a => a.S_LOC_CODE == endLocLine.PointIn)) + { + result.resultCode = 9; + result.resultMsg = $"姝よ揣浣嶏細{model.startLoc}锛屽凡缁戝畾鎵樼洏"; + LogHelper.Info(result.resultMsg); + return result; + } + if (endLoc.N_LOCK_STATE != 0 || endLoc.S_LOCK_STATE != "鏃�) + { + result.resultCode = 10; + result.resultMsg = $"姝よ揣浣嶏細{model.startLoc}锛屽凡涓婇攣"; + LogHelper.Info(result.resultMsg); + return result; + } + if (endLoc.C_ENABLE != "Y") + { + result.resultCode = 11; + result.resultMsg = $"姝よ揣浣嶏細{model.startLoc}锛屾湭鍚敤"; + LogHelper.Info(result.resultMsg); + return result; + } + var Cnt = Guid.NewGuid().ToString("D"); + + + using (var trans = db.Ado.UseTran()) + { + startLoc.N_CURRENT_NUM = 1; + startLoc.N_LOCK_STATE = 2; + startLoc.S_LOCK_STATE = "鍑哄簱閿�; + + endLoc.N_LOCK_STATE = 1; + endLoc.S_LOCK_STATE = "鍏ュ簱閿�; + + var locCnt = new TN_Loc_Container() + { + S_LOC_CODE = startLoc.S_CODE, + S_CNTR_CODE = Cnt, + }; + + 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 = Cnt, + }; + + 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>(locCnt).ExecuteCommand() == 1 && + db.Insertable<TN_Task>(task).ExecuteCommand() == 1 + ) + { + if (Settings.LineSorting < Settings.ProductionLines.Count - 1) + { + Settings.LineSorting++; + } + else + { + Settings.LineSorting = 0; + } + + + 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) + { + result.resultCode = -1; + result.resultMsg = $"PDA婊℃墭澶嶆鍒ゆ柇锛屽彂鐢熶簡寮傚父锛歿ex.Message}"; + LogHelper.Info(result.resultMsg); + return result; + } + } + + /// <summary> /// 浜哄伐娆″搧鍥炵倝 /// </summary> /// <param name="model"></param> @@ -330,11 +505,13 @@ internal static SimpleResult PDAReturnReset(PDAReturnResetInfo model) { LogHelper.Info("瑙﹀彂API锛氫汉宸ユ鍝佸洖鐐� + JsonConvert.SerializeObject(model), "API"); - var db = new SqlHelper<object>().GetInstance(); + var result = new SimpleResult();//杩斿洖缁撴灉 try { + var db = new SqlHelper<object>().GetInstance(); + var startLoc = db.Queryable<TN_Location>().First(o => o.S_CODE == model.startLoc && o.N_CURRENT_NUM ==0 && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE=="鏃� && o.S_AREA_CODE == Settings.Areas[4]); if (startLoc == null) { @@ -679,11 +856,13 @@ /// </summary> internal static SimpleResult PDAFullInArea(PDAFullInAreaInfo model) { - var db = new SqlHelper<object>().GetInstance(); + var result = new SimpleResult();//杩斿洖缁撴灉 LogHelper.Info("瑙﹀彂API锛歅DA婊℃墭涓嬬嚎鍏ュ簱" + JsonConvert.SerializeObject(model), "API"); try { + var db = new SqlHelper<object>().GetInstance(); + if (model.RfId.Length < 16) { result.resultCode = 1; @@ -971,10 +1150,11 @@ LogHelper.Info("瑙﹀彂API锛氭弧鎵樺嚭搴撲笂绾� + JsonConvert.SerializeObject(model), "API"); var result = new SimpleResult(); - var db = new SqlHelper<object>().GetInstance(); + TN_Location endLoc = new TN_Location(); try { + var db = new SqlHelper<object>().GetInstance(); if (model.EndLoc != string.Empty)//鎸囧畾缁堢偣璐т綅 { endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.EndLoc); @@ -1120,13 +1300,14 @@ { LogHelper.Info("瑙﹀彂API锛氱┖鎵樹笅绾垮爢鍙� + JsonConvert.SerializeObject(model), "API"); - var result = new SimpleResult(); - var db = new SqlHelper<object>().GetInstance(); + TN_Location startLoc = new TN_Location(); try { + var db = new SqlHelper<object>().GetInstance(); + var startLocCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.startLoc && a.S_CNTR_CODE == model.cntID); if (startLocCntrRel != null) { @@ -1221,13 +1402,13 @@ LogHelper.Info("瑙﹀彂API锛氫綑鏂欎笅绾垮叆搴� + JsonConvert.SerializeObject(model), "API"); var result = new SimpleResult(); - var db = new SqlHelper<object>().GetInstance(); + TN_Location startLoc_Old = new TN_Location(); TN_Location startLoc_New = new TN_Location(); try { - + var db = new SqlHelper<object>().GetInstance(); var cG_Detail = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == model.cntID); if (cG_Detail == null) { @@ -1500,10 +1681,12 @@ LogHelper.Info("瑙﹀彂API锛氫汉宸ユ媶鐩樺叆搴� + JsonConvert.SerializeObject(model), "API"); var result = new SimpleResult(); - var db = new SqlHelper<object>().GetInstance(); + string cntLog = $"鏃х殑瀹瑰櫒鍙穥model.old_CntId}"; try { + var db = new SqlHelper<object>().GetInstance(); + if (model.new_IsOK == model.old_IsOK) { result.resultCode = 19; @@ -1840,9 +2023,10 @@ LogHelper.Info("瑙﹀彂API锛氫汉宸ュ垱寤虹偣鍒扮偣浠诲姟" + JsonConvert.SerializeObject(model), "API"); var result = new SimpleResult(); - var db = new SqlHelper<object>().GetInstance(); try { + var db = new SqlHelper<object>().GetInstance(); + var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.startLoc); if(!(startLoc != null && startLoc.N_LOCK_STATE == 0 && startLoc.S_LOCK_STATE == "鏃�)) -- Gitblit v1.9.1