gkj 2 years ago
parent
commit
2cec0a6b71

+ 0 - 6
WCS.Entity/WCS_TaskInfo.cs

@@ -216,12 +216,6 @@ namespace WCS.Entity
         [SugarColumn(ColumnDescription = "AGV任务号", IsNullable = true)]
         public int AgvTaskID { get; set; }
 
-        /// <summary>
-        /// AGV任务详细信息
-        /// </summary>
-        [Navigate(NavigateType.OneToOne, nameof(AgvTaskID))]
-        public WCS_AgvTaskInfo AgvTask { get; set; }
-
         /// <summary>
         /// 优先级
         /// </summary>

+ 1 - 7
WCS.Entity/WCS_TaskOld.cs

@@ -171,13 +171,7 @@ namespace WCS.Entity
         /// </summary>
         [SugarColumn(ColumnDescription = "AGV任务号", IsNullable = true)]
         public int AgvTaskID { get; set; }
-
-        /// <summary>
-        /// AGV任务详细信息
-        /// </summary>
-        [Navigate(NavigateType.OneToOne, nameof(AgvTaskID))]
-        public WCS_AgvTaskInfo AgvTask { get; set; }
-
+       
         /// <summary>
         /// 优先级
         /// </summary>

+ 1 - 1
WCS.WorkEngineering/Systems/AgvSystems.cs

@@ -68,7 +68,7 @@ namespace WCS.WorkEngineering.Systems
 
                     foreach (var agv in agvTaks)
                     {
-                        var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == agv.ID);
+                        var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.AgvTaskID == agv.ID);
                         switch (agv.Status)
                         {
                             case AGVTaskStatus.RequestOrPermission1: //获取巷道

+ 3 - 3
WCS.WorkEngineering/Systems/NoInteractionSystems.cs

@@ -51,7 +51,7 @@ namespace WCS.WorkEngineering.Systems
                             AddWho = "WCS"
                         };
                         db.Default.Insertable(agvTask).SplitTable().ExecuteCommand();
-                        task.AgvTaskID = task.ID;
+                        task.AgvTaskID = agvTask.ID;
                         db.Default.Updateable(task).ExecuteCommand();
                     });
                 }
@@ -157,7 +157,7 @@ namespace WCS.WorkEngineering.Systems
                         try
                         {
                             //获取对应wcs任务
-                            var wcs = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.ID == agv.ID && t.Status == Entity.TaskStatus.WaitingToExecute).First();
+                            var wcs = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.AgvTaskID == agv.ID && t.Status == Entity.TaskStatus.WaitingToExecute).First();
                             //下发AGV任务
                             res = AgvApi.满轮入库(wcs.BarCode, agv.Station, Guid.NewGuid().ToString().Replace("-", ""), "1");
                             agv.Status = AGVTaskStatus.Confirm;
@@ -194,7 +194,7 @@ namespace WCS.WorkEngineering.Systems
                             try
                             {
                                 //获取对应wcs任务
-                                var wcs = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.ID == agv.ID && t.Status == Entity.TaskStatus.WaitingToExecute).First();
+                                var wcs = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.AgvTaskID == agv.ID && t.Status == Entity.TaskStatus.WaitingToExecute).First();
                                 //下发AGV任务
                                 res = AgvApi.机台补空(agv.Station, Guid.NewGuid().ToString().Replace("-", ""), "1");
                                 agv.Status = AGVTaskStatus.Confirm;

+ 14 - 8
WCS.WorkEngineering/WebApi/Controllers/AgvController.cs

@@ -113,19 +113,25 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                     }
                     var stationNo = res.ResDataList.OrderBy(v => v.Count).Select(v => v.Tunnel.ToString()).ToList();
                     agvFill.ResCode = Models.WMS.Response.ResponseStatusCodeEnum.Sucess;
-                    agvFill.LocCode = obj.MinBy(v => stationNo.IndexOf(v.Entity.Code)).Entity.Code;
+                    var dev = obj.MinBy(v => stationNo.IndexOf(v.Entity.Code));
+                    agvFill.LocCode = dev.Entity.Code;
                     agvFill.SpoolType = "4";
                     agvFill.ResMsg = "";
                     var id = db.Default.Queryable<WCS_AgvTaskInfo>().SplitTable(v => v.Take(1)).Max(v => v.ID);
-                    //创建对应的AGV任务
-                    db.Default.Insertable(new WCS_AgvTaskInfo()
+                    var agv = new WCS_AgvTaskInfo()
                     {
                         ID = db.GetAGVTaskId(),
                         TaskType = AGVTaskType.CallForMaterial,
                         Status = AGVTaskStatus.NewBuild,
                         Station = agvFill.LocCode,
                         AddWho = "WCS"
-                    }).SplitTable().ExecuteCommand();
+                    };
+                    //创建对应的AGV任务
+                    db.Default.Insertable(agv).SplitTable().ExecuteCommand();
+                    var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == dev.Data.TaskNumber);
+                    task.AgvTaskID=agv.ID;
+                    db.Default.Updateable(task).ExecuteCommand();
+
                 });
 
                 return agvFill;
@@ -180,8 +186,8 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                 agvTask.AgvID = reqDto.taskCode;
                                 var obj = World.GetSystemInstance<GetDeviceSystem>().Invoke("输送机") as List<Station>;
                                 var id = obj.FirstOrDefault(v => v.Entity.Code == agvTask.Station).Data.TaskNumber;
-                                agvTask.Position = id.ToString();
                                 taskInfo = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == id);
+                                taskInfo.AgvTaskID=agvTask.ID;
                                 taskInfo.Status = Entity.TaskStatus.AGVExecution;
                                 taskInfo.AddWCS_TASK_DTL(db, agvTask.Station, "agv执行中");
                             }
@@ -197,8 +203,8 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                         case "hjend_2": //补空任务完成
                             if (agvTask.TaskType == AGVTaskType.CallForMaterial)
                             {
-                                var id = agvTask.Position.ToInt();
-                                taskInfo = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == id);
+                                
+                                taskInfo = db.Default.Queryable<WCS_TaskInfo>().First(v => v.AgvTaskID == agvTask.ID);
                                 taskInfo.Status = Entity.TaskStatus.Finish;
                                 taskInfo.EedTime = DateTime.Now;
                                 taskInfo.AddWCS_TASK_DTL(db, "agv缓存区", "任务完成");
@@ -233,7 +239,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                     }
                     db.Default.Updateable(agvTask).SplitTable().ExecuteCommand();
                 });
-                if (taskInfo != null) WmsApi.CompleteTask(taskInfo.ID);
+                if (taskInfo != null&& taskInfo.Status== Entity.TaskStatus.Finish) WmsApi.CompleteTask(taskInfo.ID);
             }
             catch (Exception ex)
             {

+ 3 - 3
WCS.WorkEngineering/WorkStart.cs

@@ -126,7 +126,7 @@ namespace WCS.WorkEngineering
                 new RouteInfo("1012", new string[] { "TY1" }),
                 new RouteInfo("1022", new string[] { "TY1" }),
                 new RouteInfo("1014", new string[] { "TY2" }),
-                new RouteInfo("1024", new string[] { "TY2" }),
+                new RouteInfo("1025", new string[] { "TY2" }),
                 new RouteInfo("1016", new string[] { "TY3" }),
                 new RouteInfo("1026", new string[] { "TY3" })
             };
@@ -150,8 +150,8 @@ namespace WCS.WorkEngineering
             Dictionary<DeviceFlags, List<string>> devices = new Dictionary<DeviceFlags, List<string>>
             {
                 { DeviceFlags.巷道口, new List<string>() { "1011", "1012", "1013", "1014", "1015", "1016", "1021", "1022", "1023", "1024", "1025", "1026" } },
-                { DeviceFlags.入库, new List<string>() { "1011", "1013", "1015", "1022", "1024", "1026" } },
-                { DeviceFlags.出库, new List<string>() { "1012", "1014", "1016", "1021", "1023", "1025" } },
+                { DeviceFlags.入库, new List<string>() { "1011", "1013", "1015", "1021", "1023", "1025" } },
+                { DeviceFlags.出库, new List<string>() { "1012", "1014", "1016", "1022", "1024", "1026" } },
                 { DeviceFlags.扫码, new List<string>() { "1011", "1013", "1015" } },
                 { DeviceFlags.一楼出库口, new List<string>() { "1012", "1014", "1016" } },
                 { DeviceFlags.一楼入库口, new List<string>() { "1011", "1013", "1015" } },