From f978872b6de4e7e20d992a2ee7cda902c11347b9 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期一, 30 六月 2025 15:31:56 +0800 Subject: [PATCH] 优化配置文件读取逻辑,将ERP反馈接口写入配置文件中配置 --- core/WCSCore.cs | 45 ++++++++++++++++++++++++++------------------- 1 files changed, 26 insertions(+), 19 deletions(-) diff --git a/core/WCSCore.cs b/core/WCSCore.cs index f0d8b90..ab8fbe7 100644 --- a/core/WCSCore.cs +++ b/core/WCSCore.cs @@ -76,7 +76,7 @@ WCSHelper.UpdateStatus(TN_Task, "鍙栬揣瀹屾垚"); // 浠诲姟鐘舵�鏀规垚鍙栬揣瀹屾垚 TaskProcess.OperateStatus(TN_Task, 4); // 璧风偣瀹瑰櫒璐т綅瑙g粦,瑙i攣璧风偣 - if (TN_Task.S_TYPE == TaskName.C鎴愬搧鑳跺嚭搴� { + if (TN_Task.S_TYPE == ETask.C鎴愬搧鑳跺嚭搴�Name()) { var nextOutboundTask = Task.Run(() => { UpdateOutboundTaskState(3); }); @@ -128,8 +128,8 @@ var cgDetail = new TN_CG_Detail(); // 濡傛灉娌℃湁淇℃伅锛岄粯璁ゅ氨鏄┖鍊硷紝鍙互鐩存帴濉叆锛屼笉闇�鍒ゆ柇 //var emptyTask = false; // 绌烘墭/绌虹浠诲姟 - if (task.S_TYPE != TaskName.H濂借繍绠盻绌虹涓婄嚎 && task.S_TYPE != TaskName.H濂借繍绠盻绌虹鍏ュ簱 && - task.S_TYPE != TaskName.T鎵樼洏_绌烘墭涓婄嚎 && task.S_TYPE != TaskName.T鎵樼洏_绌烘墭鍏ュ簱) { + if (task.S_TYPE != ETask.K绌烘墭涓婄嚎鍑哄簱.Name() && task.S_TYPE != ETask.K绌烘墭鍏ュ簱.Name() && + task.S_TYPE != ETask.K绌虹涓婄嚎鍑哄簱.Name() && task.S_TYPE != ETask.K绌虹鍏ュ簱.Name()) { // 闈炵┖鎵�绌虹浠诲姟锛堢┖鎵�绌虹浠诲姟鏃犳硶鍦–GDetail鏌ュ埌鐗╂枡淇℃伅锛� //emptyTask= true; cgDetail = db.Queryable<TN_CG_Detail>() @@ -147,8 +147,8 @@ var isInbound = false; // 鍏ュ簱绫诲瀷鐨勪换鍔★紙鍖呮嫭绉诲簱绫讳换鍔★級 var inboundTasks = new List<string> { - TaskName.H濂借繍绠盻婊$涓嬬嚎鍏ュ簱, TaskName.H濂借繍绠盻绌虹鍏ュ簱, TaskName.T鎵樼洏_婊℃墭涓嬬嚎鍏ュ簱, TaskName.T鎵樼洏_绌烘墭鍏ュ簱, - TaskName.C鎶芥_鍚堟牸鍥炲簱, TaskName.C鎶芥_涓嶅悎鏍肩Щ搴� TaskName.Y绉诲簱 + ETask.M婊℃墭涓嬬嚎鍏ュ簱.Name(), ETask.K绌虹鍏ュ簱.Name(), ETask.M婊℃墭涓嬬嚎鍏ュ簱.Name(), ETask.K绌烘墭鍏ュ簱.Name(), + ETask.C鎶芥鍚堟牸鍥炲簱.Name(), ETask.C鎶芥涓嶅悎鏍肩Щ搴�Name(), ETask.Y绉诲簱.Name() }; if (inboundTasks.Contains(task.S_TYPE)) { isInbound= true; @@ -209,11 +209,17 @@ try { ModbusHelper.Relink(); - //var loc = db.Queryable<TN_Location>() - // .Where(l => l.S_AGV_SITE == model.station_name && Settings.AreaMap[AreaName.鍖呰鍖篯.Contains(l.S_AREA_CODE)) - // .First(); + var BZQ = Settings.GetTaskInfo(ETask.M婊℃墭涓嬬嚎鍏ュ簱).StartAreas; + var loc = db.Queryable<TN_Location>() + .Where(l => BZQ.Contains(l.S_AREA_CODE) && l.S_AGV_SITE == model.station_name).First(); - if (!Settings.AgvSite_ProdLineCodeMap.TryGetValue(model.station_name, out int prodIndex)) { + if (loc == null) { + info = $"AGV 绔欑偣{model.station_name}涓嶆槸鍚堟硶鐨勪骇绾挎帴椹充綅绔欑偣"; + LogHelper.Info(info); + return NewReturnResult(1, info); + } + + if (!Settings.LocProdIdMap.TryGetValue(loc.S_CODE, out var prodIndex)) { info = $"AGV 绔欑偣{model.station_name}涓嶆槸鍚堟硶鐨勪骇绾挎帴椹充綅绔欑偣"; LogHelper.Info(info); return NewReturnResult(1, info); @@ -296,7 +302,7 @@ } public static void UpdateOutboundTaskState(int spotStateCode) { - var taskName = TaskName.C鎴愬搧鑳跺嚭搴� + var taskName = ETask.C鎴愬搧鑳跺嚭搴�Name(); var db = new SqlHelper<object>().GetInstance(); var detail = db.Queryable<TN_Outbound_Detail>() @@ -419,7 +425,7 @@ model.hwzt = "宸插嚭搴�; var jsonInfo = JsonConvert.SerializeObject(model); - var result = httpH.WebPost(Settings.ErpApiUrl + "PickUpReturn", jsonInfo); + var result = httpH.WebPost(Settings.ErpApiUrl + Settings.ErpRoute.PickUpReturn, jsonInfo); LogHelper.InfoApi($"鍙栬揣瀹屾垚鍙嶉ERP鎺ュ彛锛岀粨鏋�{result}锛岃皟鐢ㄥ弬鏁帮細", model); @@ -458,7 +464,7 @@ // TCP 闈炶疆璇㈡柟寮�妯℃嫙浜х嚎涓嬬嚎鐨勫皾璇� public static void StartServer() { - var ListenPort = 6000; + var ListenPort = Settings.TcpServerPort; TcpListener listener = new TcpListener(IPAddress.Any, ListenPort); listener.Start(); Console.WriteLine($"鍚庡彴鏈嶅姟宸插惎鍔紝鐩戝惉绔彛 {ListenPort}..."); @@ -524,21 +530,22 @@ var db = new SqlHelper<object>().GetInstance(); var info = ""; - const string taskName = TaskName.T鎵樼洏_婊℃墭涓嬬嚎鍏ュ簱; - const string startAreaName = AreaName.B鍖呰鍖� - const string endAreaName = AreaName.M婊℃墭璐ф灦鍖� + var taskInfo = Settings.GetTaskInfo(ETask.M婊℃墭涓嬬嚎鍏ュ簱); + var taskName = taskInfo.TaskName; + var startAreas = taskInfo.StartAreas; + var endAreas = taskInfo.EndAreas; const string cntrType = "鎵樼洏"; try { var startLoc = db.Queryable<TN_Location>() .Where(l => l.S_CODE == startLocCode) - .Where(l => Settings.AreaMap[startAreaName].Contains(l.S_AREA_CODE)) + .Where(l => startAreas.Contains(l.S_AREA_CODE)) .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") //.Where(l => l.N_CURRENT_NUM == 0) // 缁戝畾鍓� .First(); if (startLoc == null) { - info = $"鍦�{startAreaName}'涓病鏈夋壘鍒拌捣鐐硅揣浣�{startLocCode}'锛屾垨涓嶆弧瓒宠姹傦細鏈笂閿併�褰撳墠瀹瑰櫒鏁伴噺=0"; + info = $"娌℃湁鎵惧埌璧风偣璐т綅'{startLocCode}'锛屾垨涓嶆弧瓒宠姹傦細鏈笂閿併�褰撳墠瀹瑰櫒鏁伴噺=0"; LogHelper.Info(info); return new Result<bool>(false, info); } @@ -556,14 +563,14 @@ startLoc.N_CURRENT_NUM = 1; // 缁戝畾鍚� var endLoc = db.Queryable<TN_Location>() - .Where(a => Settings.AreaMap[endAreaName].Contains(a.S_AREA_CODE)) + .Where(a => endAreas.Contains(a.S_AREA_CODE)) .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") // 绛涢�锛氭湭涓婇攣 .Where(a => a.N_CURRENT_NUM == 0) // 绛涢�锛氱┖璐т綅 .OrderBy(l => l.N_LAYER) .First(); if (endLoc == null) { - info = $"鍦ㄧ粓鐐硅揣鍖�{endAreaName}'涓紝娌℃湁鎵惧埌鍚堥�鐨勩�缁堢偣璐т綅銆戯紝闇�婊¤冻瑕佹眰锛氭湭涓婇攣銆佸綋鍓嶅鍣ㄦ暟閲�0"; + info = $"娌℃湁鎵惧埌鍚堥�鐨勩�缁堢偣璐т綅銆戯紝闇�婊¤冻瑕佹眰锛氭湭涓婇攣銆佸綋鍓嶅鍣ㄦ暟閲�0"; LogHelper.Info(info); return new Result<bool>(false, info); } -- Gitblit v1.9.1