xu.lu 2 år sedan
förälder
incheckning
f38b245529

+ 6 - 5
成品库/WCS.WorkEngineering/Systems/成品入库.cs → 成品库/WCS.WorkEngineering/Systems/库前入库.cs

@@ -20,17 +20,17 @@ using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags;
 namespace WCS.WorkEngineering.Systems
 {
     /// <summary>
-    ///  成品入库
+    ///  库前入库
     /// </summary>
     [BelongTo(typeof(MainWorld))]
-    [Description("成品入库")]
-    public class 成品入库 : DeviceSystem<Device<IStation520, IStation521, IStation523, IStation91, IBCR81>>
+    [Description("库前入库")]
+    public class 库前入库 : DeviceSystem<Device<IStation520, IStation521, IStation523, IStation91, IBCR81>>
     {
         protected override bool ParallelDo => true;
         protected override bool SaveLogsToFile => true;
         private List<Station> devs = new List<Station>();
         private List<SRM> srms = new List<SRM>();
-        public 成品入库()
+        public 库前入库()
         {
             devs = Device.All.Where(v => v.HasFlag(DeviceFlags.入库)).Select(v => new Station(v, this.World)).ToList();
             srms = Device.All.Where(v => v.HasProtocol(typeof(ISRM520))).Select(v => new SRM(v, this.World)).ToList();
@@ -43,7 +43,7 @@ namespace WCS.WorkEngineering.Systems
             if (!obj.Data3.Status.HasFlag(StationStatus.OT_Status) || !obj.Data3.Status.HasFlag(StationStatus.PH_Status)) throw new KnownException("无光电", LogLevelEnum.Mid);
             string bcr = "";
             //叠盘机托盘组入库
-            if (obj.Entity.Code == "")
+            if (obj.Entity.Code == "8262")
             {
                 if (obj.Data2.Request == 1)
                 {
@@ -83,6 +83,7 @@ namespace WCS.WorkEngineering.Systems
                     //筛选出可用站台c
                     stations = stations.Where(v => v.Data.VoucherNo == v.Data2.VoucherNo && v.Data3.Status.HasFlag(StationStatus.Auto))
                                        .Where(v => !v.Data3.Status.HasFlag(StationStatus.PH_Status) && !v.Data3.Status.HasFlag(StationStatus.OT_Status))
+                                       .Where(v => v.Data2.TaskNumber == 0)
                                        .Where(v => !v.Data3.Status.HasFlag(StationStatus.Run)).ToList(); // 筛选出可用站台                             
                     if (stations == null)
                     {

+ 8 - 24
成品库/WCS.WorkEngineering/Systems/扫码入库.cs → 成品库/WCS.WorkEngineering/Systems/库尾入库.cs

@@ -17,11 +17,11 @@ using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags;
 namespace WCS.WorkEngineering.Systems
 {
     /// <summary>
-    ///  扫码入库
+    ///  库尾入库
     /// </summary>
     [BelongTo(typeof(MainWorld))]
-    [Description("扫码入库")]
-    public class 扫码入库 : DeviceSystem<Device<IStation520, IStation521, IStation523, IStation91, IBCR81>>
+    [Description("库尾入库")]
+    public class 库尾入库 : DeviceSystem<Device<IStation520, IStation521, IStation523, IStation91, IBCR81>>
     {
         protected override bool ParallelDo => true;
 
@@ -30,7 +30,7 @@ namespace WCS.WorkEngineering.Systems
         private List<Station> devs = new List<Station>();
         private List<SRM> srms = new List<SRM>();
 
-        public 扫码入库()
+        public 库尾入库()
         {
             devs = Device.All.Where(v => v.HasFlag(DeviceFlags.入库)).Select(v => new Station(v, this.World)).ToList();
             srms = Device.All.Where(v => v.HasProtocol(typeof(ISRM520))).Select(v => new SRM(v, this.World)).ToList();
@@ -38,15 +38,12 @@ namespace WCS.WorkEngineering.Systems
 
         public override void Do(Device<IStation520, IStation521, IStation523, IStation91, IBCR81> obj)
         {
-
-
             obj.入库站点是否被禁止();
             obj.入库站点是否满足执行条件();
 
             if (obj.Data2.Request != 1.ToShort()) throw new KnownException("无请求", LogLevelEnum.Mid);
             if (!obj.Data3.Status.HasFlag(StationStatus.OT_Status)) throw new KnownException("无光电", LogLevelEnum.Mid);
 
-
             //开始读取条码
             var bcr = obj.Data5.GetBCRCode();
             WCS_TaskInfo task = null;
@@ -77,13 +74,7 @@ namespace WCS.WorkEngineering.Systems
                     //筛选出可用站台c
                     stations = stations.Where(v => v.Data.VoucherNo == v.Data2.VoucherNo && v.Data3.Status.HasFlag(StationStatus.Auto))
                                        .Where(v => !v.Data3.Status.HasFlag(StationStatus.PH_Status) && !v.Data3.Status.HasFlag(StationStatus.OT_Status))
-                                       .Where(v => !v.Data3.Status.HasFlag(StationStatus.Run)).ToList(); // 筛选出可用站台
-                    var count = stations.Where(v => v.Data.VoucherNo == v.Data2.VoucherNo && v.Data3.Status.HasFlag(StationStatus.Auto))
-                                       .Where(v => !v.Data3.Status.HasFlag(StationStatus.PH_Status) && !v.Data3.Status.HasFlag(StationStatus.OT_Status))
-                                       .Where(v => !v.Data3.Status.HasFlag(StationStatus.Run)).Count();
-                    var count1 = stations.Where(v => v.Data.VoucherNo == v.Data2.VoucherNo && v.Data3.Status.HasFlag(StationStatus.Auto))
-                                       .Where(v => !v.Data3.Status.HasFlag(StationStatus.PH_Status) && !v.Data3.Status.HasFlag(StationStatus.OT_Status))
-                                       .Where(v => !v.Data3.Status.HasFlag(StationStatus.Run)).ToArray();
+                                       .Where(v => !v.Data3.Status.HasFlag(StationStatus.Run)).ToList(); // 筛选出可用站台                    
                     if (stations == null)
                     {
                         throw new KnownException($"{obj.Entity.Code}无可用放货站台", LogLevelEnum.High);
@@ -98,7 +89,7 @@ namespace WCS.WorkEngineering.Systems
                                   .MinBy(v => tunnelNo.IndexOf(v.Entity.Code)); //按照巷道优先级排序
                     if (srm == null)
                     {                        
-                        throw new Exception($"任务{taskInfo.ID}无可用堆垛机{count}{count1[0].Entity.Code}");
+                        throw new Exception($"任务{taskInfo.ID}无可用堆垛机");
                     }                        
                     //筛选出堆垛机的取货站台
                     var nextPos = stations.FirstOrDefault(v => v.Entity.Sources.Where(t => t.IsTunnel()).Select(t => t.Sources).SelectMany(v => v) //获取所有巷道
@@ -129,22 +120,15 @@ namespace WCS.WorkEngineering.Systems
                     taskInfo.AddWCS_TASK_DTL(_db, obj.Entity.Code, taskInfo.AddrNext, $"完成巷道分配,分配至{taskInfo.Device}");
                     taskInfo.updateRedisHash();
                     task = taskInfo;
-
-                    if (task == null) return;
-                    
-                }               
-
-                
+                    if (task == null) return;                    
+                }                             
             });
-
-
             obj.Data.TaskNumber = task.ID;
             obj.Data.GoodsStart = obj.Entity.Code.ToShort();
             obj.Data.GoodsEnd = task.SrmStation.ToShort();
             obj.Data.VoucherNo++;
 
         }
-
         public override bool Select(Device dev)
         {
             return dev.HasFlag(DeviceFlags.扫码);