| | |
| | | { |
| | | LogHelper.Info($"判断巷道可用失败,没找到对应{task.S_OP_CODE + "_2"}任务", "改道安全交互"); |
| | | throw new Exception($"判断巷道可用失败,没找到对应{task.S_OP_CODE + "_2"}任务"); |
| | | |
| | | } |
| | | |
| | | //判断接驳位可用 |
| | | var flag = true; |
| | | |
| | | //空托入库判断空托出缓存表,有对应记录直接改道到缓存表终点 |
| | | if (workFlow.FLOWCODE=="3") { |
| | | var kt = db.Queryable<MesKtTask>().Where(e => e.TOOLS_TPYE==task.TOOLSTYPE && e.Status=="N").First(); |
| | | if (kt == null) |
| | | { |
| | | LogHelper.Info($"当前任务{task.S_CODE}没找到空托出缓存记录,不需要改道,直接修改参数6为1", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); |
| | | return; |
| | | } |
| | | else { |
| | | |
| | | LogHelper.Info($"当前任务{task.S_CODE}找到空托出缓存记录:"+JsonConvert.SerializeObject(kt), "改道安全交互"); |
| | | |
| | | //查找给定终点 |
| | | var end = LocationHelper.GetLoc(kt.Location_To); |
| | | //LogHelper.Info($"当前任务{task.S_CODE}改道终点信息" + JsonConvert.SerializeObject(end), "改道安全交互"); |
| | | //if (end == null || end.S_LOCK_STATE != "无") |
| | | //{ |
| | | // LogHelper.Info($"当前任务{task.S_CODE}改道终点失败,终点:{kt.Location_To},没找到或有锁", "改道安全交互"); |
| | | //} |
| | | |
| | | LocationHelper.LockLoc(end.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 = end.S_CODE; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand(); |
| | | kt.Status = "Y"; |
| | | db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand(); |
| | | db.CommitTran(); |
| | | |
| | | WcsTask.WcsCancellTask(wcsTask); |
| | | var site = LocationHelper.GetAgvSiteZc(end.S_CODE); |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 2, site); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | if (workFlow.FLOWNAME.Contains("入库")) |
| | | { |
| | |
| | | else if (workFlow.FLOWCODE == "3") |
| | | { |
| | | //空托入 优先入缓存区,没有入立库区 |
| | | var ktHcq = Settings.EmptyPalletBufferArea; |
| | | //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) |
| | | { |
| | | //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.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); |
| | | } |
| | | else |
| | | { |
| | | connection = ""; |
| | | } |
| | | //} |
| | | //else |
| | | //{ |
| | | // connection = ""; |
| | | //} |
| | | } |
| | | else if (workFlow.FLOWCODE == "2") |
| | | { |
| | |
| | | }; |
| | | |
| | | //创建作业 |
| | | if (WMSHelper.CreateWmsWork(operation)) { |
| | | if (WMSHelper.CreateWmsWork(operation)) |
| | | { |
| | | LogHelper.Info($"ZCSendTask入库作业创建成功{operation.S_CODE}", "Mes任务下发"); |
| | | result.errMsg = "入库作业创建成功"; |
| | | result.errCode = 0; |
| | | result.success = true; |
| | | return result; |
| | | } |
| | | else { |
| | | LogHelper.Info($"ZCSendTask入库任务下发创建作业失败", "Mes任务下发"); |
| | | throw new Exception($"ZCSendTask入库任务下发创建作业失败"); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | LogHelper.Info($"ZCSendTask出库任务下发起点信息" + JsonConvert.SerializeObject(start), "Mes任务下发"); |
| | | |
| | | if (workFlow.FLOWCODE == "7" && start == null) |
| | | { |
| | | //空托出没找到起点,先缓存到空托表 |
| | | |
| | | MesKtTask req = new MesKtTask() |
| | | { |
| | | Location_From_Area = workFlow.STARTAREA, |
| | | Location_To = end.S_CODE, |
| | | Priority = model.Priority, |
| | | CreateDate = DateTime.Now, |
| | | BUSI_TYPE = model.BUSI_TYPE, |
| | | TOOLS_TPYE = model.TOOLS_TPYE, |
| | | Status = "N" |
| | | }; |
| | | |
| | | if (TaskHelper.CreateMesKtTask(req)) |
| | | { |
| | | LogHelper.Info($"ZCSendTask空托出创建成功", "Mes任务下发"); |
| | | result.errMsg = "空托出库缓存成功"; |
| | | result.errCode = 0; |
| | | result.success = true; |
| | | return result; |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"ZCSendTask空托出缓存失败", "Mes任务下发"); |
| | | throw new Exception($"ZCSendTask空托出缓存失败"); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | else { |
| | | if (start == null) |
| | | { |
| | | LogHelper.Info($"ZCSendTask出库任务下发失败,起点库区{workFlow.STARTAREA},没找到起点", "Mes任务下发"); |
| | | throw new Exception($"起点库区{workFlow.STARTAREA},没找到起点"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | //获取托盘码 |
| | | var cntrCode = LocationHelper.GetLocCntrCode(start.S_CODE); |
| | |
| | | result.success = true; |
| | | return result; |
| | | } |
| | | else { |
| | | LogHelper.Info($"ZCSendTask出库任务下发创建作业失败", "Mes任务下发"); |
| | | throw new Exception($"ZCSendTask出库任务下发创建作业失败"); |
| | | } |
| | | |
| | | } |
| | | else { |