Sfoglia il codice sorgente

实装任务优先级

林豪 左 3 anni fa
parent
commit
f39c2ebcd8
1 ha cambiato i file con 7 aggiunte e 1 eliminazioni
  1. 7 1
      Projects/永冠OPP/WCS.Service/Works/SRM/SRMWork.cs

+ 7 - 1
Projects/永冠OPP/WCS.Service/Works/SRM/SRMWork.cs

@@ -55,6 +55,7 @@ namespace WCS.Service.Works.SRM
             if (obj.Data2.Status_1 != SCRunStatus.空闲) return;
 
             var isTransfer = new List<WCS_TASK>();
+            WCS_TASK enterPriority = new WCS_TASK(), outPriority = new WCS_TASK();
             //再检查是否有等待执行的货物
             DB.Do(db =>
             {
@@ -65,6 +66,10 @@ namespace WCS.Service.Works.SRM
                 //判断是否存在调整优先级任务,存在初始化isTransfer值 让本次执行优先任务
                 if (db.Default.Set<WCS_TASK>().AsNoTracking().Any(v => v.DEVICE == obj.Entity.CODE && v.TYPE != TaskType.移库 && v.STATUS < TaskStatus.堆垛机执行 && v.Priority > 0))
                     isTransfer = new List<WCS_TASK>();
+                enterPriority = db.Default.Set<WCS_TASK>().Where(v => v.DEVICE == obj.Entity.CODE && v.TYPE == TaskType.入库 && v.STATUS < TaskStatus.堆垛机执行)
+                                                             .OrderByDescending(v => v.Priority).FirstOrDefault();
+                outPriority = db.Default.Set<WCS_TASK>().Where(v => v.DEVICE == obj.Entity.CODE && v.TYPE == TaskType.出库 && v.STATUS < TaskStatus.堆垛机执行)
+                                                              .OrderByDescending(v => v.Priority).FirstOrDefault();
             });
 
             var LastIsOut = obj.Entity.Get<bool>("LastIsOut");
@@ -126,6 +131,7 @@ namespace WCS.Service.Works.SRM
             {
                 #region 入库
 
+                if (outPriority.Priority > enterPriority.Priority) return;
                 //获取所有取货点
                 var arrIn = obj.GetPickPoint()
                                .Where(v => Device.Where(d => d.IsConv())
@@ -221,7 +227,7 @@ namespace WCS.Service.Works.SRM
                 var floor = obj.Entity.Get<int>("LastFloor");
                 floor = floor % 2 + 1;
                 obj.Entity.Set("LastFloor", floor);
-
+                if (enterPriority.Priority > outPriority.Priority) return;
                 obj.EXOutStock(obj =>
                 {
                     //获取当前堆垛机所有的放货点