浏览代码

堆垛机不会同时取两个不同长度的产品

林豪 左 3 年之前
父节点
当前提交
e8721297da
共有 1 个文件被更改,包括 14 次插入0 次删除
  1. 14 0
      Projects/永冠OPP/WCS.Service/Works/SRM/SRMWork.cs

+ 14 - 0
Projects/永冠OPP/WCS.Service/Works/SRM/SRMWork.cs

@@ -329,6 +329,20 @@ namespace WCS.Service.Works.SRM
                         //获取两个个可执行任务,此时这两个任务的目标地址是一致的
                         var tasks = outDepot.Select(v => v).ToList().GetOutTask();
 
+                        #region 校验两个产品是否为同规格
+
+                        if (tasks.Length == 2)
+                        {
+                            var a = tasks.OrderByDescending(v => v.Length).ToArray();
+                            //较大的长度减去较小的长度,差大于两百表示为不同规格产品
+                            if (a[0].Length - a[1].Length > 200)
+                            {
+                                tasks = tasks.Take(1).ToArray();
+                            }
+                        }
+
+                        #endregion 校验两个产品是否为同规格
+
                         //根据任务的目标地址获取对应的设备组
                         var devs = Device.Find($"{tasks.OrderBy(v => v.ADDRTO).FirstOrDefault().ADDRTO}").Create<StationDeviceGroup>().Items.OrderByDescending(v => v.Entity.CODE).ToArray();
                         var dev1 = devs[0];