From 733e63cb362f17aea4a1020654fa348a0d0c1f06 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期一, 24 二月 2025 00:08:59 +0800
Subject: [PATCH] 优化入库逻辑,优化直接出库逻辑,优化移库任务逻辑
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs | 79 +++++++++++++++++++++++++++++++++++++++
1 files changed, 79 insertions(+), 0 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs"
new file mode 100644
index 0000000..c0eda16
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs"
@@ -0,0 +1,79 @@
+锘縰sing Autofac;
+using Autofac.Extras.DynamicProxy;
+using Microsoft.Extensions.DependencyModel;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Runtime.Loader;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.AOP;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Helper;
+using WIDESEA_Core.LogHelper;
+
+namespace WIDESEA_Core.Extensions
+{
+ public class AutofacModuleRegister : Autofac.Module
+ {
+ //private static readonly ILog log = LogManager.GetLogger(typeof(AutofacModuleRegister));
+ protected override void Load(ContainerBuilder builder)
+ {
+ var basePath = AppContext.BaseDirectory;
+ var cacheType = new List<Type>();
+
+ builder.RegisterType<LogAOP>();
+ if (AppSettings.app("LogAopEnable").ObjToBool())
+ {
+ cacheType.Add(typeof(LogAOP));
+ }
+
+ builder.RegisterGeneric(typeof(RepositoryBase<>)).As(typeof(IRepository<>)).InstancePerDependency();//娉ㄥ唽浠撳偍
+ builder.RegisterGeneric(typeof(ServiceBase<,>)).As(typeof(IService<>)).InstancePerDependency();//娉ㄥ唽鏈嶅姟
+
+ Type baseType = typeof(IDependency);
+
+ List<RuntimeLibrary> compilationLibrary = DependencyContext.Default
+ .RuntimeLibraries
+ .Where(x => !x.Serviceable
+ && x.Type == "project")
+ .ToList();
+ List<Assembly> assemblyList = new List<Assembly>();
+ foreach (var library in compilationLibrary)
+ {
+ try
+ {
+ string path = Path.Combine(basePath, $"{library.Name}.dll");
+ if (!File.Exists(path))
+ {
+ var msg = $"{library.Name}.dll涓㈠け锛屽洜涓洪」鐩В鑰︿簡锛屾墍浠ラ渶瑕佸厛F6缂栬瘧锛屽啀F5杩愯锛岃妫�鏌� bin 鏂囦欢澶癸紝骞舵嫹璐濄��";
+ //log.Error(msg);
+ throw new Exception(msg);
+ }
+ assemblyList.Add(Assembly.LoadFrom(path));
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(library.Name + ex.Message);
+ }
+ }
+
+ builder.RegisterAssemblyTypes(assemblyList.ToArray()).Where(x => !x.IsInterface && !x.IsAbstract && baseType.IsAssignableFrom(x))
+ .AsImplementedInterfaces()
+ .PropertiesAutowired()
+ .InstancePerDependency().
+ EnableInterfaceInterceptors()
+ .InterceptedBy(cacheType.ToArray());
+
+ builder.RegisterType<UnitOfWorkManage>().As<IUnitOfWorkManage>()
+ .AsImplementedInterfaces()
+ .InstancePerLifetimeScope()
+ .PropertiesAutowired();
+
+ builder.RegisterType<RequestLogModel>().InstancePerLifetimeScope();
+ }
+ }
+}
--
Gitblit v1.9.3