Files
wcs/WCS.WebApi/Program.cs
2025-03-10 10:15:58 +08:00

120 lines
4.4 KiB
C#

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Server.Kestrel.Core;
using System.Configuration;
using System.Net;
using System.Net.Http;
using System.Net.Sockets;
using System.Text;
using WCS.BLL.Config;
using WCS.BLL.DbModels;
using WCS.BLL.Manager;
using WCS.BLL.Services.IService;
using WCS.BLL.Services.Service;
using WCS.WebApi;
using WCS.WebApi.Controllers;
namespace WebApi
{
public class Program
{
public static void Main(string[] args)
{
try
{
//初始化websocket
WebSoceketManager.InitWebSocket();
//初始化数据库
DbInit.InitDb();
//初始化配置文件
LocalFile.SaveConfig();
//初始化TCP连接
TCPClientManager.InitTcpClient();
//初始化货架缓存信息
ShelfManager.InitShelves();
//报警信息重发线程
WarningManager.StartWarningMessageThread();
//海陵威后台监控硬件状态线程 超时退出模式、监控关灯等机制
MXBackgroundThread.InitBackgroundThread();
//盟讯公司后台线程
if (LocalFile.Config.IsMx)
{
MXBackgroundThread.InitBackgroundThread();
var str = string.Empty;
MXBackgroundThread.SendDingDingMsg($"【{LocalFile.Config.GroupName}】后台服务启动成功", new List<string> { "104379" }, ref str);
}
//清理后台文本日志
Task.Run(async () =>
{
while (true)
{
try
{
//清理三个月以前的日志
WCS.BLL.Logs.Clear(TimeSpan.FromDays(92));
//每一天执行一次
await Task.Delay(1000 * 60 * 60 * 24);
}
catch (Exception ex)
{
}
}
});
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddScoped<IInstoreService, InstoreService>();
builder.Services.AddScoped<IOutstoreService, OutstoreService>();
builder.Services.AddScoped<IHomerService, HomerService>();
builder.Services.AddScoped<IUserService, UserService>();
builder.Services.AddScoped<IInterfaceRecordService, InterfaceRecordService>();
builder.Services.AddScoped<IMatBaseInfoService, MatBaseInfoService>();
builder.Services.AddScoped<IMatInventoryDetailService, MatInventoryDetailService>();
builder.Services.AddScoped<IStoreInfoService, StoreInfoService>();
builder.Services.AddScoped<IStockTakingService, StockTakingService>();
builder.Services.AddScoped<ISelfCheckService, SelfCheckService>();
builder.Services.AddScoped<IWarningService, WarningService>();
builder.Services.AddScoped<IInOutRecordService, InOutRecordService>();
builder.Services.AddScoped<IUploadService, UploadService>();
builder.Services.AddScoped<ISingleLightService, SingleLightService>();
builder.Services.AddScoped<IMXL4Service, MXL4Service>();
//生成物料码、生成单据码采用单例模式
builder.Services.AddSingleton<IGenerateService, GenerateService>();
var app = builder.Build();
app.UseMiddleware<RequestResponseLoggingMiddleware>();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseAuthorization();
app.MapControllers();
app.Run("http://0.0.0.0:8888");//0.0.0.0表示仅接收ipv4
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}