Sfoglia il codice sorgente

支持多数据提交

Murphy 3 anni fa
parent
commit
4ef9b3755e
28 ha cambiato i file con 1187 aggiunte e 7 eliminazioni
  1. 9 1
      MicroServices/Business/Business.Application.Contracts/WMS/ISyncKingdeeAppService.cs
  2. 17 2
      MicroServices/Business/Business.Application/WMS/SyncKingdeeAppService.cs
  3. 40 0
      MicroServices/Business/Business.Core/Configuration/AppConfigurations.cs
  4. 1 1
      MicroServices/Business/Business.Core/Consts/BusinessConsts.cs
  5. 48 0
      MicroServices/Business/Business.Core/Web/WebContentFolderHelper.cs
  6. 1 0
      MicroServices/Business/Business.EntityFrameworkCore/Business.EntityFrameworkCore.csproj
  7. 38 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Bang/BusinessBangDbContext.cs
  8. 25 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Bang/BusinessBangDbContextFactory.cs
  9. 20 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Bang/BussinessBangDbContextOptionsConfigurer.cs
  10. 18 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/BusinessDbContextModelCreatingExtensions.cs
  11. 3 1
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/DOP/BusinessDbContext.cs
  12. 25 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/DOP/BusinessDbContextFactory.cs
  13. 20 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/DOP/BussinessDbContextOptionsConfigurer.cs
  14. 30 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Ext/BusinessExtDbContext.cs
  15. 25 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Ext/BusinessExtDbContextFactory.cs
  16. 21 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Ext/BussinessExtDbContextOptionsConfigurer.cs
  17. 31 0
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/MyConnectionStringResolver.cs
  18. 28 0
      MicroServices/Business/Business.Host/EntityFrameworkCore/BusinessBangMigrationDbContext.cs
  19. 31 0
      MicroServices/Business/Business.Host/EntityFrameworkCore/BusinessBangMigrationDbContextFactory.cs
  20. 28 0
      MicroServices/Business/Business.Host/EntityFrameworkCore/BusinessExtMigrationDbContext.cs
  21. 31 0
      MicroServices/Business/Business.Host/EntityFrameworkCore/BusinessExtMigrationDbContextFactory.cs
  22. 178 0
      MicroServices/Business/Business.Host/Migrations/BusinessExtMigrationDb/20230322091604_init.Designer.cs
  23. 81 0
      MicroServices/Business/Business.Host/Migrations/BusinessExtMigrationDb/20230322091604_init.cs
  24. 176 0
      MicroServices/Business/Business.Host/Migrations/BusinessExtMigrationDb/BusinessExtMigrationDbContextModelSnapshot.cs
  25. 3 1
      MicroServices/Business/Business.Host/appsettings.json
  26. 0 1
      MicroServices/Business/Business.HttpApi/Business.HttpApi.csproj
  27. 13 0
      MicroServices/Business/Business.HttpApi/Controllers/WMS/KingdeeController.cs
  28. 246 0
      MicroServices/Business/Bussiness.Model/Test/ic_item.cs

+ 9 - 1
MicroServices/Business/Business.Application.Contracts/WMS/ISyncKingdeeAppService.cs

@@ -1,4 +1,5 @@
-using System;
+using Business.ResourceExamineManagement.Dto;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -25,5 +26,12 @@ namespace Business.ResourceExamineManagement
         /// <param name="id"></param>
         /// <returns></returns>
         string SyncMaterial();
+
+        /// <summary>
+        /// 资源检查
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        Task<string> ReceiveResult(SeorderentryDto input);
     }
 }

+ 17 - 2
MicroServices/Business/Business.Application/WMS/SyncKingdeeAppService.cs

@@ -4,20 +4,29 @@ using Bussiness.Model.SystemData;
 using Bussiness.Model.Tech;
 using Bussiness.MongoModel.MES.IC;
 using Microsoft.Extensions.Configuration;
+using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
 using System.Text.RegularExpressions;
+using System.Threading.Tasks;
 using Volo.Abp.Application.Services;
+using Volo.Abp.DependencyInjection;
 using Volo.Abp.Domain.Repositories;
+using Volo.Abp.MultiTenancy;
 
 namespace Business.ResourceExamineManagement
 {
-    public class SyncKingdeeAppService : ApplicationService, ISyncKingdeeAppService
+    public class SyncKingdeeAppService : ApplicationService, ISyncKingdeeAppService, ITransientDependency
     {
         private readonly IRepository<sys_code, long> _sys_serial_number;
 
-        public SyncKingdeeAppService(IRepository<sys_code, long> sys_serial_number) {
+        private readonly ICurrentTenant _currentTenant;
+        private readonly IRepository<ic_item,long> _mysql_ic_item;
+
+        public SyncKingdeeAppService(IRepository<sys_code, long> sys_serial_number, IRepository<ic_item, long> mysql_ic_item, ICurrentTenant currentTenant) {
             _sys_serial_number = sys_serial_number;
+            _mysql_ic_item = mysql_ic_item;
+            _currentTenant = currentTenant;
         }
         public string SyncSupplier()
         {
@@ -34,5 +43,11 @@ namespace Business.ResourceExamineManagement
         {
             throw new NotImplementedException();
         }
+
+        public async Task<string> ReceiveResult(SeorderentryDto input)
+        {
+            var test = _mysql_ic_item.GetListAsync().Result;
+            return JsonConvert.SerializeObject(test);
+        }
     }
 }

+ 40 - 0
MicroServices/Business/Business.Core/Configuration/AppConfigurations.cs

@@ -0,0 +1,40 @@
+using System.Collections.Concurrent;
+using Microsoft.Extensions.Configuration;
+
+namespace Business.Core.Configuration
+{
+    public static class AppConfigurations
+    {
+        private static readonly ConcurrentDictionary<string, IConfigurationRoot> ConfigurationCache;
+
+        static AppConfigurations()
+        {
+            ConfigurationCache = new ConcurrentDictionary<string, IConfigurationRoot>();
+        }
+
+        public static IConfigurationRoot Get(string path, string environmentName = null)
+        {
+            var cacheKey = path + "#" + environmentName;
+            return ConfigurationCache.GetOrAdd(
+                cacheKey,
+                _ => BuildConfiguration(path, environmentName)
+            );
+        }
+
+        private static IConfigurationRoot BuildConfiguration(string path, string environmentName = null)
+        {
+            var builder = new ConfigurationBuilder()
+                .SetBasePath(path)
+                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
+
+            if (!environmentName.IsNullOrWhiteSpace())
+            {
+                builder = builder.AddJsonFile($"appsettings.{environmentName}.json", optional: true);
+            }
+            
+            builder = builder.AddEnvironmentVariables();
+
+            return builder.Build();
+        }
+    }
+}

+ 1 - 1
MicroServices/Business/Business.Core/Consts/BusinessConsts.cs

@@ -1,4 +1,4 @@
-namespace Business
+namespace Business.Core
 {
     public static class BusinessConsts
     {

+ 48 - 0
MicroServices/Business/Business.Core/Web/WebContentFolderHelper.cs

@@ -0,0 +1,48 @@
+using System;
+using System.IO;
+using System.Linq;
+
+namespace Business.Core.Web
+{
+    /// <summary>
+    /// This class is used to find root path of the web project in;
+    /// unit tests (to find views) and entity framework core command line commands (to find conn string).
+    /// </summary>
+    public static class WebContentDirectoryFinder
+    {
+        public static string CalculateContentRootFolder()
+        {
+            var coreAssemblyDirectoryPath = Path.GetDirectoryName(AppContext.BaseDirectory);
+            if (coreAssemblyDirectoryPath == null)
+            {
+                throw new Exception("Could not find location of Chemical.Ai.Core assembly!");
+            }
+
+            DirectoryInfo directoryInfo = new DirectoryInfo(coreAssemblyDirectoryPath);
+            while (!DirectoryContains(directoryInfo.FullName, "Bussiness.sln"))
+            {
+                //发布状态下,应该为当前目录
+                if (directoryInfo.Parent == null)
+                {
+                    return coreAssemblyDirectoryPath;
+                    //throw new Exception($"Could not find content root folder!");
+                }
+
+                directoryInfo = directoryInfo.Parent;
+            }
+
+            var webHostFolder = Path.Combine(directoryInfo.FullName, "src", "Bussiness.Host");
+            if (Directory.Exists(webHostFolder))
+            {
+                return webHostFolder;
+            }
+
+            throw new Exception("Could not find root folder of the web project!");
+        }
+
+        private static bool DirectoryContains(string directory, string fileName)
+        {
+            return Directory.GetFiles(directory).Any(filePath => string.Equals(Path.GetFileName(filePath), fileName));
+        }
+    }
+}

+ 1 - 0
MicroServices/Business/Business.EntityFrameworkCore/Business.EntityFrameworkCore.csproj

@@ -10,6 +10,7 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <PackageReference Include="Abp" Version="3.4.0" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.5">
       <PrivateAssets>all</PrivateAssets>
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

+ 38 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Bang/BusinessBangDbContext.cs

@@ -0,0 +1,38 @@
+using Bussiness.Model.MES.IC;
+using Bussiness.Model.Production;
+using Bussiness.Model.ProductionProcess;
+using Bussiness.Model.Sale;
+using Bussiness.Model.SIM;
+using Bussiness.Model.SRM;
+using Bussiness.Model.SystemData;
+using Bussiness.Model.Tech;
+using Microsoft.EntityFrameworkCore;
+using Volo.Abp.Data;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.EntityFrameworkCore;
+using Volo.Abp.Identity;
+using Volo.Abp.Identity.EntityFrameworkCore;
+using Volo.Abp.TenantManagement;
+using Volo.Abp.TenantManagement.EntityFrameworkCore;
+
+namespace Business.EntityFrameworkCore
+{
+    /// <summary>
+    /// ¶ÔÓ¦dopbizÊý¾Ý¿â
+    /// </summary>
+    [ConnectionStringName("DOPBang")]
+    public class BusinessBangDbContext : AbpDbContext<BusinessBangDbContext>
+    {        //Code generation...
+        public BusinessBangDbContext(DbContextOptions<BusinessBangDbContext> options)
+            : base(options)
+        {
+
+        }
+
+        protected override void OnModelCreating(ModelBuilder modelBuilder)
+        {
+            base.OnModelCreating(modelBuilder);
+            modelBuilder.ConfigureBusinessBang();
+        }
+    }
+}

+ 25 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Bang/BusinessBangDbContextFactory.cs

@@ -0,0 +1,25 @@
+using Business.Core.Configuration;
+using Business.Core.Web;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Design;
+using Microsoft.Extensions.Configuration;
+
+namespace Business.EntityFrameworkCore
+{
+    /* This class is needed to run EF Core PMC commands. Not used anywhere else */
+    public class BusinessBangDbContextFactory : IDesignTimeDbContextFactory<BusinessBangDbContext>
+    {
+        public BusinessBangDbContext CreateDbContext(string[] args)
+        {
+            var builder = new DbContextOptionsBuilder<BusinessBangDbContext>();
+            var configuration = AppConfigurations.Get(WebContentDirectoryFinder.CalculateContentRootFolder());
+
+            BussinessBangDbContextOptionsConfigurer.Configure(
+                builder,
+                configuration.GetConnectionString("DOPBang")
+            );
+
+            return new BusinessBangDbContext(builder.Options);
+        }
+    }
+}

+ 20 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Bang/BussinessBangDbContextOptionsConfigurer.cs

@@ -0,0 +1,20 @@
+using System.Data.Common;
+using Microsoft.EntityFrameworkCore;
+
+namespace Business.EntityFrameworkCore
+{
+    public static class BussinessBangDbContextOptionsConfigurer
+    {
+        public static void Configure(DbContextOptionsBuilder<BusinessDbContext> dbContextOptions, string connectionString)
+        {
+            /* This is the single point to configure DbContextOptions for MultipleDbContextEfCoreDemoDbContext */
+            dbContextOptions.UseMySql(connectionString, MySqlServerVersion.LatestSupportedServerVersion);
+        }
+
+        public static void Configure( DbContextOptionsBuilder<BusinessDbContext> dbContextOptions,DbConnection connection)
+        {
+            /* This is the single point to configure DbContextOptions for MultipleDbContextEfCoreDemoDbContext */
+            dbContextOptions.UseMySql(connection, MySqlServerVersion.LatestSupportedServerVersion);
+        }
+    }
+}

+ 18 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/BusinessDbContextModelCreatingExtensions.cs

@@ -572,5 +572,23 @@ namespace Business.EntityFrameworkCore
             //    }
             //}
         }
+
+
+        public static void ConfigureBusinessExt(this ModelBuilder builder)
+        {
+            //TODO:这样太麻烦了,有时间研究一下批量
+            Check.NotNull(builder, nameof(builder));
+            builder.Entity<ic_item>(b =>
+            {
+                b.ToTable("ic_bom");
+                b.ConfigureByConvention();
+            });
+        }
+
+        public static void ConfigureBusinessBang(this ModelBuilder builder)
+        {
+            //TODO:这样太麻烦了,有时间研究一下批量
+            Check.NotNull(builder, nameof(builder));
+        }
     }
 }

+ 3 - 1
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/BusinessDbContext.cs → MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/DOP/BusinessDbContext.cs

@@ -17,11 +17,13 @@ using Volo.Abp.TenantManagement.EntityFrameworkCore;
 
 namespace Business.EntityFrameworkCore
 {
+    /// <summary>
+    /// ¶ÔÓ¦dopbizÊý¾Ý¿â
+    /// </summary>
     [ConnectionStringName("Default")]
     public class BusinessDbContext : AbpDbContext<BusinessDbContext>
     {
         #region MES/IC
-        public DbSet<ic_bom> ic_bom { get; set; }
         public DbSet<ic_bom_child> ic_bom_child { get; set; }
         public DbSet<ic_check> ic_check { get; set; }
         public DbSet<ic_factory_details> ic_factory_details { get; set; }

+ 25 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/DOP/BusinessDbContextFactory.cs

@@ -0,0 +1,25 @@
+using Business.Core.Configuration;
+using Business.Core.Web;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Design;
+using Microsoft.Extensions.Configuration;
+
+namespace Business.EntityFrameworkCore
+{
+    /* This class is needed to run EF Core PMC commands. Not used anywhere else */
+    public class BusinessDbContextFactory : IDesignTimeDbContextFactory<BusinessDbContext>
+    {
+        public BusinessDbContext CreateDbContext(string[] args)
+        {
+            var builder = new DbContextOptionsBuilder<BusinessDbContext>();
+            var configuration = AppConfigurations.Get(WebContentDirectoryFinder.CalculateContentRootFolder());
+
+            BussinessDbContextOptionsConfigurer.Configure(
+                builder,
+                configuration.GetConnectionString("Default")
+            );
+
+            return new BusinessDbContext(builder.Options);
+        }
+    }
+}

+ 20 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/DOP/BussinessDbContextOptionsConfigurer.cs

@@ -0,0 +1,20 @@
+using System.Data.Common;
+using Microsoft.EntityFrameworkCore;
+
+namespace Business.EntityFrameworkCore
+{
+    public static class BussinessDbContextOptionsConfigurer
+    {
+        public static void Configure(DbContextOptionsBuilder<BusinessDbContext> dbContextOptions, string connectionString)
+        {
+            /* This is the single point to configure DbContextOptions for MultipleDbContextEfCoreDemoDbContext */
+            dbContextOptions.UseMySql(connectionString, MySqlServerVersion.LatestSupportedServerVersion);
+        }
+
+        public static void Configure( DbContextOptionsBuilder<BusinessDbContext> dbContextOptions,DbConnection connection)
+        {
+            /* This is the single point to configure DbContextOptions for MultipleDbContextEfCoreDemoDbContext */
+            dbContextOptions.UseMySql(connection, MySqlServerVersion.LatestSupportedServerVersion);
+        }
+    }
+}

+ 30 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Ext/BusinessExtDbContext.cs

@@ -0,0 +1,30 @@
+using Bussiness.Model.MES.IC;
+using Microsoft.EntityFrameworkCore;
+using Volo.Abp.Data;
+using Volo.Abp.EntityFrameworkCore;
+
+namespace Business.EntityFrameworkCore
+{
+    /// <summary>
+    /// DOPExtÊý¾Ý¿âµÄдÔÚÕâÀï
+    /// </summary>
+    [ConnectionStringName("DOPExt")]
+    public class BusinessExtDbContext : AbpDbContext<BusinessExtDbContext>
+    {
+        #region MES/IC
+        public DbSet<ic_item> ic_item { get; set; }
+        #endregion
+        //Code generation...
+        public BusinessExtDbContext(DbContextOptions<BusinessExtDbContext> options)
+            : base(options)
+        {
+
+        }
+
+        protected override void OnModelCreating(ModelBuilder modelBuilder)
+        {
+            base.OnModelCreating(modelBuilder);
+            modelBuilder.ConfigureBusinessExt();
+        }
+    }
+}

+ 25 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Ext/BusinessExtDbContextFactory.cs

@@ -0,0 +1,25 @@
+using Business.Core.Configuration;
+using Business.Core.Web;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Design;
+using Microsoft.Extensions.Configuration;
+
+namespace Business.EntityFrameworkCore
+{
+    /* This class is needed to run EF Core PMC commands. Not used anywhere else */
+    public class BusinessExtDbContextFactory : IDesignTimeDbContextFactory<BusinessExtDbContext>
+    {
+        public BusinessExtDbContext CreateDbContext(string[] args)
+        {
+            var builder = new DbContextOptionsBuilder<BusinessExtDbContext>();
+            var configuration = AppConfigurations.Get(WebContentDirectoryFinder.CalculateContentRootFolder());
+
+            BussinessExtDbContextOptionsConfigurer.Configure(
+                builder,
+                configuration.GetConnectionString("DOPExt")
+            );
+
+            return new BusinessExtDbContext(builder.Options);
+        }
+    }
+}

+ 21 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/Ext/BussinessExtDbContextOptionsConfigurer.cs

@@ -0,0 +1,21 @@
+using System.Data.Common;
+using Business.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore;
+
+namespace Business.EntityFrameworkCore
+{
+    public static class BussinessExtDbContextOptionsConfigurer
+    {
+        public static void Configure(DbContextOptionsBuilder<BusinessExtDbContext> dbContextOptions,string connectionString)
+        {
+            /* This is the single point to configure DbContextOptions for MultipleDbContextEfCoreDemoDbContext */
+            dbContextOptions.UseMySql(connectionString, MySqlServerVersion.LatestSupportedServerVersion);
+        }
+
+        public static void Configure(DbContextOptionsBuilder<BusinessExtDbContext> dbContextOptions,DbConnection connection)
+        {
+            /* This is the single point to configure DbContextOptions for MultipleDbContextEfCoreDemoDbContext */
+            dbContextOptions.UseMySql(connection, MySqlServerVersion.LatestSupportedServerVersion);
+        }
+    }
+}

+ 31 - 0
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/MyConnectionStringResolver.cs

@@ -0,0 +1,31 @@
+using System;
+using Abp.Configuration.Startup;
+using Abp.Domain.Uow;
+using Business.Core.Configuration;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
+using DefaultConnectionStringResolver = Abp.Domain.Uow.DefaultConnectionStringResolver;
+
+namespace Business.EntityFrameworkCore
+{
+    public class MyConnectionStringResolver : DefaultConnectionStringResolver
+    {
+        private readonly IConfigurationRoot _appConfiguration;
+
+        public MyConnectionStringResolver(IAbpStartupConfiguration configuration,IWebHostEnvironment hostingEnvironment) 
+            : base(configuration)
+        {
+            _appConfiguration =AppConfigurations.Get(hostingEnvironment.ContentRootPath, hostingEnvironment.EnvironmentName);
+        }
+
+        public override string GetNameOrConnectionString(ConnectionStringResolveArgs args)
+        {
+            if (args["DbContextConcreteType"] as Type == typeof(BusinessExtDbContext))
+            {
+                return _appConfiguration.GetConnectionString("DOPExt");
+            }
+
+            return base.GetNameOrConnectionString(args);
+        }
+    }
+}

+ 28 - 0
MicroServices/Business/Business.Host/EntityFrameworkCore/BusinessBangMigrationDbContext.cs

@@ -0,0 +1,28 @@
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using Volo.Abp.EntityFrameworkCore;
+
+namespace Business.EntityFrameworkCore
+{
+    public class BusinessBangMigrationDbContext : AbpDbContext<BusinessBangMigrationDbContext>    
+    {
+        public BusinessBangMigrationDbContext(
+            DbContextOptions<BusinessBangMigrationDbContext> options
+            ) : base(options)
+        {
+
+        }
+
+        protected override void OnModelCreating(ModelBuilder modelBuilder)
+        {
+            base.OnModelCreating(modelBuilder);
+            //改用低代码平台的表单流程
+            //modelBuilder.ConfigureForm();
+            //modelBuilder.ConfigureFlow();
+            modelBuilder.ConfigureBusinessBang();
+        }
+    }
+}

+ 31 - 0
MicroServices/Business/Business.Host/EntityFrameworkCore/BusinessBangMigrationDbContextFactory.cs

@@ -0,0 +1,31 @@
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Design;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
+
+namespace Business.EntityFrameworkCore
+{
+    public class BusinessBangMigrationDbContextFactory: IDesignTimeDbContextFactory<BusinessBangMigrationDbContext>
+    {
+        public BusinessBangMigrationDbContext CreateDbContext(string[] args)
+        {
+            var configuration = BuildConfiguration();
+
+            var builder = new DbContextOptionsBuilder<BusinessBangMigrationDbContext>()
+                .UseMySql(configuration.GetConnectionString("DOPExt"), MySqlServerVersion.LatestSupportedServerVersion);
+
+            return new BusinessBangMigrationDbContext(builder.Options);
+        }
+
+        private static IConfigurationRoot BuildConfiguration()
+        {
+            var builder = new ConfigurationBuilder()
+                .SetBasePath(Path.Combine(Directory.GetCurrentDirectory()))
+                .AddJsonFile("appsettings.json", optional: false);
+
+            return builder.Build();
+        }
+    }
+}

+ 28 - 0
MicroServices/Business/Business.Host/EntityFrameworkCore/BusinessExtMigrationDbContext.cs

@@ -0,0 +1,28 @@
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using Volo.Abp.EntityFrameworkCore;
+
+namespace Business.EntityFrameworkCore
+{
+    public class BusinessExtMigrationDbContext : AbpDbContext<BusinessExtMigrationDbContext>    
+    {
+        public BusinessExtMigrationDbContext(
+            DbContextOptions<BusinessExtMigrationDbContext> options
+            ) : base(options)
+        {
+
+        }
+
+        protected override void OnModelCreating(ModelBuilder modelBuilder)
+        {
+            base.OnModelCreating(modelBuilder);
+            //改用低代码平台的表单流程
+            //modelBuilder.ConfigureForm();
+            //modelBuilder.ConfigureFlow();
+            modelBuilder.ConfigureBusinessExt();
+        }
+    }
+}

+ 31 - 0
MicroServices/Business/Business.Host/EntityFrameworkCore/BusinessExtMigrationDbContextFactory.cs

@@ -0,0 +1,31 @@
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Design;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.Extensions.Configuration;
+using System;
+using System.IO;
+
+namespace Business.EntityFrameworkCore
+{
+    public class BusinessExtMigrationDbContextFactory: IDesignTimeDbContextFactory<BusinessExtMigrationDbContext>
+    {
+        public BusinessExtMigrationDbContext CreateDbContext(string[] args)
+        {
+            var configuration = BuildConfiguration();
+
+            var builder = new DbContextOptionsBuilder<BusinessExtMigrationDbContext>()
+                .UseMySql(configuration.GetConnectionString("DOPExt"), MySqlServerVersion.LatestSupportedServerVersion);
+
+            return new BusinessExtMigrationDbContext(builder.Options);
+        }
+
+        private static IConfigurationRoot BuildConfiguration()
+        {
+            var builder = new ConfigurationBuilder()
+                .SetBasePath(Path.Combine(Directory.GetCurrentDirectory()))
+                .AddJsonFile("appsettings.json", optional: false);
+
+            return builder.Build();
+        }
+    }
+}

+ 178 - 0
MicroServices/Business/Business.Host/Migrations/BusinessExtMigrationDb/20230322091604_init.Designer.cs

@@ -0,0 +1,178 @@
+// <auto-generated />
+using System;
+using Business.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Volo.Abp.EntityFrameworkCore;
+
+#nullable disable
+
+namespace Business.Migrations.BusinessExtMigrationDb
+{
+    [DbContext(typeof(BusinessExtMigrationDbContext))]
+    [Migration("20230322091604_init")]
+    partial class init
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
+                .HasAnnotation("ProductVersion", "6.0.5")
+                .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+            modelBuilder.Entity("Bussiness.Model.MES.IC.ic_bom", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted")
+                        .HasComment("删除标识");
+
+                    b.Property<DateTime?>("begin_day")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("生效日期");
+
+                    b.Property<string>("biller")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("图片");
+
+                    b.Property<int>("bom_num")
+                        .HasColumnType("int")
+                        .HasComment("序号");
+
+                    b.Property<string>("bom_number")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("bom单编号");
+
+                    b.Property<string>("chartnumber")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("图表编号");
+
+                    b.Property<DateTime?>("check_date")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("检验时间");
+
+                    b.Property<string>("checker")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("检验人");
+
+                    b.Property<long?>("create_by")
+                        .HasColumnType("bigint")
+                        .HasComment("创建人id");
+
+                    b.Property<string>("create_by_name")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("创建人名称");
+
+                    b.Property<DateTime?>("create_time")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("创建时间");
+
+                    b.Property<DateTime?>("end_day")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("失效日期");
+
+                    b.Property<long?>("factory_id")
+                        .HasColumnType("bigint")
+                        .HasComment("工厂ID");
+
+                    b.Property<int>("fse_status")
+                        .HasColumnType("int")
+                        .HasComment("使用状态");
+
+                    b.Property<long>("icitem_id")
+                        .HasColumnType("bigint")
+                        .HasComment("物料id");
+
+                    b.Property<string>("item_name")
+                        .HasMaxLength(200)
+                        .HasColumnType("varchar(200)")
+                        .HasComment("物料名称");
+
+                    b.Property<string>("item_number")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("物料代码");
+
+                    b.Property<long?>("org_id")
+                        .HasColumnType("bigint")
+                        .HasComment("组织ID");
+
+                    b.Property<string>("product_designer")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("产品设计员");
+
+                    b.Property<string>("product_principal")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("生产负责人");
+
+                    b.Property<long>("tech_id")
+                        .HasColumnType("bigint")
+                        .HasComment("工艺主键");
+
+                    b.Property<string>("tech_name")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("工艺名称");
+
+                    b.Property<long>("tenant_id")
+                        .HasColumnType("bigint")
+                        .HasComment("企业ID");
+
+                    b.Property<string>("unit")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("单位");
+
+                    b.Property<long?>("update_by")
+                        .HasColumnType("bigint")
+                        .HasComment("修改人");
+
+                    b.Property<string>("update_by_name")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("修改人名称");
+
+                    b.Property<DateTime?>("update_time")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("修改时间");
+
+                    b.Property<DateTime?>("use_date")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("bom创建时间");
+
+                    b.Property<string>("user")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("bom创建人");
+
+                    b.Property<string>("version")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("版本");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("ic_bom", (string)null);
+
+                    b.HasComment("物料BOM");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}

+ 81 - 0
MicroServices/Business/Business.Host/Migrations/BusinessExtMigrationDb/20230322091604_init.cs

@@ -0,0 +1,81 @@
+using System;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace Business.Migrations.BusinessExtMigrationDb
+{
+    public partial class init : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AlterDatabase()
+                .Annotation("MySql:CharSet", "utf8mb4");
+
+            migrationBuilder.CreateTable(
+                name: "ic_bom",
+                columns: table => new
+                {
+                    Id = table.Column<long>(type: "bigint", nullable: false)
+                        .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
+                    bom_number = table.Column<string>(type: "varchar(20)", maxLength: 20, nullable: true, comment: "bom单编号")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    icitem_id = table.Column<long>(type: "bigint", nullable: false, comment: "物料id"),
+                    item_number = table.Column<string>(type: "varchar(80)", maxLength: 80, nullable: true, comment: "物料代码")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    item_name = table.Column<string>(type: "varchar(200)", maxLength: 200, nullable: true, comment: "物料名称")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    bom_num = table.Column<int>(type: "int", nullable: false, comment: "序号"),
+                    fse_status = table.Column<int>(type: "int", nullable: false, comment: "使用状态"),
+                    begin_day = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "生效日期"),
+                    end_day = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "失效日期"),
+                    tech_id = table.Column<long>(type: "bigint", nullable: false, comment: "工艺主键"),
+                    tech_name = table.Column<string>(type: "varchar(20)", maxLength: 20, nullable: true, comment: "工艺名称")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    product_principal = table.Column<string>(type: "varchar(80)", maxLength: 80, nullable: true, comment: "生产负责人")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    product_designer = table.Column<string>(type: "varchar(80)", maxLength: 80, nullable: true, comment: "产品设计员")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    version = table.Column<string>(type: "varchar(80)", maxLength: 80, nullable: true, comment: "版本")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    chartnumber = table.Column<string>(type: "varchar(80)", maxLength: 80, nullable: true, comment: "图表编号")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    biller = table.Column<string>(type: "varchar(80)", maxLength: 80, nullable: true, comment: "图片")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    checker = table.Column<string>(type: "varchar(80)", maxLength: 80, nullable: true, comment: "检验人")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    check_date = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "检验时间"),
+                    user = table.Column<string>(type: "varchar(20)", maxLength: 20, nullable: true, comment: "bom创建人")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    use_date = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "bom创建时间"),
+                    unit = table.Column<string>(type: "varchar(20)", maxLength: 20, nullable: true, comment: "单位")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    create_by = table.Column<long>(type: "bigint", nullable: true, comment: "创建人id"),
+                    create_by_name = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true, comment: "创建人名称")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    create_time = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "创建时间"),
+                    update_by = table.Column<long>(type: "bigint", nullable: true, comment: "修改人"),
+                    update_by_name = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true, comment: "修改人名称")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    update_time = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "修改时间"),
+                    tenant_id = table.Column<long>(type: "bigint", nullable: false, comment: "企业ID"),
+                    factory_id = table.Column<long>(type: "bigint", nullable: true, comment: "工厂ID"),
+                    org_id = table.Column<long>(type: "bigint", nullable: true, comment: "组织ID"),
+                    IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false, comment: "删除标识")
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_ic_bom", x => x.Id);
+                },
+                comment: "物料BOM")
+                .Annotation("MySql:CharSet", "utf8mb4");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "ic_bom");
+        }
+    }
+}

+ 176 - 0
MicroServices/Business/Business.Host/Migrations/BusinessExtMigrationDb/BusinessExtMigrationDbContextModelSnapshot.cs

@@ -0,0 +1,176 @@
+// <auto-generated />
+using System;
+using Business.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Volo.Abp.EntityFrameworkCore;
+
+#nullable disable
+
+namespace Business.Migrations.BusinessExtMigrationDb
+{
+    [DbContext(typeof(BusinessExtMigrationDbContext))]
+    partial class BusinessExtMigrationDbContextModelSnapshot : ModelSnapshot
+    {
+        protected override void BuildModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
+                .HasAnnotation("ProductVersion", "6.0.5")
+                .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+            modelBuilder.Entity("Bussiness.Model.MES.IC.ic_bom", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted")
+                        .HasComment("删除标识");
+
+                    b.Property<DateTime?>("begin_day")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("生效日期");
+
+                    b.Property<string>("biller")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("图片");
+
+                    b.Property<int>("bom_num")
+                        .HasColumnType("int")
+                        .HasComment("序号");
+
+                    b.Property<string>("bom_number")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("bom单编号");
+
+                    b.Property<string>("chartnumber")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("图表编号");
+
+                    b.Property<DateTime?>("check_date")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("检验时间");
+
+                    b.Property<string>("checker")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("检验人");
+
+                    b.Property<long?>("create_by")
+                        .HasColumnType("bigint")
+                        .HasComment("创建人id");
+
+                    b.Property<string>("create_by_name")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("创建人名称");
+
+                    b.Property<DateTime?>("create_time")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("创建时间");
+
+                    b.Property<DateTime?>("end_day")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("失效日期");
+
+                    b.Property<long?>("factory_id")
+                        .HasColumnType("bigint")
+                        .HasComment("工厂ID");
+
+                    b.Property<int>("fse_status")
+                        .HasColumnType("int")
+                        .HasComment("使用状态");
+
+                    b.Property<long>("icitem_id")
+                        .HasColumnType("bigint")
+                        .HasComment("物料id");
+
+                    b.Property<string>("item_name")
+                        .HasMaxLength(200)
+                        .HasColumnType("varchar(200)")
+                        .HasComment("物料名称");
+
+                    b.Property<string>("item_number")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("物料代码");
+
+                    b.Property<long?>("org_id")
+                        .HasColumnType("bigint")
+                        .HasComment("组织ID");
+
+                    b.Property<string>("product_designer")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("产品设计员");
+
+                    b.Property<string>("product_principal")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("生产负责人");
+
+                    b.Property<long>("tech_id")
+                        .HasColumnType("bigint")
+                        .HasComment("工艺主键");
+
+                    b.Property<string>("tech_name")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("工艺名称");
+
+                    b.Property<long>("tenant_id")
+                        .HasColumnType("bigint")
+                        .HasComment("企业ID");
+
+                    b.Property<string>("unit")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("单位");
+
+                    b.Property<long?>("update_by")
+                        .HasColumnType("bigint")
+                        .HasComment("修改人");
+
+                    b.Property<string>("update_by_name")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("修改人名称");
+
+                    b.Property<DateTime?>("update_time")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("修改时间");
+
+                    b.Property<DateTime?>("use_date")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("bom创建时间");
+
+                    b.Property<string>("user")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("bom创建人");
+
+                    b.Property<string>("version")
+                        .HasMaxLength(80)
+                        .HasColumnType("varchar(80)")
+                        .HasComment("版本");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("ic_bom", (string)null);
+
+                    b.HasComment("物料BOM");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}

+ 3 - 1
MicroServices/Business/Business.Host/appsettings.json

@@ -3,8 +3,10 @@
     "CorsOrigins": "https://*.abc.com,http://localhost:9527"
   },
   "ConnectionStrings": {
-    "Default": "Server=123.60.180.165;Database=dopbiz;Uid=root; Pwd=5heng=uN;Allow User Variables=true",
+    "Default": "Server=123.60.180.165;Database=dopbizTest;Uid=root; Pwd=5heng=uN;Allow User Variables=true",
     "DOPLog": "Server=123.60.180.165;Database=doplog;Uid=root; Pwd=5heng=uN;Allow User Variables=true",
+    "DOPBang": "Server=123.60.180.165;Database=dopextTest;Uid=root; Pwd=5heng=uN;Allow User Variables=true",
+    "DOPExt": "Server=123.60.180.165;Database=dopextTest;Uid=root; Pwd=5heng=uN;Allow User Variables=true",
     "MongoDB": "mongodb://zzydop:h1Q$us3r@123.60.180.165/",
     "DBName": "dopbase"
   },

+ 0 - 1
MicroServices/Business/Business.HttpApi/Business.HttpApi.csproj

@@ -26,7 +26,6 @@
 
   <ItemGroup>
     <Folder Include="Controllers\MES\" />
-    <Folder Include="Controllers\DOP\" />
   </ItemGroup>
 
 </Project>

+ 13 - 0
MicroServices/Business/Business.HttpApi/Controllers/WMS/KingdeeController.cs

@@ -1,5 +1,6 @@
 using Business.Core.Utilities;
 using Business.ResourceExamineManagement;
+using Business.ResourceExamineManagement.Dto;
 using Bussiness.Model.SystemData;
 using Microsoft.AspNetCore.Mvc;
 using System;
@@ -49,5 +50,17 @@ namespace Business.Controllers.WMS
         {
             return _SerialNumberAppService.SyncMaterial();
         }
+
+        /// <summary>
+        /// 资源检查
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("mytest")]
+        public Task<string> ReceiveResult(SeorderentryDto input)
+        {
+            return _SerialNumberAppService.ReceiveResult(input);
+        }
     }
 }

+ 246 - 0
MicroServices/Business/Bussiness.Model/Test/ic_item.cs

@@ -0,0 +1,246 @@
+using Business.Core.Attributes;
+using Business.Model;
+using Microsoft.EntityFrameworkCore;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace Bussiness.Model.Test
+{
+    /// <summary>
+    /// 物料详情
+    /// </summary>
+    [CollectionName("dopbase", "ic_item")]
+    [Comment("物料详情")]
+    public class ic_item : BaseEntity
+    {
+        /// <summary>
+        /// 物料编码
+        /// </summary>
+        [StringLength(80)]
+        [Comment("物料编码")]
+        public string? number { get; set; }
+        /// <summary>
+        /// 物料名称
+        /// </summary>
+        [StringLength(80)]
+        [Comment("物料名称")]
+        public string? name { get; set; }
+        /// <summary>
+        /// 规格型号
+        /// </summary>
+        [StringLength(200)]
+        [Comment("规格型号")]
+        public string? model { get; set; }
+        /// <summary>
+        /// 全名
+        /// </summary>
+        [StringLength(255)]
+        [Comment("全名")]
+        public string? full_name { get; set; }
+        /// <summary>
+        /// fms旧料号
+        /// </summary>
+        [StringLength(80)]
+        [Comment("fms旧料号")]
+        public string? fms_number { get; set; }
+        /// <summary>
+        /// erp旧料号
+        /// </summary>
+        [StringLength(80)]
+        [Comment("erp旧料号")]
+        public string? erp_oldnumber { get; set; }
+        /// <summary>
+        /// 图号
+        /// </summary>
+        [StringLength(80)]
+        [Comment("图号")]
+        public string? chart_number { get; set; }
+        /// <summary>
+        /// 版本号
+        /// </summary>
+        [StringLength(80)]
+        [Comment("版本号")]
+        public string? fversion { get; set; }
+        /// <summary>
+        /// 盒贴规格
+        /// </summary>
+        [StringLength(200)]
+        [Comment("盒贴规格")]
+        public string? box_model { get; set; }
+        /// <summary>
+        /// 物料属性
+        /// </summary>
+        [Comment("物料属性")]
+        public int erp_cls { get; set; }
+        /// <summary>
+        /// 物料属性名称
+        /// </summary>
+        [Comment("物料属性")]
+        public string? erp_cls_name { get; set; }
+        /// <summary>
+        /// 单位
+        /// </summary>
+        [StringLength(80)]
+        [Comment("单位")]
+        public string? unit { get; set; }
+        /// <summary>
+        /// 物料等级
+        /// </summary>
+        [Required]
+        [Comment("物料等级")]
+        public long item_level { get; set; }
+        /// <summary>
+        /// 环保等级
+        /// </summary>
+        [Required]
+        [Comment("环保等级")]
+        public long hb_level { get; set; }
+        /// <summary>
+        /// 单位标准工时_小时
+        /// </summary>
+        [Precision(20, 8)]
+        [Comment("单位标准工时_小时")]
+        public decimal? standard_manhour { get; set; }
+        /// <summary>
+        /// 单位材料定额_元
+        /// </summary>
+        [Precision(20, 8)]
+        [Comment("单位材料定额_元")]
+        public decimal? unititem_amount { get; set; }
+        /// <summary>
+        /// 来源
+        /// </summary>
+        [StringLength(200)]
+        [Comment("来源")]
+        public string? source { get; set; }
+        /// <summary>
+        /// 是否为设备
+        /// </summary>
+        [Comment("是否为设备")]
+        public int is_equipment { get; set; }
+        /// <summary>
+        /// 单位包装数量
+        /// </summary>
+        [Precision(20, 8)]
+        [Comment("单位包装数量")]
+        public decimal? unit_qty { get; set; }
+        /// <summary>
+        /// 严格进行二维码数量校验
+        /// </summary>
+        [StringLength(80)]
+        [Comment("严格进行二维码数量校验")]
+        public string? check_bybarcode { get; set; }
+        /// <summary>
+        /// 是否关键件
+        /// </summary>
+        [Comment("是否关键件")]
+        public int iskeyitem { get; set; }
+        /// <summary>
+        /// 毛重
+        /// </summary>
+        [Precision(20, 8)]
+        [Comment("毛重")]
+        public decimal? gross_weight { get; set; }
+        /// <summary>
+        /// 净重
+        /// </summary>
+        [Precision(20, 8)]
+        [Comment("净重")]
+        public decimal? net_weight { get; set; }
+        /// <summary>
+        /// 重量单位
+        /// </summary>
+        [StringLength(80)]
+        [Comment("重量单位")]
+        public string? maund { get; set; }
+        /// <summary>
+        /// 长度
+        /// </summary>
+        [Precision(20, 8)]
+        [Comment("长度")]
+        public decimal? length { get; set; }
+        /// <summary>
+        /// 长度单位
+        /// </summary>
+        [StringLength(80)]
+        [Comment("长度单位")]
+        public string? cubic_measure { get; set; }
+        /// <summary>
+        /// 宽度
+        /// </summary>
+        [Precision(20, 8)]
+        [Comment("宽度")]
+        public decimal? width { get; set; }
+        /// <summary>
+        /// 高度
+        /// </summary>
+        [Precision(20, 8)]
+        [Comment("高度")]
+        public decimal? height { get; set; }
+        /// <summary>
+        /// 体积
+        /// </summary>
+        [Precision(20, 8)]
+        [Comment("体积")]
+        public decimal? size { get; set; }
+        /// <summary>
+        /// 物料类别
+        /// </summary>
+        [Required]
+        [Comment("物料类别")]
+        public long matatt { get; set; }
+        /// <summary>
+        /// 允许采购
+        /// </summary>
+        [Comment("允许采购")]
+        public int allowpur { get; set; }
+        /// <summary>
+        /// 允许销售
+        /// </summary>
+        [Comment("允许销售")]
+        public int allowsale { get; set; }
+        /// <summary>
+        /// 允许生产
+        /// </summary>
+        [Comment("允许生产")]
+        public int allowmanu { get; set; }
+        /// <summary>
+        /// 允许委外
+        /// </summary>
+        [Comment("允许委外")]
+        public int allowout { get; set; }
+        /// <summary>
+        /// 批号管理
+        /// </summary>
+        [Comment("批号管理")]
+        public int allowbatch { get; set; }
+        /// <summary>
+        /// 序列号管理
+        /// </summary>
+        [Comment("序列号管理")]
+        public int allowserial { get; set; }
+        /// <summary>
+        /// 图片
+        /// </summary>
+        [StringLength(80)]
+        [Comment("图片")]
+        public string? photo { get; set; }
+        /// <summary>
+        /// 领料类型
+        /// </summary>
+        [Required]
+        [Comment("领料类型")]
+        public long picktype { get; set; }
+        /// <summary>
+        /// 出库类型
+        /// </summary>
+        [Required]
+        [Comment("出库类型")]
+        public long output_type_id { get; set; }
+        /// <summary>
+        /// 启用预警
+        /// </summary>
+        [Comment("启用预警")]
+        public int enable_warning { get; set; }
+    }
+}