| 
					
				 | 
			
			
				@@ -1,9 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using Microsoft.AspNetCore.Mvc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-using Newtonsoft.Json; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-using ServiceCenter.Logs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using ServiceCenter.Redis; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using ServiceCenter.SqlSugars; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-using WCS.Core; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using WCS.Entity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using WCS.WorkEngineering.WebApi.Models.AGV; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using WCS.WorkEngineering.WebApi.Models.AGV.Request; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -54,113 +51,6 @@ namespace WCS.WorkEngineering.WebApi.Controllers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ///  背负式AGV请求出库任务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /// <param name="reqDto">请求参数</param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [HttpPost] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public ApplyEmptySpoolResponse ApplyEmptySpool([FromBody] AgvFillEmptySpaceRequest reqDto) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var key = $"WCS:Lock:AGV:{nameof(ApplyEmptySpool)}"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var agvFill = new ApplyEmptySpoolResponse(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (RedisHub.Default.Get(key) != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    agvFill.ResCode = Models.WMS.Response.ResponseStatusCodeEnum.DataSaveErr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    agvFill.ResMsg = $"[{nameof(ApplyEmptySpool)}]--触发并发管控"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    RedisHub.Default.Set(key, nameof(ApplyEmptySpool)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    LogHub.InterfacePublish(nameof(ApplyEmptySpool), $"传入参数--{JsonConvert.SerializeObject(reqDto)}"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        agvFill.ResCode = Models.WMS.Response.ResponseStatusCodeEnum.DataSaveErr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (!World.IsStart) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            agvFill.ResCode = Models.WMS.Response.ResponseStatusCodeEnum.DataSaveErr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            agvFill.ResMsg = "WCS初始化中"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            return agvFill; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //var obj = World.GetSystemInstance<GetDeviceSystem>().Invoke("输送机") as List<Station>; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //// 检测三个站台是否有货 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //obj = obj.Where(v => v.Entity.Code is "1012" or "1014" or "1016").Where(v => v.Data3.Status.HasFlag(StationStatus.PH_Status)).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //if (!obj.Any()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //    agvFill.ResCode = Models.WMS.Response.ResponseStatusCodeEnum.DataSaveErr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //    agvFill.ResMsg = "无空轮"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //    return agvFill; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        SqlSugarHelper.Do(db => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //var res = WmsApi.GetTunnelEmptyConCount(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            var agvStations = db.Default.Queryable<WCS_AgvTaskInfo>().SplitTable(tabs => tabs.Take(2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                              .Where(v => v.Status < AGVTaskStatus.Complete3 && v.TaskType == AGVTaskType.CallForMaterial).Select(v => v.Station).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //obj = obj.Where(v => !agvStations.Contains(v.Entity.Code)).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //if (!obj.Any()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    agvFill.ResCode = Models.WMS.Response.ResponseStatusCodeEnum.DataSaveErr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    agvFill.ResMsg = "无可用取货站点"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //foreach (var item in res.ResDataList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    var station = Device.All.Where(v => v.Code == "TY" + item.Tunnel.ToString()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //                            .Select(v => v.Targets).SelectMany(v => v) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //                            .Where(v => v.HasProtocol(typeof(IStation520))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //                            .Where(v => v.Code is "1012" or "1014" or "1016") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //                            .FirstOrDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    item.Tunnel = station.ToInt(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //var stationNo = res.ResDataList.OrderBy(v => v.Count).Select(v => v.Tunnel.ToString()).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //var dev = obj.MinBy(v => stationNo.IndexOf(v.Entity.Code)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == dev.Data.TaskNumber) ?? throw new Exception("无有效任务"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //var id = db.GetAGVTaskId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //var agv = new WCS_AgvTaskInfo() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    ID = id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    AgvID = $"HJBK{id}{task.ID}", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    TaskType = AGVTaskType.CallForMaterial, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    Status = AGVTaskStatus.NewBuild, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    Station = dev.Entity.Code, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //    AddWho = "WCS" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            ////创建对应的AGV任务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //db.Default.Insertable(agv).SplitTable().ExecuteCommand(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //task.AgvTaskID = agv.ID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //task.Status = Entity.TaskStatus.AGVExecution; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //db.Default.Updateable(task).ExecuteCommand(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //task.AddWCS_TASK_DTL(db, dev.Entity.Code, "AGV", "agv执行中"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //agvFill.LocCode = dev.Entity.Code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //agvFill.SpoolType = "4"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //agvFill.ResMsg = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //agvFill.ResCode = Models.WMS.Response.ResponseStatusCodeEnum.Sucess; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //agvFill.TaskCode = agv.AgvID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    catch (Exception ex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        agvFill.ResCode = Models.WMS.Response.ResponseStatusCodeEnum.DataSaveErr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        agvFill.ResMsg = ex.Message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    LogHub.InterfacePublish(nameof(ApplyEmptySpool), $"返回参数{JsonConvert.SerializeObject(agvFill)}"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                RedisHub.Default.Del(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return agvFill; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// AGV执行回调 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// </summary> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -174,67 +64,62 @@ namespace WCS.WorkEngineering.WebApi.Controllers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (RedisHub.Default.Exists(key)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    res.code = AgvResponseCode.Error; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    res.message = $"[{nameof(AgvCallback)}]--触发并发管控"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return res; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                RedisHub.Default.Expire(key, 60); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                SqlSugarHelper.Do(db => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                RedisHub.Do(key, redis => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //跟据AGVid找到对应的AGV任务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var agvTask = db.Default.Queryable<WCS_AgvTaskInfo>().SplitTable(tabs => tabs.Take(2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .First(v => v.AgvID == reqDto.taskCode && v.Status < AGVTaskStatus.MissionCompleted); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (agvTask == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        res.code = AgvResponseCode.Fail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        res.message = "未找到对应的AGV任务"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    switch (reqDto.method) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SqlSugarHelper.Do(db => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        case "applyContinue": //表示请求巷道 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            agvTask.AgvStatus = AGVTaskStatus.RequestOrPermission1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //跟据AGVid找到对应的AGV任务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var agvTask = db.Default.Queryable<WCS_AgvTaskInfo>().SplitTable(tabs => tabs.Take(2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .First(v => v.AgvID == reqDto.taskCode && v.Status < AGVTaskStatus.MissionCompleted); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (agvTask == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            res.code = AgvResponseCode.Fail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            res.message = "未找到对应的AGV任务"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        switch (reqDto.method) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            case "applyContinue": //表示请求巷道 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                agvTask.AgvStatus = AGVTaskStatus.RequestOrPermission1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        case "applySecurity": //表示请求放货或取货 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            agvTask.AgvStatus = AGVTaskStatus.RequestOrPermission2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            case "applySecurity": //表示请求放货或取货 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                agvTask.AgvStatus = AGVTaskStatus.RequestOrPermission2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        case "hjend_2": //补空任务完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            agvTask.AgvStatus = AGVTaskStatus.MissionCompleted; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            case "hjend_2": //补空任务完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                agvTask.AgvStatus = AGVTaskStatus.MissionCompleted; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        case "endhjBM": //取满任务完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            agvTask.AgvStatus = AGVTaskStatus.MissionCompleted; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            case "endhjBM": //取满任务完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                agvTask.AgvStatus = AGVTaskStatus.MissionCompleted; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        case "end": //二楼出满任务完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            agvTask.AgvStatus = AGVTaskStatus.MissionCompleted; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            case "end": //二楼出满任务完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                agvTask.AgvStatus = AGVTaskStatus.MissionCompleted; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        case "tcEnd": //机台补空任务完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            agvTask.AgvStatus = AGVTaskStatus.MissionCompleted; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            case "tcEnd": //机台补空任务完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                agvTask.AgvStatus = AGVTaskStatus.MissionCompleted; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        case "exc_end": //异常信息上抛-值不匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            agvTask.AgvStatus = AGVTaskStatus.MissionCompleted; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            case "exc_end": //异常信息上抛-值不匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                agvTask.AgvStatus = AGVTaskStatus.MissionCompleted; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        case "outbin": //小车退出取货位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            agvTask.AgvStatus = AGVTaskStatus.Complete3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            case "outbin": //小车退出取货位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                agvTask.AgvStatus = AGVTaskStatus.LeaveGet; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        case "cancel": //取消任务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //agvTask.AgvStatus = AGVTaskStatus.Cancel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            case "cancel": //取消任务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                           //agvTask.AgvStatus = AGVTaskStatus.Cancel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    db.Default.Updateable(agvTask).SplitTable().ExecuteCommand(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    res.code = AgvResponseCode.Success; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    res.message = "成功"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        db.Default.Updateable(agvTask).SplitTable().ExecuteCommand(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        res.code = AgvResponseCode.Success; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        res.message = "成功"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             catch (Exception ex) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,10 +127,6 @@ namespace WCS.WorkEngineering.WebApi.Controllers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 res.code = AgvResponseCode.Error; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 res.message = ex.Message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                RedisHub.Default.Del(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return res; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |