| | |
| | | } |
| | | if (state == 6)//卸货完成 |
| | | { |
| | | //接驳位不绑定 |
| | | var safety = Settings.safetyLocations.Where(a => a.Area.Contains(mst.S_END_AREA)).FirstOrDefault(); |
| | | if (safety != null) { |
| | | if (safety.type==1) |
| | | { |
| | | return; |
| | | } |
| | | } |
| | | //退库任务不绑定 |
| | | if (!LocationHelper.GetErroArea(mst.S_END_AREA)) { |
| | | CacheBitUpdate(mst, false); |
| | | } |
| | | if (LocationHelper.GetErroArea(mst.S_END_AREA)) { |
| | | return; |
| | | } |
| | | |
| | | CacheBitUpdate(mst, false); |
| | | } |
| | | if (state == 7) |
| | | { |
| | |
| | | return false; |
| | | } |
| | | |
| | | if (wcsTask.S_B_STATE == "未执行") |
| | | if (wcsTask.S_B_STATE == "未执行" || wcsTask.S_B_STATE == "已推送") |
| | | { |
| | | LogHelper.Info($"推送任务{mst.S_CODE},对应的Wcs出库任务未执行,暂不推送", "NDC"); |
| | | return false; |
| | |
| | | var agvTask = LocationHelper.GetConnectionTask(wmsWork.CONNECTION,"agv"); |
| | | |
| | | LogHelper.Info($"推送任务{mst.S_CODE},当前接驳位{wmsWork.CONNECTION},第一个agv任务信息"+JsonConvert.SerializeObject(agvTask), "NDC"); |
| | | if (agvTask==null) |
| | | { |
| | | LogHelper.Info($"推送任务{mst.S_CODE},当前接驳位{wmsWork.CONNECTION},agv任务没找到,暂不推送", "NDC"); |
| | | return false; |
| | | } |
| | | //if (agvTask==null) |
| | | //{ |
| | | // LogHelper.Info($"推送任务{mst.S_CODE},当前接驳位{wmsWork.CONNECTION},agv任务没找到,暂不推送", "NDC"); |
| | | // return false; |
| | | //} |
| | | |
| | | if (agvTask.S_B_STATE!="取货完成") |
| | | if (agvTask != null) |
| | | { |
| | | LogHelper.Info($"推送任务{mst.S_CODE},当前接驳位{wmsWork.CONNECTION},agv任务{agvTask.S_CODE},状态{agvTask.S_B_STATE},暂不推送", "NDC"); |
| | | return false; |
| | | if (agvTask.S_B_STATE != "取货完成") |
| | | { |
| | | LogHelper.Info($"推送任务{mst.S_CODE},当前接驳位{wmsWork.CONNECTION},agv任务{agvTask.S_CODE},状态{agvTask.S_B_STATE},暂不推送", "NDC"); |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | TaskHelper.opMesTask(task, 3); |
| | | TaskHelper.Fail(task); |
| | | TaskProcess.CacheBitCancelUpdate(task); |
| | | |
| | | if (task.S_TYPE.Contains("入库") || task.S_TYPE.Contains("回库")) |
| | | { |
| | | ContainerHelper.delCntr(task.S_CNTR_CODE); |
| | | ContainerHelper.delCntrItem(task.S_CNTR_CODE); |
| | | |
| | | } |
| | | result.errCode = 0; |
| | | result.errMsg = "取消成功"; |
| | | result.success = true; |
| | |
| | | result.success = false; |
| | | return result; |
| | | } |
| | | if (task.S_TYPE.Contains("入库") || task.S_TYPE.Contains("回库")) |
| | | { |
| | | ContainerHelper.delCntr(task.S_CNTR_CODE); |
| | | ContainerHelper.delCntrItem(task.S_CNTR_CODE); |
| | | ContainerHelper.delCntrLoc(task.S_CNTR_CODE); |
| | | } |
| | | |
| | | TaskHelper.opMesTask(task, 3); |
| | | //已推送但是没有完成或者取消,通知hosttoagv |
| | | TaskHelper.Fail(task); |
| | |
| | | if (wcsTask.S_B_STATE.Trim() == "未执行") |
| | | { |
| | | //未执行直接修改状态为取消 |
| | | if (task.S_TYPE.Contains("入库") || task.S_TYPE.Contains("回库")) |
| | | if (wcsTask.S_TYPE.Contains("入库") || wcsTask.S_TYPE.Contains("回库")) |
| | | { |
| | | ContainerHelper.delCntr(task.S_CNTR_CODE); |
| | | ContainerHelper.delCntrItem(task.S_CNTR_CODE); |
| | | ContainerHelper.delCntr(wcsTask.S_CNTR_CODE); |
| | | ContainerHelper.delCntrItem(wcsTask.S_CNTR_CODE); |
| | | } |
| | | TaskHelper.Fail(wcsTask); |
| | | TaskProcess.OperateStatus(wcsTask, 7); |
| | |
| | | result.success = true; |
| | | return result; |
| | | } |
| | | else if (wcsTask.S_B_STATE.Trim() != "取消" && wcsTask.S_B_STATE.Trim() != "失败" && wcsTask.S_B_STATE.Trim() != "完成") |
| | | else |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var qhflag = db.Queryable<WmsTaskAction>().Where(a => a.S_TASK_CODE == task.S_CODE && a.S_ACTION == "5").First(); |
| | | |
| | | |
| | | if (qhflag != null) |
| | | { |
| | | LogHelper.Info($"该任务{task.S_CODE}已经取货完成", "取消"); |
| | | LogHelper.Info($"该任务{wcsTask.S_CODE}已经推送", "取消"); |
| | | result.errCode = 1; |
| | | result.errMsg = "任务已经取货完成,不允许取消"; |
| | | result.errMsg = "任务已经推送,不允许取消"; |
| | | result.success = false; |
| | | return result; |
| | | } |
| | | WcsTask.WcsCancellTask(wcsTask); |
| | | TaskHelper.Fail(wcsTask); |
| | | TaskProcess.OperateStatus(wcsTask, 7); |
| | | result.errCode = 0; |
| | | result.errMsg = "取消成功"; |
| | | result.success = true; |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | var TOOLSTYPE = ""; |
| | | if (!string.IsNullOrEmpty(model.TOOLS_TPYE)) |
| | | { |
| | | TOOLSTYPE = model.TOOLS_TPYE; |
| | | |
| | | TOOLSTYPE = model.TOOLS_TPYE; |
| | | } |
| | | |
| | | workFlow = TaskHelper.selectWorkFlowByType(model.BUSI_TYPE, TOOLSTYPE); |
| | | |
| | | //入库按照工装和流程编号 |
| | | if (model.Task_type == 1) { |
| | | workFlow = TaskHelper.selectWorkFlowByType(model.BUSI_TYPE, TOOLSTYPE); |
| | | } |
| | | else if (model.Task_type == 2) |
| | | { |
| | | //出库按照终点库区和流程编号 |
| | | |
| | | var end = LocationHelper.GetLoc(model.Location_To); |
| | | LogHelper.Info($"ZCSendTask出库任务下发终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发"); |
| | | |
| | | |
| | | if (end == null) |
| | | { |
| | | LogHelper.Info($"ZCSendTask出库任务下发失败,终点:{model.Location_To},没找到", "Mes任务下发"); |
| | | throw new Exception($"终点:{model.Location_To},没找到"); |
| | | } |
| | | |
| | | workFlow = TaskHelper.selectWorkFlowByEndArea(model.BUSI_TYPE, end.S_AREA_CODE); |
| | | TOOLSTYPE = workFlow.TOOLSTYPE; |
| | | } |
| | | |
| | | LogHelper.Info($"作业{model.task_no},工装类型{TOOLSTYPE}", "Mes任务下发"); |
| | | |
| | | |
| | | |
| | | |
| | | if (workFlow == null) { |
| | | LogHelper.Info($"ZCSendTask任务下发失败,BUSI_TYpe:{model.BUSI_TYPE},没找到对应作业流程", "Mes任务下发"); |
| | | throw new Exception($"BUSI_TYpe:{model.BUSI_TYPE},没找到对应作业流程"); |