Administrator 2 rokov pred
rodič
commit
f884ad95ce

+ 2 - 46
Projects/永冠OPP/WCS.Service/Works/SRM/SRMWork.cs

@@ -434,7 +434,7 @@ namespace WCS.Service.Works.SRM
                 }
 
                 #endregion 移库
-                
+
 
                 else if (lastIsOut)
                 {
@@ -564,53 +564,9 @@ namespace WCS.Service.Works.SRM
                     srmDevice.Entity.Set("LastOutFloor", floor);
                     if (enterPriority != null && outPriority != null && enterPriority.Priority > outPriority.Priority) return;
 
-                    srmDevice.CheckOutTask();
                     //获取当前堆垛机所有的放货点
 
-                    var list = srmDevice.GetDeliveryPoint().Where(v =>
-                   {
-                       //true:满足条件  false:不满足条件
-                       //返回结果为无货的设备  默认无货
-                       var res = true;
-                       //放货点是否有货
-                       if (v.Data.VoucherNo != v.Data2.VoucherNo) res = false;
-                       else if (v.Data3.Status.HasFlag(StationStatus.运行状态位)) res = false;
-                       else if (v.Data2.Status.HasFlag(IstationStatus.光电状态)) res = false;
-                       else if (v.Data2.Request == IstationRequest.堆垛机放货完成请求目标地址) res = false;
-                       else if (v.Data2.Tasknum > 10000) res = false;
-                       if (!v.Entity.Is(DF.SRM涂布放货)) return res;
-                       var devise = new List<StationDevice>();
-                       switch (v.Entity.CODE)
-                       {
-                           case "1283" or "1284":
-                               devise = Device.Where(b => b.CODE is "1281" or "1282").Select(b => b.Create<StationDevice>()).ToList();
-                               break;
-
-                           case "1290" or "1291" or "1292" or "1293":
-                               devise = Device.Where(b => b.CODE is "1288" or "1289").Select(b => b.Create<StationDevice>()).ToList();
-                               break;
-
-                           case "1299" or "1300" or "1301" or "1302":
-                               devise = Device.Where(b => b.CODE is "1297" or "1298").Select(b => b.Create<StationDevice>()).ToList();
-                               break;
-
-                           case "1308" or "1309" or "1310" or "1311":
-                               devise = Device.Where(b => b.CODE is "1306" or "1307").Select(b => b.Create<StationDevice>()).ToList();
-                               break;
-                       }
-
-                       if (!devise.Any()) return res;
-                       foreach (var stationDevice in devise)
-                       {
-                           //放货点是否有货
-                           if (stationDevice.Data3.Status.HasFlag(StationStatus.运行状态位)) res = false;
-                           else if (stationDevice.Data2.Status.HasFlag(IstationStatus.光电状态)) res = false;
-                           else if (stationDevice.Data2.Request == IstationRequest.堆垛机放货完成请求目标地址) res = false;
-                           else if (stationDevice.Data2.Tasknum > 10000) res = false;
-                       }
-
-                       return res;
-                   }).Select(v => v.Entity.CODE).ToList();
+                    var list = srmDevice.GetDeliveryPoint().Where(v => v.Data3.Status != 0).Select(v => v.Entity.CODE).ToList();
 
                     //没有可用货位
                     if (!list.Any()) return;

+ 5 - 5
Projects/永冠OPP/WCS.Service/Works/Station/一楼出库.cs

@@ -45,13 +45,13 @@ namespace WCS.Service.Works.Station
                 {
                     foreach (var dev in devise)
                     {
-                        var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.TYPE == TaskType.出库 && v.SRMSTATION == dev.FinishCode && v.STATUS == TaskStatus.堆垛机完成) ?? throw new WarnException("无任务");
+                        var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.TYPE == TaskType.出库 && v.SRMSTATION == dev.FinishCode && (v.STATUS == TaskStatus.堆垛机完成 || v.STATUS == TaskStatus.堆垛机执行)) ?? throw new WarnException("无任务");
                         var tasks = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey);
                         if (tasks.Count() != devise.Count) throw new WarnException($"可执行任务数{devise.Count},实际任务数{tasks.Count()}");
-                        if (tasks.Any(v => v.STATUS != TaskStatus.堆垛机完成 && v.STATUS != TaskStatus.执行中)) throw new WarnException("任务异常,同组任务状态不为堆垛机完成或执行中");
+                        if (tasks.Any(v => v.STATUS != TaskStatus.堆垛机完成 && v.STATUS != TaskStatus.堆垛机执行 && v.STATUS != TaskStatus.执行中)) throw new WarnException("任务异常,同组任务状态不为堆垛机完成或执行中");
 
-                        task.STATUS = TaskStatus.执行中;
-                        task.CreateStatusLog(db,$"堆垛机放货点分配目标地址{task.ADDRNEXT}", GetType());
+                        task.STATUS = TaskStatus.堆垛机完成;
+                        task.CreateStatusLog(db, $"堆垛机放货点分配目标地址{task.ADDRNEXT}", GetType());
                         finishTaskList.Add(new FinishTaskList<int>(task.ID, dev.Station));
                     }
                     db.Default.SaveChanges();
@@ -123,7 +123,7 @@ namespace WCS.Service.Works.Station
                         task!.STATUS = TaskStatus.已完成;
                         task.ENDTIME = System.DateTime.Now;
                         task.UPDATEUSER = "WCS";
-                        task.CreateStatusLog(db,$"任务完成", this.GetType());
+                        task.CreateStatusLog(db, $"任务完成", this.GetType());
                         finishTaskList.Add(new FinishTaskList<int>(task.ID, dev.Station));
                     }
                     db.Default.SaveChanges();