移植后台关灯机制 超时退出模式关灯,灯状态不对的恢复

This commit is contained in:
hehaibing-1996
2024-05-29 14:23:01 +08:00
parent 4958c58706
commit d1914bb2d1
10 changed files with 233 additions and 30 deletions

View File

@ -1,10 +1,12 @@
using SqlSugar;
using WCS.BLL.Config;
using WCS.BLL.DbModels;
using WCS.BLL.HardWare;
using WCS.BLL.Tool;
using WCS.DAL;
using WCS.DAL.Db;
using WCS.DAL.Db.AuthDb;
using WCS.DAL.DbModels;
using WCS.Model;
using WCS.Model.ApiModel.InOutRecord;
using WCS.Model.ApiModel.MXBackgroundThread;
@ -117,7 +119,54 @@ namespace WCS.BLL.Manager
#endregion
#region 退
Task.Run(() =>
{
while (true)
{
//每10s一次
Thread.Sleep(10000);
try
{
#region
var inStoreShelf = ShelfManager.Shelves.Where(t => t.CurrentMode == Mode.)
.Where(t => DateTime.Now - t.SetCurrentModeTime >= TimeSpan.FromMinutes(3))
.ToList();
foreach (var shelf in inStoreShelf)
{
shelf.GoOutInstore();
Logs.Write($"【定时任务:定时退出模式】货架【{shelf.ShelfCode}】超时3min未退出入库模式系统后台自动退出");
}
#endregion
#region
//出库超过n分钟自动进入待机模式
var outStoreShelf = ShelfManager.Shelves.Where(t => t.CurrentMode == Mode.)
.Where(t => DateTime.Now - t.SetCurrentModeTime >= TimeSpan.FromMinutes(5))
.ToList();
foreach (var shelf in outStoreShelf)
{
shelf.GoOutOutstore();
Logs.Write($"【定时任务:定时退出模式】货架【{shelf.ShelfCode}】超时5min未退出出库模式系统后台自动退出");
}
#endregion
#region
var stockTakingShelf = ShelfManager.Shelves.Where(t => t.CurrentMode == Mode.)
.Where(t => DateTime.Now - t.SetCurrentModeTime >= TimeSpan.FromMinutes(5))
.ToList();
foreach (var shelf in stockTakingShelf)
{
shelf.GoOutStocktaking();
Logs.Write($"【定时任务:定时退出模式】货架【{shelf.ShelfCode}】超时5min未退出盘点模式系统后台自动退出");
}
#endregion
}
catch (Exception e)
{
Logs.Write("【定时任务:定时退出模式】" + e.Message,LogsType.Info);
}
}
});
#endregion
#region
@ -212,7 +261,64 @@ namespace WCS.BLL.Manager
});
#endregion
#region
#region
//判断灯颜色和模式是否对应
Task.Run(() =>
{
while (true)
{
//间隔5秒查询一次
Thread.Sleep(5000);
try
{
//待机模式未关灯
var shelves = ShelfManager.Shelves.Where(t => t.CurrentMode == Mode. && t.LightColor != WarningLight.LightColorEnum.)
.Where(t => t.SetCurrentModeTime < DateTime.Now.AddSeconds(-5))
.ToList();
foreach (var shelf in shelves)
{
try
{
if (shelf is SmartShelf)
{
var smartShelf = (SmartShelf)shelf;
smartShelf?.WarningLight.CloseLight(smartShelf.TcpCleint);
Logs.Write($"【定时任务】:监测警示灯关灯机制,关【{shelf.ShelfCode}】灯发送指令成功!");
}
}
catch (Exception ex)
{
Logs.Write($"【定时任务】:监测警示灯关灯机制,关【{shelf.ShelfCode}】灯发生异常" + ex.Message);
}
}
//出库模式未亮灯
var outShelves = ShelfManager.Shelves.Where(t => t.CurrentMode == Mode. && t.LightColor == WarningLight.LightColorEnum.)
.Where(t => t.SetCurrentModeTime < DateTime.Now.AddSeconds(-5))
.ToList();
foreach (var shelf in outShelves)
{
try
{
if (shelf is SmartShelf)
{
var smartShelf = (SmartShelf)shelf;
smartShelf?.WarningLight.GreenLight(smartShelf.TcpCleint);
Logs.Write($"【定时任务】:监测警示灯关灯机制,出库开灯【{shelf.ShelfCode}】发送指令成功!");
}
}
catch (Exception ex)
{
Logs.Write($"【定时任务】:监测警示灯关灯机制,出库开灯【{shelf.ShelfCode}】发生异常" + ex.Message);
}
}
}
catch (Exception ex)
{
Logs.Write("【定时任务】:监测警示灯关灯机制发生异常" + ex.Message);
}
}
});
#endregion
}