|
@@ -26,29 +26,30 @@ namespace WCS.Service.Works.Station
|
|
|
{
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data.VoucherNo != v.Data2.VoucherNo)) throw new WarnException($"等待执行任务,凭证号不一致");
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) throw new DoException("运行中");
|
|
|
- //成功处理的任务
|
|
|
- var finishTaskList = new List<FinishTaskList<int>>();
|
|
|
|
|
|
- DB.Do(db =>
|
|
|
+ var devise = new List<FinishTaskList<string>>();
|
|
|
+ foreach (var dev in stationDeviceGroup.Items)
|
|
|
{
|
|
|
- var devise = new List<FinishTaskList<string>>();
|
|
|
- foreach (var dev in stationDeviceGroup.Items)
|
|
|
+ //没有请求
|
|
|
+ if (dev.Data2.Request != IstationRequest.堆垛机放货完成请求目标地址)
|
|
|
{
|
|
|
- //没有请求
|
|
|
- if (dev.Data2.Request != IstationRequest.堆垛机放货完成请求目标地址)
|
|
|
- {
|
|
|
- InfoLog.INFO_INFO($"{stationDeviceGroup.Entity.CODE}无请求-堆垛机放货完成请求--4");
|
|
|
- continue;
|
|
|
- }
|
|
|
- //没有光电
|
|
|
- if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
- {
|
|
|
- InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
- continue;
|
|
|
- };
|
|
|
- devise.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
|
|
|
+ InfoLog.INFO_INFO($"{stationDeviceGroup.Entity.CODE}无请求-堆垛机放货完成请求--4");
|
|
|
+ continue;
|
|
|
}
|
|
|
+ //没有光电
|
|
|
+ if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
+ {
|
|
|
+ InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
+ continue;
|
|
|
+ };
|
|
|
+ devise.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
|
|
|
+ }
|
|
|
|
|
|
+ //成功处理的任务
|
|
|
+ var finishTaskList = new List<FinishTaskList<int>>();
|
|
|
+
|
|
|
+ DB.Do(db =>
|
|
|
+ {
|
|
|
foreach (var dev in devise)
|
|
|
{
|
|
|
var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => (v.TYPE == TaskType.出库 || v.TYPE == TaskType.倒库) && v.SRMSTATION == dev.FinishCode && v.STATUS == TaskStatus.堆垛机完成) ?? throw new WarnException("无任务");
|
|
@@ -56,7 +57,7 @@ namespace WCS.Service.Works.Station
|
|
|
if (tasks.Any(v => v.STATUS != TaskStatus.堆垛机完成 && v.STATUS != TaskStatus.执行中)) throw new WarnException("任务异常,同组任务状态不为堆垛机完成或执行中");
|
|
|
|
|
|
task.STATUS = TaskStatus.执行中;
|
|
|
- task.CreateStatusLogAsync($"状态由[{TaskStatus.堆垛机完成}]变更为[{task.STATUS}]-{stationDeviceGroup.Entity.CODE}", this.GetType());
|
|
|
+ task.CreateStatusLog(db,$"堆垛机放货点分配目标地址{task.ADDRNEXT}", this.GetType());
|
|
|
finishTaskList.Add(new FinishTaskList<int>(task.ID, dev.Station));
|
|
|
}
|
|
|
db.Default.SaveChanges();
|
|
@@ -104,31 +105,30 @@ namespace WCS.Service.Works.Station
|
|
|
ProtocolProxy.YG150Redis.Set(key, key);
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data.VoucherNo != v.Data2.VoucherNo)) throw new WarnException("等待执行任务,凭证号不一致");
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) throw new DoException("运行中");
|
|
|
-
|
|
|
+ var devise = new List<FinishTaskList<string>>();
|
|
|
+ foreach (var dev in stationDeviceGroup.Items)
|
|
|
+ {
|
|
|
+ if (dev.Data2.Request != IstationRequest.请求分配目标地址)
|
|
|
+ {
|
|
|
+ InfoLog.INFO_INFO($"{stationDeviceGroup.Entity.CODE}无请求-分配目标地址--2");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
+ {
|
|
|
+ InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (dev.Data2.Tasknum < 10000)
|
|
|
+ {
|
|
|
+ InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求有光电无任务", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ devise.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
|
|
|
+ }
|
|
|
var finishTaskList = new List<FinishTaskList<int>>();
|
|
|
|
|
|
DB.Do(db =>
|
|
|
{
|
|
|
- var devise = new List<FinishTaskList<string>>();
|
|
|
- foreach (var dev in stationDeviceGroup.Items)
|
|
|
- {
|
|
|
- if (dev.Data2.Request != IstationRequest.请求分配目标地址)
|
|
|
- {
|
|
|
- InfoLog.INFO_INFO($"{stationDeviceGroup.Entity.CODE}无请求-分配目标地址--2");
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
- {
|
|
|
- InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (dev.Data2.Tasknum < 10000)
|
|
|
- {
|
|
|
- InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求有光电无任务", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
- continue;
|
|
|
- }
|
|
|
- devise.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
|
|
|
- }
|
|
|
//验证总数
|
|
|
if (db.Default.Set<WCS_TASK>().Count(v => v.STATUS < TaskStatus.已完成 && v.ADDRNEXT == "G1") >= 3) throw new WarnException("总数已达3,流量管控");
|
|
|
|
|
@@ -149,7 +149,7 @@ namespace WCS.Service.Works.Station
|
|
|
{
|
|
|
task.ADDRNEXT = "G1";
|
|
|
}
|
|
|
- task.CreateStatusLogAsync($"分配目标地址{task.ADDRNEXT}", this.GetType());
|
|
|
+ task.CreateStatusLog(db,$"涂布出库分配出库口{task.ADDRNEXT}", this.GetType());
|
|
|
finishTaskList.Add(new FinishTaskList<int>(task.ID, dev.Station));
|
|
|
}
|
|
|
db.Default.SaveChanges();
|
|
@@ -200,43 +200,44 @@ namespace WCS.Service.Works.Station
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data2.VoucherNo != v.Data.VoucherNo)) throw new WarnException("凭证号不一致");
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) throw new DoException("设备运行中");
|
|
|
|
|
|
- //成功处理的任务
|
|
|
- var finishTaskList = new List<FinishTaskList<int>>();
|
|
|
+ var devise = new List<FinishTaskList<string>>();
|
|
|
|
|
|
- DB.Do(db =>
|
|
|
+ //获取需要执行的设备信息
|
|
|
+ foreach (var dev in stationDeviceGroup.Items)
|
|
|
{
|
|
|
- var devise = new List<FinishTaskList<string>>();
|
|
|
-
|
|
|
- //获取需要执行的设备信息
|
|
|
- foreach (var dev in stationDeviceGroup.Items)
|
|
|
+ if (!dev.Data3.Status.HasFlag(StationStatus.低位))
|
|
|
{
|
|
|
- if (!dev.Data3.Status.HasFlag(StationStatus.低位))
|
|
|
- {
|
|
|
- InfoLog.INFO_INFO($"{dev.Entity.CODE}--不在低位");
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
- {
|
|
|
- InfoLog.INFO_INFO($"{dev.Entity.CODE}--没有光电");
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (dev.Data2.Request != IstationRequest.请求分配目标地址)
|
|
|
- {
|
|
|
- InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有分配目标地址请求--2", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
- continue;
|
|
|
- };
|
|
|
- if (dev.Data2.Tasknum < 10000)
|
|
|
- {
|
|
|
- InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求没有任务号", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- devise.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
|
|
|
+ InfoLog.INFO_INFO($"{dev.Entity.CODE}--不在低位");
|
|
|
+ continue;
|
|
|
}
|
|
|
+ if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
+ {
|
|
|
+ InfoLog.INFO_INFO($"{dev.Entity.CODE}--没有光电");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (dev.Data2.Request != IstationRequest.请求分配目标地址)
|
|
|
+ {
|
|
|
+ InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有分配目标地址请求--2", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
+ continue;
|
|
|
+ };
|
|
|
+ if (dev.Data2.Tasknum < 10000)
|
|
|
+ {
|
|
|
+ InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求没有任务号", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ devise.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
|
|
|
+ }
|
|
|
|
|
|
- if (!devise.Any()) return; //无可执行任务
|
|
|
- //验证可执行任务数与有效任务数是否一致
|
|
|
- var taskIds = devise.Select(dev => dev.Station.Data2.Tasknum).ToList();
|
|
|
+ if (!devise.Any()) return; //无可执行任务
|
|
|
+ //验证可执行任务数与有效任务数是否一致
|
|
|
+ var taskIds = devise.Select(dev => dev.Station.Data2.Tasknum).ToList();
|
|
|
+
|
|
|
+ //成功处理的任务
|
|
|
+ var finishTaskList = new List<FinishTaskList<int>>();
|
|
|
+
|
|
|
+ DB.Do(db =>
|
|
|
+ {
|
|
|
var taskList = db.Default.Set<WCS_TASK>().Where(v => taskIds.Contains(v.ID)).ToList();
|
|
|
|
|
|
var task1 = taskList.FirstOrDefault();
|
|
@@ -272,7 +273,7 @@ namespace WCS.Service.Works.Station
|
|
|
}
|
|
|
|
|
|
task.ADDRNEXT = addNext;
|
|
|
- task.CreateStatusLogAsync($"状态由[{WCS.Entity.TaskStatus.堆垛机完成}]变更为[{task.STATUS}]-{stationDeviceGroup.Entity.CODE}", this.GetType());
|
|
|
+ task.CreateStatusLog(db,$"涂布出库分配AGV取货点{addNext}", this.GetType());
|
|
|
finishTaskList.Add(new FinishTaskList<int>(task.ID, dev.Station));
|
|
|
stationList.Add(new FinishTaskList<WCS_TASK>(task, dev.Station));
|
|
|
}
|
|
@@ -350,36 +351,35 @@ namespace WCS.Service.Works.Station
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data2.VoucherNo != v.Data.VoucherNo)) throw new WarnException("凭证号不一致");
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) throw new DoException("设备运行中");
|
|
|
|
|
|
- //成功处理的任务
|
|
|
+ var devise = new List<FinishTaskList<string>>();
|
|
|
|
|
|
- DB.Do(db =>
|
|
|
+ //获取需要执行的设备信息
|
|
|
+ foreach (var dev in stationDeviceGroup.Items)
|
|
|
{
|
|
|
- var devise = new List<FinishTaskList<string>>();
|
|
|
-
|
|
|
- //获取需要执行的设备信息
|
|
|
- foreach (var dev in stationDeviceGroup.Items)
|
|
|
+ if (dev.Data2.Request != IstationRequest.请求分配目标地址)
|
|
|
{
|
|
|
- if (dev.Data2.Request != IstationRequest.请求分配目标地址)
|
|
|
- {
|
|
|
- InfoLog.INFO_INFO($"{stationDeviceGroup.Entity.CODE}无请求-分配目标地址--2");
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
- {
|
|
|
- InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (dev.Data2.Tasknum < 10000)
|
|
|
- {
|
|
|
- InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求有光电无任务", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
- continue;
|
|
|
- }
|
|
|
- devise.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
|
|
|
+ InfoLog.INFO_INFO($"{stationDeviceGroup.Entity.CODE}无请求-分配目标地址--2");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
+ {
|
|
|
+ InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (dev.Data2.Tasknum < 10000)
|
|
|
+ {
|
|
|
+ InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求有光电无任务", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
+ continue;
|
|
|
}
|
|
|
+ devise.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
|
|
|
+ }
|
|
|
|
|
|
- if (!devise.Any()) return;//无可执行任务
|
|
|
- //验证可执行任务数与有效任务数是否一致
|
|
|
- var taskIds = devise.Select(dev => dev.Station.Data2.Tasknum).ToList();
|
|
|
+ if (!devise.Any()) return;//无可执行任务
|
|
|
+ //验证可执行任务数与有效任务数是否一致
|
|
|
+ var taskIds = devise.Select(dev => dev.Station.Data2.Tasknum).ToList();
|
|
|
+
|
|
|
+ DB.Do(db =>
|
|
|
+ {
|
|
|
var taskList = db.Default.Set<WCS_TASK>().Where(v => taskIds.Contains(v.ID)).ToList();
|
|
|
var taskCount = db.Default.Set<WCS_TASK>().Count(v => v.TaskGroupKey == taskList.FirstOrDefault().TaskGroupKey && v.TYPE == TaskType.出库);
|
|
|
|
|
@@ -481,6 +481,7 @@ namespace WCS.Service.Works.Station
|
|
|
FLOOR = 2
|
|
|
};
|
|
|
task.TaskGetSrmStation();
|
|
|
+ task.CreateStatusLog(db, $"创建任务", this.GetType());
|
|
|
db.Default.Set<WCS_TASK>().Add(task);
|
|
|
tasking.Status = AGVTaskStatus.确认;
|
|
|
tasking.UpdateTime = DateTime.Now;
|