Browse Source

分拣三增加18桁架异常码垛缓存道

1693994901 1 week ago
parent
commit
d184b720e3

+ 2 - 0
YWGC/FJK/WCS.WorkEngineering/Extensions/DeviceExtension.cs

@@ -459,6 +459,8 @@ namespace WCS.WorkEngineering.Extensions
         无交互触发设备 = 1L << 43,
         桁架18取货点 = 1L << 44,
         重绕区叫料工位 = 1L << 45,
+        桁架18异常缓存放行点 = 1L << 46,
+        
     }
 }
 

+ 14 - 0
YWGC/FJK/WCS.WorkEngineering/Systems/NoInteractionSystems.cs

@@ -236,6 +236,20 @@ namespace WCS.WorkEngineering.Systems
                                     //计算下一个地址
                                     var path1 = DevicePath.GetPath(task.AddrFrom, task.Device);
                                     task.AddrNext = path1.Points[1].Code;
+                                    //var des1 = task.AddrNext;
+                                    //var des2 = "1";
+                                    ////分拣一
+                                    //if (task.AddrNext == "1604")
+                                    //{
+                                    //    des2 = "1606";
+                                    //}
+                                    //else if (task.AddrNext == "1614")
+                                    //{
+                                    //    des2 = "1616";
+                                    //}
+                                    //var num1 = db.Default.Queryable<WCS_TaskInfo>().RowLock().Where(t => t.WorkBench == des1 && t.Status < TaskStatus.Finish).Count();
+                                    //var num2 = db.Default.Queryable<WCS_TaskInfo>().RowLock().Where(t => t.WorkBench == des2 && t.Status < TaskStatus.Finish).Count();
+                                    //task.AddrNext = num1 <= num2 ? des1 : des2;
                                     task.SrmStation = task.BarCode.Contains("TPA") || task.BarCode.Contains("TPB") ? task.AddrFrom : path1.Points[2].Code;
 
                                     db.Default.UpdateableRowLock(task).UpdateColumns(x => new { x.Status, x.Device, x.AddrNext, x.SrmStation }).ExecuteCommand();

+ 3 - 1
YWGC/FJK/WCS.WorkEngineering/Systems/RGVSystems.cs

@@ -87,7 +87,7 @@ namespace WCS.WorkEngineering.Systems
                                 //检查库存表是否有残留库存信息
                                 var inv = db.Queryable<BillInvnow>().OrderByDescending(x => x.AddTime).First(x => x.ContGrpBarCode == bcrCode);
                                 if (inv != null && inv.IsTorsChk)
-                                {
+                                {                                    
                                     switch (inv.InvStateCode)
                                     {
                                         case "InvEcecState_BuildUp":
@@ -114,9 +114,11 @@ namespace WCS.WorkEngineering.Systems
                                             break;
                                         case "InvEcecState_In":
                                             World.Log($"托盘条码{bcrCode}已有对应库存信息,请确认条码是否重复并更换!", LogLevelEnum.Mid);
+                                            return;
                                             break;
                                         case "InvEcecState_OutGoing":
                                             World.Log($"【{obj.Entity.Code}】上的托盘 【{bcrCode}】存在出库中库存信息,请检查对应托盘条码是否存在未完成的出库任务!!!!!", LogLevelEnum.High);
+                                            return;
                                             break;
                                     }
 #region 1

+ 4 - 1
YWGC/FJK/WCS.WorkEngineering/Systems/分拣支线/桁架分流点.cs

@@ -116,7 +116,10 @@ namespace WCS.WorkEngineering.Systems.分拣支线
                     break;
 
                 case 18:
-                    cacheLineDevList = cacheLineDevList.Where(x => x.HasFlag(DeviceFlags.桁架18缓存放行点));
+                    //是异常工字轮
+                    cacheLineDevList = taskInfo.BarCode.Contains("Error")
+                        ? cacheLineDevList.Where(x => x.HasFlag(DeviceFlags.桁架18异常缓存放行点))
+                        :cacheLineDevList = cacheLineDevList.Where(x => x.HasFlag(DeviceFlags.桁架18缓存放行点));
                     break;
             }
             var value = RedisHub.Default.Get("TrussTunnelForbidden");

+ 8 - 8
YWGC/FJK/WCS.WorkEngineering/Systems/分拣支线/环形库分流点.cs

@@ -218,15 +218,15 @@ namespace WCS.WorkEngineering.Systems
                 var isTruss = false; //表示这个工字轮是要去桁架区域码垛的,默认不作处理
                 if (goodsType == 18)
                 {
-                    //判断这个垛型是否是到桁架区域进行码垛
+                    //判断是否有对应垛型信息
                     var toTruss = db.Queryable<BillBomsetgrp>().NoLock().First(x => x.BomCode.Contains(taskInfo.MatCode) && x.IsStop == 0);
                     if (toTruss == null)
                     {
                         World.Log($"未找到任务{taskInfo.ID}对应垛型信息,请确认垛型是否停用", LogLevelEnum.Mid);
                         return;
                     }
-
-                    if (toTruss.IsTruss)
+                    //去桁架码垛的或者分拣三18异常轮
+                    if (toTruss.IsTruss || (taskInfo.BarCode.Contains("Error18") && (obj.Entity.Code == "1218" || obj.Entity.Code == "1418")))
                     {
                         nextAdd = obj.Entity.Code switch
                         {
@@ -337,7 +337,7 @@ namespace WCS.WorkEngineering.Systems
                         maDuoXinXiList = db.Queryable<BillRingPalletizingInfo>().Where(x => maDuoZhanTaiList.Contains(x.MaDuoGongWei) && x.Out == false).ToList().OrderByDescending(x => x.HaveQty).ThenBy(x => x.AddTime).ToList();
                         if (maDuoXinXiList.Any(x => x.HWCountQty != x.HaveQty))
                         {
-                            World.Log("直接码垛埋点一");
+                            //World.Log("直接码垛埋点一");
                             var maDuoXinXi = maDuoXinXiList.Where(x => x.HWCountQty != x.HaveQty).OrderByDescending(x => x.HaveQty).ThenBy(x => x.AddTime).First(); //获取一个应该分配目标
 
                             //分配当前轮子在垛形中的位置
@@ -382,21 +382,21 @@ namespace WCS.WorkEngineering.Systems
                                 }
 
                                 var cellMatCodeList = taksList.Where(x => x.MatCode == taskInfo.MatCode);
-                                World.Log("直接码垛埋点二");
+                                //World.Log("直接码垛埋点二");
                                 //取当前SKU在垛形明细中所有的信息
                                 var bomSetInfos = db.Queryable<BillBomsetinfo>().Where(x =>
                                     x.BomSetHdrId == maDuoXinXi.BomSetGrpId && x.IsEmpty == 0 &&
                                     x.MatCode == taskInfo.MatCode).ToList();
-                                World.Log($"直接码垛埋点二.1,{maDuoXinXi.BomSetGrpId},{taskInfo.MatCode}");
+                                //World.Log($"直接码垛埋点二.1,{maDuoXinXi.BomSetGrpId},{taskInfo.MatCode}");
                                 //取当前SKU在垛形明细中最大的一个坐标号 ,初始化时默认取第一个
                                 var lastXYNO = Convert.ToInt32(bomSetInfos.Select(x => Convert.ToInt32(x.XYNo)).OrderByDescending(x => x).First());
-                                World.Log("直接码垛埋点三");
+                                //World.Log("直接码垛埋点三");
                                 if (cellMatCodeList.Any()) //货位中已有当前SKU的产品,取最大数 最大数表示最近入库的
                                 {
                                     lastXYNO = cellMatCodeList.OrderBy(x => x.WmsTask).First().WmsTask;
                                     var xyNo = bomSetInfos.Select(x => Convert.ToInt32(x.XYNo)).Where(x => x < lastXYNO)
                                         .OrderByDescending(x => x).First();
-                                    World.Log("直接码垛埋点四");
+                                    //World.Log("直接码垛埋点四");
                                     maDuoXinXi.LastXYNO = xyNo;
                                 }
                                 else

+ 6 - 5
YWGC/FJK/WCS.WorkEngineering/WorkStart.cs

@@ -1746,8 +1746,8 @@ namespace WCS.WorkEngineering
 
                 #region RGV--RGV放货点
 
-                new RouteInfo("RGV5", new string[] { "1644" }),
-                new RouteInfo("RGV6", new string[] { "1654" }),
+                new RouteInfo("RGV5", new string[] { "1644","1646" }),
+                new RouteInfo("RGV6", new string[] { "1654" ,"1656"}),
 
                 #endregion RGV--RGV放货点
 
@@ -1901,7 +1901,7 @@ namespace WCS.WorkEngineering
                      { DeviceFlags.桁架分流点,new List<string>() { "455", "655" } },
                      { DeviceFlags.桁架缓存放行点, new List<string>(){ "466", "480", "494", "508", "522", "536", "550", "564", "578", "591", "666", "680", "694", "708", "722", "736", "750", "764", "778", "791",} },
                      { DeviceFlags.桁架09缓存放行点, new List<string>(){ "666", "680", "694", /*"708", "722", "736",*/ "466", "480", "494", "508", "522", "536" } },
-                     { DeviceFlags.桁架09异常缓存放行点, new List<string>(){ "591", "791" } },
+                     { DeviceFlags.桁架09异常缓存放行点, new List<string>(){ "591", "791" } },                    
                      { DeviceFlags.桁架18缓存放行点, new List<string>(){ "708", "722", "736", "550", "564", "578", "750", "764", "778" } },
                      { DeviceFlags.桁架取货点, new List<string>(){ "461", "475", "489", "503", "517", "531", "545", "559", "573", "586", "661", "675", "689", "703", "717", "731", "745", "759", "773", "786"} },
                      { DeviceFlags.桁架18取货点, new List<string>(){"731","717","703", "861", "875", "889", "545", "559", "573", "945", "959", "973", "1345", "1359", "1373", "745", "759", "773", "1145", "1159", "1173", "1545", "1559", "1573","1531","1517" } },
@@ -1971,8 +1971,9 @@ namespace WCS.WorkEngineering
                      { DeviceFlags.桁架09缓存放行点, new List<string>(){/* "1266", "1280", "1294", "1308", "1322", "1336",  "1466", "1480", "1494", "1508", */} },
                      { DeviceFlags.桁架09异常缓存放行点, new List<string>(){  "1391" , "1591" } },
                      { DeviceFlags.桁架18缓存放行点, new List<string>(){   
-                                                                        "1266", "1280", "1294", "1308", "1322", "1336", "1350", "1364", "1378",
-                                                                        "1466", "1480", "1494", "1508" ,"1522", "1536" , "1550", "1564", "1578", } },
+                                                                        "1266", "1280", "1294", "1308", "1322", /*"1336",*/ "1350", "1364", "1378",
+                                                                        "1466", "1480", "1494", "1508" ,"1522", /*"1536" ,*/ "1550", "1564", "1578", } },
+                     { DeviceFlags.桁架18异常缓存放行点, new List<string>(){"1336","1536"} },
                      { DeviceFlags.桁架取货点, new List<string>(){"1261", "1275", "1289", "1303", "1317", "1331", "1345", "1359", "1373", "1386" , "1461", "1475", "1489", "1503", "1517", "1531", "1545", "1559", "1573", "1586" } },
                      { DeviceFlags.桁架18取货点, new List<string>(){ "861", "875", "889", "545", "559", "573", "945", "959", "973", "1345", "1359", "1373", "745", "759", "773", "1145", "1159", "1173", "1545", "1559", "1573", "1531", "1517" ,
                                                                      "1261", "1275", "1289", "1303", "1317", "1331",