From 46dc31d4e66e45cde693b9c909691a710fabfcee Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期四, 10 七月 2025 17:31:14 +0800 Subject: [PATCH] mes接口修改 --- process/TaskProcess.cs | 265 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 261 insertions(+), 4 deletions(-) diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index 8fff495..83a4897 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -955,7 +955,9 @@ try { var task = TaskHelper.GetTaskByWorkNo(model.task_no, "agv"); + var wcsTask = TaskHelper.GetTaskByWorkNo(model.task_no,"wcs"); + if (task != null && wcsTask != null) { if (task.S_B_STATE.Trim() == "鏈墽琛�) @@ -1340,7 +1342,262 @@ } - + + /// <summary> + /// 娣诲姞mes浠诲姟 + /// </summary> + internal static Result addMesTaskInWorkArea(InWorkAreaParme model) + { + var result = new Result(); + var TOOLSTYPE = ""; + try + { + if (string.IsNullOrEmpty(model.BUSI_TYPE.ToString())) + { + LogHelper.Info("InWorkArea浠诲姟涓嬪彂澶辫触锛岀己灏戝弬鏁癇USI_TYPE銆�, "Mes浠诲姟涓嬪彂"); + throw new Exception("缂哄皯鍙傛暟BUSI_TYPE"); + } + if (string.IsNullOrEmpty(model.PROD_NO)) + { + LogHelper.Info("InWorkArea浠诲姟涓嬪彂澶辫触锛岀己灏戝弬鏁癙ROD_NO銆�, "Mes浠诲姟涓嬪彂"); + throw new Exception("缂哄皯鍙傛暟PROD_NO"); + } + if (string.IsNullOrEmpty(model.Location_To)) + { + LogHelper.Info("InWorkArea浠诲姟涓嬪彂澶辫触锛岀粓鐐逛负绌恒�", "Mes浠诲姟涓嬪彂"); + throw new Exception("缂哄皯缁堢偣Location_To"); + } + if (string.IsNullOrEmpty(model.CHECK_INFO)) + { + LogHelper.Info("InWorkArea浠诲姟涓嬪彂澶辫触锛岀己灏戝弬鏁癈HECK_INFO銆�, "Mes浠诲姟涓嬪彂"); + throw new Exception("缂哄皯鍙傛暟CHECK_INFO"); + } + if (string.IsNullOrEmpty(model.task_no)) + { + LogHelper.Info("InWorkArea浠诲姟涓嬪彂澶辫触锛岀己灏戝弬鏁皌ask_no銆�, "Mes浠诲姟涓嬪彂"); + throw new Exception("缂哄皯鍙傛暟task_no"); + } + + if (model.Task_type==2) + { + //鍛煎彨鑳舵枡鍑哄簱 + + + + var workFlow = TaskHelper.selectWorkFlowByType(model.BUSI_TYPE); + + + + + if (workFlow == null) + { + LogHelper.Info($"InWorkArea浠诲姟涓嬪彂澶辫触锛孊USI_TYpe:{model.BUSI_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�, "Mes浠诲姟涓嬪彂"); + throw new Exception($"BUSI_TYpe:{model.BUSI_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�); + } + else + { + LogHelper.Info($"浣滀笟娴佺▼淇℃伅" + JsonConvert.SerializeObject(workFlow), "Mes浠诲姟涓嬪彂"); + } + + //鍑哄簱浠诲姟 + + //鎺ラ┏浣�+ var connection = ""; + + //鎺ラ┏浣嶅簱鍖�+ var connectionArea = ""; + + + //鏌ユ壘缁欏畾缁堢偣 + var end = LocationHelper.GetLoc(model.Location_To); + LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂"); + + + if (end == null) + { + LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂澶辫触锛岀粓鐐�{model.Location_To},娌℃壘鍒�, "Mes浠诲姟涓嬪彂"); + throw new Exception($"缁堢偣:{model.Location_To},娌℃壘鍒�); + } + + + var unlimitedLocation = TaskHelper.GetMesKtLoc(); + + //鏍囪缁堢偣璐т綅鏄惁鍙互鏃犻檺鍒朵笅浠诲姟 + var endLocFlag = true; + + foreach (var item in unlimitedLocation) + { + //鍑哄簱缁堢偣璐т綅鍦ㄩ厤缃噷 鍙互鏃犻檺鍒朵笅浠诲姟 + if (item.Loc.Contains(model.Location_To)) + { + endLocFlag = false; + break; + } + } + + if (endLocFlag) + { + var endTask = TaskHelper.GetTaskByEndLoc(model.Location_To); + if (endTask != null) + { + LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂澶辫触锛岀粓鐐�{model.Location_To}鏈変换鍔℃墽琛屼腑锛屼换鍔″彿:{endTask.S_CODE}", "Mes浠诲姟涓嬪彂"); + throw new Exception($"缁堢偣:{model.Location_To}鏈変换鍔℃墽琛屼腑锛屼换鍔″彿:{endTask.S_CODE}"); + } + } + + + + //鏌ユ壘璧风偣 + List<Location> strrtList; + + Location start = null; + + + if (!string.IsNullOrEmpty(workFlow.ZONECODE)) + { + strrtList = LocationHelper.GetZoneLoc(workFlow.ZONECODE); + } + else + { + strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); + } + + + + if (workFlow.FLOWCODE == "9") + { + //鏍规嵁鍒跺搧缂栧彿瀵绘壘绔嬪簱鍖哄搴旂墿鏂欐墭鐩�+ start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY, workFlow.CONNECTION); + if (start == null) + { + strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); + var itemFlag = LocationHelper.FindStartcolByLoclistAndItemFlag(strrtList, model.PROD_NO, workFlow.STARTAREA); + LogHelper.Info($"InWorkArea婊℃墭鍑哄簱浠诲姟娌℃壘鍒拌捣鐐癸紝鏍¢獙鏄惁鏈夊簱瀛樹絾鏄澶囨姤璀itemFlag}", "Mes浠诲姟涓嬪彂"); + if (itemFlag) + { + result.errMsg = "婊℃墭鍑哄簱浣滀笟鏈夊簱瀛樹絾璁惧鎶ヨ"; + result.errCode = 2001; + result.success = true; + return result; + } + } + + + LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂璧风偣淇℃伅" + JsonConvert.SerializeObject(start), "Mes浠诲姟涓嬪彂"); + + if (start == null) + { + LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂澶辫触锛岃捣鐐瑰簱鍖簕workFlow.STARTAREA},娌℃壘鍒拌捣鐐�, "Mes浠诲姟涓嬪彂"); + throw new Exception($"璧风偣搴撳尯{workFlow.STARTAREA},娌℃壘鍒拌捣鐐�); + } + + + + + //鑾峰彇鎵樼洏鐮�+ var cntrCode = LocationHelper.GetLocCntrCode(start.S_CODE); + + if (workFlow.SENDWCS == "Y") + { + + //姝e紡浠g爜锛岃皟鐢ㄦ帴鍙e鎵惧彲鐢ㄦ帴椹充綅 + var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); + + //鏍规嵁鎺ラ┏浣嶄换鍔℃暟閲忚幏鍙栧潎琛℃帴椹充綅闆嗗悎浼樺厛浠诲姟鏁板皯鐨勬帴椹充綅 + var balanceConnectionList = LocationHelper.GetBalanceConnectionList(connectionList); + foreach (var item in balanceConnectionList) + { + if (item.loc.CONNEC_ROADWAY == start.N_ROADWAY) + { + connection = item.loc.S_CODE; + connectionArea = item.loc.S_AREA_Name; + LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂"); + break; + } + } + + if (connection == "") + { + LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂"); + throw new Exception($"InWorkArea鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�); + } + } + + + //璧风偣缁堢偣鏌ユ壘鎴愬姛锛屽垱寤轰綔涓�+ + var taskType = int.Parse(workFlow.FLOWCODE); + + var operation = new WmsWork + { + // 浣滀笟鍙�+ S_CODE = model.task_no, + // 浣滀笟绫诲瀷 + N_TYPE = taskType, + // 浣滀笟绫诲瀷 + S_TYPE = workFlow.FLOWNAME, + // 璧风偣璐т綅 + S_START_LOC = start.S_CODE, + // 璧风偣搴撳尯缂栫爜 + S_START_AREA = start.S_AREA_CODE, + //鎺ラ┏浣�+ CONNECTION = connection, + // 缁堢偣璐т綅 + S_END_LOC = end.S_CODE, + // 缁堢偣搴撳尯缂栫爜 + S_END_AREA = end.S_AREA_CODE, + // 瀹瑰櫒缂栫爜 + S_CNTR_CODE = cntrCode, + // 浣滀笟瀹氫箟鍚嶇О + S_OP_DEF_NAME = workFlow.FLOWNAME, + //浼樺厛绾�+ N_PRIORITY = model.Priority, + //宸ヨ绫诲瀷 + TOOLSTYPE = TOOLSTYPE, + //璧风偣搴撳尯鍚嶇О + S_START_AREA_NAME = start.S_AREA_Name, + //璧风偣搴撳尯鍚嶇О + S_END_AREA_NAME = end.S_AREA_Name, + //璧风偣搴撳尯鍚嶇О + CONNECTION_AREA = connectionArea + }; + + //鍒涘缓浣滀笟 + if (WMSHelper.CreateWmsWork(operation)) + { + if (connection != "") + { + LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2); + LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1); + LocationHelper.LockLoc(operation.CONNECTION, "鍏ュ簱閿�, 1); + } + + + LogHelper.Info($"InWorkArea鍑哄簱浣滀笟鍒涘缓鎴愬姛{operation.S_CODE}", "Mes浠诲姟涓嬪彂"); + result.errMsg = "鍑哄簱浣滀笟鍒涘缓鎴愬姛"; + result.errCode = 0; + result.success = true; + return result; + } + else + { + LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂鍒涘缓浣滀笟澶辫触", "Mes浠诲姟涓嬪彂"); + throw new Exception($"InWorkArea鍑哄簱浠诲姟涓嬪彂鍒涘缓浣滀笟澶辫触"); + } + } + } + } + catch (Exception ex) + { + LogHelper.Info("InWorkArea浠诲姟涓嬪彂寮傚父" + ex.Message, "Mes浠诲姟涓嬪彂"); + result.errMsg = "InWorkArea浠诲姟涓嬪彂寮傚父" + ex.Message; + result.errCode = 1; + result.success = false; + throw; + } + + return result; + } /// <summary> @@ -1572,7 +1829,7 @@ //} - if (workFlow.FLOWCODE == "1" || workFlow.FLOWCODE == "2") + if (workFlow.FLOWCODE == "1" || workFlow.FLOWCODE == "2" || workFlow.FLOWCODE == "5" || workFlow.FLOWCODE == "8" || workFlow.FLOWCODE == "11") { //婊℃墭鍏� @@ -1587,7 +1844,7 @@ } } - else if (workFlow.FLOWCODE == "3") + else if (workFlow.FLOWCODE == "3" || workFlow.FLOWCODE == "10") { //绌烘墭鍏ョ珛搴撳尯 cntrCount = 0; @@ -1848,7 +2105,7 @@ - if (workFlow.FLOWCODE == "9" || workFlow.FLOWCODE == "4") + if (workFlow.FLOWCODE == "9" || workFlow.FLOWCODE == "4" || workFlow.FLOWCODE == "6") { if (TOOLSTYPE == "85" || TOOLSTYPE == "95") { -- Gitblit v1.9.1