林豪 左 2 năm trước cách đây
mục cha
commit
cc5c527a48
1 tập tin đã thay đổi với 16 bổ sung20 xóa
  1. 16 20
      Projects/永冠OPP/WCS.Service/Works/SRM/SRMWork.cs

+ 16 - 20
Projects/永冠OPP/WCS.Service/Works/SRM/SRMWork.cs

@@ -122,13 +122,12 @@ namespace WCS.Service.Works.SRM
                                                    .OrderByDescending(v => v.Entity.CODE)
                                                    .ToArray();
                         var finishTaskList = new List<FinishTaskList<int>>(); //成功分配货位的任务
-                                                                              //取巷道
+                        //检测有效任务数与实际任务是是否相等
+                        var validDev = devise.Where(v => v.Data2.Tasknum > 10000 && v.Data2.Status.HasFlag(IstationStatus.光电状态) && !v.Data3.Status.HasFlag(StationStatus.运行状态位));
+                        var stationDevices = validDev as StationDevice[] ?? validDev.ToArray();
+                        if (!stationDevices.Any()) throw new DoException("无有效入库任务");
                         DB.Do(db =>
                         {
-                            //检测有效任务数与实际任务是是否相等
-                            var validDev = devise.Where(v => v.Data2.Tasknum > 10000 && v.Data2.Status.HasFlag(IstationStatus.光电状态) && !v.Data3.Status.HasFlag(StationStatus.运行状态位));
-                            var stationDevices = validDev as StationDevice[] ?? validDev.ToArray();
-                            if (!stationDevices.Any()) throw new DoException("无有效入库任务");
                             var tasking = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == stationDevices.First().Data2.Tasknum);
                             var taskList = db.Default.Set<WCS_TASK>().Count(v => v.TaskGroupKey == tasking.TaskGroupKey && v.TYPE == TaskType.倒库);
                             if (stationDevices.Count() != taskList) throw new WarnException($"任务数量不匹配,设备-{stationDevices.Count()},WCS-{taskList}");
@@ -149,7 +148,7 @@ namespace WCS.Service.Works.SRM
                                 task.ADDRTO = $"{loc.Row}-{loc.Colomn}-{loc.Layer}";
                                 task.DEVICE = deviceCode;
                                 task.TUNNEL = tunnel;
-                                task.CreateStatusLog(db, $"状态由{oldTask}变更至{task.STATUS}", this.GetType());
+                                task.CreateStatusLog(db, $"堆垛机开始执行入库", this.GetType());
                                 finishTaskList.Add(new FinishTaskList<int>(task.ID, dev));
                             }
                             db.Default.SaveChanges();
@@ -256,7 +255,7 @@ namespace WCS.Service.Works.SRM
                             //找出等待执行的出库任务
                             var waitTask = db.Default.Set<WCS_TASK>().Where(v => v.STATUS == TaskStatus.新建)
                                                           .Where(v => v.DEVICE == srm)
-                                                          .Where(v => v.TYPE == TaskType.倒库 )
+                                                          .Where(v => v.TYPE == TaskType.倒库)
                                                           .Where(v => !db.Default.Set<WCS_TASK>().Any(d => d.DEVICE == srm && d.STATUS == TaskStatus.堆垛机执行))
                                                           .Where(v => groupList.Contains(v.SRMSTATION)) //站台必须可用
                                                           .ToList();
@@ -282,9 +281,8 @@ namespace WCS.Service.Works.SRM
                                 var fork = srmDevice.GetFork(item, i);
                                 //获取站台及下一个地址
                                 task.GetSrmStationAndaddNext(fork);
-                                var msg = "";
-                                msg = fork == SrmFork.货叉1 ? $"状态由[{oldTaskStatus}]变更为[{task.STATUS}][{srmDevice.Data.SLine_1}-{srmDevice.Data.SCol_1}-{srmDevice.Data.SLayer_1}][{srmDevice.Data.ELine_1}][{srmDevice.Data.VoucherNo_1}]" : $"状态由[{oldTaskStatus}]变更为[{task.STATUS}][{srmDevice.Data.SLine_2}-{srmDevice.Data.SCol_2}-{srmDevice.Data.SLayer_2}][{srmDevice.Data.ELine_2}][{srmDevice.Data.VoucherNo_2}]";
-                                task.CreateStatusLog(db,msg, this.GetType());
+
+                                task.CreateStatusLog(db, "堆垛机开始执行出库", this.GetType());
                                 item.SRMSTATION = task.SRMSTATION;
                                 finishTaskList.Add(new FinishTaskList<SrmFork, Task>(fork, item));
                             }
@@ -365,7 +363,7 @@ namespace WCS.Service.Works.SRM
                             task.DEVICE = deviceCode;
                             db.Default.SaveChanges();
                             Uploader.Upload(db);
-                            task.CreateStatusLog(db,$"状态由[{oldTaskStatus}]变更为[{task.STATUS}]", this.GetType());
+                            task.CreateStatusLog(db, $"状态由[{oldTaskStatus}]变更为[{task.STATUS}]", this.GetType());
 
                             if (addFrom[2].ToShort().OddNumberOrEven())
                             {
@@ -423,13 +421,12 @@ namespace WCS.Service.Works.SRM
                                                .OrderByDescending(v => v.Entity.CODE)
                                                .ToArray();
                     var finishTaskList = new List<FinishTaskList<int>>(); //成功分配货位的任务
-                                                                          //取巷道
+                    //检测有效任务数与实际任务是是否相等
+                    var validDev = devise.Where(v => v.Data2.Tasknum > 10000 && v.Data2.Status.HasFlag(IstationStatus.光电状态) && !v.Data3.Status.HasFlag(StationStatus.运行状态位));
+                    var stationDevices = validDev as StationDevice[] ?? validDev.ToArray();
+                    if (!stationDevices.Any()) throw new DoException("无有效入库任务");
                     DB.Do(db =>
                     {
-                        //检测有效任务数与实际任务是是否相等
-                        var validDev = devise.Where(v => v.Data2.Tasknum > 10000 && v.Data2.Status.HasFlag(IstationStatus.光电状态) && !v.Data3.Status.HasFlag(StationStatus.运行状态位));
-                        var stationDevices = validDev as StationDevice[] ?? validDev.ToArray();
-                        if (!stationDevices.Any()) throw new DoException("无有效入库任务");
                         var tasking = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == stationDevices.First().Data2.Tasknum);
                         var taskList = db.Default.Set<WCS_TASK>().Count(v => v.TaskGroupKey == tasking.TaskGroupKey && v.TYPE == TaskType.入库);
                         if (stationDevices.Count() != taskList) throw new WarnException($"任务数量不匹配,设备-{stationDevices.Count()},WCS-{taskList}");
@@ -450,7 +447,7 @@ namespace WCS.Service.Works.SRM
                             task.ADDRTO = $"{loc.Row}-{loc.Colomn}-{loc.Layer}";
                             task.DEVICE = deviceCode;
                             task.TUNNEL = tunnel;
-                            task.CreateStatusLog(db,$"状态由{oldTask}变更至{task.STATUS}", this.GetType());
+                            task.CreateStatusLog(db, $"堆垛机开始执行入库任务", this.GetType());
                             finishTaskList.Add(new FinishTaskList<int>(task.ID, dev));
                         }
                         db.Default.SaveChanges();
@@ -627,9 +624,8 @@ namespace WCS.Service.Works.SRM
                             var fork = srmDevice.GetFork(item, i);
                             //获取站台及下一个地址
                             task.GetSrmStationAndaddNext(fork);
-                            var msg = "";
-                            msg = fork == SrmFork.货叉1 ? $"状态由[{oldTaskStatus}]变更为[{task.STATUS}][{srmDevice.Data.SLine_1}-{srmDevice.Data.SCol_1}-{srmDevice.Data.SLayer_1}][{srmDevice.Data.ELine_1}][{srmDevice.Data.VoucherNo_1}]" : $"状态由[{oldTaskStatus}]变更为[{task.STATUS}][{srmDevice.Data.SLine_2}-{srmDevice.Data.SCol_2}-{srmDevice.Data.SLayer_2}][{srmDevice.Data.ELine_2}][{srmDevice.Data.VoucherNo_2}]";
-                            task.CreateStatusLog(db,msg, this.GetType());
+
+                            task.CreateStatusLog(db, "堆垛机开始执行出库任务", this.GetType());
                             item.SRMSTATION = task.SRMSTATION;
                             finishTaskList.Add(new FinishTaskList<SrmFork, Task>(fork, item));
                         }