| | |
| | | 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},没找到终点", "改道安全交互"); |
| | |
| | | |
| | | LogHelper.Info($"推送任务{mst.S_CODE}", "NDC"); |
| | | |
| | | |
| | | if (mst.S_TYPE.Contains("出库")) |
| | | { |
| | | var wcsTask = TaskHelper.GetTaskByWork("wcs", mst.S_OP_CODE); |
| | | if (wcsTask == null) { |
| | | LogHelper.Info($"推送任务{mst.S_CODE},没找到作业:{mst.S_OP_CODE}对应的出库任务", "NDC"); |
| | | return false; |
| | | } |
| | | |
| | | if (wcsTask.S_B_STATE=="未执行") |
| | | { |
| | | LogHelper.Info($"推送任务{mst.S_CODE},对应的Wcs出库任务未执行,暂不推送", "NDC"); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | start = LocationHelper.GetAgvSiteZc(mst.S_START_LOC); |
| | | end = LocationHelper.GetAgvSiteZc(mst.S_END_LOC); |
| | | |
| | |
| | | if (work==null) |
| | | { |
| | | LogHelper.Info($"推送任务{mst.S_CODE},没找到作业:{mst.S_OP_CODE}", "NDC"); |
| | | return false; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(work.CONNECTION)) |
| | |
| | | } |
| | | 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; |
| | |
| | | //如果需要下发wcs立库,则需要寻找可用接驳位 |
| | | if (workFlow.SENDWCS == "Y") { |
| | | |
| | | //测试默认取一个接驳位 |
| | | //var connectionList = LocationHelper.GetAllLocList1(workFlow.CONNECTION); |
| | | //foreach (var item in connectionList) |
| | | //{ |
| | | // if (item.S_LOCK_STATE == "无" && item.N_CURRENT_NUM < 2) |
| | | // { |
| | | // connection = item.S_CODE; |
| | | // LogHelper.Info($"ZCSendTask入库任务下发寻找到可用接驳位{connection}", "Mes任务下发"); |
| | | // } |
| | | //} |
| | | |
| | | //if (connection=="") |
| | | //{ |
| | | // LogHelper.Info($"ZCSendTask任务下发寻找接驳位失败", "Mes任务下发"); |
| | | // throw new Exception($"ZCSendTask任务下发寻找接驳位失败"); |
| | | //} |
| | | |
| | | //正式代码,调用接口寻找可用接驳位 |
| | | var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); |
| | | var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList); |
| | |
| | | result.errMsg = "满托出库作业有库存但设备报警"; |
| | | result.errCode = 2001; |
| | | result.success = true; |
| | | mesRes.errCode = result.errCode; |
| | | mesRes.errMsg = result.errMsg; |
| | | //保存mes记录 |
| | | CreatMesRes(mesRes); |
| | | return result; |
| | | } |
| | | } |
| | |
| | | |
| | | if (workFlow.SENDWCS == "Y") |
| | | { |
| | | //测试默认取一个接驳位 |
| | | //var connectionList = LocationHelper.GetAllLocList1(workFlow.CONNECTION); |
| | | //foreach (var item in connectionList) |
| | | //{ |
| | | // if (item.S_LOCK_STATE == "无" && item.N_CURRENT_NUM < 2) |
| | | // { |
| | | // connection = item.S_CODE; |
| | | // LogHelper.Info($"ZCSendTask入库任务下发寻找到可用接驳位{connection}", "Mes任务下发"); |
| | | // } |
| | | //} |
| | | |
| | | //if (connection == "") |
| | | //{ |
| | | // LogHelper.Info($"ZCSendTask任务下发寻找接驳位失败", "Mes任务下发"); |
| | | // throw new Exception($"ZCSendTask任务下发寻找接驳位失败"); |
| | | //} |
| | | |
| | | |
| | | //正式代码,调用接口寻找可用接驳位 |
| | | var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | internal static void inPri(WMSTask mst) |
| | | { |
| | | LogHelper.Info($"任务{mst.S_CODE}进入inpri", "入库优先级"); |
| | | var inprilist = TaskHelper.GetInPri(); |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | |
| | | foreach (var item in inprilist) |
| | | { |
| | | |
| | | LogHelper.Info("入库优先级记录信息"+JsonConvert.SerializeObject(item), "入库优先级"); |
| | | |
| | | if (item.Type=="0" && mst.S_TYPE.Contains("空托出")) |
| | | { |
| | | if (mst.S_END_LOC.Contains(item.OutEndLoc)) |
| | | { |
| | | |
| | | var task = db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == "已推送" && a.S_SCHEDULE_TYPE.Contains("agv") && !a.S_TYPE.Contains("空托") && (a.S_TYPE.Contains("入库")|| a.S_TYPE.Contains("回库")) && a.S_START_LOC.Contains(item.InStartLoc)).First(); |
| | | |
| | | LogHelper.Info($"查找起点{item.InStartLoc}满托入库任务信息:" + JsonConvert.SerializeObject(task), "入库优先级"); |
| | | if (task != null) |
| | | { |
| | | NDCApi.ChangeOrderPri(task.S_CODE, item.Pri); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | if (item.Type == "1" && !mst.S_TYPE.Contains("空托") && mst.S_TYPE.Contains("出库")) |
| | | { |
| | | if (mst.S_END_LOC.Contains(item.OutEndLoc)) |
| | | { |
| | | var task = db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == "已推送" && a.S_SCHEDULE_TYPE.Contains("agv") && a.S_TYPE.Contains("空托入库") && a.S_START_LOC.Contains(item.InStartLoc)).First(); |
| | | LogHelper.Info($"查找起点{item.InStartLoc}空托入库任务信息:" + JsonConvert.SerializeObject(task), "入库优先级"); |
| | | if (task != null) |
| | | { |
| | | NDCApi.ChangeOrderPri(task.S_CODE, item.Pri); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | LogHelper.Info($"任务{mst.S_CODE},结束inpri", "入库优先级"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public class signalInfo |