Administrator 2 tahun lalu
induk
melakukan
31a5d021f9

+ 4 - 2
Projects/永冠/WCS.Service/WebApi/WCSApi.cs

@@ -33,7 +33,8 @@ namespace WCS.Service.WebApi
                                 throw new Exception("任务号" + wmstaskid + "重复下发");
 
                             var scid = int.Parse(obj.SRMNo.Last().ToString());
-                            var tunnel = ((scid > 3 && scid < 6) ? "TM" : "TY") + obj.StartTunnel;
+                            //var tunnel = ((scid > 3 && scid < 6) ? "TM" : "TY") + obj.StartTunnel;
+                            var tunnel = "TY"  + obj.StartTunnel;
                             var task = new WCS_TASK
                             {
                                 TYPE = TaskType.移库,
@@ -58,7 +59,8 @@ namespace WCS.Service.WebApi
                                 throw new Exception("任务号" + wmstaskid + "重复下发");
 
                             var scid = int.Parse(obj.SRMNo.Last().ToString());
-                            var tunnel = ((scid > 3 && scid < 6) ? "TM" : "TY") + obj.StartTunnel;
+                            //var tunnel = ((scid > 3 && scid < 6) ? "TM" : "TY") + obj.StartTunnel;
+                            var tunnel = "TY" + obj.StartTunnel;
 
                             var task = new WCS_TASK
                             {

+ 3 - 2
Projects/永冠/WCS.Service/WebApi/WMS/WMS.cs

@@ -134,7 +134,8 @@ namespace WCS.Service
                 TaskException(devCode, res.ResMessage);
                 throw new Exception(res.ResMessage);
             }
-            var tcode = (warehouse == "mwhouseputong" ? "TM" : "TY") + res.TunnelNum;
+            var tcode = "TY" + res.TunnelNum;
+            //
 
             var tunnel = Device.Find(tcode);
             var next = tunnel.GetNext(devCode);
@@ -161,7 +162,7 @@ namespace WCS.Service
                 TaskException(position, res.ResMessage);
                 throw new Exception(res.ResMessage);
             }
-            var tcode = (warehouse == "mwhouseputong" ? "TM" : "TY") + res.TunnelNum;
+            var tcode = "TY" + res.TunnelNum;
 
             var tunnel = Device.Find(tcode);
             if (devCode == "3001")

+ 11 - 6
Projects/永冠/WCS.Service/Worker.cs

@@ -122,12 +122,17 @@ namespace WCS.Service
                 //Device.Set("LocInfo", new LocInfo(3, 0, 1, 0), "2254");
                 //Device.Set("LocInfo", new LocInfo(5, 0, 1, 0), "2252");
 
-                Device.Set("Tunnel", "TM1", "SC5", "2256", "2255", "2176", "2177");
-                Device.Set("Tunnel", "TM2", "SC4", "2254", "2253", "2174", "2175");
-                Device.Set("Tunnel", "TM3", "SC5", "2252", "2251", "2172", "2173");
-
-                Device.Set("SC", Device.Find("SC5"), v => v.Tunnel() == "TM1" || v.Tunnel() == "TM3");
-                Device.Set("SC", Device.Find("SC4"), v => v.Tunnel() == "TM2");
+                //Device.Set("Tunnel", "TM1", "SC5", "2256", "2255", "2176", "2177");
+                //Device.Set("Tunnel", "TM2", "SC4", "2254", "2253", "2174", "2175");
+                //Device.Set("Tunnel", "TM3", "SC5", "2252", "2251", "2172", "2173");
+                Device.Set("Tunnel", "TY9", "SC9", "2256", "2255", "2176", "2177");
+                Device.Set("Tunnel", "TY8", "SC8", "2254", "2253", "2174", "2175");
+                Device.Set("Tunnel", "TY7", "SC7", "2252", "2251", "2172", "2173");
+
+                //Device.Set("SC", Device.Find("SC5"), v => v.Tunnel() == "TM1" || v.Tunnel() == "TM3");
+                //Device.Set("SC", Device.Find("SC4"), v => v.Tunnel() == "TM2");
+                Device.Set("SC", Device.Find("SC5"), v => v.Tunnel() == "TY5");
+                Device.Set("SC", Device.Find("SC4"), v => v.Tunnel() == "TY4");
 
                 Device.AddFlag(DF.RGVÈ¡»õ, "2255", "2253", "2251", "2265");
                 Device.AddFlag(DF.RGV·Å»õ, "2256", "2254", "2252", "2259", "2261", "2263");

+ 38 - 24
Projects/永冠/WCS.Service/Works/SC/SCWork.cs

@@ -33,7 +33,7 @@ namespace WCS.Service.Works
         protected override bool SelectDevice(WCS_DEVICE dev)
         {
             //return true;
-            return new string[] { "SC4", "SC5" }.Contains(dev.CODE);
+            return new string[] { "SC7" , "SC8" , "SC9" }.Contains(dev.CODE);
         }
 
         protected override void Do(Device<ISC521, ISC520, ISC537> dev)
@@ -112,10 +112,23 @@ namespace WCS.Service.Works
             Ltc.Log("开始下发任务");
 
             var tunnel = "";
-            if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
-                tunnel = "TM" + dev.Data.Tunnel;
-            else
-                tunnel = "TY" + dev.Data.Tunnel;
+            //if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
+            //    tunnel = "TM" + dev.Data.Tunnel;
+            //else
+
+            if (dev.Data.Tunnel == 1)
+            {
+                tunnel = "TY9";
+            }
+            else if (dev.Data.Tunnel == 2)
+            {
+                tunnel = "TY8";
+            }
+            else if (dev.Data.Tunnel == 3 )
+            {
+                tunnel = "TY7";
+            }
+
 
             if (Ltc.Do(dev, v => v.Data.Mode != SCMode.远程)) return;
             if (Ltc.Do(dev, v => v.Data.Status != SCRunStatus.空闲)) return;
@@ -283,7 +296,7 @@ namespace WCS.Service.Works
                     .Where(v => v.TYPE == TaskType.出库 && v.Priority >= 0)
                     .Where(v => !db.Default.Set<WCS_TASK>().Any(d => d.DEVICE == sc && d.STATUS == TaskStatus.堆垛机执行));
 
-                    if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
+                    if (dev.Entity.CODE == "SC7" || dev.Entity.CODE == "SC8" || dev.Entity.CODE == "SC9")
                     {
                         //找到所有出口相同的任务
                         //一个目标位置同一时间最多只能有两个卷
@@ -292,7 +305,7 @@ namespace WCS.Service.Works
                             .Where(d => d.STATUS > TaskStatus.新建)
                             .Where(d => d.STATUS < TaskStatus.已完成 || taskidList.Contains(d.ID))
                             .Where(d => d.ADDRTO == v.ADDRTO && d.FLOOR == v.FLOOR)
-                            .Where(d => d.DEVICE == "SC4" || d.DEVICE == "SC5")
+                            .Where(d => d.DEVICE == "SC7" || d.DEVICE == "SC8" || d.DEVICE == "SC9")
                             .Count() < 2
                       );
                     }
@@ -361,7 +374,7 @@ namespace WCS.Service.Works
         protected override bool SelectDevice(WCS_DEVICE dev)
         {
             //return true;
-            return new string[] { "SC1", "SC2", "SC3" , "SC6" }.Contains(dev.CODE);
+            return new string[] { "SC1", "SC2",  "SC3" ,"SC4", "SC6" }.Contains(dev.CODE);
         }
 
         protected override void Do(Device<ISC521, ISC520, ISC537> dev)
@@ -451,10 +464,10 @@ namespace WCS.Service.Works
             Ltc.Log("开始下发任务");
 
             var tunnel = "";
-            if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
-                tunnel = "TM" + dev.Data.Tunnel;
-            else
-                tunnel = "TY" + dev.Data.Tunnel;
+            //if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
+            //    tunnel = "TM" + dev.Data.Tunnel;
+            //else
+            tunnel = "TY" + dev.Data.Tunnel;
 
             if (Ltc.Do(dev, v => v.Data.Mode != SCMode.远程)) return;
 
@@ -620,18 +633,19 @@ namespace WCS.Service.Works
                     .Where(v => v.TYPE == TaskType.出库 && v.Priority >= 0)
                     .Where(v => !db.Default.Set<WCS_TASK>().Any(d => d.DEVICE == sc && d.STATUS == TaskStatus.堆垛机执行));
 
-                    if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
-                    {
-                        q = q.Where(v =>
-                            db.Default.Set<WCS_TASK>().Where(d => d.TYPE == TaskType.出库)
-                            .Where(d => d.STATUS > TaskStatus.新建)
-                            .Where(d => d.STATUS < TaskStatus.已完成 || taskidList.Contains(d.ID))
-                            .Where(d => d.ADDRTO == v.ADDRTO && d.FLOOR == v.FLOOR)
-                            .Where(d => d.DEVICE == "SC4" || d.DEVICE == "SC5")
-                            .Count() < 2
-                      );
-                    }
-                    else q = q.Where(v => empties.Contains(v.SCSTATION));
+                    //if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
+                    //{
+                    //    q = q.Where(v =>
+                    //        db.Default.Set<WCS_TASK>().Where(d => d.TYPE == TaskType.出库)
+                    //        .Where(d => d.STATUS > TaskStatus.新建)
+                    //        .Where(d => d.STATUS < TaskStatus.已完成 || taskidList.Contains(d.ID))
+                    //        .Where(d => d.ADDRTO == v.ADDRTO && d.FLOOR == v.FLOOR)
+                    //        .Where(d => d.DEVICE == "SC4" || d.DEVICE == "SC5")
+                    //        .Count() < 2
+                    //  );
+                    //}
+                    //else 
+                    q = q.Where(v => empties.Contains(v.SCSTATION));
 
                     var task = q.OrderByDescending(v => v.Priority)
                                 .ThenBy(v => v.TUNNEL == tunnel ? 0 : 1)

+ 1 - 1
Projects/永冠/WCS.Service/Works/Stations/原膜巷道分配.cs

@@ -32,7 +32,7 @@ namespace WCS.Service.Works.Stations
               .OrderBy(v => v.Entity.CODE)
               .ToArray();
 
-            TunnelArr = Device.Where(v => v.IsTunnel() && v.CODE.StartsWith("TY")).Select(t =>
+            TunnelArr = Device.Where(v => v.IsTunnel() && v.CODE.StartsWith("TY") && (!(v.CODE.Contains("TY7") || v.CODE.Contains("TY8") || v.CODE.Contains("TY9")))).Select(t =>
                   {
                       var inbound = Device.Where(v => v.IsConv() && v.ROUTES.Any(d => d.NEXT.CODE == t.CODE)).Select(v => v.Device<IStation521>()).FirstOrDefault();
                       return new TunnelInfo

+ 12 - 1
Projects/永冠/WCS.Service/Works/Stations/组盘位.cs

@@ -119,10 +119,21 @@ namespace WCS.Service.Works.Stations
                             UPDATETIME = DateTime.Now,
                             UPDATEUSER = "WCS",
                             WMSTASK = int.Parse(res.WMSTaskNum),
-                            HEIGHT = 1,
+                            HEIGHT = dev.Data3.MaxQty,
                             DOCID = task.DOCID,
                             //ADDRCURRENT = dev.Entity.CODE
                         };
+
+                        switch (dev.Data3.MaxQty)
+                        {
+                            case 2:
+                                task.HEIGHT = 0;
+                                break;
+                            case 4:
+                                task.HEIGHT = 1;
+                                break;
+                            default: task.HEIGHT = 1;
+                        }
                         db.Default.Set<WCS_TASK>().Add(task);
                         db.Default.SaveChanges();