wcs_server_kate_suzhou/WcsMain/Business/CirculationTask/Convey/ReadScanCode.cs

64 lines
2.2 KiB
C#
Raw Normal View History

2024-06-12 07:29:44 +08:00
using CirculateTool;
using WcsMain.Business.Convey.HistoryDataHandler;
using WcsMain.DataBase.Dao;
using WcsMain.DataBase.TableEntity;
using WcsMain.DataService;
2024-06-12 07:29:44 +08:00
using WcsMain.Enum.General;
using WcsMain.EquipOperation.Convey;
namespace WcsMain.Business.CirculationTask.Convey;
/// <summary>
/// 箱式线读取扫码信息
/// </summary>
[Circulation]
public class ReadScanCode(AppRouterMethodDao routerMethodDao, ConveyOperation conveyOperation, HistoryConveyDataHander historyConveyDataHander, AppScanRecordDao scanRecordDao, DataBaseData dataBaseData)
2024-06-12 07:29:44 +08:00
{
private static List<AppRouterMethod>? routers;
/// <summary>
/// 读取扫码数据
/// </summary>
/// <returns></returns>
[Circulation("读取扫码数据", 300)]
public bool ReadData()
{
if(routers == default)
{
routers = routerMethodDao.Query(new AppRouterMethod() { RouterStatus = (int)TrueFalseEnum.TRUE });
2024-06-12 07:29:44 +08:00
return true;
}
List<Task> tasks = [];
foreach(AppRouterMethod router in routers)
{
(var readErrText, var scanOk, var code) = conveyOperation.ReadScanInfo(router.Area);
2024-06-12 07:29:44 +08:00
if(!string.IsNullOrEmpty(readErrText))
{
ConsoleLog.Exception($"【异常】读取扫码:{router.Area} 数据异常,信息:{readErrText}");
Thread.Sleep(5000);
return true; // 不读了,估计网断了
}
if(scanOk != (int)TrueFalseEnum.TRUE) { continue; }
tasks.Add(Task.Factory.StartNew(() =>
{
historyConveyDataHander.GetData("-", code, router.Area ?? "");
string clearErrText = conveyOperation.ClearScanStatus(router.Area);
2024-06-12 07:29:44 +08:00
if(!string.IsNullOrEmpty(clearErrText))
{
ConsoleLog.Exception($"【异常】扫码:{router.Area} 清理读码信号异常,信息:{clearErrText}");
}
scanRecordDao.Insert(new AppScanRecord() { RecordId = dataBaseData.GetNewUUID2(), ScanId = router.Area, Code = code, ScanTime = DateTime.Now });
2024-06-12 07:29:44 +08:00
}));
}
Task.WaitAll([.. tasks]);
return true;
}
}