From adbeeccfcddddbba49718136a1ebb3429ab3b7ae Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期三, 04 六月 2025 08:35:50 +0800 Subject: [PATCH] 电梯流程开发 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs | 219 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 113 insertions(+), 106 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 2246125..cd60f55 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs @@ -273,7 +273,7 @@ LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask"); if (WCSHelper.CreateTask(wcsTask)) { - LocationHelper.LockLoc(Start, 2); + LocationHelper.LockLoc(End, 2); LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); } @@ -281,61 +281,65 @@ else if (startArea.N_FLOOR != endArea.N_FLOOR) { //妤煎眰鐢垫鍒嗛厤 - var endloc1 = Settings.elevatorLoc.Find(a => a.Floor == startArea.N_FLOOR); - var startloc1 = Settings.elevatorLoc.Find(a => a.Floor == endArea.N_FLOOR); + var elevatorLoc = LocationHelper.GetElevatorLoc(); - //鍒涘缓wcs鍒嗘浠诲姟 - var wcsTask = new WCSTask - { - S_CODE = WCSHelper.GenerateTaskNo(), - S_TYPE = "鐢垫1", - S_EQ_NO = taskData.taskNum, - S_START_LOC = Start, - S_END_LOC = endloc1.Location[0], - N_CNTR_COUNT = 1, - S_START_WH = startloc.S_WH_CODE, - S_START_AREA = startloc.S_AREA_CODE, - S_END_WH = endloc.S_WH_CODE, - S_END_AREA = endloc.S_AREA_CODE, - N_SCHEDULE_TYPE = 1, - S_CNTR_CODE = CntrCode, - N_PRIORITY = taskData.priority, - N_START_LAYER = 1, - N_END_LAYER = 1, - S_WMS_NO = taskData.wmsTaskNo, - Z_TYPE = n_type, - S_MES_NO = taskData.mesTaskNo - }; - var wcsTask1 = new WCSTask - { - S_CODE = WCSHelper.GenerateTaskNo(), - S_TYPE = "鐢垫2", - S_EQ_NO = taskData.taskNum, - S_START_LOC = startloc1.Location[0], - S_END_LOC = End, - N_CNTR_COUNT = 1, - S_START_WH = startloc.S_WH_CODE, - S_START_AREA = startloc.S_AREA_CODE, - S_END_WH = endloc.S_WH_CODE, - S_END_AREA = endloc.S_AREA_CODE, - N_SCHEDULE_TYPE = 1, - S_CNTR_CODE = CntrCode, - N_PRIORITY = taskData.priority, - S_WMS_NO = taskData.wmsTaskNo, - N_START_LAYER = 1, - N_END_LAYER = 1, - Z_TYPE = n_type, - S_MES_NO = taskData.mesTaskNo + if (elevatorLoc != null) + { //鍒涘缓wcs鍒嗘浠诲姟 + var wcsTask = new WCSTask + { + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = "鐢垫1", + S_EQ_NO = taskData.taskNum, + S_START_LOC = Start, + S_END_LOC = elevatorLoc.S_CODE, + N_CNTR_COUNT = 1, + S_START_WH = startloc.S_WH_CODE, + S_START_AREA = startloc.S_AREA_CODE, + S_END_WH = elevatorLoc.S_WH_CODE, + S_END_AREA = elevatorLoc.S_AREA_CODE, + N_SCHEDULE_TYPE = 1, + S_CNTR_CODE = CntrCode, + N_PRIORITY = taskData.priority, + N_START_LAYER = 1, + N_END_LAYER = 1, + S_WMS_NO = taskData.wmsTaskNo, + Z_TYPE = n_type, + S_MES_NO = taskData.mesTaskNo + }; + var wcsTask1 = new WCSTask + { + S_CODE = WCSHelper.GenerateTaskNo(), + S_TYPE = "鐢垫2", + S_EQ_NO = taskData.taskNum, + S_START_LOC = elevatorLoc.S_CODE, + S_END_LOC = End, + N_CNTR_COUNT = 1, + S_START_WH = elevatorLoc.S_WH_CODE, + S_START_AREA = elevatorLoc.S_AREA_CODE, + S_END_WH = endloc.S_WH_CODE, + S_END_AREA = endloc.S_AREA_CODE, + N_SCHEDULE_TYPE = 1, + S_CNTR_CODE = CntrCode, + N_PRIORITY = taskData.priority, + S_WMS_NO = taskData.wmsTaskNo, + N_START_LAYER = 1, + N_END_LAYER = 1, + Z_TYPE = n_type, + S_MES_NO = taskData.mesTaskNo - }; + }; + LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask"); + if (WCSHelper.CreateTask(wcsTask) && WCSHelper.CreateTask(wcsTask1)) + { - LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask"); - if (WCSHelper.CreateTask(wcsTask) && WCSHelper.CreateTask(wcsTask1)) - { - - LocationHelper.LockLoc(endloc.S_CODE, 1); - LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); + // LocationHelper.LockLoc(Start, 1); + LocationHelper.LockLoc(End, 2); + LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); + } } + + + } } else @@ -740,6 +744,18 @@ string areacode = ""; try { + + #region 鍏ュ簱妫�煡鎵樼洏鐗╂枡琛ㄦ湁鏃犳暟鎹�+ var cntritem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First(); + if (cntritem == null) + { + result.code = "1"; + result.msg = $"鍒涘缓浠诲姟澶辫触锛屾墭鐩�{model.Rfid}鏃犵粦瀹氱墿鏂欐暟鎹�; + LogHelper.Info($"ItemBack锛歿result.msg}"); + AddErrorInfo("鎵樼洏缁戝畾鐗╂枡鏁版嵁涓虹┖", result.msg, Source); + return result; + } + #endregion #region 鍒ゆ柇鎵樼洏缁戝畾璐т綅鏄惁鍜屼笅鍙戠粦瀹氳捣鐐圭浉鍚�濡傛灉娌$粦瀹氭墭鐩樺垯缁戝畾鎵樼洏 var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First(); @@ -1476,8 +1492,6 @@ try { - - #region 浣欐枡杩斿洖鏍规嵁鎵樼洏鎵惧嚭搴撲换鍔� //浣欐枡杩斿洖鏍规嵁鎵樼洏鎵惧嚭搴撲换鍔� //msts = WCSHelper.GetTaskBycntrcode(model.Rfid); @@ -1515,10 +1529,11 @@ if (whcode != null) { //绮夋枡鐩存帴鍥炲簱锛屽叾浠栫墿鏂欓渶瑕佸幓瀵瑰簲鐨勬殏瀛樺尯 + #region 鏍规嵁鐗╂枡鍒ゆ柇鍥炲簱搴撳尯 if (model.PartNumber.StartsWith("4X")) { areacode = whcode.PMK; - loc = StorageCompute(itemcode, areacode); + //loc = StorageCompute(itemcode, areacode); //if (loc == null) //{ // loc = emptyRow(areacode); @@ -1564,49 +1579,41 @@ AddErrorInfo("鐗╂枡缂栫爜鏍煎紡閿欒", result.msg, Source); return result; } - 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 = FindEndcolByLocList(EndLocs); - if (loc != null) - { - End = loc.S_CODE; - } - else - { - result.code = "1"; - result.msg = $"缁堢偣搴撳尯锛歿areacode}鏃犲彲鐢ㄨ揣浣�; - AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); - return result; - } - } - else - { - result.code = "1"; - result.msg = $"鏍规嵁缁堢偣搴撳尯锛歿areacode},鏈壘鍒板搴旇揣浣�; - AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); - return result; - } - //loc = StorageCompute(itemcode, areacode); - //if (loc == null) - //{ - // loc = emptyRow(areacode); - //} + } + #endregion + + + 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 = FindEndcolByLocList(EndLocs); + + + } + else + { + result.code = "1"; + result.msg = $"鏍规嵁缁堢偣搴撳尯锛歿areacode},鏈壘鍒板搴旇揣浣�; + AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source); + return result; + } + if (loc != null) { End = loc.S_CODE; } else { - result.code = "1"; result.msg = $"搴撳尯:{areacode}鏃犲彲鐢ㄨ揣浣�; AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source); return result; } + } else { @@ -1968,18 +1975,19 @@ // var startArea = db.Queryable<Area>().Where(a => a.S_CODE.Trim() == startloc.S_AREA_CODE).First(); //var endArea = db.Queryable<Area>().Where(a => a.S_CODE.Trim() == endloc.S_AREA_CODE).First(); - string dtcode = "DT-01"; - //妤煎眰鐢垫鍒嗛厤 - var Diantiloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == dtcode).First(); - if (Diantiloc == null) - { - result.code = "1"; - result.msg = $"鍒涘缓浠诲姟澶辫触锛屾牴鎹揣浣嶇紪鐮�{dtcode}鏈壘鍒扮數姊揣浣�; - AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source); - return result; - } + //string dtcode = "DT-01"; + ////妤煎眰鐢垫鍒嗛厤 + //var Diantiloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == dtcode).First(); + //if (Diantiloc == null) + //{ + // result.code = "1"; + // result.msg = $"鍒涘缓浠诲姟澶辫触锛屾牴鎹揣浣嶇紪鐮�{dtcode}鏈壘鍒扮數姊揣浣�; + // AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source); + // return result; + //} - //鏍规嵁鐢垫鏁伴噺鍒ゆ柇閫佸線鍝釜鐢垫 锛堝叿浣撶數姊祦绋嬫牴鎹幇鍦虹數姊暟閲忥級 + //鏍规嵁浠诲姟鏁伴噺鍒ゆ柇閫佸線鍝釜鐢垫 锛堝叿浣撶數姊祦绋嬫牴鎹幇鍦虹數姊暟閲忥級 + var elevatorLoc = LocationHelper.GetElevatorLoc(); //鍒涘缓wcs鍒嗘浠诲姟 var wcsTask = new WCSTask @@ -1989,12 +1997,12 @@ S_TYPE = "鐢垫1", S_EQ_NO = model.Data.task_no, S_START_LOC = startloc.S_CODE, - S_END_LOC = Diantiloc.S_CODE, + S_END_LOC = elevatorLoc.S_CODE, N_CNTR_COUNT = 1, S_START_WH = startloc.S_WH_CODE, S_START_AREA = startloc.S_AREA_CODE, - S_END_WH = endloc.S_WH_CODE, - S_END_AREA = endloc.S_AREA_CODE, + S_END_WH = elevatorLoc.S_WH_CODE, + S_END_AREA = elevatorLoc.S_AREA_CODE, N_SCHEDULE_TYPE = 1, S_CNTR_CODE = cntr.S_CNTR_CODE, N_END_LAYER = 1, @@ -2005,11 +2013,11 @@ S_CODE = WCSHelper.GenerateTaskNo(), S_TYPE = "鐢垫2", S_EQ_NO = model.Data.task_no, - S_START_LOC = Diantiloc.S_CODE, + S_START_LOC = elevatorLoc.S_CODE, S_END_LOC = endloc.S_CODE, N_CNTR_COUNT = 1, - S_START_WH = startloc.S_WH_CODE, - S_START_AREA = startloc.S_AREA_CODE, + S_START_WH = elevatorLoc.S_WH_CODE, + S_START_AREA = elevatorLoc.S_AREA_CODE, S_END_WH = endloc.S_WH_CODE, S_END_AREA = endloc.S_AREA_CODE, N_SCHEDULE_TYPE = 1, @@ -2117,7 +2125,6 @@ return result; } - /// <summary> /// 搴撲綅娓呯┖ /// </summary> @@ -2211,8 +2218,8 @@ { 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; + 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); @@ -2546,7 +2553,7 @@ Location other = null; //褰撳墠鎺掓病鏈夐攣骞朵笖鏈夌┖浣嶇疆 //鍏堟壘婊′綅锛岀劧鍚庡悗闈竴灞傝涔堟槸绌猴紝瑕佷箞涓嶅瓨鍦�- other = rowList.OrderByDescending(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0).FirstOrDefault(); + other = rowList.OrderBy(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0).FirstOrDefault(); //if (full == null) //{ // //娌℃湁婊′綅锛岄偅灏辨壘鏈�皬鐨勭┖浣� -- Gitblit v1.9.1