瀏覽代碼

debug:涂布环穿入库

Administrator 3 年之前
父節點
當前提交
47189aeeca

+ 1 - 1
Projects/永冠OPP/WCS.Service/Extensions/DeviceExtension.cs

@@ -185,7 +185,7 @@ namespace WCS.Service.Extensions
             //RGV与站台距离误差为 正负50
             var max = Position + 500;
             var min = Position - 500;
-            return RgvList.FirstOrDefault(v => v.Data2.Position < max && v.Data2.Position > min);
+            return RgvList?.FirstOrDefault(v => v.Data2.Position < max && v.Data2.Position > min);
         }
 
         /// <summary>

+ 2 - 2
Projects/永冠OPP/WCS.Service/Log/InfoLog.cs

@@ -73,7 +73,7 @@ namespace WCS.Service.Log
         public static void INFO_ERROR(string msg)
         {
             Log.Error(msg, "INFO_ERROR");
-            Console.WriteLine(msg);
+            //Console.WriteLine(msg);
         }
 
         /// <summary>
@@ -83,7 +83,7 @@ namespace WCS.Service.Log
         public static void INFO_WARN(string msg)
         {
             Log.Warn(msg, "INFO_WARN");
-            Console.WriteLine(msg);
+            //Console.WriteLine(msg);
         }
 
         /// <summary>

+ 3 - 3
Projects/永冠OPP/WCS.Service/Works/RGV/RGVWorks.cs

@@ -43,7 +43,7 @@ namespace WCS.Service.Works.RGV
                     var gw2 = obj.Items.ToArray()[1];
                     if (gw1.Data2.Tasknum != 0 && gw2.Data2.Tasknum != 0)
                     {
-                        if (gw1.Data2.Goodsend != gw2.Data2.Goodsend) throw new WarnException($"{obj.Entity.Code}目标地址不一致");
+                        if (gw1.Data2.Goodsend != gw2.Data2.Goodsend) throw new WarnException($"{obj.Entity.CODE}目标地址不一致");
                     }
                     rgv.Data.TaskID_1 = gw1.Data2.Tasknum;
                     rgv.Data.TaskID_2 = gw2.Data2.Tasknum;
@@ -91,7 +91,7 @@ namespace WCS.Service.Works.RGV
                 {
                     //取小车上的任务
                     DB.Do(db =>
-                    { 
+                    {
                         List<int> taskids = new List<int>() { obj.Data2.TaskID_1, obj.Data2.TaskID_2 };
                         var tasks = db.Default.Set<WCS_TASK>().Where(p => taskids.Contains(p.ID));
                         if (tasks.GroupBy(p => p.TaskGroupKey).Count() > 1)
@@ -114,7 +114,7 @@ namespace WCS.Service.Works.RGV
                     // 筛选出有任务号和起始及目标地址的设备
                     var devs = pickStation.RGVGetTaskedDevice();
                     //是否需要取货
-                    if (devs.Count() > 0)
+                    if (devs != null && devs.Count() > 0)
                     {
                         //开始下达取货任务
                         DB.Do(db =>

+ 1 - 1
Projects/永冠OPP/WCS.Service/Works/Station/一楼入库.cs

@@ -150,7 +150,7 @@ namespace WCS.Service.Works.Station
 
                         task.DEVICE = tunnelInfo.SRM.Entity.CODE;
                         task.TUNNEL = tunnelInfo.Tunnel.CODE;
-                        task.ADDRNEXT = dev.Data.Goodsend.ToString();
+                        task.ADDRNEXT = tunnelInfo.taskIN.CODE;
                         task.TaskGroupKey = res.WMSTaskGroupKey;
                         task.ADDRTO = task.DEVICE;
                         db.Default.SaveChanges();

+ 1 - 1
Projects/永冠OPP/WCS.Service/Works/Station/一楼出库.cs

@@ -18,7 +18,7 @@ namespace WCS.Service.Works.Station
                 //找到当前站台为当前设备且任务为堆垛机完成的任务
                 DB.Do(db =>
                 {
-                    var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.TYPE == TaskType.出库 && v.SRMSTATION == obj.Entity.CODE && v.STATUS == TaskStatus.堆垛机完成);
+                    var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.TYPE == TaskType.出库 && v.SRMSTATION == obj.Entity.CODE && v.STATUS == TaskStatus.堆垛机完成)??throw new WarnException("无任务");
                     var tasks = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey);
                     if (tasks.Any(v => v.STATUS != TaskStatus.堆垛机完成 && v.STATUS != TaskStatus.执行中))
                         throw new WarnException("任务异常,同组任务状态不为堆垛机完成或执行中");

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

@@ -57,6 +57,21 @@ namespace WCS.Service.Works.Station
                             agvtask.UpdateTime = DateTime.Now;
                             db.Default.SaveChanges();
                         }
+                        else if (agvtask.Status == AGVTaskStatus.确认)
+                        {
+                            if (agvtask.Station != obj.Entity.CODE) continue;
+                            if (obj.Items.Any(v => !v.Data3.Status.HasFlag(StationStatus.高位))) continue;
+                            if (obj.Items.Any(v => !v.Data3.Status.HasFlag(StationStatus.自动))) continue;
+                            if (obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.光电状态))) continue;
+                            if (obj.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) continue;
+                            if (obj.Items.Any(v => v.Data2.Tasknum > 10000)) continue;
+
+                            //暂时管控同一时间被执行的任务数为1
+                            if (db.Default.Set<WCS_AGVTask>().Any(v => v.Status == AGVTaskStatus.执行 && v.Station == obj.Entity.CODE)) continue;
+                            agvtask.Status = AGVTaskStatus.执行;
+                            agvtask.UpdateTime = DateTime.Now;
+                            db.Default.SaveChanges();
+                        }
                         else if (agvtask.Status < agvtask.AGVStatus)
                         {
                             if (agvtask.AGVStatus == AGVTaskStatus.请求_允许)
@@ -254,7 +269,7 @@ namespace WCS.Service.Works.Station
 
                         task.DEVICE = tunnelInfo.SRM.Entity.CODE;
                         task.TUNNEL = tunnelInfo.Tunnel.CODE;
-                        task.ADDRNEXT = dev.Data.Goodsend.ToString();
+                        task.ADDRNEXT = tunnelInfo.taskIN.CODE;
                         task.TaskGroupKey = res.WMSTaskGroupKey;
                         task.ADDRTO = task.DEVICE;
                         db.Default.SaveChanges();