64 lines
2.2 KiB
C#
64 lines
2.2 KiB
C#
using CirculateTool;
|
|
using WcsMain.Business.Convey.HistoryDataHandler;
|
|
using WcsMain.DataBase.Dao;
|
|
using WcsMain.DataBase.TableEntity;
|
|
using WcsMain.DataService;
|
|
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)
|
|
{
|
|
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 });
|
|
return true;
|
|
}
|
|
List<Task> tasks = [];
|
|
foreach(AppRouterMethod router in routers)
|
|
{
|
|
(var readErrText, var scanOk, var code) = conveyOperation.ReadScanInfo(router.Area);
|
|
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);
|
|
if(!string.IsNullOrEmpty(clearErrText))
|
|
{
|
|
ConsoleLog.Exception($"【异常】扫码:{router.Area} 清理读码信号异常,信息:{clearErrText}");
|
|
}
|
|
scanRecordDao.Insert(new AppScanRecord() { RecordId = dataBaseData.GetNewUUID2(), ScanId = router.Area, Code = code, ScanTime = DateTime.Now });
|
|
}));
|
|
}
|
|
Task.WaitAll([.. tasks]);
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|