|
using HslCommunication.WebSocket;
|
using SqlSugar;
|
using WIDESEAWCS_Core.Helper;
|
using WIDESEAWCS_Core.Seed;
|
using WIDESEAWCS_DTO.BasicInfo;
|
using WIDESEAWCS_Model.Models;
|
using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
|
|
namespace WIDESEAWCS_Server.HostedService
|
{
|
public class WarehouseHostedService : IHostedService
|
{
|
private readonly ICacheService _cacheService;
|
private readonly DBContext _dbContext;
|
//private readonly WebSocketServer _webSocketServer;
|
|
public WarehouseHostedService(ICacheService cacheService, DBContext dbContext/*, WebSocketServer webSocketServer*/)
|
{
|
_cacheService = cacheService;
|
_dbContext = dbContext;
|
//_webSocketServer = webSocketServer;
|
}
|
|
public Task StartAsync(CancellationToken cancellationToken)
|
{
|
try
|
{
|
string connStr = AppSettings.GetValue("WMSConnectionStrings");
|
if (string.IsNullOrEmpty(connStr))
|
{
|
throw new Exception("WMS连接字符串错误");
|
}
|
SqlSugarClient sugarClient = new(new ConnectionConfig()
|
{
|
ConnectionString = connStr,
|
IsAutoCloseConnection = true,
|
DbType = DbType.SqlServer
|
});
|
|
List<Dt_Warehouse> warehouses = sugarClient.Queryable<Dt_Warehouse>().ToList();
|
|
_dbContext.Db.Deleteable<Dt_Warehouse>().ExecuteCommand();
|
|
_dbContext.Db.Insertable(warehouses).ExecuteCommand();
|
|
List<Dt_ApiInfo> apiInfos = _dbContext.Db.Queryable<Dt_ApiInfo>().ToList();
|
|
List<Dt_WarehouseDevice> warehouseDevices = _dbContext.Db.Queryable<Dt_WarehouseDevice>().ToList();
|
|
_cacheService.AddOrUpdate(nameof(Dt_WarehouseDevice), warehouseDevices);
|
|
_cacheService.AddOrUpdate(nameof(apiInfos), apiInfos);
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.ToString());
|
}
|
return Task.CompletedTask;
|
}
|
|
public Task StopAsync(CancellationToken cancellationToken)
|
{
|
return Task.CompletedTask;
|
}
|
}
|
}
|