From f80938e8a03d9343672b4fb3179836b019f6b9d8 Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期六, 28 六月 2025 21:38:46 +0800 Subject: [PATCH] 0628 --- process/TaskProcess.cs | 475 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 319 insertions(+), 156 deletions(-) diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index 86cec16..5f2c653 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -33,6 +33,7 @@ using Container = HH.WCS.ZhongCeJinTan.wms.Container; using static HH.WCS.ZhongCeJinTan.wms.WcsModel; using Top.Api; +using HH.WCS.ZhongCeJinTan; namespace HH.WCS.ZhongCeJinTan.process { @@ -162,17 +163,18 @@ { if (rfidFlag.S_RESULT.Contains("鎴愬姛")) { - LogHelper.Info($"浠诲姟鍙�{mst.S_CODE}锛岀瓑寰呬氦绠℃垚鍔燂紝淇敼鍙傛暟6涓�", "瀹夊叏浜や簰"); + LogHelper.Info($"浠诲姟鍙�{mst.S_CODE}锛岀瓑寰呬氦绠℃垚鍔燂紝淇敼鍙傛暟6涓�,4涓�", "瀹夊叏浜や簰"); + NDCApi.ChangeOrderParam(mst.S_CODE, 4, "0"); NDCApi.ChangeOrderParam(mst.S_CODE, 6, "1"); } else { var startSite = LocationHelper.GetAgvSiteZc(mst.S_START_LOC); var endSite = LocationHelper.GetAgvSiteZc(mst.S_END_LOC); - LogHelper.Info($"浠诲姟{mst.S_CODE}RFID鏍¢獙澶辫触锛屾敼鍙傛暟1涓簕startSite},鏀瑰弬鏁�涓簕endSite}锛屽弬鏁�涓�锛�涓�", "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"浠诲姟{mst.S_CODE}RFID鏍¢獙澶辫触锛屾敼鍙傛暟1涓簕startSite},鏀瑰弬鏁�涓簕endSite}锛屽弬鏁�涓�锛�涓�", "瀹夊叏浜や簰"); NDCApi.ChangeOrderParam(mst.S_CODE, 1, startSite); NDCApi.ChangeOrderParam(mst.S_CODE, 2, endSite); NDCApi.ChangeOrderParam(mst.S_CODE, 4, "0"); - NDCApi.ChangeOrderParam(mst.S_CODE, 6, "1"); + NDCApi.ChangeOrderParam(mst.S_CODE, 6, "2"); } } } @@ -230,8 +232,7 @@ try { - //鍒ゆ柇鎺ラ┏浣嶅彲鐢�- var flag = true; + //绌烘墭鍏ュ簱鍒ゆ柇绌烘墭鍑虹紦瀛樿〃锛屾湁瀵瑰簲璁板綍鐩存帴鏀归亾鍒扮紦瀛樿〃缁堢偣 if (workFlow.FLOWCODE=="3") { @@ -267,26 +268,74 @@ var site = LocationHelper.GetAgvSiteZc(end.S_CODE); LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�锛�涓�", "鏀归亾瀹夊叏浜や簰"); NDCApi.ChangeOrderParam(task.S_CODE, 2, site); - NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); NDCApi.ChangeOrderParam(task.S_CODE, 4, "0"); + NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); return; } } } + //鍒ゆ柇宸烽亾鍙敤 + var flag = true; + + //鍒ゆ柇鎺ラ┏浣嶅彲鐢�+ var flag1 = true; + if (workFlow.FLOWNAME.Contains("鍏ュ簱")) { + + List<Location> balanceConnectionList = new List<Location>(); + var loc1 = LocationHelper.GetLocOne(wcsTask.S_END_LOC); - //鏌ユ壘鍙敤宸烽亾 + //鍒ゆ柇鍙敤宸烽亾 var rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == wcsTask.S_END_AREA && x.status == "0" && x.roadWay == loc1.N_ROADWAY.ToString()).First(); if (rowdwa == null) { - LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鍒ゆ柇宸烽亾鍙敤,褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}鍙敤,涓嶉渶瑕佹敼閬�, "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鍒ゆ柇宸烽亾鍙敤,褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}鍙敤", "鏀归亾瀹夊叏浜や簰"); + flag = false; + } + + //鍒ゆ柇鍙敤鎺ラ┏浣�+ var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); + var usableConnectionList = WcsTask.WcsPositionAvailable(task.S_CODE, connectionList); + + + if (usableConnectionList != null && usableConnectionList.code == "0") + { + balanceConnectionList = LocationHelper.GetConnectionListByst(usableConnectionList.available); + + foreach (var item in balanceConnectionList) + { + if (item.S_CODE.Contains(task.S_END_LOC)) + { + + flag1 = false; + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣峽item.S_CODE}鍙敤", "鏀归亾瀹夊叏浜や簰"); + break; + } + } } else { - LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾", "鏀归亾瀹夊叏浜や簰"); + LogHelper.Info($"鍒ゆ柇鎺ラ┏浣嶆槸鍚﹀彲鐢ㄦ帴鍙e洖澶嶅紓甯�, "鏀归亾瀹夊叏浜や簰"); + throw new Exception($"鍒ゆ柇鎺ラ┏浣嶆槸鍚﹀彲鐢ㄦ帴鍙e洖澶嶅紓甯�); + } + + + + if (flag || flag1) + { + + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣峽task.S_END_LOC}鎴栬�褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}涓嶅彲鐢紝闇�鏀归亾", "鏀归亾瀹夊叏浜や簰"); + Location connection = null; + + + Location end = null; + + //绔嬪簱鍧囪 鍚庤揣浣嶉泦鍚�+ List<Location> balanceLocList = new List<Location>(); + var endLoc = LocationHelper.GetLocOne(wcsTask.S_END_LOC); List<Location> endList; if (!string.IsNullOrEmpty(workFlow.ZONECODE)) @@ -298,8 +347,41 @@ endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); } - - var end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + + balanceLocList = LocationHelper.FindBalanceEndLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + + + balanceConnectionList = LocationHelper.GetConnectionListByst(usableConnectionList.available); + + foreach (var item in balanceLocList) + { + if (item.S_LOCK_STATE == "鏃� && item.N_CURRENT_NUM == 0) + { + //LogHelper.Info($"鏀归亾瀹夊叏浜や簰item淇℃伅" + JsonConvert.SerializeObject(item), "鏀归亾瀹夊叏浜や簰"); + foreach (var item1 in balanceConnectionList) + { + if (item1.CONNEC_ROADWAY == item.N_ROADWAY && item1.N_CURRENT_NUM < 2) + { + connection = item1; + + end = item; + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "鏀归亾瀹夊叏浜や簰"); + break; + } + } + if (end != null) + { + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}瀵绘壘鍒扮粓鐐箋end.S_CODE}", "鏀归亾瀹夊叏浜や簰"); + break; + } + } + } + + if (connection == null) + { + throw new Exception($"鏀归亾瀵绘壘涓嶅埌鍙敤鎺ラ┏浣�); + } + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}锛屽綋鍓嶅贩閬撲笉鍙敤锛岄渶瑕佹敼閬擄紝鏂扮粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰"); if (end == null) { @@ -314,79 +396,35 @@ wcsTask.S_END_LOC = end.S_CODE; db.Updateable(wcsTask).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand(); db.CommitTran(); - } - - - var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); - var usableConnectionList = WcsTask.WcsPositionAvailable(task.S_CODE, connectionList); - if (usableConnectionList != null && usableConnectionList.code == "0") - { - foreach (var item in usableConnectionList.available) - { - var con = LocationHelper.GetLoc(item); - if (con.S_CODE.Contains(task.S_END_LOC)) - { - - flag = false; - LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣峽con.S_CODE}鍙敤锛屼笉闇�鏀归亾锛岀洿鎺ヤ慨鏀瑰弬鏁�涓�锛�涓�024", "鏀归亾瀹夊叏浜や簰"); - NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); - NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); - break; - } - } - } - else - { - LogHelper.Info($"鍒ゆ柇鎺ラ┏浣嶆槸鍚﹀彲鐢ㄦ帴鍙e洖澶嶅紓甯�, "鏀归亾瀹夊叏浜や簰"); - throw new Exception($"鍒ゆ柇鎺ラ┏浣嶆槸鍚﹀彲鐢ㄦ帴鍙e洖澶嶅紓甯�); - } - if (flag) - { - - LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣嶄笉鍙敤锛岄渶瑕佹敼閬�, "鏀归亾瀹夊叏浜や簰"); - var connection = ""; - foreach (var item in usableConnectionList.available) - { - var con = LocationHelper.GetLoc(item); - if (con.N_CURRENT_NUM < 2) - { - connection = con.S_CODE; - LogHelper.Info($"鏀归亾瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "鏀归亾瀹夊叏浜や簰"); - break; - } - } - if (connection == "") - { - throw new Exception($"鏀归亾瀵绘壘涓嶅埌鍙敤鎺ラ┏浣�); - } - - var loc = LocationHelper.GetLocOne(connection); + - LocationHelper.LockLoc(loc.S_CODE, "鍏ュ簱閿�, 1); - var endLoc = LocationHelper.GetLocOne(task.S_END_LOC); - endLoc.N_LOCK_STATE = 0; - endLoc.S_LOCK_STATE = "鏃�; - db.BeginTran(); - db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand(); - //鏀逛竴娈典换鍔$粓鐐�- task.S_END_LOC = loc.S_CODE; - task.S_END_AREA = loc.S_AREA_CODE; - db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA }).ExecuteCommand(); - - //鏀逛簩娈典换鍔¤捣鐐�- wcsTask.S_START_LOC = loc.S_CODE; - wcsTask.S_START_AREA = loc.S_AREA_CODE; - db.Updateable(wcsTask).UpdateColumns(it => new { it.S_START_LOC ,it.S_START_AREA}).ExecuteCommand(); - db.CommitTran(); - - var site = LocationHelper.GetAgvSiteZc(loc.S_CODE); - LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�,4涓�024", "鏀归亾瀹夊叏浜や簰"); - NDCApi.ChangeOrderParam(task.S_CODE, 2, site); - NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); - NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); + + LocationHelper.LockLoc(connection.S_CODE, "鍏ュ簱閿�, 1); + var endLoc1 = LocationHelper.GetLocOne(task.S_END_LOC); + endLoc1.N_LOCK_STATE = 0; + endLoc1.S_LOCK_STATE = "鏃�; + db.BeginTran(); + db.Updateable(endLoc1).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand(); + //鏀逛竴娈典换鍔$粓鐐�+ task.S_END_LOC = connection.S_CODE; + task.S_END_AREA = connection.S_AREA_CODE; + db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA }).ExecuteCommand(); + + + //鏀逛簩娈典换鍔¤捣鐐�+ wcsTask.S_START_LOC = connection.S_CODE; + wcsTask.S_START_AREA = connection.S_AREA_CODE; + db.Updateable(wcsTask).UpdateColumns(it => new { it.S_START_LOC, it.S_START_AREA }).ExecuteCommand(); + db.CommitTran(); + + var site = LocationHelper.GetAgvSiteZc(connection.S_CODE); + LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�,4涓�024", "鏀归亾瀹夊叏浜や簰"); + NDCApi.ChangeOrderParam(task.S_CODE, 2, site); + NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); + NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); //} else if (workFlow.FLOWNAME.Contains("鍑哄簱")) { // var endLoc = LocationHelper.GetLocOne(task.S_START_LOC); @@ -399,6 +437,11 @@ // db.CommitTran(); // LocationHelper.LockLoc(loc.S_CODE, "鍑哄簱閿�, 2); //} + } + else { + LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣峽task.S_END_LOC}鍙敤,褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}鍙敤锛屼笉闇�鏀归亾锛岀洿鎺ヤ慨鏀瑰弬鏁�涓�锛�涓�024", "鏀归亾瀹夊叏浜や簰"); + NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); + NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); } } @@ -1394,6 +1437,26 @@ throw new Exception($"璧风偣:{model.Location_From},娌℃壘鍒版垨鏈夐攣"); } + + + //鏌ユ壘缁堢偣 + List<Location> endList; + + Location end = null; + + if (!string.IsNullOrEmpty(workFlow.ZONECODE)) + { + endList = LocationHelper.GetZoneLoc(workFlow.ZONECODE); + } + else + { + endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); + } + + //绔嬪簱鍧囪 鍚庤揣浣嶉泦鍚�+ List<Location> balanceLocList = new List<Location>(); + + //鎺ラ┏浣� var connection = ""; @@ -1401,25 +1464,59 @@ var connectionArea = ""; //濡傛灉闇�涓嬪彂wcs绔嬪簱锛屽垯闇�瀵绘壘鍙敤鎺ラ┏浣�- if (workFlow.SENDWCS == "Y") { + if (workFlow.SENDWCS == "Y") + { //姝e紡浠g爜锛岃皟鐢ㄦ帴鍙e鎵惧彲鐢ㄦ帴椹充綅 var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList); if (usableConnectionList != null && usableConnectionList.code == "0") { - //鏍规嵁鎺ラ┏浣嶄换鍔℃暟閲忚幏鍙栧潎琛℃帴椹充綅闆嗗悎浼樺厛浠诲姟鏁板皯鐨勬帴椹充綅 - var balanceConnectionList = LocationHelper.GetBalanceConnectionList(usableConnectionList.available); + var balanceConnectionList = LocationHelper.GetConnectionListByst(usableConnectionList.available); + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍙敤鎺ラ┏浣� + JsonConvert.SerializeObject(balanceConnectionList), "Mes浠诲姟涓嬪彂"); - LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍧囪 鎺ラ┏浣�+JsonConvert.SerializeObject(balanceConnectionList), "Mes浠诲姟涓嬪彂"); - foreach (var item in balanceConnectionList) + if (workFlow.FLOWCODE == "1" || workFlow.FLOWCODE == "2") { - if (item.loc.N_CURRENT_NUM<2) + //婊℃墭鍏�+ balanceLocList = LocationHelper.FindBalanceEndLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + } + else if (workFlow.FLOWCODE == "3") + { + //绌烘墭鍏ョ珛搴撳尯 + cntrCount = 0; + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟,瀵绘壘绔嬪簱鍖虹┖璐т綅", "Mes浠诲姟涓嬪彂"); + balanceLocList = LocationHelper.FindBalanceEndLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + } + + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘缁堢偣鏁伴噺{balanceLocList.Count}", "Mes浠诲姟涓嬪彂"); + + foreach (var item in balanceLocList) + { + if (item.S_LOCK_STATE == "鏃� && item.N_CURRENT_NUM == 0) { - connection = item.loc.S_CODE; - connectionArea = item.loc.S_AREA_Name; - LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂"); - break; + // LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂item淇℃伅" + JsonConvert.SerializeObject(item), "Mes浠诲姟涓嬪彂"); + foreach (var item1 in balanceConnectionList) + { + if (item1.CONNEC_ROADWAY == item.N_ROADWAY && item1.N_CURRENT_NUM < 2) + { + connection = item1.S_CODE; + connectionArea = item1.S_AREA_Name; + end = item; + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂"); + break; + } + } + if (connection == "") + { + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂娌℃壘鍒版帴椹充綅", "Mes浠诲姟涓嬪彂"); + throw new Exception($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂娌℃壘鍒版帴椹充綅"); + } + + if (end!=null) + { + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍒扮粓鐐箋end.S_CODE}", "Mes浠诲姟涓嬪彂"); + break; + } } } } @@ -1429,71 +1526,36 @@ throw new Exception($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�); } - if (connection == "") - { - LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂"); - throw new Exception($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�); - } - } - - //鏌ユ壘缁堢偣 - List<Location> endList ; - - Location end = null; - - if (!string.IsNullOrEmpty(workFlow.ZONECODE)) - { - endList = LocationHelper.GetZoneLoc(workFlow.ZONECODE); + } else { - endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); - } - - if (workFlow.FLOWCODE == "1") - { - //婊℃墭鍏�- end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); - } - else if (workFlow.FLOWCODE == "3") - { - //绌烘墭鍏�浼樺厛鍏ョ紦瀛樺尯锛屾病鏈夊叆绔嬪簱鍖�- //var ktHcq = Settings.EmptyPalletBufferArea; - cntrCount = 0; - //var endList1 = LocationHelper.GetAllLocList1(ktHcq); - //end = LocationHelper.FindEndcolByLoc(endList1, ktHcq); - //LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟瀵绘壘绌烘墭缂撳瓨鍖虹粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂"); - //if (end == null) - //{ - LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟娌℃壘鍒扮┖鎵樼紦瀛樺尯缁堢偣,瀵绘壘绔嬪簱鍖虹┖璐т綅", "Mes浠诲姟涓嬪彂"); - end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); - //} - //else - //{ - // connection = ""; - //} - } - else if (workFlow.FLOWCODE == "2") - { - - //85绾ょ淮 95閽笣涓�浠诲姟鍏ヤ笁灞傝揣鏋�- if (TOOLSTYPE == "85" || TOOLSTYPE == "95") + if (workFlow.FLOWCODE == "3") { end = LocationHelper.FindEndcolByLoc(endList, workFlow.ENDAREA); - LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟85绾ょ淮 95閽笣涓�浠诲姟鍏ヤ笁灞傝揣鏋剁粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂"); } - else + else if (workFlow.FLOWCODE == "2") { - end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + //85绾ょ淮 95閽笣涓�浠诲姟鍏ヤ笁灞傝揣鏋�+ end = LocationHelper.FindEndcolByLoc(endList, workFlow.ENDAREA); + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟85绾ょ淮 95閽笣涓�浠诲姟鍏ヤ笁灞傝揣鏋剁粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂"); } - } - else if (workFlow.FLOWCODE == "12") - { - //绌烘灦瀛愬叆 - end = LocationHelper.FindEndcolByLoc(endList, workFlow.ENDAREA); - cntrCount = 0; - //鐢熸垚绌烘灦瀛愯櫄鎷熷彿 - cntrCode = ContainerHelper.GenerateCntrNo(); - } + else if (workFlow.FLOWCODE == "12") + { + //绌烘灦瀛愬叆 + end = LocationHelper.FindEndcolByLoc(endList, workFlow.ENDAREA); + cntrCount = 0; + //鐢熸垚绌烘灦瀛愯櫄鎷熷彿 + cntrCode = ContainerHelper.GenerateCntrNo(); + } + else if (workFlow.FLOWCODE == "0") + { + //閽笣鍏ュ簱 + end = LocationHelper.FindEndcolByLoc(endList, workFlow.ENDAREA); + } + } + + + LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂"); @@ -1708,10 +1770,11 @@ start = LocationHelper.FindStartcolByHjLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA); LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟85绾ょ淮 95閽笣涓�浠诲姟涓夊眰璐ф灦璧风偣淇℃伅" + JsonConvert.SerializeObject(start), "Mes浠诲姟涓嬪彂"); } - else { + else + { //鏍规嵁鍒跺搧缂栧彿瀵绘壘绔嬪簱鍖哄搴旂墿鏂欐墭鐩� start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY); - if (start==null) + if (start == null) { strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); var itemFlag = LocationHelper.FindStartcolByLoclistAndItemFlag(strrtList, model.PROD_NO, workFlow.STARTAREA); @@ -1732,7 +1795,8 @@ } - else if (workFlow.FLOWCODE == "7") { + else if (workFlow.FLOWCODE == "7") + { //瀵绘壘绔嬪簱鍖虹┖鎵� //start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA); //if (start == null) @@ -1754,7 +1818,8 @@ //鍏堟煡璇㈡湁娌℃湁鍚岀粓鐐圭紦瀛樼殑璁板綍 - if (endLocFlag) { + if (endLocFlag) + { var ktTask = TaskHelper.GetMesKtTask(end.S_CODE); if (ktTask != null) { @@ -1763,7 +1828,7 @@ } } - + MesKtTask req = new MesKtTask() { @@ -1773,7 +1838,7 @@ CreateDate = DateTime.Now, BUSI_TYPE = model.BUSI_TYPE, TOOLS_TPYE = TOOLSTYPE, - task_no=model.task_no, + task_no = model.task_no, Status = "N" }; @@ -1794,6 +1859,12 @@ LogHelper.Info($"ZCSendTask绌烘墭鍑虹紦瀛樺け璐�, "Mes浠诲姟涓嬪彂"); throw new Exception($"ZCSendTask绌烘墭鍑虹紦瀛樺け璐�); } + } + else if (workFlow.FLOWCODE == "5") + { + //瀵绘壘璐ф灦鍖虹┖鎵�+ start = LocationHelper.FindStartcolByHjArea(strrtList, workFlow.STARTAREA); + LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟閽笣绌烘墭涓�浠诲姟璧风偣淇℃伅" + JsonConvert.SerializeObject(start), "Mes浠诲姟涓嬪彂"); } @@ -1840,7 +1911,7 @@ var balanceConnectionList = LocationHelper.GetBalanceConnectionList(connectionList); foreach (var item in balanceConnectionList) { - if (item.loc.N_CURRENT_NUM < 2) + if (item.loc.N_CURRENT_NUM < 2 && item.loc.CONNEC_ROADWAY==start.N_ROADWAY) { connection = item.loc.S_CODE; connectionArea = item.loc.S_AREA_Name; @@ -2267,7 +2338,99 @@ - + ////濡傛灉闇�涓嬪彂wcs绔嬪簱锛屽垯闇�瀵绘壘鍙敤鎺ラ┏浣�+ //if (workFlow.SENDWCS == "Y") + //{ + + // //姝e紡浠g爜锛岃皟鐢ㄦ帴鍙e鎵惧彲鐢ㄦ帴椹充綅 + // var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); + // var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList); + // if (usableConnectionList != null && usableConnectionList.code == "0") + // { + // //鏍规嵁鎺ラ┏浣嶄换鍔℃暟閲忚幏鍙栧潎琛℃帴椹充綅闆嗗悎浼樺厛浠诲姟鏁板皯鐨勬帴椹充綅 + // var balanceConnectionList = LocationHelper.GetBalanceConnectionList(usableConnectionList.available); + + // LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍧囪 鎺ラ┏浣� + JsonConvert.SerializeObject(balanceConnectionList), "Mes浠诲姟涓嬪彂"); + // foreach (var item in balanceConnectionList) + // { + // if (item.loc.N_CURRENT_NUM < 2) + // { + // connection = item.loc.S_CODE; + // connectionArea = item.loc.S_AREA_Name; + // LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂"); + // break; + // } + // } + // } + // else + // { + // LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂"); + // throw new Exception($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�); + // } + + // if (connection == "") + // { + // LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂"); + // throw new Exception($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�); + // } + //} + //if (workFlow.FLOWCODE == "1") + //{ + // //婊℃墭鍏�+ // end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + //} + //else if (workFlow.FLOWCODE == "3") + //{ + // if (TOOLSTYPE == "35" || TOOLSTYPE == "75") + // { + // //绌烘墭鍏�浼樺厛鍏ョ紦瀛樺尯锛屾病鏈夊叆绔嬪簱鍖�+ // //var ktHcq = Settings.EmptyPalletBufferArea; + // cntrCount = 0; + // //var endList1 = LocationHelper.GetAllLocList1(ktHcq); + // //end = LocationHelper.FindEndcolByLoc(endList1, ktHcq); + // //LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟瀵绘壘绌烘墭缂撳瓨鍖虹粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂"); + // //if (end == null) + // //{ + // LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟娌℃壘鍒扮┖鎵樼紦瀛樺尯缁堢偣,瀵绘壘绔嬪簱鍖虹┖璐т綅", "Mes浠诲姟涓嬪彂"); + // end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + // //} + // //else + // //{ + // // connection = ""; + // //} + // } + // else + // { + // end = LocationHelper.FindEndcolByLoc(endList, workFlow.ENDAREA); + // } + //} + //else if (workFlow.FLOWCODE == "2") + //{ + + // //85绾ょ淮 95閽笣涓�浠诲姟鍏ヤ笁灞傝揣鏋�+ // if (TOOLSTYPE == "85" || TOOLSTYPE == "95") + // { + // end = LocationHelper.FindEndcolByLoc(endList, workFlow.ENDAREA); + // LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟85绾ょ淮 95閽笣涓�浠诲姟鍏ヤ笁灞傝揣鏋剁粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂"); + // } + // else + // { + // end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); + // } + //} + //else if (workFlow.FLOWCODE == "12") + //{ + // //绌烘灦瀛愬叆 + // end = LocationHelper.FindEndcolByLoc(endList, workFlow.ENDAREA); + // cntrCount = 0; + // //鐢熸垚绌烘灦瀛愯櫄鎷熷彿 + // cntrCode = ContainerHelper.GenerateCntrNo(); + //} + //else if (workFlow.FLOWCODE == "0") + //{ + // //閽笣鍏ュ簱 + // end = LocationHelper.FindEndcolByLoc(endList, workFlow.ENDAREA); + //} public class signalInfo -- Gitblit v1.9.1