Browse Source

临时处理涂布入库agv记录方案

林豪 左 3 năm trước cách đây
mục cha
commit
b91afaa1c1

+ 1 - 1
Projects/永冠OPP/WCS.Entity.Protocol/Station/IStation521.cs

@@ -13,7 +13,7 @@ namespace WCS.Entity.Protocol
         int Tasknum { get; set; }
 
         /// <summary>
-        /// 货物数条码
+        /// 货物数条码 涂布入库扫码位是AGV任务号
         /// </summary>
         int Goodscode { get; set; }
 

+ 13 - 5
Projects/永冠OPP/WCS.Service/Works/Station/涂布入库.cs

@@ -104,6 +104,11 @@ namespace WCS.Service.Works.Station
                                 agvtask.Status = agvtask.AGVStatus;
                                 agvtask.UpdateTime = DateTime.Now;
                                 db.Default.SaveChanges();
+                                var devs = Device.Find(agvtask.Station).Create<StationDeviceGroup>();
+                                foreach (var dev in devs.Items)
+                                {
+                                    dev.Data2.Goodscode = agvtask.ID;
+                                }
                             }
                             else if (Ltc.Do(agvtask, v => v.AGVStatus == AGVTaskStatus.取消))
                             {
@@ -150,13 +155,16 @@ namespace WCS.Service.Works.Station
 
                 var info = WMS.I_WCS_GetInTask(barcode, dev.Entity.CODE);
                 var next = dev.Entity.GetPath("SRM");
-                var station = Device.Where(v=>v.DEVICEGROUP.Any(p=>p.MEMBER.CODE==dev.Entity.CODE)).FirstOrDefault().Create<StationDeviceGroup>();
+                var station = Device.Where(v => v.DEVICEGROUP.Any(p => p.MEMBER.CODE == dev.Entity.CODE)).FirstOrDefault().Create<StationDeviceGroup>();
                 DB.Do(db =>
                 {
-                    var agvTask = db.Default.Set<WCS_AGVTask>().Where(v => v.TaskType == AGVTaskType.入库 && v.Status == AGVTaskStatus.完成).Where(v => v.Station == station.Entity.CODE).OrderByDescending(v=>v.UpdateTime).FirstOrDefault() ?? throw new WarnException("无完成AGV任务");
-                    if (agvTask.Status != AGVTaskStatus.完成) throw new WarnException("AGV任务状态错误");
-                    agvTask.Status = AGVTaskStatus.完成扫码;
-                    agvTask.UpdateTime = DateTime.Now;
+                    var agvTask = db.Default.Set<WCS_AGVTask>().Where(v => v.ID == dev.Data2.Goodscode).FirstOrDefault() ?? throw new WarnException("无完成AGV任务");
+
+                    if (agvTask.Status != AGVTaskStatus.完成扫码)
+                    {
+                        agvTask.Status = AGVTaskStatus.完成扫码;
+                        agvTask.UpdateTime = DateTime.Now;
+                    }
 
                     var task = new WCS_TASK();
                     task.BARCODE = info.ContainerCode;