Administrator
2025-05-25 5818ac31e7d82e611fa98c35e9a353319bebd3c3
Admin.NET/WCS.Application/OpenApi/OpenApi.cs
@@ -418,21 +418,22 @@
    [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"://任务完成
                        {
@@ -459,15 +460,26 @@
                                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")
                            {
@@ -475,22 +487,22 @@
                                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()
@@ -506,7 +518,16 @@
                            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"://任务取消
@@ -555,7 +576,7 @@
            modUtil?.Close();
        }
        Log.Information("AGV反馈任务返回" + result.ToJson());
        return result;
    }