From 9b015b21e39bb427c8fcfdcbda795d3a3c450d52 Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期五, 30 五月 2025 17:27:56 +0800 Subject: [PATCH] 合肥佳通修改 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs | 147 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 131 insertions(+), 16 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs index 8d12ee2..2246125 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs @@ -11,8 +11,11 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection.Emit; +using System.ServiceModel; using System.Threading; using System.Threading.Tasks; +using System.Web.UI.WebControls; using static HH.WCS.JiaTong.api.ApiModel; using static HH.WCS.JiaTong.api.OtherModel; using static HH.WCS.JiaTong.LISTA.process.HttpModel; @@ -155,6 +158,7 @@ } else if (taskData.taskType == 2)//鍏ュ簱娴佺▼锛岀洿鎺ヤ娇鐢ㄨ捣鐐硅揣浣嶅拰缁堢偣璐т綅鐢熸垚浠诲姟锛岃捣鐐归渶瑕佹湁鎵樼洏 { + note = "鍏ュ簱"; startloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == taskData.pickStation).First(); if (startloc != null) { @@ -173,12 +177,7 @@ } } - //鍒ゆ柇鏄惁鏄┖鎵樺洖搴�- var CntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == CntrCode).First(); - if (CntrItem == null) - { - note = "绌烘墭鍥炲簱";//浜曟澗绌烘墭鍥炲簱锛岄渶瑕佷笌鍙犵洏鏈哄畨鍏ㄤ氦浜�- } + endloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == taskData.dropStation).First(); if (endloc != null) { @@ -194,8 +193,8 @@ } else if (taskData.taskType == 3)//绉诲簱娴佺▼锛岀洿鎺ヤ娇鐢ㄨ捣鐐硅揣浣嶅拰缁堢偣璐т綅鐢熸垚浠诲姟锛� { + note = "鍑哄簱"; //鍒涘缓鎵樼洏鐗╂枡缁戝畾淇℃伅锛屽苟璁$畻缁堢偣璐т綅 - startloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == taskData.pickStation).First(); if (startloc != null) { @@ -388,6 +387,7 @@ //鏆傚瓨浣嶅洖搴� else if (taskData.taskType == 6)//鍏ュ簱娴佺▼锛岀洿鎺ヤ娇鐢ㄨ捣鐐硅揣浣嶅拰缁堢偣璐т綅鐢熸垚浠诲姟 { + note = "鍏ュ簱"; //鏍规嵁鎵樼洏鍙锋壘璐т綅 var CntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == partData.rfid).First(); if (CntrRel != null) @@ -806,6 +806,7 @@ result.msg = $"鏍规嵁璧风偣浠撳簱缂栫爜锛歿startloc.S_WH_CODE}鏈壘鍒板搴旈厤缃枃浠�; LogHelper.Info($"Putin==> {result.msg}"); AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; } //鍒ゆ柇鏈夋棤鐩稿悓鐗╂枡鎺�@@ -826,6 +827,7 @@ result.msg = $"搴撳尯:{areacode}鏃犲彲鐢ㄨ揣浣�; LogHelper.Info($"Putin==> {result.msg}"); AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; } } else @@ -835,6 +837,7 @@ result.msg = $"浠诲姟璧风偣:{Start}鎵句笉鍒板搴旇揣浣嶏紝璇锋鏌ヨ揣浣嶈〃"; LogHelper.Info($"Putin==> {result.msg}"); AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source); + return result; } #endregion @@ -939,6 +942,7 @@ result.msg = $"鏍规嵁鏈哄彴缂栫爜锛歿model.WorkCenter}鏈壘鍒板搴旇揣浣�; LogHelper.Info($"Putin==> {result.msg}"); AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; } //鏍规嵁浠撳簱 璁$畻搴撳尯 var whcode = Settings.wareLoc.Where(a => a.AreaCode == locJt.S_WH_CODE).FirstOrDefault(); @@ -973,6 +977,7 @@ result.msg = $"鏍规嵁缁堢偣搴撳尯浠撳簱缂栫爜锛歿locJt.S_WH_CODE}鏈壘鍒板搴旈厤缃枃浠�; LogHelper.Info($"Putin==> {result.msg}"); AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; } #endregion @@ -991,6 +996,14 @@ { End = Endloc.S_CODE; } + else + { + result.code = "1"; + result.msg = $"Computeloc==銆嬫牴鎹満鍙扮紪鐮侊細{model.WorkCenter},宸ヨ绫诲瀷锛歿cntrType} 鏈壘鍒扮┖璐т綅鏁版嵁锛岃妫�煡璐т綅琛�; + LogHelper.Info($"ItemBack锛歿result.msg}"); + AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; + } } else { @@ -999,6 +1012,7 @@ result.msg = $"浠诲姟鐗╂枡:{itemcode}鎵句笉鍒板搴斿簱瀛�; LogHelper.Info($"ItemBack锛歿result.msg}"); AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; } #endregion @@ -1192,6 +1206,7 @@ result.msg = $"鏍规嵁璧风偣浠撳簱缂栫爜锛歿startloc.S_WH_CODE}鏈壘鍒板搴旈厤缃枃浠�; LogHelper.Info($"Putin==> {result.msg}"); AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; } #endregion @@ -1333,11 +1348,12 @@ result.msg = $"鏍规嵁璧风偣浠撳簱缂栫爜锛歿endloc.S_WH_CODE}鏈壘鍒板搴旈厤缃枃浠�; LogHelper.Info($"Putin==> {result.msg}"); AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; } //璁$畻鍑哄簱鎵樼洏 - startloc = airlift(areacode, itemcode); + startloc = LocationHelper.GetLocByAreacode(areacode); if (startloc != null) { var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == startloc.S_CODE).First(); @@ -1365,7 +1381,7 @@ result.msg = $"浠诲姟璧风偣:{End}鎵句笉鍒板搴旇揣浣嶏紝璇锋鏌ヨ揣浣嶈〃"; LogHelper.Info($"callfixture:{result.msg}"); AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source); - + return result; } #endregion @@ -1551,7 +1567,8 @@ var EndLocs = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == areacode).ToList(); if (EndLocs.Count > 0) { - loc = EndLocs.Find(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0); + //loc = EndLocs.Find(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0); + loc = FindEndcolByLocList(EndLocs); if (loc != null) { End = loc.S_CODE; @@ -1598,6 +1615,7 @@ result.msg = $"鏍规嵁璧风偣浠撳簱缂栫爜锛歿startloc.S_WH_CODE}鏈壘鍒板搴旈厤缃枃浠�; LogHelper.Info($"Putin==> {result.msg}"); AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; } } @@ -2133,8 +2151,8 @@ if (CntrItem != null) { - LocationHelper.UnBindingLoc(loc, new List<string>() { "cntrcode" }); - // db.Deleteable<LocCntrRel>().Where(it => it.S_LOC_CODE.Trim() == loc).ExecuteCommand(); + LocationHelper.UnBindingLoc(loc, new List<string>() { cntrcode }); + // db.Deleteable<LocCntrRel>().Where(it => it.S_LOC_CODE.Trim() == loc).ExecuteCommand(); db.Deleteable<CntrItemDetail>().Where(it => it.S_CNTR_CODE.Trim() == cntrcode).ExecuteCommand(); } @@ -2169,7 +2187,99 @@ return result; } + /// <summary> + /// 璁惧鐘舵�涓婃姤 + /// </summary> + /// <returns></returns> + internal static DeviceInfoModel Device() + { + var db = new SqlHelper<HangChaAGV>().GetInstance(); + DeviceInfoModel device = new DeviceInfoModel(); + List<DeviceInfos> deviceInfos = new List<DeviceInfos>();//鍙犵洏鏈烘姤閿欎俊鎭�+ List<AgvInfos> agvInfos = new List<AgvInfos>();//agv鎶ラ敊淇℃伅 + + //鑾峰彇鍐呭瓨涓彔鐩樻満鐨勬姤閿欎俊鎭�+ foreach (var dpjInfo in DeviceProcess.DpjInfoDirectory) + { + deviceInfos.Add(new DeviceInfos() { Device = dpjInfo.Value.DeviceName, DeviceInfo = dpjInfo.Value.ErrorInfo }); + } + device.DeviceInfos = deviceInfos; + //鑾峰彇杞﹁締鎶ヨ淇℃伅 + var agvDeviceInfo = db.Queryable<HangChaAGV>().ToList(); + if (agvDeviceInfo.Count > 0) + { + device.AgvQty = agvDeviceInfo.Count; + device.AgvErrorQty = agvDeviceInfo.FindAll(a => a.agvErrCode != "0" || a.agvErrCode != "0" || a.faildCode != "0").Count; + device.AgvChargeQty = agvDeviceInfo.FindAll(a => a.agvErrCode == "1").Count; + device.AgvRunQty = agvDeviceInfo.FindAll(a => a.agvErrCode == "1").Count; + foreach (var agv in agvDeviceInfo) + { + string agvErrorInfo = GetAgvAlarmSendCodeTwo(agv.agvErrCode, agv.errCode2, agv.faildCode); + agvInfos.Add(new AgvInfos() { AgvNo = agv.agvNo, AgvInfo = agvErrorInfo }); + } + } + device.AgvInfos = agvInfos; + + return device; + } + + /// <summary> + /// agv灏忚溅鏁呴殰鐮佸鐞�+ /// </summary> + /// <param name="errCode1">閿欒鐮�</param> + /// <param name="errCode2">閿欒鐮�</param> + /// <param name="faildCode">閿欒鐮�</param> + /// <returns></returns> + private static string GetAgvAlarmSendCodeTwo(string errCode1, string errCode2, string faildCode) + { + string result = ""; + //灏嗘姤璀︿俊鎭暣鍚�+ string binSW1 = Convert.ToString(int.Parse(errCode1), 2).PadLeft(22, '0'); + string binSW2 = Convert.ToString(int.Parse(errCode1), 2).PadLeft(20, '0'); + string binFc = Convert.ToString(int.Parse(errCode1), 2).PadLeft(16, '0'); + var arr1 = binSW1.ToArray(); + var arr2 = binSW2.ToArray(); + var arr3 = binFc.ToArray(); + + for (int i = 0; i <= arr1.Length; i++) + { + if (arr1[i] == '1') + { + var ErrorInfo = Settings.agvErrorCode1.Where(a => a.ErrorCode == i).FirstOrDefault(); + if (ErrorInfo != null) + { + result = result + "," + $"{ErrorInfo.ErrorInfo}"; + } + + } + } + for (int i = 0; i <= arr2.Length; i++) + { + if (arr1[i] == '1') + { + var ErrorInfo = Settings.agvErrorCode2.Where(a => a.ErrorCode == i).FirstOrDefault(); + if (ErrorInfo != null) + { + result = result + "," + $"{ErrorInfo.ErrorInfo}"; + } + + } + } + for (int i = 0; i <= arr3.Length; i++) + { + if (arr1[i] == '1') + { + var ErrorInfo = Settings.agvFaildCode.Where(a => a.ErrorCode == i).FirstOrDefault(); + if (ErrorInfo != null) + { + result = result + "," + $"{ErrorInfo.ErrorInfo}"; + } + + } + } + return result; + } #endregion #region 鍚堣偉浣抽�涓氬姟鏂规硶 @@ -2297,7 +2407,12 @@ #endregion var loc = LocationHelper.GetLocByItemCode(areacode, itemcode, level); LogHelper.Info($"airlift=>鏍规嵁搴撳尯缂栫爜:{areacode}锛岀墿鏂欑紪鐮�{itemcode},鐗╂枡绛夌骇璁$畻鍑烘湁鎵樼洏璐т綅{JsonConvert.SerializeObject(loc)}"); - result = FindStartcolByLoclist(loc); + // result = FindStartcolByLoclist(loc); + if (loc.Count > 0) + { + result = loc.OrderByDescending(a => a.N_COL).First(); + } + LogHelper.Info($"airlift=>鍙敤璐т綅涓猴細{JsonConvert.SerializeObject(result)}"); return result; } @@ -2415,7 +2530,7 @@ /// </summary> /// <param name="locations"></param> /// <returns></returns> - internal static Location FindEndcolByLocList(List<Location> locations, string itemcode) + internal static Location FindEndcolByLocList(List<Location> locations) { try { @@ -2508,9 +2623,9 @@ } } + + #endregion - - internal static CodeInfo GetCodeInfo(string code, string org) { -- Gitblit v1.9.1