123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- using Autofac;
- using Autofac.Core;
- using Autofac.Extensions.DependencyInjection;
- using AutoMapper;
- using CSRedis;
- using MessagePack.Resolvers;
- using MessagePack;
- using Microsoft.OpenApi.Models;
- using SqlSugar;
- using Wms.Screen.DataService.Impl;
- using Wms.Screen.Service.Mapper;
- using Wms.Screen.SqlSugar;
- using zt.screen.api;
- using zt.screen.api.Extensions;
- using Wms.Screen.Dto.ZhongTian.Response;
- using System.Configuration;
- var builder = WebApplication.CreateBuilder(args);
- // Add services to the container.
- builder.Services.AddControllers();
- builder.Services.AddEndpointsApiExplorer();
- //builder.Services.AddCors(options =>
- //{
- // options.AddPolicy(name: "cors", builders => builders.AllowAnyOrigin().AllowAnyHeader().WithMethods("GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS").WithExposedHeaders("X-Pagination"));
- //})
- builder.Services.Configure<Wms.Screen.Dto.ZhongTian.MySettings>(builder.Configuration.GetSection("MySettings"));
- builder.Services.AddCors(policy =>
- {
- policy.AddPolicy("CorsPolicy", opt => opt
- .AllowAnyOrigin()
- .AllowAnyHeader()
- .AllowAnyMethod()
- .WithExposedHeaders("X-Pagination"));
- });
- builder.Services.AddSwaggerGen(c =>
- {
- c.SwaggerDoc("v1", new OpenApiInfo
- {
- Title = "看板接口文档",
- Version = "1.0",
- Description = "看板接口文档"
- });
- var file = Path.Combine(AppContext.BaseDirectory, "Wms.Screen.Dto.xml"); // xml文档绝对路径
- var file1 = Path.Combine(AppContext.BaseDirectory, "zt.screen.api.xml");
- var path = Path.Combine(AppContext.BaseDirectory, file);
- var path1 = Path.Combine(AppContext.BaseDirectory, file1);
- c.IncludeXmlComments(path, true); // true : 显示dto注释
- c.IncludeXmlComments(path1, true); // true : 显示控制器层注释
- c.OrderActionsBy(o => o.RelativePath);
- });
- builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
- builder.Host.ConfigureContainer<ContainerBuilder>(containerBuilder =>
- {
- containerBuilder.RegisterModule(new AutofacModuleRegister());
- });
- var sqlSugarConfig = SqlSugarConfig.GetConnectionString(builder.Configuration);
- builder.Services.AddSqlSugarClient<SqlSugarClient>(config =>
- {
- config.ConnectionString = sqlSugarConfig.Item2;
- config.DbType = sqlSugarConfig.Item1;
- config.IsAutoCloseConnection = true;
- config.InitKeyType = InitKeyType.Attribute;
- //config.IsShardSameThread = true;
- });
- builder.Services.AddHostedService<HostedServiceExtension>();
- RedisHelper.Initialization(new CSRedisClient(builder.Configuration["CSRedisConnectString"].ToString()));
- builder.Services.AddAutoMapper(typeof(MyProfile));
- if (builder.Configuration["CSRedisConnectString2"] != null && !string.IsNullOrWhiteSpace(builder.Configuration["CSRedisConnectString2"].ToString()))
- {
- CSRedisClient CSRedisClient = new CSRedisClient(builder.Configuration["CSRedisConnectString2"].ToString());
- builder.Services.AddSingleton(CSRedisClient);
- builder.Services.AddSingleton(provider =>
- {
- MessagePackSerializer.DefaultOptions = StandardResolver.Options.WithCompression(MessagePackCompression.Lz4Block);
-
- return
- new FreeRedis.RedisClient(builder.Configuration["CSRedisConnectString2"].ToString())
- {
- Serialize = obj =>
- {
- var bytes = MessagePackSerializer.Serialize(obj);
- return bytes;
- },
- DeserializeRaw = (bytes, type) =>
- {
- var obj = MessagePackSerializer.Deserialize(type, bytes);
- return obj;
- }
- };
- });
- }
- //分拣库
- Dictionary<string, RangeChecker> dicRangeChecker = new Dictionary<string, RangeChecker>();
- var first = new RangeChecker();
- first.AddRange(new IntRange(38, 38));
- first.AddRange(new IntRange(138, 138));
- first.AddRange(new IntRange(1, 22));
- first.AddRange(new IntRange(101, 122));
- first.AddRange(new IntRange(301, 317));
- first.AddRange(new IntRange(401, 599));
- first.AddRange(new IntRange(601, 799));
- first.AddRange(new IntRange(1601, 1620));
- first.AddRange(new IntRange(1661, 1690));
- first.AddRange(new IntRange(2501, 2540));
- first.AddRange(new IntRange(2701, 2740));
- var second = new RangeChecker();
- second.AddRange(new IntRange(38, 38));
- second.AddRange(new IntRange(138, 138));
- second.AddRange(new IntRange(23, 41));
- second.AddRange(new IntRange(123, 141));
- second.AddRange(new IntRange(321, 324));
- second.AddRange(new IntRange(801, 999));
- second.AddRange(new IntRange(1001, 1199));
- second.AddRange(new IntRange(1621, 1640));
- second.AddRange(new IntRange(1691, 1720));
- second.AddRange(new IntRange(3101, 3140));
- second.AddRange(new IntRange(2901, 2940));
- var three = new RangeChecker();
- three.AddRange(new IntRange(38, 38));
- three.AddRange(new IntRange(138, 138));
- three.AddRange(new IntRange(42, 61));
- three.AddRange(new IntRange(142, 161));
- three.AddRange(new IntRange(331, 337));
- three.AddRange(new IntRange(1201, 1399));
- three.AddRange(new IntRange(1401, 1599));
- three.AddRange(new IntRange(1641, 1660));
- three.AddRange(new IntRange(1721, 1750));
- three.AddRange(new IntRange(3301, 3340));
- three.AddRange(new IntRange(3501, 3540));
- dicRangeChecker.Add("1", first);
- dicRangeChecker.Add("2", second);
- dicRangeChecker.Add("3", three);
- builder.Services.AddSingleton(dicRangeChecker);
- //分拣库
- Dictionary<string, List<string>> _dicDevice = new Dictionary<string, List<string>>()
- {
- {"1",new List<string>() { "SRM1","SRM2", "RGV1", "RGV2","Robot1","Robot2" ,"Truss1"}},
- {"2",new List<string>() { "SRM3","SRM4", "RGV3", "RGV4","Robot3","Robot4", "Truss2"}},
- {"3",new List<string>() { "SRM5","SRM6", "RGV5", "RGV6","Robot5","Robot6", "Truss3"}},
- };
- builder.Services.AddSingleton(_dicDevice);
-
- var app = builder.Build();
- app.UseCors("CorsPolicy");
- // Configure the HTTP request pipeline.
- if (app.Environment.IsDevelopment())
- {
- }
- app.UseSwagger();
- app.UseSwaggerUI();
- app.UseHttpsRedirection();
- app.UseRouting();
- app.UseAuthorization();
- app.MapControllers();
- app.Run();
|