|
@@ -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));
|
|
|
}
|