| | |
| | | Status = TaskStatusEnum.Wait, |
| | | Levels = 999, |
| | | Origin = "WMS", |
| | | SkuNo = models.SkuNo, |
| | | SkuName=models.SkuName, |
| | | LotNo=models.LotNo, |
| | | StartRoadway = models.StartRoadway, |
| | | StartLocate = models.StartLocate, |
| | | EndLocate = models.EndLocate, |
| | |
| | | Type = models.Type, |
| | | Levels = 999, |
| | | Origin = "WMS", |
| | | SkuNo = models.SkuNo, |
| | | SkuName = models.SkuName, |
| | | LotNo = models.LotNo, |
| | | StartRoadway = models.StartRoadway, |
| | | StartLocate = models.StartLocate, |
| | | EndLocate = models.EndLocate, |
| | |
| | | [UnitOfWork] |
| | | public async Task<dynamic> agvCallback(AGVCallBackInput input) |
| | | { |
| | | Log.Information("AGV反馈任务" + input.ToJson()); |
| | | AGVCallBackResponse result = new AGVCallBackResponse() |
| | | { |
| | | ReqCode = input.ReqCode, |
| | | Message = "成功", |
| | | Code = "0" |
| | | }; |
| | | if (input.TaskCode.Substring(0, 3) != "WCS" && input.TaskCode.Substring(0, 2) != "TK") |
| | | if (input.robotTaskCode.Substring(0, 3) != "WCS" && input.robotTaskCode.Substring(0, 2) != "TK") |
| | | return result; |
| | | PLCUtil modUtil = null; |
| | | try |
| | | { |
| | | var modTask = await _db.Queryable<WcsTask>().FirstAsync(s => s.TaskNo == input.TaskCode); |
| | | var modTask = await _db.Queryable<WcsTask>().FirstAsync(s => s.TaskNo == input.robotTaskCode); |
| | | if (modTask != null) |
| | | { |
| | | switch (input.Method) |
| | | switch (input.Extra.Values.Method) |
| | | { |
| | | case "end"://任务完成 |
| | | { |
| | |
| | | var inputs = new TaskRequestWMS(); |
| | | inputs.TaskNo = modTask.TaskNo; |
| | | inputs.PalletNo = modTask.PalletNo; |
| | | inputs.TaskType = modTask.TaskType.ToString(); |
| | | inputs.TaskType = ((int)modTask.TaskType).ToString(); |
| | | inputs.TaskStatus = "2"; |
| | | var modResponseTask = httpService.RequestTask(inputs).Result; |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case "admin"://走出储位 |
| | | case "outbin"://走出储位 |
| | | { |
| | | WcsTaskMonitor modTaskMonitor = new WcsTaskMonitor() |
| | | { |
| | | TaskNo = modTask.TaskNo, |
| | | //PlcId = modDevice.PlcId, |
| | | PlcName = "AGV", |
| | | StartLocat = modTask.StartLocate, |
| | | EndLocat = modTask.EndLocate, |
| | | Status = TaskStatusEnum.Complete, |
| | | InteractiveMsg = $"AGV小车反馈任务取货完成,走出储位", |
| | | }; |
| | | await _db.Insertable(modTaskMonitor).ExecuteCommandAsync(); |
| | | //反馈WMS任务取货完成、WMS判断是平库储位就更新储位状态 |
| | | if (modTask.Origin == "WMS") |
| | | { |
| | |
| | | var inputs = new TaskRequestWMS(); |
| | | inputs.TaskNo = modTask.TaskNo; |
| | | inputs.PalletNo = modTask.PalletNo; |
| | | inputs.TaskType = "2"; |
| | | inputs.TaskType = ((int)modTask.TaskType).ToString(); |
| | | inputs.TaskStatus = "2"; |
| | | var modResponseTask = httpService.RequestTaskQh(inputs).Result; |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case "continue"://放货申请 |
| | | case "release"://放货申请 |
| | | { |
| | | if (modTask.EndLocate != "B010101")//9号工位地址 |
| | | if (modTask.EndLocate != "B040101")//9号工位地址 |
| | | { |
| | | result.Code = "1"; |
| | | result.Message = "找不到该任务"; |
| | | return result; |
| | | } |
| | | modTask.Status = TaskStatusEnum.Complete; |
| | | //modTask.Status = TaskStatusEnum.Complete; |
| | | modTask.IsComple = "1"; |
| | | await _db.Updateable(modTask).ExecuteCommandAsync(); |
| | | WcsTaskMonitor modTaskMonitor = new WcsTaskMonitor() |
| | |
| | | await _db.Insertable(modTaskMonitor).ExecuteCommandAsync(); |
| | | HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); |
| | | HubUtil.PublicTaskMonitor(modTaskMonitor.Adapt<WcsTaskMonitorOutput>()); |
| | | |
| | | if (modTask.Origin == "WMS") |
| | | { |
| | | HttpService httpService = new HttpService(); |
| | | var inputs = new TaskRequestWMS(); |
| | | inputs.TaskNo = modTask.TaskNo; |
| | | inputs.PalletNo = modTask.PalletNo; |
| | | inputs.TaskType = ((int)modTask.TaskType).ToString(); |
| | | inputs.TaskStatus = "2"; |
| | | var modResponseTask = httpService.RequestTaskQh(inputs).Result; |
| | | } |
| | | } |
| | | break; |
| | | case "cancel"://任务取消 |
| | |
| | | modUtil?.Close(); |
| | | } |
| | | |
| | | |
| | | Log.Information("AGV反馈任务返回" + result.ToJson()); |
| | | return result; |
| | | } |
| | | |