Bläddra i källkod

update:涂布出库返回任务长度

林豪 左 3 år sedan
förälder
incheckning
d40b421fbf

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

@@ -475,6 +475,7 @@ namespace WCS.Service.Extensions
         /// <param name="addr">目标地址</param>
         public void Move(StationDeviceGroup addr)
         {
+
             Data.TaskID_1 = addr.Entity.CODE.Replace("G", "").ToShort();
             Data.TaskType_1 = RGVTaskType.移动;
             Data.DestPosition_1 = addr.Entity.CODE.Replace("G", "").ToShort();

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

@@ -264,6 +264,7 @@ namespace WCS.Service.Works.Station
                         var rgvList = Device.Where(v => v.Is(DF.涂布RGV)).Select(v => v.Create<RGVDevice>());
                         if (rgvList.Any(v => !v.Data2.SystemStatus.HasFlag(WCS.Entity.Protocol.RGV.RGVRunStatus.空闲)
                                           && !v.Data2.WorkMode.HasFlag(WCS.Entity.Protocol.RGV.RGVMode.自动)
+                                          && v.Data2.TaskType_1 == WCS.Entity.Protocol.RGV.RGVTaskType.放货
                                           && v.Data2.DestPosition_1 == taskInStation.CODE.Replace("G", "").ToShort())) continue;
 
                         tunnelInfos.Add(new TunnelInfo

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

@@ -137,7 +137,7 @@ namespace WCS.Service.Works.Station
                     obj.Data.Tasknum = task.ID;
                     obj.Data.Goodsstart = obj.Entity.CODE.ToShort();
                     obj.Data.Goodsend = task.ADDRNEXT.ToShort();
-                    obj.Data.CmdType = IstationCmdType.堆垛机放货完成请求目标地址;
+                    obj.Data.CmdType = IstationCmdType.分配目标地址;
                     obj.Data.VoucherNo++;
                 });
             });
@@ -149,6 +149,42 @@ namespace WCS.Service.Works.Station
         }
     }
 
+    /// <summary>
+    /// 涂布出库返回任务长度
+    /// </summary>
+    [WorkTitle(typeof(CoatingHandler), "涂布出库返回任务长度")]
+    public class 涂布出库返回任务长度 : DeviceWork<StationDevice>
+    {
+        protected override void Do(StationDevice obj)
+        {
+            obj.EX(obj =>
+            {
+                if (!obj.Data2.Status.HasFlag(IstationStatus.光电状态)) throw new DoException("无光电");
+                if (obj.Data3.Status.HasFlag(StationStatus.运行状态位)) throw new DoException("设备运行中");
+                if (obj.Data.VoucherNo != obj.Data2.VoucherNo)
+                    throw new WarnException($"等待任务[{obj.Data2.Tasknum}]执行--凭证号不一致[{obj.Data.VoucherNo}][{obj.Data2.VoucherNo}]");
+                if (obj.Data2.Tasknum < 10000) throw new DoException("无任务");
+                if (obj.Data2.Request != IstationRequest.请求分配目标地址) throw new WarnException("有任务无请求");
+
+                DB.Do(db =>
+                {
+                    var task = db.Default.Set<WCS_TASK>().Find(obj.Data2.Tasknum);
+                    if (task == null) throw new WarnException("WCS无该任务信息");
+
+                    //开始写入目标地址
+                    obj.Data.CmdType = IstationCmdType.分配目标地址;
+                    obj.Data.GoodsSize = (short)task.Length;
+                    obj.Data.VoucherNo++;
+                });
+            });
+        }
+
+        protected override bool SelectDevice(WCS_DEVICE dev)
+        {
+            return dev.CODE == "1334" || dev.CODE == "1335";
+        }
+    }
+
     /// <summary>
     /// 涂布叫料
     /// </summary>