|
@@ -1,6 +1,5 @@
|
|
|
using DBHelper;
|
|
|
using System.Collections.Generic;
|
|
|
-using System.Diagnostics;
|
|
|
using System.Linq;
|
|
|
using WCS.Core;
|
|
|
using WCS.Entity;
|
|
@@ -23,27 +22,27 @@ namespace WCS.Service.Works.Station
|
|
|
|
|
|
//成功处理的任务
|
|
|
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.堆垛机放货完成请求目标地址)
|
|
|
+ {
|
|
|
+ InfoLog.INFO_INFO($"{stationDeviceGroup.Entity.CODE}无请求-堆垛机放货完成请求--4");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //没有光电
|
|
|
+ if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
{
|
|
|
- //没有请求
|
|
|
- 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_WarnDb($"{dev.Entity.CODE}有请求无光电", stationDeviceGroup.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
+ continue;
|
|
|
}
|
|
|
- if (!devise.Any()) return;
|
|
|
+ devise.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
|
|
|
+ }
|
|
|
+ if (!devise.Any()) return;
|
|
|
+
|
|
|
+ DB.Do(db =>
|
|
|
+ {
|
|
|
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("无任务");
|
|
@@ -89,36 +88,33 @@ namespace WCS.Service.Works.Station
|
|
|
{
|
|
|
protected override void Do(StationDeviceGroup obj)
|
|
|
{
|
|
|
- var timer = new Stopwatch();
|
|
|
- timer.Start();
|
|
|
-
|
|
|
obj.EX(stationDeviceGroup =>
|
|
|
{
|
|
|
//当前组有一个运行的设备就停止执行
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) throw new DoException("设备运行中");
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.光电状态))) throw new DoException("设备停止运行,但有光电");
|
|
|
//此处逻辑为货物离开后报完成
|
|
|
+ var devise = new List<FinishTaskList<string>>();
|
|
|
|
|
|
- //成功处理的任务
|
|
|
- var finishTaskList = new List<FinishTaskList<int>>();
|
|
|
- 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}无请求-月台出库口任务完成--3");
|
|
|
- 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}无请求-月台出库口任务完成--3");
|
|
|
+ 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 =>
|
|
|
+ {
|
|
|
foreach (var dev in devise)
|
|
|
{
|
|
|
var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == dev.Station.Data2.Tasknum);
|
|
@@ -139,10 +135,6 @@ namespace WCS.Service.Works.Station
|
|
|
finish.Station.Data.CmdType = IstationCmdType.月台出库口任务完成;
|
|
|
finish.Station.Data.VoucherNo++;
|
|
|
}
|
|
|
-
|
|
|
- if (!finishTaskList.Any()) return;
|
|
|
- timer.Stop();
|
|
|
- InfoLog.INFO_TIMING($"{stationDeviceGroup.Entity.CODE}--处理请求到反馈完成信号耗时{timer.ElapsedMilliseconds}");
|
|
|
});
|
|
|
});
|
|
|
}
|
|
@@ -165,31 +157,31 @@ namespace WCS.Service.Works.Station
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) throw new DoException("运行中");
|
|
|
if (stationDeviceGroup.Items.Any(v => v.Data.VoucherNo != v.Data2.VoucherNo)) throw new WarnException($"等待任务执行--凭证号不一致");
|
|
|
|
|
|
- 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}无请求-分配目标地址--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>()));
|
|
|
+ }
|
|
|
|
|
|
+ DB.Do(db =>
|
|
|
+ {
|
|
|
foreach (var dev in devise)
|
|
|
{
|
|
|
var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == dev.Station.Data2.Tasknum) ?? throw new WarnException("无任务");
|