林豪 左 1 năm trước cách đây
mục cha
commit
5e9430e634

+ 26 - 2
WCS.WorkEngineering/Extensions/DeviceExtension.cs

@@ -74,7 +74,7 @@ namespace WCS.WorkEngineering.Extensions
         ///  入库站点是否被禁止
         /// </summary>
         /// <returns></returns>
-        public static void 入库站点是否被禁止(this Device<IStation520, IStation521, IStation523, IStation91> device)
+        public static void 入库站点是否被禁止(this Device<IStation520, IStation521, IStation523> device)
         {
             var config = RedisHub.Default.Check("ForbidTubuEnter") ?? throw new Exception("请在Redis中配置入库口禁用");
             var configs = config.Split(",");
@@ -92,6 +92,17 @@ namespace WCS.WorkEngineering.Extensions
             if (configs.Contains(device.Entity.Code)) throw new KnownException("当前入库口已被禁用,请联系运维人员了解具体情况", LogLevelEnum.High);
         }
 
+        /// <summary>
+        ///  入库站点是否被禁止
+        /// </summary>
+        /// <returns></returns>
+        public static void 入库站点是否被禁止(this Device<IStation520, IStation521, IStation523, IStation91> device)
+        {
+            var config = RedisHub.Default.Check("ForbidTubuEnter") ?? throw new Exception("请在Redis中配置入库口禁用");
+            var configs = config.Split(",");
+            if (configs.Contains(device.Entity.Code)) throw new KnownException("当前入库口已被禁用,请联系运维人员了解具体情况", LogLevelEnum.High);
+        }
+
         /// <summary>
         ///  入库站点是否被禁止
         /// </summary>
@@ -107,7 +118,7 @@ namespace WCS.WorkEngineering.Extensions
         ///  入库站点是否满足执行条件
         /// </summary>
         /// <returns></returns>
-        public static void 入库站点是否满足执行条件(this Device<IStation520, IStation521, IStation523, IStation91> device)
+        public static void 入库站点是否满足执行条件(this Device<IStation520, IStation521, IStation523> device)
         {
             if (device.Data.VoucherNo != device.Data2.VoucherNo) throw new KnownException($"凭证号不一致,DB520:{device.Data.VoucherNo}-DB521:{device.Data2.VoucherNo}", LogLevelEnum.High);
             if (device.Data3.Status.HasFlag(StationStatus.Run)) throw new KnownException("设备运行中", LogLevelEnum.Low);
@@ -129,6 +140,19 @@ namespace WCS.WorkEngineering.Extensions
             if (!device.Data3.Status.HasFlag(StationStatus.OT_Status)) throw new KnownException("站台货物信息与实际占用不一致", LogLevelEnum.Low);
         }
 
+        /// <summary>
+        ///  入库站点是否满足执行条件
+        /// </summary>
+        /// <returns></returns>
+        public static void 入库站点是否满足执行条件(this Device<IStation520, IStation521, IStation523, IStation91> device)
+        {
+            if (device.Data.VoucherNo != device.Data2.VoucherNo) throw new KnownException($"凭证号不一致,DB520:{device.Data.VoucherNo}-DB521:{device.Data2.VoucherNo}", LogLevelEnum.High);
+            if (device.Data3.Status.HasFlag(StationStatus.Run)) throw new KnownException("设备运行中", LogLevelEnum.Low);
+            if (device.Data3.Status.HasFlag(StationStatus.PH_Status) && device.Data2.Request == 0) throw new KnownException("有光电无请求", LogLevelEnum.Mid);
+            if (!device.Data3.Status.HasFlag(StationStatus.PH_Status) && device.Data2.Request == 1) throw new KnownException("无光电有请求", LogLevelEnum.Mid);
+            if (!device.Data3.Status.HasFlag(StationStatus.OT_Status)) throw new KnownException("站台货物信息与实际占用不一致", LogLevelEnum.Low);
+        }
+
         /// <summary>
         ///  入库站点是否满足执行条件
         /// </summary>

+ 16 - 13
WCS.WorkEngineering/Systems/SrmSystems.cs

@@ -37,18 +37,18 @@ namespace WCS.WorkEngineering.Systems
         public SrmSystems()
         {
             //获取所有的巷道集合
-            var devices = Device.All.Where(v => v.HasFlag(DeviceFlags.巷道));
-
-            //开始分配
-            foreach (var item in devices)
-            {
-                //取货设备
-                var srm = item.Targets.Where(v => v.HasFlag(DeviceFlags.堆垛机)).FirstOrDefault();
-                PickUpDevices.Add(srm.Code, item.Targets.Where(v => v.HasFlag(DeviceFlags.输送机)).Select(v => new Station(v, this.World)).ToList());
-                //放货设备
-                srm = item.Sources.Where(v => v.HasFlag(DeviceFlags.堆垛机)).FirstOrDefault();
-                PutDevices.Add(srm.Code, item.Sources.Where(v => v.HasFlag(DeviceFlags.输送机)).Select(v => new Station(v, this.World)).ToList());
-            }
+            //var devices = Device.All.Where(v => v.HasFlag(DeviceFlags.巷道));
+
+            ////开始分配
+            //foreach (var item in devices)
+            //{
+            //    //取货设备
+            //    var srm = item.Targets.Where(v => v.HasFlag(DeviceFlags.堆垛机)).FirstOrDefault();
+            //    PickUpDevices.Add(srm.Code, item.Targets.Where(v => v.HasFlag(DeviceFlags.输送机)).Select(v => new Station(v, this.World)).ToList());
+            //    //放货设备
+            //    srm = item.Sources.Where(v => v.HasFlag(DeviceFlags.堆垛机)).FirstOrDefault();
+            //    PutDevices.Add(srm.Code, item.Sources.Where(v => v.HasFlag(DeviceFlags.输送机)).Select(v => new Station(v, this.World)).ToList());
+            //}
         }
 
         protected override bool ParallelDo => true;
@@ -387,7 +387,10 @@ namespace WCS.WorkEngineering.Systems
 
         public override bool Select(Device dev)
         {
-            //return dev.Code == "SRM2";
+            if (dev.Code is "SRM1" or "SRM2")
+            {
+                var a = 1;
+            }
             return dev.HasProtocol(typeof(ISRM520));
         }
     }

+ 4 - 4
WCS.WorkEngineering/WorkStart.cs

@@ -135,10 +135,10 @@ namespace WCS.WorkEngineering
             {
                 for (int i = 0; i < item.DeviceNo.Length; i++)
                 {
-                    var conv = new Device("BCR" + item.DeviceNo[i]);
-                    conv.AddFlag(DeviceFlags.扫码);
+                    var device = Device.All.FirstOrDefault(v => v.Code == item.DeviceNo[i].ToString());
+                    device.AddFlag(DeviceFlags.扫码);
                     int pos = i * 20;
-                    conv.AddProtocol<IBCR81>(pos, 81, item.IP);
+                    device.AddProtocol<IBCR81>(pos, 81, item.IP);
                 }
             }
 
@@ -148,7 +148,7 @@ namespace WCS.WorkEngineering
 
             List<ShapeInfo> shapeInfo = new List<ShapeInfo>
             {
-                new ShapeInfo(new int[] {  }, "10.30.37.89")
+                new ShapeInfo(new int[] { 2732,2532 }, "10.30.37.89")
             };
 
             foreach (var item in shapeInfo)