|
@@ -1,4 +1,5 @@
|
|
|
-using PlcSiemens.Core.Extension;
|
|
|
+using NetTaste;
|
|
|
+using PlcSiemens.Core.Extension;
|
|
|
using ServiceCenter.Extensions;
|
|
|
using ServiceCenter.Logs;
|
|
|
using ServiceCenter.SqlSugars;
|
|
@@ -69,14 +70,27 @@ namespace WCS.WorkEngineering.Systems
|
|
|
{
|
|
|
var db = _db.Default;
|
|
|
var taskInfo = db.Queryable<WCS_TaskInfo>().UpdLock().First(v => v.ID == obj.Data2.TaskNumber && v.Status < TaskStatus.FinishOfShunt && !v.BarCode.Contains("Error"));
|
|
|
- if (obj.Data2.TaskNumber == 1)
|
|
|
+ if (obj.Data2.TaskNumber == 1 || obj.Data2.TaskNumber == 3 || obj.Data2.TaskNumber == 2)
|
|
|
{
|
|
|
var type = goodsType.ToString();
|
|
|
//找到一条起点是当前位置且状态小于2的任务
|
|
|
taskInfo = db.Queryable<WCS_TaskInfo>().UpdLock().OrderBy(x => x.AddTime).First(x => x.AddrFrom == obj.Entity.Code && x.BarCode.Contains("Error") && x.AddrNext == null && x.GoodsType == goodsType);
|
|
|
if (taskInfo == null)
|
|
|
{
|
|
|
- WmsApi.PalletizingCreateseErrorTasks(obj.Entity.Code, type);
|
|
|
+ if (obj.Data2.TaskNumber == 1)
|
|
|
+ {
|
|
|
+ WmsApi.PalletizingCreateseErrorTasks(obj.Entity.Code, type);
|
|
|
+ }
|
|
|
+ //bc质量
|
|
|
+ else if (obj.Data2.TaskNumber == 3)
|
|
|
+ {
|
|
|
+ WmsApi.PalletizingCreateseErrorTasks(obj.Entity.Code, type, 3);
|
|
|
+ }
|
|
|
+ //南北流错
|
|
|
+ else if (obj.Data2.TaskNumber == 2)
|
|
|
+ {
|
|
|
+ WmsApi.PalletizingCreateseErrorTasks(obj.Entity.Code, type, 2);
|
|
|
+ }
|
|
|
return;
|
|
|
}
|
|
|
if (taskInfo.Status == TaskStatus.NewBuild)
|
|
@@ -90,14 +104,23 @@ namespace WCS.WorkEngineering.Systems
|
|
|
World.Log($"未找到对应的WCS任务{obj.Data2.TaskNumber}", LogLevelEnum.Mid);
|
|
|
return;
|
|
|
}
|
|
|
- else if (taskInfo.AddTime < DateTime.Now.AddHours(-12) && obj.Data2.TaskNumber == taskInfo.ID)
|
|
|
+ else if (taskInfo.AddTime < DateTime.Now.AddHours(-12) && obj.Data2.TaskNumber == taskInfo.ID)
|
|
|
{
|
|
|
obj.Data.TaskNumber = 1;
|
|
|
obj.Data.GoodsEnd = obj.Entity.Code.ToShort();
|
|
|
obj.Data.VoucherNo++;
|
|
|
- World.Log($"执行记录:任务号[{taskInfo.ID}]-[{obj.Data.TaskNumber}]-[{obj.Data.VoucherNo}]");
|
|
|
+ World.Log($"超时执行记录:任务号[{taskInfo.ID}]-[{obj.Data.TaskNumber}]-[{obj.Data.VoucherNo}]");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else if (taskInfo.Grade != null &&(taskInfo.Grade.ToUpper() == "B" || taskInfo.Grade.ToUpper() == "C") && obj.Data2.TaskNumber == taskInfo.ID)
|
|
|
+ {
|
|
|
+ obj.Data.TaskNumber = 3;
|
|
|
+ obj.Data.GoodsEnd = obj.Entity.Code.ToShort();
|
|
|
+ obj.Data.VoucherNo++;
|
|
|
+ World.Log($"BC执行记录:任务号[{taskInfo.ID}]-[{obj.Data.TaskNumber}]-[{obj.Data.VoucherNo}]");
|
|
|
return;
|
|
|
}
|
|
|
+
|
|
|
|
|
|
if (!taskInfo.BarCode.Contains("Error"))
|
|
|
{
|
|
@@ -125,27 +148,51 @@ namespace WCS.WorkEngineering.Systems
|
|
|
switch (obj.Entity.Code)
|
|
|
{
|
|
|
case "418":
|
|
|
- if (taskInfo.WarehouseCode != "1N") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ if (taskInfo.WarehouseCode != "1N") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ {
|
|
|
+ WriteInfo(obj,taskInfo);
|
|
|
+ return;
|
|
|
+ }
|
|
|
break;
|
|
|
|
|
|
case "618":
|
|
|
- if (taskInfo.WarehouseCode != "1S") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ if (taskInfo.WarehouseCode != "1S") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ {
|
|
|
+ WriteInfo(obj, taskInfo);
|
|
|
+ return;
|
|
|
+ }
|
|
|
break;
|
|
|
|
|
|
case "818":
|
|
|
- if (taskInfo.WarehouseCode != "2N") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ if (taskInfo.WarehouseCode != "2N") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ {
|
|
|
+ WriteInfo(obj, taskInfo);
|
|
|
+ return;
|
|
|
+ }
|
|
|
break;
|
|
|
|
|
|
case "1018":
|
|
|
- if (taskInfo.WarehouseCode != "2S") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ if (taskInfo.WarehouseCode != "2S") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ {
|
|
|
+ WriteInfo(obj, taskInfo);
|
|
|
+ return;
|
|
|
+ }
|
|
|
break;
|
|
|
|
|
|
case "1218":
|
|
|
- if (taskInfo.WarehouseCode != "3N") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ if (taskInfo.WarehouseCode != "3N") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ {
|
|
|
+ WriteInfo(obj, taskInfo);
|
|
|
+ return;
|
|
|
+ }
|
|
|
break;
|
|
|
|
|
|
case "1418":
|
|
|
- if (taskInfo.WarehouseCode != "3S") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ if (taskInfo.WarehouseCode != "3S") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
|
|
|
+ {
|
|
|
+ WriteInfo(obj, taskInfo);
|
|
|
+ return;
|
|
|
+ }
|
|
|
break;
|
|
|
};
|
|
|
|
|
@@ -202,6 +249,14 @@ namespace WCS.WorkEngineering.Systems
|
|
|
World.Log($"执行记录:任务号[{taskId}]-[{obj.Data.VoucherNo}]");
|
|
|
}
|
|
|
|
|
|
+ private void WriteInfo(Device<IStation520, IStation521, IStation523, IStation91> device, WCS_TaskInfo task)
|
|
|
+ {
|
|
|
+ device.Data.TaskNumber = 2;
|
|
|
+ device.Data.GoodsEnd = device.Entity.Code.ToShort();
|
|
|
+ device.Data.VoucherNo++;
|
|
|
+ World.Log($"南北流错执行记录:任务号[{task.ID}]-[{device.Data.TaskNumber}]-[{device.Data.VoucherNo}]");
|
|
|
+ }
|
|
|
+
|
|
|
public override bool Select(Device dev)
|
|
|
{
|
|
|
return dev.Code is "418" or "618" or "818" or "1018" or "1218" or "1418";
|