| | |
| | | else if (state == 1004) { |
| | | LogHelper.Info($"等待交互,任务号={mst.S_CODE}", "安全交互"); |
| | | |
| | | var wcsCode = mst.S_CODE.Replace(@"_1", "_2"); |
| | | var wcsCode = ""; |
| | | |
| | | if (mst.S_TYPE.Contains("入库")|| mst.S_TYPE.Contains("回库")) |
| | | { |
| | | wcsCode = mst.S_CODE.Replace(@"_1", "_2"); |
| | | } |
| | | |
| | | if (mst.S_TYPE.Contains("出库")) |
| | | { |
| | | wcsCode = mst.S_CODE.Replace(@"_2", "_1"); |
| | | } |
| | | |
| | | LogHelper.Info($"等待交互,查询校验任务号={wcsCode}", "安全交互"); |
| | | //等待rfid校验 |
| | |
| | | { |
| | | if (rfidFlag.S_RESULT.Contains("成功")) |
| | | { |
| | | LogHelper.Info($"任务号={mst.S_CODE},等待交管成功,修改参数", "安全交互"); |
| | | LogHelper.Info($"任务号={mst.S_CODE},等待交管成功,修改参数6为1", "安全交互"); |
| | | 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},改参数2为{endSite},参数4为0,6为1", "改道安全交互"); |
| | | 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"); |
| | | } |
| | | } |
| | |
| | | db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand(); |
| | | db.CommitTran(); |
| | | var site = LocationHelper.GetAgvSiteZc(end.S_CODE); |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1,4为0", "改道安全交互"); |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为2,4为0", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 2, site); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 4, "0"); |
| | | return; |
| | | } |
| | |
| | | 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($"判断巷道可用,当前库区{wcsTask.S_END_AREA}当前巷道{loc1.N_ROADWAY}可用,不需要改道", "改道安全交互"); |
| | | LogHelper.Info($"当前任务{task.S_CODE}判断巷道可用,当前库区{wcsTask.S_END_AREA}当前巷道{loc1.N_ROADWAY}可用,不需要改道", "改道安全交互"); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"当前巷道不可用,需要改道", "改道安全交互"); |
| | | LogHelper.Info($"当前任务{task.S_CODE}当前巷道不可用,需要改道", "改道安全交互"); |
| | | var endLoc = LocationHelper.GetLocOne(wcsTask.S_END_LOC); |
| | | List<Location> endList; |
| | | if (!string.IsNullOrEmpty(workFlow.ZONECODE)) |
| | | { |
| | | endList = LocationHelper.GetZoneLoc(workFlow.ZONECODE); |
| | | } |
| | | else |
| | | { |
| | | endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); |
| | | } |
| | | |
| | | var endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); |
| | | |
| | | var end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); |
| | | LogHelper.Info($"当前巷道不可用,需要改道,新终点信息" + JsonConvert.SerializeObject(end), "改道安全交互"); |
| | | LogHelper.Info($"当前任务{task.S_CODE},当前巷道不可用,需要改道,新终点信息" + JsonConvert.SerializeObject(end), "改道安全交互"); |
| | | if (end == null) |
| | | { |
| | | LogHelper.Info($"当前巷道不可用,终点库区{workFlow.ENDAREA},没找到终点", "改道安全交互"); |
| | |
| | | db.CommitTran(); |
| | | |
| | | var site = LocationHelper.GetAgvSiteZc(loc.S_CODE); |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1,4为1024", "改道安全交互"); |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为2,4为1024", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 2, site); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "2"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); |
| | | |
| | | //} else if (workFlow.FLOWNAME.Contains("出库")) { |
| | |
| | | ndcParme.Add(new param() { name = "DATA", value = "0" }); |
| | | } |
| | | else { |
| | | ndcParme.Add(new param() { name = "DATA", value = "768" }); |
| | | if (work.S_TYPE.Contains("入库") || work.S_TYPE.Contains("回库")) |
| | | { |
| | | ndcParme.Add(new param() { name = "DATA", value = "768" }); |
| | | } |
| | | else { |
| | | ndcParme.Add(new param() { name = "DATA", value = "0" }); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | db.CommitTran(); |
| | | LogHelper.Info("绑定解绑", "结束"); |
| | | result.errMsg = "解绑完成"; |
| | | result.errCode = 0; |
| | | result.success = true; |
| | | return result; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | |
| | | LogHelper.Info("物料绑定解绑异常:" + e.Message, "物料绑定解绑"); |
| | | result.errMsg = "物料绑定解绑异常"; |
| | | result.errCode = 1; |
| | | result.success = false; |
| | | return result; |
| | | } |
| | | return result; |
| | |
| | | { |
| | | //根据接驳位任务数量获取均衡接驳位集合优先任务数少的接驳位 |
| | | 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) |
| | |
| | | //创建作业 |
| | | if (WMSHelper.CreateWmsWork(operation)) |
| | | { |
| | | if (connection != "") |
| | | { |
| | | LocationHelper.LockLoc(operation.S_START_LOC, "出库锁", 2); |
| | | LocationHelper.LockLoc(operation.S_END_LOC, "入库锁", 1); |
| | | LocationHelper.LockLoc(operation.CONNECTION, "其他锁", 3); |
| | | } |
| | | |
| | | |
| | | LogHelper.Info($"ZCSendTask入库作业创建成功{operation.S_CODE}", "Mes任务下发"); |
| | | result.errMsg = "入库作业创建成功"; |
| | | result.errCode = 0; |
| | |
| | | //创建作业 |
| | | 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($"ZCSendTask出库作业创建成功{operation.S_CODE}", "Mes任务下发"); |
| | | result.errMsg = "出库作业创建成功"; |
| | | result.errCode = 0; |