Administrator
2025-05-25 5818ac31e7d82e611fa98c35e9a353319bebd3c3
Admin.NET/WCS.Application/OpenApi/OpenApi.cs
@@ -117,6 +117,9 @@
                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,
@@ -165,6 +168,9 @@
            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,
@@ -412,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"://任务完成
                        {
@@ -453,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")
                            {
@@ -469,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()
@@ -500,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"://任务取消
@@ -549,7 +576,7 @@
            modUtil?.Close();
        }
        Log.Information("AGV反馈任务返回" + result.ToJson());
        return result;
    }