소스 검색

Merge branch 'master' into dev

Murphy 3 년 전
부모
커밋
f8041c8cc0
100개의 변경된 파일1947개의 추가작업 그리고 962개의 파일을 삭제
  1. 4 0
      .gitignore
  2. 27 0
      MicroServices/Business/Buissness.UnitTest/Buissness.TestBase.csproj
  3. 60 0
      MicroServices/Business/Buissness.UnitTest/CoreTestBase.cs
  4. 65 0
      MicroServices/Business/Buissness.UnitTest/CoreTestBaseModule.cs
  5. 123 0
      MicroServices/Business/Buissness.UnitTest/CoreTestDataSeedContributor.cs
  6. 32 0
      MicroServices/Business/Buissness.UnitTest/MES/IC/sim_issue_typeRepository_Tests.cs
  7. 43 0
      MicroServices/Business/Buissness.UnitTest/Security/FakeCurrentPrincipalAccessor.cs
  8. 0 30
      MicroServices/Business/Business.Application.Contracts/BookManagement/Dto/BookDto.cs
  9. 0 31
      MicroServices/Business/Business.Application.Contracts/BookManagement/Dto/CreateOrUpdateBookDto.cs
  10. 0 10
      MicroServices/Business/Business.Application.Contracts/BookManagement/Dto/GetBookInputDto.cs
  11. 0 17
      MicroServices/Business/Business.Application.Contracts/BookManagement/IBookAppService.cs
  12. 5 0
      MicroServices/Business/Business.Application.Contracts/Business.Application.Contracts.csproj
  13. 0 5
      MicroServices/Business/Business.Application.Contracts/Permissions/BusinessPermissionDefinitionProvider.cs
  14. 0 8
      MicroServices/Business/Business.Application.Contracts/Permissions/BusinessPermissions.cs
  15. 0 72
      MicroServices/Business/Business.Application.Contracts/PrintTemplateManagement/Dto/CreateOrUpdatePrintTemplateDto.cs
  16. 0 12
      MicroServices/Business/Business.Application.Contracts/PrintTemplateManagement/Dto/GetPrintTemplateInputDto.cs
  17. 0 72
      MicroServices/Business/Business.Application.Contracts/PrintTemplateManagement/Dto/PrintTemplateDto.cs
  18. 0 22
      MicroServices/Business/Business.Application.Contracts/PrintTemplateManagement/IPrintTemplateAppService.cs
  19. 0 2
      MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/BomDto.cs
  20. 18 0
      MicroServices/Business/Business.Application.Test/Business.Application.Test.csproj
  21. 11 0
      MicroServices/Business/Business.Application.Test/UnitTest1.cs
  22. 1 0
      MicroServices/Business/Business.Application.Test/Usings.cs
  23. 0 82
      MicroServices/Business/Business.Application/BookManagement/BookAppService.cs
  24. 0 15
      MicroServices/Business/Business.Application/BookManagement/BookAutoMapperProfile.cs
  25. 7 3
      MicroServices/Business/Business.Application/Business.Application.csproj
  26. 1 6
      MicroServices/Business/Business.Application/BusinessApplicationModule.cs
  27. 0 85
      MicroServices/Business/Business.Application/HangFire/CronType.cs
  28. 0 96
      MicroServices/Business/Business.Application/PrintTemplateManagement/PrintTemplateAppService.cs
  29. 0 15
      MicroServices/Business/Business.Application/PrintTemplateManagement/PrintTemplateAutoMapperProfile.cs
  30. 2 2
      MicroServices/Business/Business.Application/Quartz/IQuartzJobService.cs
  31. 3 3
      MicroServices/Business/Business.Application/Quartz/QuartzJobService.cs
  32. 34 0
      MicroServices/Business/Business.Application/Quartz/SyncMySQLDataJob.cs
  33. 0 11
      MicroServices/Business/Business.Application/ResourceExamineManagement/MorderAppService.cs
  34. 1 1
      MicroServices/Business/Business.Core/Business.Core.csproj
  35. 5 3
      MicroServices/Business/Business.Domain/Business.Domain.csproj
  36. 17 0
      MicroServices/Business/Business.Domain/Isim_issue_typeRepository.cs
  37. 0 33
      MicroServices/Business/Business.Domain/Models/Book.cs
  38. 0 76
      MicroServices/Business/Business.Domain/Models/PrintTemplate.cs
  39. 2 4
      MicroServices/Business/Business.EntityFrameworkCore/Business.EntityFrameworkCore.csproj
  40. 5 10
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/BusinessDbContext.cs
  41. 0 21
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/BusinessDbContextModelCreatingExtensions.cs
  42. 1 4
      MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/BusinessEntityFrameworkCoreModule.cs
  43. 2 10
      MicroServices/Business/Business.Host/Business.Host.csproj
  44. 28 55
      MicroServices/Business/Business.Host/BusinessHostModule.cs
  45. 2 3
      MicroServices/Business/Business.Host/EntityFrameworkCore/BusinessMigrationDbContext.cs
  46. 0 2
      MicroServices/Business/Business.Host/Startup.cs
  47. 0 0
      MicroServices/Business/Business.Host/tempkey.jwk
  48. 6 0
      MicroServices/Business/Business.HttpApi/Business.HttpApi.csproj
  49. 0 52
      MicroServices/Business/Business.HttpApi/Controllers/BookController.cs
  50. 42 0
      MicroServices/Business/Business.HttpApi/Controllers/Kanban/KanbanController.cs
  51. 0 60
      MicroServices/Business/Business.HttpApi/Controllers/PrintTemplateController.cs
  52. 42 0
      MicroServices/Business/Business.HttpApi/Controllers/QMS/QMSController.cs
  53. 42 0
      MicroServices/Business/Business.HttpApi/Controllers/SIM/AndonController.cs
  54. 42 0
      MicroServices/Business/Business.HttpApi/Controllers/SIM/SIMController.cs
  55. 0 28
      MicroServices/Business/Business.HttpApi/Controllers/ThinkFlowController.cs
  56. 29 1
      MicroServices/Business/Business.sln
  57. 25 0
      MicroServices/Business/Bussiness.ApplicationTest/Bussiness.ApplicationTest.csproj
  58. 25 0
      MicroServices/Business/Bussiness.ApplicationTest/CoreApplicationTestBase.cs
  59. 21 0
      MicroServices/Business/Bussiness.ApplicationTest/CoreApplicationTestModule.cs
  60. 30 0
      MicroServices/Business/Bussiness.ApplicationTest/ResourceExamineManagement/ResourceExamineAppService_Tests.cs
  61. 28 0
      MicroServices/Business/Bussiness.Domain.Test/Bussiness.Domain.Test.csproj
  62. 9 0
      MicroServices/Business/Bussiness.Domain.Test/CoreDomainTestBase.cs
  63. 15 0
      MicroServices/Business/Bussiness.Domain.Test/CoreDomainTestModule.cs
  64. 25 0
      MicroServices/Business/Bussiness.Domain.Test/MES/IC/ic_substitute_Tests.cs
  65. 10 0
      MicroServices/Business/Bussiness.EntityFrameworkCore.Test/EntityFrameworkCore/CoreEntityFrameworkCoreTestBase.cs
  66. 64 0
      MicroServices/Business/Bussiness.EntityFrameworkCore.Test/EntityFrameworkCore/CoreEntityFrameworkCoreTestModule.cs
  67. 13 0
      MicroServices/Business/Bussiness.EntityFrameworkCore.Test/EntityFrameworkCore/MES/IC/sim_issue_typeRepository_Tests.cs
  68. 45 0
      MicroServices/Business/Bussiness.EntityFrameworkCore.Test/EntityFrameworkCore/Samples/SampleRepositoryTests.cs
  69. 53 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/DigitalManufacturing.Application.Contracts.csproj
  70. 34 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/DigitalManufacturingApplicationContractsModule.cs
  71. 22 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/DigitalManufacturingManagement/Dto/FileInfoDto.cs
  72. 9 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/DigitalManufacturingManagement/Dto/GetFileInputDto.cs
  73. 18 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/DigitalManufacturingManagement/IDigitalManufacturingAppService.cs
  74. 13 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/cs.json
  75. 8 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/en.json
  76. 8 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/pl.json
  77. 8 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/pt-BR.json
  78. 8 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/tr.json
  79. 8 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/vi.json
  80. 13 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/zh-Hans.json
  81. 8 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/zh-Hant.json
  82. 9 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/StorageResource.cs
  83. 28 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Permissions/DigitalManufacturingPermissionDefinitionProvider.cs
  84. 17 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Permissions/DigitalManufacturingPermissions.cs
  85. 27 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application/DigitalManufacturing.Application.csproj
  86. 14 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application/DigitalManufacturingApplicationAutoMapperProfile.cs
  87. 21 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application/DigitalManufacturingApplicationModule.cs
  88. 129 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Application/DigitalManufacturingManagement/DigitalManufacturingAppService.cs
  89. 30 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Domain/DigitalManufacturing.Domain.csproj
  90. 15 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Domain/DigitalManufacturingDomainModule.cs
  91. 19 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Domain/Enums/Enums.cs
  92. 51 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Domain/Models/FileInfo.cs
  93. 31 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Domain/Models/FileManager.cs
  94. 21 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.EntityFrameworkCore/DigitalManufacturing.EntityFrameworkCore.csproj
  95. 28 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.EntityFrameworkCore/EntityFrameworkCore/DigitalManufacturingDbContext.cs
  96. 33 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.EntityFrameworkCore/EntityFrameworkCore/DigitalManufacturingDbContextModelCreatingExtensions.cs
  97. 28 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.EntityFrameworkCore/EntityFrameworkCore/DigitalManufacturingEntityFrameworkCoreModule.cs
  98. 130 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Host/Controllers/DOP/DOPController.cs
  99. 13 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Host/Controllers/HomeController.cs
  100. 81 0
      MicroServices/DigitalManufacturing/DigitalManufacturing.Host/Controllers/Kanban/KanbanController.cs

+ 4 - 0
.gitignore

@@ -888,3 +888,7 @@ MicroServices/Business/Bussiness.MongoModel/obj/Business.Core.csproj.nuget.dgspe
 MicroServices/Business/Bussiness.MongoModel/obj/Business.Core.csproj.nuget.g.props
 MicroServices/Business/Bussiness.MongoModel/obj/Business.Core.csproj.nuget.g.targets
 MicroServices/Business/Bussiness.MongoModel/obj/Debug/net6.0/Bussiness.MongoModel.csproj.BuildWithSkipAnalyzers
+/MicroServices/Business/Buissness.UnitTest/bin/Debug/net6.0
+/MicroServices/Business/Buissness.UnitTest/obj
+/MicroServices/Business/Business.Test/bin/Debug/net6.0
+/MicroServices/Business/Business.Test/obj/Debug/net6.0

+ 27 - 0
MicroServices/Business/Buissness.UnitTest/Buissness.TestBase.csproj

@@ -0,0 +1,27 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
+    <PackageReference Include="NSubstitute" Version="4.2.2" />
+    <PackageReference Include="Shouldly" Version="4.1.0" />
+    <PackageReference Include="Volo.Abp.Authorization" Version="4.4.0" />
+    <PackageReference Include="Volo.Abp.Autofac" Version="7.1.0-rc.2" />
+    <PackageReference Include="Volo.Abp.BackgroundJobs.Domain" Version="7.1.0-rc.2" />
+    <PackageReference Include="Volo.Abp.Identity.Domain" Version="4.4.0" />
+    <PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="4.4.0" />
+    <PackageReference Include="Volo.Abp.TestBase" Version="4.4.0" />
+    <PackageReference Include="xunit.extensibility.core" Version="2.4.2" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\Business.Domain\Business.Domain.csproj" />
+    <ProjectReference Include="..\Bussiness.Model\Bussiness.Model.csproj" />
+  </ItemGroup>
+
+</Project>

+ 60 - 0
MicroServices/Business/Buissness.UnitTest/CoreTestBase.cs

@@ -0,0 +1,60 @@
+using Microsoft.Extensions.DependencyInjection;
+using System.Data.Common;
+using Volo.Abp;
+using Volo.Abp.Modularity;
+using Volo.Abp.Testing;
+using Volo.Abp.Uow;
+
+namespace Buissness.TestBase
+{
+    /* All test classes are derived from this class, directly or indirectly.
+     */
+    public abstract class CoreTestBase<TStartupModule> : AbpIntegratedTest<TStartupModule>
+        where TStartupModule : IAbpModule
+    {
+        protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options)
+        {
+            options.UseAutofac();
+        }
+
+        protected virtual Task WithUnitOfWorkAsync(Func<Task> func)
+        {
+            return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func);
+        }
+
+        protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func<Task> action)
+        {
+            using (var scope = ServiceProvider.CreateScope())
+            {
+                var uowManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
+
+                using (var uow = uowManager.Begin(options))
+                {
+                    await action();
+
+                    await uow.CompleteAsync();
+                }
+            }
+        }
+
+        protected virtual Task<TResult> WithUnitOfWorkAsync<TResult>(Func<Task<TResult>> func)
+        {
+            return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func);
+        }
+
+        protected virtual async Task<TResult> WithUnitOfWorkAsync<TResult>(AbpUnitOfWorkOptions options, Func<Task<TResult>> func)
+        {
+            using (var scope = ServiceProvider.CreateScope())
+            {
+                var uowManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
+
+                using (var uow = uowManager.Begin(options))
+                {
+                    var result = await func();
+                    await uow.CompleteAsync();
+                    return result;
+                }
+            }
+        }
+    }
+}

+ 65 - 0
MicroServices/Business/Buissness.UnitTest/CoreTestBaseModule.cs

@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp.Authorization;
+using Volo.Abp;
+using Volo.Abp.Modularity;
+using Volo.Abp.Autofac;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.Threading;
+using Volo.Abp.Data;
+using Volo.Abp.BackgroundJobs;
+using Volo.Abp.IdentityServer;
+
+namespace Buissness.TestBase
+{
+    [DependsOn(
+        typeof(AbpAutofacModule),
+        typeof(AbpTestBaseModule)
+     )]
+    public class CoreTestBaseModule : AbpModule
+    {
+        public override void PreConfigureServices(ServiceConfigurationContext context)
+        {
+            PreConfigure<AbpIdentityServerBuilderOptions>(options =>
+            {
+                options.AddDeveloperSigningCredential = false;
+            });
+
+            PreConfigure<IIdentityServerBuilder>(identityServerBuilder =>
+            {
+                identityServerBuilder.AddDeveloperSigningCredential(false, System.Guid.NewGuid().ToString());
+            });
+        }
+
+        public override void ConfigureServices(ServiceConfigurationContext context)
+        {
+            Configure<AbpBackgroundJobOptions>(options =>
+            {
+                options.IsJobExecutionEnabled = false;
+            });
+
+            context.Services.AddAlwaysAllowAuthorization();
+        }
+
+        public override void OnApplicationInitialization(ApplicationInitializationContext context)
+        {
+            SeedTestData(context);
+        }
+
+        private static void SeedTestData(ApplicationInitializationContext context)
+        {
+            AsyncHelper.RunSync(async () =>
+            {
+                using (var scope = context.ServiceProvider.CreateScope())
+                {
+                    await scope.ServiceProvider
+                        .GetRequiredService<IDataSeeder>()
+                        .SeedAsync();
+                }
+            });
+        }
+    }
+}

+ 123 - 0
MicroServices/Business/Buissness.UnitTest/CoreTestDataSeedContributor.cs

@@ -0,0 +1,123 @@
+
+using Bussiness.Model.MES.IC;
+using Bussiness.Model.Production;
+using Bussiness.Model.Sale;
+using Bussiness.Model.SRM;
+using Bussiness.Model.Tech;
+using Microsoft.Extensions.Hosting;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp.Data;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.MultiTenancy;
+
+namespace Buissness.TestBase
+{
+    public class CoreTestDataSeedContributor : IDataSeedContributor, ITransientDependency
+    {
+        private readonly IRepository<ic_item, long> _mysql_ic_item;
+        private readonly IRepository<ic_bom, long> _mysql_ic_bom;
+        private readonly IRepository<ic_bom_child, long> _mysql_ic_bom_child;
+        private readonly IRepository<mes_technique, long> _mysql_mes_technique;
+        private readonly IRepository<crm_seorder, long> _mysql_crm_seorder;
+        private readonly IRepository<crm_seorderentry, long> _mysql_crm_seorderentry;
+        private readonly IRepository<ic_item_stock, long> _mysql_ic_item_stock;
+        private readonly IRepository<ic_factory_details, long> _mysql_ic_factory_details;
+        private readonly IRepository<mes_oorder, long> _mysql_mes_oorder;
+        private readonly IRepository<srm_pr_main, long> _mysql_srm_pr_main;
+        private readonly IRepository<mes_mooccupy, long> _mysql_mes_mooccupy;
+        private readonly IRepository<mes_morder, long> _mysql_mes_morder;
+        private readonly IRepository<mes_moentry, long> _mysql_mes_moentry;
+        private readonly IRepository<mes_process, long> _mysql_mes_process;
+        private readonly IRepository<mes_tech_process, long> _mysql_mes_tech_process;
+        private readonly IRepository<srm_po_main, long> _mysql_srm_po_main;
+        private readonly IRepository<srm_po_list, long> _mysql_srm_po_list;
+        private readonly IRepository<srm_po_occupy, long> _mysql_srm_po_occupy;
+        private readonly IRepository<ic_item_pur, long> _mysql_ic_item_pur;
+        private readonly IRepository<ic_plan, long> _mysql_ic_plan;
+
+
+        private readonly ICurrentTenant _currentTenant;
+
+        public CoreTestDataSeedContributor(
+            IRepository<ic_item, long> mysql_ic_item,
+            IRepository<ic_bom, long> mysql_ic_bom,
+            IRepository<ic_bom_child, long> mysql_ic_bom_child,
+            IRepository<mes_technique, long> mysql_mes_technique,
+            IRepository<crm_seorder, long> mysql_crm_seorder,
+            IRepository<crm_seorderentry, long> mysql_crm_seorderentry,
+            IRepository<ic_item_stock, long> mysql_ic_item_stock,
+            IRepository<ic_factory_details, long> mysql_ic_factory_details,
+            IRepository<mes_oorder, long> mysql_mes_oorder,
+            IRepository<srm_pr_main, long> mysql_srm_pr_main,
+            IRepository<mes_mooccupy, long> mysql_mes_mooccupy,
+            IRepository<mes_morder, long> mysql_mes_morder,
+            IRepository<mes_moentry, long> mysql_mes_moentry,
+            IRepository<mes_process, long> mysql_mes_process,
+            IRepository<mes_tech_process, long> mysql_mes_tech_process,
+            IRepository<srm_po_main, long> mysql_srm_po_main,
+            IRepository<srm_po_list, long> mysql_srm_po_list,
+            IRepository<srm_po_occupy, long> mysql_srm_po_occupy,
+            IRepository<ic_item_pur, long> mysql_ic_item_pur,
+            IRepository<ic_plan, long> mysql_ic_plan,
+        ICurrentTenant currentTenant)
+        {
+            _mysql_ic_item = mysql_ic_item;
+            _mysql_ic_bom = mysql_ic_bom;
+            _mysql_ic_bom_child = mysql_ic_bom_child;
+            _mysql_crm_seorder = mysql_crm_seorder;
+            _mysql_crm_seorderentry = mysql_crm_seorderentry;
+            _mysql_ic_item_stock = mysql_ic_item_stock;
+            _mysql_ic_factory_details = mysql_ic_factory_details;
+            _mysql_mes_oorder = mysql_mes_oorder;
+            _mysql_srm_pr_main = mysql_srm_pr_main;
+            _mysql_mes_mooccupy = mysql_mes_mooccupy;
+            _mysql_mes_morder = mysql_mes_morder;
+            _mysql_mes_moentry = mysql_mes_moentry;
+            _mysql_srm_po_main = mysql_srm_po_main;
+            _mysql_srm_po_list = mysql_srm_po_list;
+            _mysql_srm_po_occupy = mysql_srm_po_occupy;
+            _mysql_ic_item_pur = mysql_ic_item_pur;
+            _mysql_ic_plan = mysql_ic_plan;
+            _currentTenant = currentTenant;
+        }
+
+        public async Task SeedAsync(DataSeedContext context)
+        {
+            /* Seed additional test data... */
+            using (_currentTenant.Change(context?.TenantId))
+            {
+                await Seedic_itemAsync();
+                await Seedic_bomAsync();
+                await Seedic_bom_childAsync();
+                await Seedmes_techniqueAsync();
+
+            }
+        }
+
+
+        private async Task Seedic_itemAsync()
+        {
+            await _mysql_ic_item.InsertAsync(new ic_item { factory_id=102, allowout=1});
+        }
+
+        private async Task Seedic_bomAsync()
+        {
+            await _mysql_ic_bom.InsertAsync(new ic_bom { factory_id=102,fse_status=1});
+        }
+
+        public async Task Seedic_bom_childAsync()
+        {
+            await _mysql_ic_bom_child.InsertAsync(new ic_bom_child { factory_id=102, begin_day=DateTime.Now});
+        }
+
+        public async Task Seedmes_techniqueAsync()
+        {
+            await _mysql_mes_technique.InsertAsync(new mes_technique { factory_id=102, bom="1000"});
+        }
+    }
+}

+ 32 - 0
MicroServices/Business/Buissness.UnitTest/MES/IC/sim_issue_typeRepository_Tests.cs

@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Buissness.TestBase;
+using Business.Domain;
+using Shouldly;
+using Volo.Abp.Modularity;
+using Xunit;
+
+namespace Buissness.TestBase
+{
+    public abstract class sim_issue_typeRepository_Tests<TStartupModule> : CoreTestBase<TStartupModule>
+        where TStartupModule : IAbpModule
+    {
+        public Isim_issue_typeRepository sim_issue_typeRepository { get; set; }
+
+        public sim_issue_typeRepository_Tests()
+        {
+            sim_issue_typeRepository = GetRequiredService<Isim_issue_typeRepository>();
+        }
+
+        [Fact]
+        public async Task Should_Find_By_TypeName()
+        {
+            var blogFromRepository = (await sim_issue_typeRepository.GetListAsync()).First();
+            var ic_bom = await sim_issue_typeRepository.FindByItemNameAsync(blogFromRepository.type_name);
+            ic_bom.ShouldNotBeNull();
+        }
+    }
+}

+ 43 - 0
MicroServices/Business/Buissness.UnitTest/Security/FakeCurrentPrincipalAccessor.cs

@@ -0,0 +1,43 @@
+using System.Collections.Generic;
+using System.Security.Claims;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.Security.Claims;
+
+namespace Buissness.TestBase
+{
+    [Dependency(ReplaceServices = true)]
+    public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor
+    {
+        protected override ClaimsPrincipal GetClaimsPrincipal()
+        {
+            return GetPrincipal();
+        }
+
+        private ClaimsPrincipal _principal;
+
+        private ClaimsPrincipal GetPrincipal()
+        {
+            if (_principal == null)
+            {
+                lock (this)
+                {
+                    if (_principal == null)
+                    {
+                        _principal = new ClaimsPrincipal(
+                            new ClaimsIdentity(
+                                new List<Claim>
+                                {
+                                    new Claim(AbpClaimTypes.UserId,"2e701e62-0953-4dd3-910b-dc6cc93ccb0d"),
+                                    new Claim(AbpClaimTypes.UserName,"admin"),
+                                    new Claim(AbpClaimTypes.Email,"admin@abp.io")
+                                }
+                            )
+                        );
+                    }
+                }
+            }
+
+            return _principal;
+        }
+    }
+}

+ 0 - 30
MicroServices/Business/Business.Application.Contracts/BookManagement/Dto/BookDto.cs

@@ -1,30 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Volo.Abp.Application.Dtos;
-using System.ComponentModel.DataAnnotations;
-namespace Business.BookManagement.Dto
-{
-    public class BookDto : EntityDto<Guid?>
-    {
-        
-        /// <summary>
-        /// 书名
-        /// </summary>
-        [Required]
-        public string Name { get; set; }
-
-        
-        /// <summary>
-        /// 描述
-        /// </summary>
-        public string Description { get; set; }
-
-        
-        /// <summary>
-        /// 价格
-        /// </summary>
-        public int Price { get; set; }
-
-        
-    }
-}

+ 0 - 31
MicroServices/Business/Business.Application.Contracts/BookManagement/Dto/CreateOrUpdateBookDto.cs

@@ -1,31 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Application.Dtos;
-
-namespace Business.BookManagement.Dto
-{
-    public class CreateOrUpdateBookDto: EntityDto<Guid?>
-    {
-        
-        /// <summary>
-        /// 书名
-        /// </summary>
-        [Required]
-        public string Name { get; set; }
-
-        
-        /// <summary>
-        /// 描述
-        /// </summary>
-        public string Description { get; set; }
-
-        
-        /// <summary>
-        /// 价格
-        /// </summary>
-        public int Price { get; set; }
-
-        
-    }
-}

+ 0 - 10
MicroServices/Business/Business.Application.Contracts/BookManagement/Dto/GetBookInputDto.cs

@@ -1,10 +0,0 @@
-using System;
-using Volo.Abp.Application.Dtos;
-
-namespace Business.BookManagement.Dto
-{
-    public class GetBookInputDto : PagedAndSortedResultRequestDto
-    {
-        public string Filter { get; set; }
-    }
-}

+ 0 - 17
MicroServices/Business/Business.Application.Contracts/BookManagement/IBookAppService.cs

@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Application.Services;
-using Business.BookManagement.Dto;
-
-namespace Business.BookManagement
-{
-    public interface IBookAppService : IApplicationService
-    {
-        Task<BookDto> Get(Guid id);
-        Task<PagedResultDto<BookDto>> GetAll(GetBookInputDto input);
-        Task<BookDto> CreateOrUpdate(CreateOrUpdateBookDto input);
-        Task Delete(List<Guid> ids);
-    }
-}

+ 5 - 0
MicroServices/Business/Business.Application.Contracts/Business.Application.Contracts.csproj

@@ -42,4 +42,9 @@
     <ProjectReference Include="..\Bussiness.MongoModel\Bussiness.MongoModel.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="WMS\" />
+    <Folder Include="MES\" />
+  </ItemGroup>
+
 </Project>

+ 0 - 5
MicroServices/Business/Business.Application.Contracts/Permissions/BusinessPermissionDefinitionProvider.cs

@@ -27,11 +27,6 @@ namespace Business.Permissions
             PrintTemplate.AddChild(BusinessPermissions.ResourceExamine.Delete, L("Delete"));
             PrintTemplate.AddChild(BusinessPermissions.ResourceExamine.Create, L("Create"));
 
-            var ThinkFlow = Business.AddPermission(BusinessPermissions.ThinkFlow.Default, L("ThinkFlow"));
-            ThinkFlow.AddChild(BusinessPermissions.ThinkFlow.Update, L("Edit"));
-            ThinkFlow.AddChild(BusinessPermissions.ThinkFlow.Delete, L("Delete"));
-            ThinkFlow.AddChild(BusinessPermissions.ThinkFlow.Create, L("Create"));
-
             //Code generation...
         }
 

+ 0 - 8
MicroServices/Business/Business.Application.Contracts/Permissions/BusinessPermissions.cs

@@ -32,14 +32,6 @@ namespace Business.Permissions
             public const string Create = Default + ".Create";
         }
 
-        public static class ThinkFlow
-        {
-            public const string Default = Business + ".ThinkFlow";
-            public const string Delete = Default + ".Delete";
-            public const string Update = Default + ".Update";
-            public const string Create = Default + ".Create";
-        }
-
         //Code generation...
     }
 }

+ 0 - 72
MicroServices/Business/Business.Application.Contracts/PrintTemplateManagement/Dto/CreateOrUpdatePrintTemplateDto.cs

@@ -1,72 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using Volo.Abp.Application.Dtos;
-
-namespace Business.PrintTemplateManagement.Dto
-{
-    public class CreateOrUpdatePrintTemplateDto: EntityDto<Guid?>
-    {
-        
-        /// <summary>
-        /// 模板名称
-        /// </summary>
-        [Required]
-        public string Name { get; set; }
-        
-        /// <summary>
-        /// 模板类型
-        /// </summary>
-        [Required]
-        public int TempType { get; set; }
-        
-        /// <summary>
-        /// 默认
-        /// </summary>
-        [Required]
-        public bool IsDefault { get; set; }
-        
-        /// <summary>
-        /// 状态
-        /// </summary>
-        [Required]
-        public int Status { get; set; }
-        
-        /// <summary>
-        /// 排序
-        /// </summary>
-        [Required]
-        public int Sort { get; set; }
-        
-        /// <summary>
-        /// 模板内容
-        /// </summary>
-        public string Content { get; set; }
-        
-        /// <summary>
-        /// 备注
-        /// </summary>
-        public string Remark { get; set; }
-
-        /// <summary>
-        /// 打印方向
-        /// </summary>
-        public int? Orientation { get; set; }
-
-        /// <summary>
-        /// 纸张类型
-        /// </summary>
-        public int? PaperKind { get; set; }
-
-        /// <summary>
-        /// 纸张宽度
-        /// </summary>
-        public string PaperWidth { get; set; }
-
-        /// <summary>
-        /// 纸张高度
-        /// </summary>
-        public string PaperHeight { get; set; }
-
-    }
-}

+ 0 - 12
MicroServices/Business/Business.Application.Contracts/PrintTemplateManagement/Dto/GetPrintTemplateInputDto.cs

@@ -1,12 +0,0 @@
-using System;
-using Volo.Abp.Application.Dtos;
-
-namespace Business.PrintTemplateManagement.Dto
-{
-    public class GetPrintTemplateInputDto : PagedAndSortedResultRequestDto
-    {
-        public Guid? Id { get; set; }
-
-        public string Filter { get; set; }
-    }
-}

+ 0 - 72
MicroServices/Business/Business.Application.Contracts/PrintTemplateManagement/Dto/PrintTemplateDto.cs

@@ -1,72 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Volo.Abp.Application.Dtos;
-using System.ComponentModel.DataAnnotations;
-
-namespace Business.PrintTemplateManagement.Dto
-{
-    public class PrintTemplateDto : EntityDto<Guid?>
-    {
-        
-        /// <summary>
-        /// 模板名称
-        /// </summary>
-        [Required]
-        public string Name { get; set; }
-        
-        /// <summary>
-        /// 模板类型
-        /// </summary>
-        [Required]
-        public int TempType { get; set; }
-        
-        /// <summary>
-        /// 默认
-        /// </summary>
-        [Required]
-        public bool IsDefault { get; set; }
-        
-        /// <summary>
-        /// 状态
-        /// </summary>
-        [Required]
-        public int Status { get; set; }
-        
-        /// <summary>
-        /// 排序
-        /// </summary>
-        [Required]
-        public int Sort { get; set; }
-        
-        /// <summary>
-        /// 模板内容
-        /// </summary>
-        public string Content { get; set; }
-        
-        /// <summary>
-        /// 备注
-        /// </summary>
-        public string Remark { get; set; }
-
-        /// <summary>
-        /// 打印方向
-        /// </summary>
-        public int? Orientation { get; set; }
-
-        /// <summary>
-        /// 纸张类型
-        /// </summary>
-        public int? PaperKind { get; set; }
-
-        /// <summary>
-        /// 纸张宽度
-        /// </summary>
-        public string PaperWidth { get; set; }
-
-        /// <summary>
-        /// 纸张高度
-        /// </summary>
-        public string PaperHeight { get; set; }
-
-    }
-}

+ 0 - 22
MicroServices/Business/Business.Application.Contracts/PrintTemplateManagement/IPrintTemplateAppService.cs

@@ -1,22 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Application.Services;
-using Business.PrintTemplateManagement.Dto;
-
-namespace Business.PrintTemplateManagement
-{
-    public interface IPrintTemplateAppService : IApplicationService
-    {
-        Task<PrintTemplateDto> Get(Guid id);
-
-        Task<PagedResultDto<PrintTemplateDto>> GetAll(GetPrintTemplateInputDto input);
-
-        Task<PrintTemplateDto> DataPost(CreateOrUpdatePrintTemplateDto input);
-
-        Task Delete(List<Guid> ids);
-
-        Task<dynamic> CreatePdf(Guid id);
-    }
-}

+ 0 - 2
MicroServices/Business/Business.Application.Contracts/ResourceExamineManagement/Dto/BomDto.cs

@@ -6,8 +6,6 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using Business;
-using Business.BookManagement;
-using Business.BookManagement.Dto;
 using Business.ResourceExamineManagement.Dto;
 
 namespace Business.ResourceExamineManagement.Dto

+ 18 - 0
MicroServices/Business/Business.Application.Test/Business.Application.Test.csproj

@@ -0,0 +1,18 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+
+    <IsPackable>false</IsPackable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
+    <PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
+    <PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
+    <PackageReference Include="coverlet.collector" Version="3.1.2" />
+  </ItemGroup>
+
+</Project>

+ 11 - 0
MicroServices/Business/Business.Application.Test/UnitTest1.cs

@@ -0,0 +1,11 @@
+namespace Business.Application.Test
+{
+    [TestClass]
+    public class UnitTest1
+    {
+        [TestMethod]
+        public void TestMethod1()
+        {
+        }
+    }
+}

+ 1 - 0
MicroServices/Business/Business.Application.Test/Usings.cs

@@ -0,0 +1 @@
+global using Microsoft.VisualStudio.TestTools.UnitTesting;

+ 0 - 82
MicroServices/Business/Business.Application/BookManagement/BookAppService.cs

@@ -1,82 +0,0 @@
-using Microsoft.EntityFrameworkCore;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Linq.Dynamic.Core;
-using System.Threading.Tasks;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Domain.Repositories;
-using Business.BookManagement.Dto;
-using Business.Models;
-using Microsoft.AspNetCore.Authorization;
-using Business.Permissions;
-using XCZ;
-
-namespace Business.BookManagement
-{
-    [Authorize(BusinessPermissions.Book.Default)]
-    public class BookAppService : BusinessWorkFlowAppService, IBookAppService
-    {
-        private const string FormName = "Book";
-        private IRepository<Book, Guid> _repository;
-
-        public BookAppService(
-            IRepository<Book, Guid> repository
-            )
-        {
-            _repository = repository;
-        }
-        #region 增删改查基础方法
-
-        public async Task<BookDto> Get(Guid id)
-        {
-            var data = await _repository.GetAsync(id);
-            var dto = ObjectMapper.Map<Book, BookDto>(data);
-            return dto;
-        }
-
-        public async Task<PagedResultDto<BookDto>> GetAll(GetBookInputDto input)
-        {
-            var query = (await _repository.GetQueryableAsync()).WhereIf(!string.IsNullOrWhiteSpace(input.Filter), a => a.Name.Contains(input.Filter));
-
-            var totalCount = await query.CountAsync();
-            var items = await query.OrderBy(input.Sorting ?? "Id")
-                        .ToListAsync();
-
-            var dtos = ObjectMapper.Map<List<Book>, List<BookDto>>(items);
-            return new PagedResultDto<BookDto>(totalCount, dtos);
-        }
-
-        public async Task<BookDto> CreateOrUpdate(CreateOrUpdateBookDto input)
-        {
-            Book result = null;
-            if (!input.Id.HasValue)
-            {
-                input.Id = GuidGenerator.Create();
-                result = await _repository.InsertAsync(ObjectMapper.Map<CreateOrUpdateBookDto, Book>(input));
-
-                //创建工作流
-                await WorkFlow.CreateWorkFlow(FormName, result);
-            }
-            else
-            {
-                var data = await _repository.GetAsync(input.Id.Value);
-                result = await _repository.UpdateAsync(ObjectMapper.Map(input, data));
-                //检查流程状态
-                await WorkFlow.CheckFormStatus(input.Id.Value, result);
-            }
-            return ObjectMapper.Map<Book, BookDto>(result);
-        }
-
-        public async Task Delete(List<Guid> ids)
-        {
-            foreach (var item in ids)
-            {
-                await _repository.DeleteAsync(item);
-            }
-
-        }
-        #endregion
-
-    }
-}

+ 0 - 15
MicroServices/Business/Business.Application/BookManagement/BookAutoMapperProfile.cs

@@ -1,15 +0,0 @@
-using AutoMapper;
-using Business.BookManagement.Dto;
-using Business.Models;
-
-namespace Business.BookManagement
-{
-    public class BookAutoMapperProfile : Profile
-    {
-        public BookAutoMapperProfile()
-        {
-            CreateMap<Book, BookDto>();
-            CreateMap<CreateOrUpdateBookDto, Book>();
-        }
-    }
-}

+ 7 - 3
MicroServices/Business/Business.Application/Business.Application.csproj

@@ -11,14 +11,12 @@
 
   <ItemGroup>
     <PackageReference Include="Magicodes.IE.Pdf" Version="2.7.1" />
+    <PackageReference Include="Quartz.AspNetCore" Version="3.6.2" />
     <PackageReference Include="Volo.Abp.AutoMapper" Version="6.0.0" />
-    <PackageReference Include="Volo.Abp.BackgroundJobs.HangFire" Version="6.0.0" />
     <PackageReference Include="Volo.Abp.Http.Client.IdentityModel" Version="6.0.0" />
 	<PackageReference Include="Volo.Abp.Ddd.Application" Version="6.0.0" />
     <PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="6.0.0" />
     <PackageReference Include="XCZ.BaseService.HttpApi.Client" Version="1.0.0" />
-    <PackageReference Include="XCZ.FlowManagement.Application" Version="1.3.1" />
-    <PackageReference Include="XCZ.FormManagement.Application" Version="2.3.0" />
   </ItemGroup>
 
   <ItemGroup>
@@ -28,4 +26,10 @@
     <ProjectReference Include="..\Bussiness.MongoModel\Bussiness.MongoModel.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="MES\" />
+    <Folder Include="QMS\" />
+    <Folder Include="WMS\" />
+  </ItemGroup>
+
 </Project>

+ 1 - 6
MicroServices/Business/Business.Application/BusinessApplicationModule.cs

@@ -1,11 +1,9 @@
 using BaseService.HttpApi.Client;
 using Volo.Abp.Application;
 using Volo.Abp.AutoMapper;
-using Volo.Abp.BackgroundJobs.Hangfire;
 using Volo.Abp.Http.Client.IdentityModel;
 using Volo.Abp.Identity;
 using Volo.Abp.Modularity;
-using XCZ;
 
 namespace Business
 {
@@ -16,10 +14,7 @@ namespace Business
         typeof(AbpHttpClientIdentityModelModule),
         typeof(AbpIdentityHttpApiClientModule),
         typeof(BaseServiceHttpApiClientModule),
-        typeof(FormApplicationModule),
-        typeof(FlowApplicationModule),
-        typeof(AbpAutoMapperModule),
-        typeof(AbpBackgroundJobsHangfireModule)
+        typeof(AbpAutoMapperModule)
     )]
     public class BusinessApplicationModule : AbpModule
     {

+ 0 - 85
MicroServices/Business/Business.Application/HangFire/CronType.cs

@@ -1,85 +0,0 @@
-using Hangfire;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Business.HangFire
-{
-    /// <summary>
-    /// Cron类型
-    /// </summary>
-    public static class CronType
-    {
-        /// <summary>
-        /// 周期性为分钟的任务
-        /// </summary>
-        /// <param name="interval">执行周期的间隔,默认为每分钟一次</param>
-        /// <returns></returns>
-        public static string Minute(int interval = 1)
-        {
-            return "1 0/" + interval.ToString() + " * * * ? ";
-        }
-
-        /// <summary>
-        /// 周期性为小时的任务
-        /// </summary>
-        /// <param name="minute">第几分钟开始,默认为第一分钟</param>
-        /// <param name="interval">执行周期的间隔,默认为每小时一次</param>
-        /// <returns></returns>
-        public static string Hour(int minute = 1, int interval = 1)
-        {
-            return "1 " + minute + " 0/" + interval.ToString() + " * * ? ";
-        }
-
-        /// <summary>
-        /// 周期性为天的任务
-        /// </summary>
-        /// <param name="hour">第几小时开始,默认从1点开始</param>
-        /// <param name="minute">第几分钟开始,默认从第1分钟开始</param>
-        /// <param name="interval">执行周期的间隔,默认为每天一次</param>
-        /// <returns></returns>
-        public static string Day(int hour = 1, int minute = 1, int interval = 1)
-        {
-            return "1 " + minute.ToString() + " " + hour.ToString() + " 1/" + interval.ToString() + " * ? ";
-        }
-
-        /// <summary>
-        /// 周期性为周的任务
-        /// </summary>
-        /// <param name="dayOfWeek">星期几开始,默认从星期一点开始</param>
-        /// <param name="hour">第几小时开始,默认从1点开始</param>
-        /// <param name="minute">第几分钟开始,默认从第1分钟开始</param>
-        /// <returns></returns>
-        public static string Week(DayOfWeek dayOfWeek = DayOfWeek.Monday, int hour = 1, int minute = 1)
-        {
-            return Cron.Weekly(dayOfWeek, hour, minute);
-        }
-
-        /// <summary>
-        /// 周期性为月的任务
-        /// </summary>
-        /// <param name="day">几号开始,默认从一号开始</param>
-        /// <param name="hour">第几小时开始,默认从1点开始</param>
-        /// <param name="minute">第几分钟开始,默认从第1分钟开始</param>
-        /// <returns></returns>
-        public static string Month(int day = 1, int hour = 1, int minute = 1)
-        {
-            return Cron.Monthly(day, hour, minute);
-        }
-
-        /// <summary>
-        /// 周期性为年的任务
-        /// </summary>
-        /// <param name="month">几月开始,默认从一月开始</param>
-        /// <param name="day">几号开始,默认从一号开始</param>
-        /// <param name="hour">第几小时开始,默认从1点开始</param>
-        /// <param name="minute">第几分钟开始,默认从第1分钟开始</param>
-        /// <returns></returns>
-        public static string Year(int month = 1, int day = 1, int hour = 1, int minute = 1)
-        {
-            return Cron.Yearly(month, day, hour, minute);
-        }
-    }
-}

+ 0 - 96
MicroServices/Business/Business.Application/PrintTemplateManagement/PrintTemplateAppService.cs

@@ -1,96 +0,0 @@
-using Microsoft.EntityFrameworkCore;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Linq.Dynamic.Core;
-using System.Threading.Tasks;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Application.Services;
-using Volo.Abp.Domain.Repositories;
-using Business.PrintTemplateManagement.Dto;
-using Business.Models;
-using Microsoft.AspNetCore.Authorization;
-using Business.Permissions;
-using Volo.Abp;
-using Magicodes.ExporterAndImporter.Pdf;
-using WkHtmlToPdfDotNet;
-using Microsoft.AspNetCore.Mvc;
-using System.IO;
-
-namespace Business.PrintTemplateManagement
-{
-    [Authorize(BusinessPermissions.PrintTemplate.Default)]
-    public class PrintTemplateAppService : ApplicationService, IPrintTemplateAppService
-    {
-        private const string FormName = "PrintTemplate";
-        private IRepository<PrintTemplate, Guid> _repository;
-
-        public PrintTemplateAppService(
-            IRepository<PrintTemplate, Guid> repository
-            )
-        {
-            _repository = repository;
-        }
-        #region 增删改查基础方法
-
-        public async Task<PrintTemplateDto> Get(Guid id)
-        {
-            var data = await _repository.GetAsync(id);
-            var dto = ObjectMapper.Map<PrintTemplate, PrintTemplateDto>(data);
-            return dto;
-        }
-
-        public async Task<PagedResultDto<PrintTemplateDto>> GetAll(GetPrintTemplateInputDto input)
-        {
-            var query = (await _repository.GetQueryableAsync()).WhereIf(!string.IsNullOrWhiteSpace(input.Filter), a => a.Name.Contains(input.Filter));
-
-            var totalCount = await query.CountAsync();
-            var items = await query.OrderBy(input.Sorting ?? "Id")
-                       .Skip(input.SkipCount)
-                       .Take(input.MaxResultCount)
-                       .ToListAsync();
-
-            var dto = ObjectMapper.Map<List<PrintTemplate>, List<PrintTemplateDto>>(items);
-            return new PagedResultDto<PrintTemplateDto>(totalCount, dto);
-        }
-
-        public async Task<PrintTemplateDto> DataPost(CreateOrUpdatePrintTemplateDto input)
-        {
-            PrintTemplate result = null;
-            if (!input.Id.HasValue)
-            {
-                input.Id = GuidGenerator.Create();
-                result = await _repository.InsertAsync(ObjectMapper.Map<CreateOrUpdatePrintTemplateDto, PrintTemplate>(input));
-            }
-            else
-            {
-                var data = await _repository.GetAsync(input.Id.Value);
-                result = await _repository.UpdateAsync(ObjectMapper.Map(input, data));
-            }
-            return ObjectMapper.Map<PrintTemplate, PrintTemplateDto>(result);
-        }
-
-        public async Task Delete(List<Guid> ids)
-        {
-            foreach (var item in ids)
-            {
-                await _repository.DeleteAsync(item);
-            }
-
-        }
-
-        public async Task<dynamic> CreatePdf(Guid id)
-        {
-            var temp = await _repository.GetAsync(id);
-            var exporter = new PdfExporter();
-            var pdfAtt = new PdfExporterAttribute();
-            pdfAtt.Orientation = Orientation.Landscape;
-            pdfAtt.PaperKind = PaperKind.A4;
-            var result = await exporter.ExportBytesByTemplate(temp, pdfAtt, temp.Content);
-            return new FileStreamResult(new MemoryStream(result), "application/octet-stream") { FileDownloadName = $"{temp.Name}.PDF" };
-        }
-
-        #endregion
-
-    }
-}

+ 0 - 15
MicroServices/Business/Business.Application/PrintTemplateManagement/PrintTemplateAutoMapperProfile.cs

@@ -1,15 +0,0 @@
-using AutoMapper;
-using Business.PrintTemplateManagement.Dto;
-using Business.Models;
-
-namespace Business.PrintTemplateManagement
-{
-    public class PrintTemplateAutoMapperProfile : Profile
-    {
-        public PrintTemplateAutoMapperProfile()
-        {
-            CreateMap<PrintTemplate, PrintTemplateDto>();
-            CreateMap<CreateOrUpdatePrintTemplateDto, PrintTemplate>();
-        }
-    }
-}

+ 2 - 2
MicroServices/Business/Business.Application/HangFire/IHangFireJobService.cs → MicroServices/Business/Business.Application/Quartz/IQuartzJobService.cs

@@ -4,9 +4,9 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace Business.HangFire
+namespace Business.Quartz
 {
-    public interface IHangFireJobService
+    public interface IQuartzJobService
     {
         /// <summary>
         /// 定时同步mysql数据到mongodb中

+ 3 - 3
MicroServices/Business/Business.Application/HangFire/HangFireJobService.cs → MicroServices/Business/Business.Application/Quartz/QuartzJobService.cs

@@ -5,9 +5,9 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace Business.HangFire
+namespace Business.Quartz
 {
-    public class HangFireJobService : IHangFireJobService
+    public class QuartzJobService : IQuartzJobService
     {
         /// <summary>
         /// 同步数据到mongodb服务
@@ -17,7 +17,7 @@ namespace Business.HangFire
         /// <summary>
         /// 构造函数
         /// </summary>
-        public HangFireJobService(SyncMySQLDataAppService syncDataAppservice)
+        public QuartzJobService(SyncMySQLDataAppService syncDataAppservice)
         {
             _syncDataAppservice = syncDataAppservice;
         }

+ 34 - 0
MicroServices/Business/Business.Application/Quartz/SyncMySQLDataJob.cs

@@ -0,0 +1,34 @@
+using Business.SyncDataManagement;
+using Quartz;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Business.Quartz
+{
+    public class SyncMySQLDataJob : IJob
+    {
+
+        /// <summary>
+        /// 同步数据到mongodb服务
+        /// </summary>
+        public readonly SyncMySQLDataAppService _syncDataAppservice;
+
+        /// <summary>
+        /// 构造函数
+        /// </summary>
+        public SyncMySQLDataJob(SyncMySQLDataAppService syncDataAppservice)
+        {
+            _syncDataAppservice = syncDataAppservice;
+        }
+        public Task Execute(IJobExecutionContext context)
+        {
+            _syncDataAppservice.SyncBaseDataToMongoDB();
+
+            return Task.CompletedTask;
+        }
+    }
+}

+ 0 - 11
MicroServices/Business/Business.Application/ResourceExamineManagement/MorderAppService.cs

@@ -1,25 +1,14 @@
 using Business.Core.Enum;
-using Business.Core.MongoDBHelper;
 using Business.Core.Utilities;
 using Business.ResourceExamineManagement.Dto;
-using Bussiness.Model.MES.IC;
-using Bussiness.Model.Production;
 using Bussiness.Model.Sale;
-using Bussiness.Model.SRM;
-using Bussiness.Model.Tech;
 using Bussiness.MongoModel.MES.IC;
 using Bussiness.MongoModel.Production;
 using Bussiness.MongoModel.Tech;
 using System;
 using System.Collections.Generic;
-using System.Diagnostics;
 using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Threading.Tasks.Dataflow;
 using Volo.Abp.Application.Services;
-using Volo.Abp.Domain.Repositories;
-using ZstdSharp.Unsafe;
 
 namespace Business.ResourceExamineManagement
 {

+ 1 - 1
MicroServices/Business/Business.Core/Business.Core.csproj

@@ -11,7 +11,7 @@
     <PackageReference Include="MongoDB.Driver" Version="2.19.0" />
     <PackageReference Include="MongoDB.Driver.Core" Version="2.19.0" />
     <PackageReference Include="Newtonsoft.Json.Bson" Version="1.0.2" />
-    <PackageReference Include="Volo.Abp.Ddd.Domain" Version="6.0.2" />
+    <PackageReference Include="Volo.Abp.Ddd.Domain" Version="6.0.0" />
   </ItemGroup>
 
 </Project>

+ 5 - 3
MicroServices/Business/Business.Domain/Business.Domain.csproj

@@ -23,11 +23,13 @@
 
   <ItemGroup>
     <PackageReference Include="Volo.Abp.AuditLogging.Domain" Version="6.0.0" />
-    <PackageReference Include="Volo.Abp.Ddd.Domain" Version="6.0.0" />
-    <PackageReference Include="Volo.Abp.EntityFrameworkCore" Version="6.0.0" />
-    <PackageReference Include="Volo.Abp.Localization" Version="6.0.0" />
+    <PackageReference Include="Volo.Abp.Localization" Version="6.0.2" />
     <PackageReference Include="Volo.Abp.SettingManagement.Domain" Version="6.0.0" />
     <PackageReference Include="Volo.Abp.Validation" Version="6.0.0" />
   </ItemGroup>
 
+  <ItemGroup>
+    <ProjectReference Include="..\Bussiness.Model\Bussiness.Model.csproj" />
+  </ItemGroup>
+
 </Project>

+ 17 - 0
MicroServices/Business/Business.Domain/Isim_issue_typeRepository.cs

@@ -0,0 +1,17 @@
+using Bussiness.Model.MES.IC;
+using Bussiness.Model.SIM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using Volo.Abp.Domain.Repositories;
+
+namespace Business.Domain
+{
+    public interface Isim_issue_typeRepository : IBasicRepository<sim_issue_type, long>
+    {
+        Task<sim_issue_type> FindByItemNameAsync(string itemName, CancellationToken cancellationToken = default);
+    }
+}

+ 0 - 33
MicroServices/Business/Business.Domain/Models/Book.cs

@@ -1,33 +0,0 @@
-using System;
-using Volo.Abp;
-using Volo.Abp.Domain.Entities.Auditing;
-using Volo.Abp.MultiTenancy;
-using System.ComponentModel.DataAnnotations;
-namespace Business.Models
-{
-    public class Book: AuditedAggregateRoot<Guid>, ISoftDelete, IMultiTenant
-    {
-        public Guid? TenantId { get; set; }
-        public bool IsDeleted { get; set; }
-        
-        /// <summary>
-        /// 书名
-        /// </summary>
-        [Required]
-        public string Name { get; set; }
-
-        
-        /// <summary>
-        /// 描述
-        /// </summary>
-        public string Description { get; set; }
-
-        
-        /// <summary>
-        /// 价格
-        /// </summary>
-        public int Price { get; set; }
-
-        
-    }
-}

+ 0 - 76
MicroServices/Business/Business.Domain/Models/PrintTemplate.cs

@@ -1,76 +0,0 @@
-using System;
-using Volo.Abp;
-using Volo.Abp.Domain.Entities.Auditing;
-using Volo.Abp.MultiTenancy;
-using System.ComponentModel.DataAnnotations;
-
-namespace Business.Models
-{
-    /// <summary>
-    /// 打印模板
-    /// </summary>
-    public class PrintTemplate: AuditedAggregateRoot<Guid>, ISoftDelete, IMultiTenant
-    {
-        public Guid? TenantId { get; set; }
-        
-        /// <summary>
-        /// 模板名称
-        /// </summary>
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 模板类型:0设计模板,1指令模板
-        /// </summary>
-        public int TempType { get; set; }
-        
-        /// <summary>
-        /// 默认
-        /// </summary>
-        public bool IsDefault { get; set; }
-
-        /// <summary>
-        /// 状态:0禁用,1启用
-        /// </summary>
-        public int Status { get; set; }
-        
-        /// <summary>
-        /// 排序
-        /// </summary>
-        public int Sort { get; set; }
-        
-        /// <summary>
-        /// 模板内容
-        /// </summary>
-        public string Content { get; set; }
-        
-        /// <summary>
-        /// 备注
-        /// </summary>
-        public string Remark { get; set; }
-
-        #region  PdfExporterAttribute
-        /// <summary>
-        /// 打印方向
-        /// </summary>
-        public int? Orientation { get; set; }
-
-        /// <summary>
-        /// 纸张大小
-        /// </summary>
-        public int? PaperKind { get; set; }
-
-        /// <summary>
-        /// 纸张宽度
-        /// </summary>
-        public double? PaperWidth { get; set; }
-
-        /// <summary>
-        /// 纸张高度
-        /// </summary>
-        public double? PaperHeight { get; set; }
-        #endregion
-        
-		
-		public bool IsDeleted { get; set; }
-    }
-}

+ 2 - 4
MicroServices/Business/Business.EntityFrameworkCore/Business.EntityFrameworkCore.csproj

@@ -10,18 +10,16 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Hangfire.SqlServer" Version="1.7.29" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.5">
       <PrivateAssets>all</PrivateAssets>
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
     </PackageReference>
     <PackageReference Include="Volo.Abp.AuditLogging.EntityFrameworkCore" Version="6.0.0" />
     <PackageReference Include="Volo.Abp.EntityFrameworkCore.MySQL" Version="6.0.2" />
+    <PackageReference Include="Volo.Abp.Identity.EntityFrameworkCore" Version="4.4.0" />
     <PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="6.0.0" />
-    <PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="6.0.0" />
+    <PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="6.0.3" />
     <PackageReference Include="Volo.Abp.TenantManagement.EntityFrameworkCore" Version="6.0.0" />
-    <PackageReference Include="XCZ.FlowManagement.EntityFrameworkCore" Version="1.2.5" />
-    <PackageReference Include="XCZ.FormManagement.EntityFrameworkCore" Version="2.1.3" />
   </ItemGroup>
 
   <ItemGroup>

+ 5 - 10
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/BusinessDbContext.cs

@@ -1,5 +1,3 @@
-using Business.Model;
-using Business.Models;
 using Bussiness.Model.MES.IC;
 using Bussiness.Model.Production;
 using Bussiness.Model.ProductionProcess;
@@ -9,22 +7,19 @@ using Bussiness.Model.SRM;
 using Bussiness.Model.SystemData;
 using Bussiness.Model.Tech;
 using Microsoft.EntityFrameworkCore;
-using System;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
 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
 {
     [ConnectionStringName("Default")]
     public class BusinessDbContext : AbpDbContext<BusinessDbContext>
     {
-        public DbSet<Book> Book { get; set; }
-
-        public DbSet<PrintTemplate> PrintTemplate { get; set; }
-
         #region MES/IC
         public DbSet<ic_bom> ic_bom { get; set; }
         public DbSet<ic_bom_child> ic_bom_child { get; set; }

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

@@ -1,5 +1,4 @@
 using Business.Model;
-using Business.Models;
 using Bussiness.Model.MES.IC;
 using Bussiness.Model.Production;
 using Bussiness.Model.ProductionProcess;
@@ -26,26 +25,6 @@ namespace Business.EntityFrameworkCore
         {
             //TODO:这样太麻烦了,有时间研究一下批量
             Check.NotNull(builder, nameof(builder));
-            builder.Entity<Book>(b =>
-            {
-                b.ToTable("Book");
-
-                b.ConfigureByConvention();
-
-                b.Property(x => x.Name).IsRequired();
-
-
-            });
-
-            builder.Entity<PrintTemplate>(b =>
-            {
-                b.ToTable("base_print_template");
-
-                b.ConfigureByConvention();
-
-                b.Property(x => x.Name).IsRequired();
-            });
-
             builder.Entity<ic_bom>(b =>
             {
                 b.ToTable("ic_bom");

+ 1 - 4
MicroServices/Business/Business.EntityFrameworkCore/EntityFrameworkCore/BusinessEntityFrameworkCoreModule.cs

@@ -5,7 +5,6 @@ using Volo.Abp.Modularity;
 using Volo.Abp.PermissionManagement.EntityFrameworkCore;
 using Volo.Abp.SettingManagement.EntityFrameworkCore;
 using Volo.Abp.TenantManagement.EntityFrameworkCore;
-using XCZ.EntityFrameworkCore;
 
 namespace Business.EntityFrameworkCore
 {
@@ -15,9 +14,7 @@ namespace Business.EntityFrameworkCore
         typeof(AbpPermissionManagementEntityFrameworkCoreModule),
         typeof(AbpSettingManagementEntityFrameworkCoreModule),
         typeof(AbpAuditLoggingEntityFrameworkCoreModule),
-        typeof(AbpTenantManagementEntityFrameworkCoreModule),
-        typeof(FormEntityFrameworkCoreModule),
-        typeof(FlowEntityFrameworkCoreModule)
+        typeof(AbpTenantManagementEntityFrameworkCoreModule)
     )]
     public class BusinessEntityFrameworkCoreModule : AbpModule
     {

+ 2 - 10
MicroServices/Business/Business.Host/Business.Host.csproj

@@ -9,8 +9,6 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Hangfire.Dashboard.BasicAuthorization" Version="1.0.2" />
-    <PackageReference Include="HuffeyHangFire" Version="1.0.0" />
 	 <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.3" />
     <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="6.0.3" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.5">
@@ -18,6 +16,7 @@
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
     </PackageReference>
     <PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="6.0.3" />
+    <PackageReference Include="Quartz.AspNetCore" Version="3.6.2" />
     <PackageReference Include="Serilog.AspNetCore" Version="5.0.0" />
     <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
     <PackageReference Include="Serilog.Sinks.Elasticsearch" Version="8.4.1" />
@@ -25,7 +24,7 @@
     <PackageReference Include="Volo.Abp.AspNetCore.MultiTenancy" Version="6.0.0" />
     <PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="6.0.0" />
     <PackageReference Include="Volo.Abp.Autofac" Version="6.0.0" />
-    <PackageReference Include="Volo.Abp.Caching" Version="6.0.0" />
+    <PackageReference Include="Volo.Abp.Caching" Version="6.0.3" />
     <PackageReference Include="Volo.Abp.EntityFrameworkCore.MySQL" Version="6.0.2" />
   </ItemGroup>
 
@@ -38,14 +37,7 @@
 
   <ItemGroup>
     <Folder Include="DataSeeder\" />
-    <Folder Include="Logs\" />
     <Folder Include="wwwroot\" />
   </ItemGroup>
 
-  <ItemGroup>
-    <Reference Include="Hangfire.MySql.Core">
-      <HintPath>..\..\..\..\Hangfire.MySql.Core\Hangfire.MySql\bin\Debug\net5.0\Hangfire.MySql.Core.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-
 </Project>

+ 28 - 55
MicroServices/Business/Business.Host/BusinessHostModule.cs

@@ -1,12 +1,8 @@
 using Autofac.Core;
 using Business.Core.MongoDBHelper;
 using Business.EntityFrameworkCore;
-using Business.HangFire;
 using Business.MultiTenancy;
-using Hangfire;
-using Hangfire.Dashboard.BasicAuthorization;
-using Hangfire.MySql;
-using Hangfire.MySql.Core;
+using Business.Quartz;
 using Microsoft.AspNetCore.Authentication.JwtBearer;
 using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Cors;
@@ -16,13 +12,13 @@ using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Hosting;
 using Microsoft.OpenApi.Models;
+using Quartz;
 using StackExchange.Redis;
 using System;
 using System.Collections.Generic;
 using System.Data;
 using System.IO;
 using System.Linq;
-using System.Security.Cryptography.Pkcs;
 using Volo.Abp;
 using Volo.Abp.AspNetCore.ExceptionHandling;
 using Volo.Abp.AspNetCore.MultiTenancy;
@@ -67,10 +63,10 @@ namespace Business
             //ConfigureRedis(context, configuration, hostingEnvironment);
             ConfigureCors(context, configuration);
             ConfigureSwaggerServices(context, configuration);
-            ConfigureHangfire(context, configuration);
+            ConfigureQuartz(context, configuration);
             //MongoDB依赖注入
             ConfigureMongoDB(configuration);
-            if(hostingEnvironment.IsDevelopment())
+            if (hostingEnvironment.IsDevelopment())
             {
                 Configure<AbpExceptionHandlingOptions>(options =>
                 {
@@ -95,31 +91,31 @@ namespace Business
             });
         }
 
-        private void ConfigureHangfire(ServiceConfigurationContext context, IConfiguration configuration)
+        private void ConfigureQuartz(ServiceConfigurationContext context, IConfiguration configuration)
         {
-            context.Services.AddHangfire(config =>
+            context.Services.AddQuartz(q =>
             {
-                //config.UseStorage(new MySqlStorage(configuration.GetConnectionString("Business"),new MySqlStorageOptions
-                //{
-                //    TransactionIsolationLevel =IsolationLevel.ReadCommitted,
-                //    QueuePollInterval = TimeSpan.FromSeconds(15),
-                //    JobExpirationCheckInterval = TimeSpan.FromHours(1),
-                //    CountersAggregateInterval = TimeSpan.FromMinutes(5),
-                //    PrepareSchemaIfNecessary = true,
-                //    DashboardJobListLimit = 50000,
-                //    TransactionTimeout = TimeSpan.FromMinutes(1),
-                //    TablePrefix = "Hangfire"
-                //}));
-                config.UseStorage(new MySqlStorage(configuration.GetConnectionString("Default"), new MySqlStorageOptions
-                {
-                    QueuePollInterval = TimeSpan.FromSeconds(15),
-                    JobExpirationCheckInterval = TimeSpan.FromHours(1),
-                    CountersAggregateInterval = TimeSpan.FromMinutes(5),
-                    PrepareSchemaIfNecessary = true,
-                    DashboardJobListLimit = 50000,
-                    TransactionTimeout = TimeSpan.FromMinutes(1),
-                }));
+                q.UseMicrosoftDependencyInjectionScopedJobFactory();
+                // Just use the name of your job that you created in the Jobs folder.
+                var jobKey = new JobKey("DemoJob");
+                q.AddJob<SyncMySQLDataJob>(opts => opts.WithIdentity(jobKey));
+
+                q.AddTrigger(opts => opts
+                    .ForJob(jobKey)
+                    .WithIdentity("DemoJob-trigger")
+                    .WithCronSchedule("0 45 11 * * ?")
+                    .WithDescription("定时同步MySQL基础数据到MongoDB"));
             });
+            context.Services.AddQuartzServer(options =>
+            {
+                // when shutting down we want jobs to complete gracefully
+                options.WaitForJobsToComplete = true;
+            });
+            //context.Services.AddQuartzHostedService(options =>
+            //{
+            //    // when shutting down we want jobs to complete gracefully
+            //    options.WaitForJobsToComplete = true;
+            //});
         }
 
         /// <summary>
@@ -129,7 +125,8 @@ namespace Business
         /// <param name="configuration"></param>
         private void ConfigureMongoDB(IConfiguration configuration)
         {
-            Configure<Config>(options => {
+            Configure<Config>(options =>
+            {
                 options.connectstring = configuration.GetConnectionString("MongoDB");
                 options.database = configuration.GetConnectionString("DBName");
             });
@@ -293,30 +290,6 @@ namespace Business
             app.UseAbpSerilogEnrichers();
             app.UseUnitOfWork();
             app.UseConfiguredEndpoints();
-            //app.UseHangfireServer();
-            app.UseHangfireDashboard(options: new DashboardOptions
-            {
-                Authorization = new[]
-                {
-                    new BasicAuthAuthorizationFilter(new BasicAuthAuthorizationFilterOptions
-                    {
-                        RequireSsl = false,
-                        SslRedirect = false,
-                        LoginCaseSensitive = true,
-                        Users = new []
-                        {
-                            new BasicAuthAuthorizationUser
-                            {
-                                Login = configuration["Hangfire:Login"],
-                                PasswordClear =  configuration["Hangfire:Password"]
-                            }
-                        }
-                    })
-                },
-                DashboardTitle = "任务调度中心"
-            });
-
-            RecurringJob.AddOrUpdate<IHangFireJobService>(a=>a.SyncDataMySQLData(),CronType.Day(0,0,1),TimeZoneInfo.Local);
             AsyncHelper.RunSync(async () =>
             {
                 using (var scope = context.ServiceProvider.CreateScope())

+ 2 - 3
MicroServices/Business/Business.Host/EntityFrameworkCore/BusinessMigrationDbContext.cs

@@ -4,7 +4,6 @@ using System.ComponentModel;
 using System.Linq;
 using System.Reflection;
 using Volo.Abp.EntityFrameworkCore;
-using XCZ.EntityFrameworkCore;
 
 namespace Business.EntityFrameworkCore
 {
@@ -21,8 +20,8 @@ namespace Business.EntityFrameworkCore
         {
             base.OnModelCreating(modelBuilder);
             //改用低代码平台的表单流程
-            modelBuilder.ConfigureForm();
-            modelBuilder.ConfigureFlow();
+            //modelBuilder.ConfigureForm();
+            //modelBuilder.ConfigureFlow();
             modelBuilder.ConfigureBusiness();
         }
     }

+ 0 - 2
MicroServices/Business/Business.Host/Startup.cs

@@ -1,5 +1,4 @@
 using Business.Core.MongoDBHelper;
-using Business.HangFire;
 using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.Extensions.DependencyInjection;
@@ -15,7 +14,6 @@ namespace Business
             //MongoDBHelperÒÀÀµ×¢Èë
             services.AddScoped(typeof(IMongoDB<>), typeof(MongoDBTools<>));
             services.AddScoped<Config>();
-            services.AddTransient<IHangFireJobService,HangFireJobService>();
         }
 
         public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
MicroServices/Business/Business.Host/tempkey.jwk


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

@@ -24,4 +24,10 @@
     <ProjectReference Include="..\Business.Application.Contracts\Business.Application.Contracts.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="Controllers\WMS\" />
+    <Folder Include="Controllers\MES\" />
+    <Folder Include="Controllers\DOP\" />
+  </ItemGroup>
+
 </Project>

+ 0 - 52
MicroServices/Business/Business.HttpApi/Controllers/BookController.cs

@@ -1,52 +0,0 @@
-using Business.BookManagement;
-using Business.BookManagement.Dto;
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.AspNetCore.Mvc;
-
-namespace Business.Controllers
-{
-    [RemoteService]
-    [Area("Business")]
-    [Route("api/business/book")]
-    public class BookController : AbpController
-    {
-        private readonly IBookAppService _BookAppService;
-
-        public BookController(IBookAppService BookAppService)
-        {
-            _BookAppService = BookAppService;
-        }
-
-        [HttpPost]
-        [Route("data-post")]
-        public Task<BookDto> CreateOrUpdate(CreateOrUpdateBookDto input)
-        {
-            return _BookAppService.CreateOrUpdate(input);
-        }
-
-        [HttpPost]
-        [Route("delete")]
-        public Task Delete(List<Guid> ids)
-        {
-            return _BookAppService.Delete(ids);
-        }
-
-        [HttpGet]
-        [Route("{id}")]
-        public Task<BookDto> Get(Guid id)
-        {
-            return _BookAppService.Get(id);
-        }
-
-        [HttpGet]
-        public Task<PagedResultDto<BookDto>> GetAll(GetBookInputDto input)
-        {
-            return _BookAppService.GetAll(input);
-        }
-    }
-}

+ 42 - 0
MicroServices/Business/Business.HttpApi/Controllers/Kanban/KanbanController.cs

@@ -0,0 +1,42 @@
+using Business.ResourceExamineManagement;
+using Business.ResourceExamineManagement.Dto;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace Business.Controllers.Kanban
+{
+    /// <summary>
+    /// 看板&报表
+    /// </summary>
+    [RemoteService]
+    [Area("Business")]
+    [Route("api/business/kanban")]
+    public class KanbanController : AbpController
+    {
+        //private readonly IResourceExamineAppService _ResourceExamineAppService;
+
+        public KanbanController(IResourceExamineAppService ResourceExamineAppService)
+        {
+            //_ResourceExamineAppService = ResourceExamineAppService;
+        }
+
+        /// <summary>
+        /// 待收货看板
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("demo")]
+        public Task<string> Demo()
+        {
+            //收货通知组织、收货通知日期、收货通知单号、收货申请人、单据类型、供应商编码、供应商名称、已等待收货时间、物料编码、物料名称、规格型号、数量
+            throw new NotImplementedException();
+        }
+    }
+}

+ 0 - 60
MicroServices/Business/Business.HttpApi/Controllers/PrintTemplateController.cs

@@ -1,60 +0,0 @@
-using Business.PrintTemplateManagement;
-using Business.PrintTemplateManagement.Dto;
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.AspNetCore.Mvc;
-
-namespace Business.Controllers
-{
-    [RemoteService]
-    [Area("Business")]
-    [Route("api/business/print-template")]
-    public class PrintTemplateController : AbpController
-    {
-        private readonly IPrintTemplateAppService _PrintTemplateAppService;
-
-        public PrintTemplateController(IPrintTemplateAppService PrintTemplateAppService)
-        {
-            _PrintTemplateAppService = PrintTemplateAppService;
-        }
-
-        [HttpPost]
-        [Route("data-post")]
-        public Task<PrintTemplateDto> DataPost(CreateOrUpdatePrintTemplateDto input)
-        {
-            return _PrintTemplateAppService.DataPost(input);
-        }
-
-        [HttpPost]
-        [Route("delete")]
-        public Task Delete(List<Guid> ids)
-        {
-            return _PrintTemplateAppService.Delete(ids);
-        }
-
-        [HttpGet]
-        [Route("{id}")]
-        public Task<PrintTemplateDto> Get(Guid id)
-        {
-            return _PrintTemplateAppService.Get(id);
-        }
-
-        [HttpGet]
-        public Task<PagedResultDto<PrintTemplateDto>> GetAll(GetPrintTemplateInputDto input)
-        {
-            return _PrintTemplateAppService.GetAll(input);
-        }
-
-        [HttpGet]
-        [Route("pdf/{id}")]
-        public Task<dynamic> CreatePdf(Guid id)
-        {
-            return _PrintTemplateAppService.CreatePdf(id);
-        }
-    }
-}

+ 42 - 0
MicroServices/Business/Business.HttpApi/Controllers/QMS/QMSController.cs

@@ -0,0 +1,42 @@
+using Business.ResourceExamineManagement;
+using Business.ResourceExamineManagement.Dto;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace Business.Controllers.QMS
+{
+    /// <summary>
+    /// QMS示例,具体接口名称和接口设计请参考具体需求文档
+    /// </summary>
+    [RemoteService]
+    [Area("Business")]
+    [Route("api/business/qms")]
+    public class QMSController : AbpController
+    {
+        //private readonly IResourceExamineAppService _ResourceExamineAppService;
+
+        public QMSController(IResourceExamineAppService ResourceExamineAppService)
+        {
+            //_ResourceExamineAppService = ResourceExamineAppService;
+        }
+
+        /// <summary>
+        /// 待收货看板
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("demo")]
+        public Task<string> Demo()
+        {
+            //收货通知组织、收货通知日期、收货通知单号、收货申请人、单据类型、供应商编码、供应商名称、已等待收货时间、物料编码、物料名称、规格型号、数量
+            throw new NotImplementedException();
+        }
+    }
+}

+ 42 - 0
MicroServices/Business/Business.HttpApi/Controllers/SIM/AndonController.cs

@@ -0,0 +1,42 @@
+using Business.ResourceExamineManagement;
+using Business.ResourceExamineManagement.Dto;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace Business.Controllers.SIM
+{
+    /// <summary>
+    /// 安灯系统示例,具体接口名称和接口设计请参考具体需求文档
+    /// </summary>
+    [RemoteService]
+    [Area("Business")]
+    [Route("api/business/andon")]
+    public class AndonController : AbpController
+    {
+        //private readonly IResourceExamineAppService _ResourceExamineAppService;
+
+        public AndonController(IResourceExamineAppService ResourceExamineAppService)
+        {
+            //_ResourceExamineAppService = ResourceExamineAppService;
+        }
+
+        /// <summary>
+        /// 待收货看板
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("demo")]
+        public Task<string> Demo()
+        {
+            //收货通知组织、收货通知日期、收货通知单号、收货申请人、单据类型、供应商编码、供应商名称、已等待收货时间、物料编码、物料名称、规格型号、数量
+            throw new NotImplementedException();
+        }
+    }
+}

+ 42 - 0
MicroServices/Business/Business.HttpApi/Controllers/SIM/SIMController.cs

@@ -0,0 +1,42 @@
+using Business.ResourceExamineManagement;
+using Business.ResourceExamineManagement.Dto;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace Business.Controllers.SIM
+{
+    /// <summary>
+    /// SIM系统示例,具体接口名称和接口设计请参考具体需求文档
+    /// </summary>
+    [RemoteService]
+    [Area("Business")]
+    [Route("api/business/sim")]
+    public class SIMController : AbpController
+    {
+        //private readonly IResourceExamineAppService _ResourceExamineAppService;
+
+        public SIMController(IResourceExamineAppService ResourceExamineAppService)
+        {
+            //_ResourceExamineAppService = ResourceExamineAppService;
+        }
+
+        /// <summary>
+        /// 异常问题升级规则
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("demo")]
+        public Task<string> Demo()
+        {
+            //升级规则维护
+            throw new NotImplementedException();
+        }
+    }
+}

+ 0 - 28
MicroServices/Business/Business.HttpApi/Controllers/ThinkFlowController.cs

@@ -1,28 +0,0 @@
-using Business.BookManagement;
-using Business.BookManagement.Dto;
-using Business.Permissions;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.AspNetCore.Mvc;
-
-namespace Business.Controllers
-{
-    [RemoteService]
-    [Area("Business")]
-    [Route("api/business/thinkflow")]
-    [Authorize(BusinessPermissions.ThinkFlow.Default)]
-    public class ThinkFlowController : AbpController
-    {
-        [HttpGet]
-        [Route("index")]
-        public ActionResult Index()
-        {
-            return Redirect("http://localhost:3001/");
-        }
-    }
-}

+ 29 - 1
MicroServices/Business/Business.sln

@@ -25,7 +25,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bussiness.MongoModel", "Bus
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{4523E5A9-9492-49A2-8A1A-46080749D966}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Business.Test", "Business.Test\Business.Test.csproj", "{66017D12-2115-4DC9-B400-E5E57EE2D16E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Business.Test", "Business.Test\Business.Test.csproj", "{66017D12-2115-4DC9-B400-E5E57EE2D16E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Buissness.TestBase", "Buissness.UnitTest\Buissness.TestBase.csproj", "{DFAA3146-7008-4F54-B48B-013E80208376}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bussiness.ApplicationTest", "Bussiness.ApplicationTest\Bussiness.ApplicationTest.csproj", "{9BDE4DA1-1F56-410D-A1A7-53EB3E8848B2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bussiness.EntityFrameworkCore.Test", "Bussiness.EntityFrameworkCore.Test\Bussiness.EntityFrameworkCore.Test.csproj", "{CEFD0FFD-FAF2-4F2A-B5E2-BF94E956E183}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bussiness.Domain.Test", "Bussiness.Domain.Test\Bussiness.Domain.Test.csproj", "{A723B3B5-6C40-495D-88A7-8ADBBAB76710}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -77,12 +85,32 @@ Global
 		{66017D12-2115-4DC9-B400-E5E57EE2D16E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{66017D12-2115-4DC9-B400-E5E57EE2D16E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{66017D12-2115-4DC9-B400-E5E57EE2D16E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DFAA3146-7008-4F54-B48B-013E80208376}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DFAA3146-7008-4F54-B48B-013E80208376}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DFAA3146-7008-4F54-B48B-013E80208376}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DFAA3146-7008-4F54-B48B-013E80208376}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9BDE4DA1-1F56-410D-A1A7-53EB3E8848B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9BDE4DA1-1F56-410D-A1A7-53EB3E8848B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9BDE4DA1-1F56-410D-A1A7-53EB3E8848B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9BDE4DA1-1F56-410D-A1A7-53EB3E8848B2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{CEFD0FFD-FAF2-4F2A-B5E2-BF94E956E183}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{CEFD0FFD-FAF2-4F2A-B5E2-BF94E956E183}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{CEFD0FFD-FAF2-4F2A-B5E2-BF94E956E183}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{CEFD0FFD-FAF2-4F2A-B5E2-BF94E956E183}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A723B3B5-6C40-495D-88A7-8ADBBAB76710}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A723B3B5-6C40-495D-88A7-8ADBBAB76710}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A723B3B5-6C40-495D-88A7-8ADBBAB76710}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A723B3B5-6C40-495D-88A7-8ADBBAB76710}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
 		{66017D12-2115-4DC9-B400-E5E57EE2D16E} = {4523E5A9-9492-49A2-8A1A-46080749D966}
+		{DFAA3146-7008-4F54-B48B-013E80208376} = {4523E5A9-9492-49A2-8A1A-46080749D966}
+		{9BDE4DA1-1F56-410D-A1A7-53EB3E8848B2} = {4523E5A9-9492-49A2-8A1A-46080749D966}
+		{CEFD0FFD-FAF2-4F2A-B5E2-BF94E956E183} = {4523E5A9-9492-49A2-8A1A-46080749D966}
+		{A723B3B5-6C40-495D-88A7-8ADBBAB76710} = {4523E5A9-9492-49A2-8A1A-46080749D966}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {2E43F5D5-31CD-4424-A538-4C716E71D9AF}

+ 25 - 0
MicroServices/Business/Bussiness.ApplicationTest/Bussiness.ApplicationTest.csproj

@@ -0,0 +1,25 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+
+    <IsPackable>false</IsPackable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
+    <PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
+    <PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
+    <PackageReference Include="coverlet.collector" Version="3.1.2" />
+    <PackageReference Include="Shouldly" Version="4.1.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\Buissness.UnitTest\Buissness.TestBase.csproj" />
+    <ProjectReference Include="..\Business.Application\Business.Application.csproj" />
+    <ProjectReference Include="..\Bussiness.Domain.Test\Bussiness.Domain.Test.csproj" />
+  </ItemGroup>
+
+</Project>

+ 25 - 0
MicroServices/Business/Bussiness.ApplicationTest/CoreApplicationTestBase.cs

@@ -0,0 +1,25 @@
+using System;
+using Buissness.TestBase;
+using Business.EntityFrameworkCore;
+
+namespace Bussiness.ApplicationTest
+{
+    public abstract class CoreApplicationTestBase : CoreTestBase<CoreApplicationTestModule> 
+    {
+        protected virtual void UsingDbContext(Action<BusinessDbContext> action)
+        {
+            using (var dbContext = GetRequiredService<BusinessDbContext>())
+            {
+                action.Invoke(dbContext);
+            }
+        }
+
+        protected virtual T UsingDbContext<T>(Func<BusinessDbContext, T> action)
+        {
+            using (var dbContext = GetRequiredService<BusinessDbContext>())
+            {
+                return action.Invoke(dbContext);
+            }
+        }
+    }
+}

+ 21 - 0
MicroServices/Business/Bussiness.ApplicationTest/CoreApplicationTestModule.cs

@@ -0,0 +1,21 @@
+using Buissness.TestBase;
+using Business;
+using Bussiness.EntityFrameworkCore.Test;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.Modularity;
+
+namespace Bussiness.ApplicationTest
+{
+    [DependsOn(
+        typeof(BusinessApplicationModule),
+        typeof(CoreEntityFrameworkCoreTestModule),
+        typeof(CoreTestBaseModule)
+        )]
+    public class CoreApplicationTestModule : AbpModule
+    {
+        public override void ConfigureServices(ServiceConfigurationContext context)
+        {
+            context.Services.AddAlwaysAllowAuthorization();
+        }
+    }
+}

+ 30 - 0
MicroServices/Business/Bussiness.ApplicationTest/ResourceExamineManagement/ResourceExamineAppService_Tests.cs

@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Business.ResourceExamineManagement;
+using Business.ResourceExamineManagement.Dto;
+using Bussiness.ApplicationTest;
+using Shouldly;
+using Volo.Abp.Identity;
+using Xunit;
+
+namespace Bussiness.ApplicationTest.ResourceExamineManagement
+{
+    public class ResourceExamineAppService_Tests : CoreApplicationTestBase
+    {
+        private readonly IResourceExamineAppService _resourceExamineAppService;
+        public ResourceExamineAppService_Tests()
+        {
+            _resourceExamineAppService = GetRequiredService<IResourceExamineAppService>();
+        }
+
+        [Fact]
+        public async Task Should_ThrowExcetion()
+        {
+            var testInput = new SeorderentryDto { factoryId = 10201, sorderId = 111111, tenantId = 102 };
+            await Assert.ThrowsAsync<NotImplementedException>(async () => await _resourceExamineAppService.ReceiveResult(testInput));
+        }
+    }
+}

+ 28 - 0
MicroServices/Business/Bussiness.Domain.Test/Bussiness.Domain.Test.csproj

@@ -0,0 +1,28 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+
+    <IsPackable>false</IsPackable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
+    <PackageReference Include="xunit" Version="2.4.2" />
+    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
+      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+      <PrivateAssets>all</PrivateAssets>
+    </PackageReference>
+    <PackageReference Include="coverlet.collector" Version="3.1.2">
+      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+      <PrivateAssets>all</PrivateAssets>
+    </PackageReference>
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\Bussiness.EntityFrameworkCore.Test\Bussiness.EntityFrameworkCore.Test.csproj" />
+  </ItemGroup>
+
+</Project>

+ 9 - 0
MicroServices/Business/Bussiness.Domain.Test/CoreDomainTestBase.cs

@@ -0,0 +1,9 @@
+using Buissness.TestBase;
+
+namespace Bussiness.Domain.Test
+{
+    public abstract class CoreDomainTestBase : CoreTestBase<CoreDomainTestModule> 
+    {
+
+    }
+}

+ 15 - 0
MicroServices/Business/Bussiness.Domain.Test/CoreDomainTestModule.cs

@@ -0,0 +1,15 @@
+using Bussiness.EntityFrameworkCore.Test;
+using Buissness.TestBase;
+using Volo.Abp.Modularity;
+
+namespace Bussiness.Domain.Test
+{
+    [DependsOn(
+        typeof(CoreEntityFrameworkCoreTestModule),
+        typeof(CoreTestBaseModule)
+        )]
+    public class CoreDomainTestModule : AbpModule
+    {
+
+    }
+}

+ 25 - 0
MicroServices/Business/Bussiness.Domain.Test/MES/IC/ic_substitute_Tests.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Bussiness.Model.MES.IC;
+using Bussiness.Model.SIM;
+using Shouldly;
+using Xunit;
+
+namespace Bussiness.Domain.Test
+{
+    public class ic_substitute_Tests
+    {
+        [Theory]
+        [InlineData("aaa")]
+        [InlineData("bbb")]
+        public void SetText(string text)
+        {
+            var comment = new ic_substitute { substitute_type = 1, substitute_code = "CCC" };
+            comment.substitute_code=text;
+            comment.substitute_code.ShouldBe(text);
+        }
+    }
+}

+ 10 - 0
MicroServices/Business/Bussiness.EntityFrameworkCore.Test/EntityFrameworkCore/CoreEntityFrameworkCoreTestBase.cs

@@ -0,0 +1,10 @@
+using Buissness.TestBase;
+using Volo.Abp;
+
+namespace Bussiness.EntityFrameworkCore.Test
+{
+    public abstract class CoreEntityFrameworkCoreTestBase : CoreTestBase<CoreEntityFrameworkCoreTestModule> 
+    {
+
+    }
+}

+ 64 - 0
MicroServices/Business/Bussiness.EntityFrameworkCore.Test/EntityFrameworkCore/CoreEntityFrameworkCoreTestModule.cs

@@ -0,0 +1,64 @@
+using Buissness.TestBase;
+using Business.EntityFrameworkCore;
+using Microsoft.Data.Sqlite;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
+using Volo.Abp.EntityFrameworkCore;
+using Volo.Abp.EntityFrameworkCore.Sqlite;
+using Volo.Abp.Modularity;
+
+namespace Bussiness.EntityFrameworkCore.Test
+{
+    [DependsOn(
+        typeof(BusinessEntityFrameworkCoreModule),
+        typeof(CoreTestBaseModule),
+        typeof(AbpEntityFrameworkCoreSqliteModule)
+        )]
+    public class CoreEntityFrameworkCoreTestModule : AbpModule
+    {
+        private SqliteConnection _sqliteConnection;
+
+        public override void ConfigureServices(ServiceConfigurationContext context)
+        {
+            ConfigureInMemorySqlite(context.Services);
+        }
+
+        private void ConfigureInMemorySqlite(IServiceCollection services)
+        {
+            _sqliteConnection = CreateDatabaseAndGetConnection();
+
+            services.Configure<AbpDbContextOptions>(options =>
+            {
+                options.Configure(context =>
+                {
+                    context.DbContextOptions.UseSqlite(_sqliteConnection);
+                });
+            });
+        }
+
+        public override void OnApplicationShutdown(ApplicationShutdownContext context)
+        {
+            _sqliteConnection.Dispose();
+        }
+
+        private static SqliteConnection CreateDatabaseAndGetConnection()
+        {
+            var connection = new SqliteConnection("Data Source=:memory:");
+            connection.Open();
+
+            var options = new DbContextOptionsBuilder<BusinessDbContext>()
+                .UseSqlite(connection)
+                .Options;
+
+            using (var context = new BusinessDbContext(options))
+            {
+                context.GetService<IRelationalDatabaseCreator>().CreateTables();
+            }
+
+            return connection;
+        }
+    }
+}

+ 13 - 0
MicroServices/Business/Bussiness.EntityFrameworkCore.Test/EntityFrameworkCore/MES/IC/sim_issue_typeRepository_Tests.cs

@@ -0,0 +1,13 @@
+using Buissness.TestBase;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Bussiness.EntityFrameworkCore.Test
+{
+    public class sim_issue_typeRepository_Tests : sim_issue_typeRepository_Tests<CoreEntityFrameworkCoreTestModule>
+    {
+    }
+}

+ 45 - 0
MicroServices/Business/Bussiness.EntityFrameworkCore.Test/EntityFrameworkCore/Samples/SampleRepositoryTests.cs

@@ -0,0 +1,45 @@
+using Bussiness.Model.SIM;
+using Microsoft.EntityFrameworkCore;
+using Shouldly;
+using System;
+using System.Linq;
+using System.Threading.Tasks;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Identity;
+using Xunit;
+
+namespace Bussiness.EntityFrameworkCore.Test.Samples
+{
+    /* This is just an example test class.
+     * Normally, you don't test ABP framework code
+     * (like default AppUser repository IRepository<AppUser, Guid> here).
+     * Only test your custom repository methods.
+     */
+    public class SampleRepositoryTests : CoreEntityFrameworkCoreTestBase
+    {
+        private readonly IRepository<sim_base, long> _simbaseRepository;
+
+        public SampleRepositoryTests()
+        {
+            _simbaseRepository = GetRequiredService<IRepository<sim_base, long>>();
+        }
+
+        [Fact]
+        public async Task Should_Query_AppUser()
+        {
+            /* Need to manually start Unit Of Work because
+             * FirstOrDefaultAsync should be executed while db connection / context is available.
+             */
+            await WithUnitOfWorkAsync(async () =>
+            {
+                //Act
+                var simbase = await (await _simbaseRepository.GetQueryableAsync())
+                    .Where(u => u.rise_time>DateTime.MaxValue)
+                    .FirstOrDefaultAsync();
+
+                //Assert
+                simbase.ShouldNotBeNull();
+            });
+        }
+    }
+}

+ 53 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/DigitalManufacturing.Application.Contracts.csproj

@@ -0,0 +1,53 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <RootNamespace>DigitalManufacturing</RootNamespace>
+    <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
+    <PackageId>XCZ.Procurement.Application.Contracts</PackageId>
+    <Version>0.1.1</Version>
+    <Authors>XCZ</Authors>
+    <Product>Procurement</Product>
+    <Description>Procurement服务Application.Contracts远程依赖</Description>
+    <PackageProjectUrl>https://github.com/WilliamXu96/ABP-MicroService</PackageProjectUrl>
+    <RepositoryUrl>https://github.com/WilliamXu96/ABP-MicroService</RepositoryUrl>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <None Remove="Localization\DigitalManufacturing\cs.json" />
+    <None Remove="Localization\DigitalManufacturing\en.json" />
+    <None Remove="Localization\DigitalManufacturing\pl.json" />
+    <None Remove="Localization\DigitalManufacturing\pt-BR.json" />
+    <None Remove="Localization\DigitalManufacturing\tr.json" />
+    <None Remove="Localization\DigitalManufacturing\vi.json" />
+    <None Remove="Localization\DigitalManufacturing\zh-Hans.json" />
+    <None Remove="Localization\DigitalManufacturing\zh-Hant.json" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <EmbeddedResource Include="Localization\DigitalManufacturing\cs.json" />
+    <EmbeddedResource Include="Localization\DigitalManufacturing\en.json" />
+    <EmbeddedResource Include="Localization\DigitalManufacturing\pl.json" />
+    <EmbeddedResource Include="Localization\DigitalManufacturing\pt-BR.json" />
+    <EmbeddedResource Include="Localization\DigitalManufacturing\tr.json" />
+    <EmbeddedResource Include="Localization\DigitalManufacturing\vi.json" />
+    <EmbeddedResource Include="Localization\DigitalManufacturing\zh-Hans.json" />
+    <EmbeddedResource Include="Localization\DigitalManufacturing\zh-Hant.json" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="5.0.17" />
+    <PackageReference Include="Volo.Abp.Ddd.Application" Version="6.0.0" />
+    <PackageReference Include="Volo.Abp.PermissionManagement.Application.Contracts" Version="6.0.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Folder Include="DigitalManufacturingManagement\DOP\" />
+    <Folder Include="DigitalManufacturingManagement\Kanban\" />
+    <Folder Include="DigitalManufacturingManagement\MES\" />
+    <Folder Include="DigitalManufacturingManagement\QMS\" />
+    <Folder Include="DigitalManufacturingManagement\SIM\" />
+    <Folder Include="DigitalManufacturingManagement\WMS\" />
+  </ItemGroup>
+
+</Project>

+ 34 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/DigitalManufacturingApplicationContractsModule.cs

@@ -0,0 +1,34 @@
+using Business.Localization;
+using Volo.Abp.Application;
+using Volo.Abp.Localization;
+using Volo.Abp.Modularity;
+using Volo.Abp.PermissionManagement;
+using Volo.Abp.Validation.Localization;
+using Volo.Abp.VirtualFileSystem;
+
+namespace Procurement
+{
+    [DependsOn(
+       typeof(AbpLocalizationModule),
+        typeof(AbpDddApplicationModule),
+        typeof(AbpPermissionManagementApplicationContractsModule)
+    )]
+    public class DigitalManufacturingApplicationContractsModule : AbpModule
+    {
+        public override void ConfigureServices(ServiceConfigurationContext context)
+        {
+            Configure<AbpVirtualFileSystemOptions>(options =>
+            {
+                options.FileSets.AddEmbedded<DigitalManufacturingApplicationContractsModule>("DigitalManufacturing");
+            });
+
+            Configure<AbpLocalizationOptions>(options =>
+            {
+                options.Resources
+                    .Add<DigitalManufacturingResource>("zh-Hans")
+                    .AddBaseTypes(typeof(AbpValidationResource))
+                    .AddVirtualJson("/Localization/DigitalManufacturing");
+            });
+        }
+    }
+}

+ 22 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/DigitalManufacturingManagement/Dto/FileInfoDto.cs

@@ -0,0 +1,22 @@
+using System;
+using Volo.Abp.Application.Dtos;
+
+namespace Procurement.FileManagement.Dto
+{
+    public class FileInfoDto : EntityDto<Guid>
+    {
+        public string Name { get; set; }
+
+        public string RealName { get; set; }
+
+        public string Suffix { get; set; }
+
+        public string Size { get; set; }
+
+        public string Url { get; set; }
+
+        public int Type { get; set; }
+
+        public DateTime CreationTime { get; set; }
+    }
+}

+ 9 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/DigitalManufacturingManagement/Dto/GetFileInputDto.cs

@@ -0,0 +1,9 @@
+using Volo.Abp.Application.Dtos;
+
+namespace Procurement.FileManagement.Dto
+{
+    public class GetFileInputDto : PagedAndSortedResultRequestDto
+    {
+        public string Filter { get; set; }
+    }
+}

+ 18 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/DigitalManufacturingManagement/IDigitalManufacturingAppService.cs

@@ -0,0 +1,18 @@
+using Procurement.FileManagement.Dto;
+using Microsoft.AspNetCore.Http;
+using System.ComponentModel.DataAnnotations;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+
+namespace DigitalManufacturing.DigitalManufacturingManagement
+{
+    public interface IDigitalManufacturingAppService : IApplicationService
+    {
+        Task<PagedResultDto<FileInfoDto>> GetAll(GetFileInputDto input);
+
+        Task<FileInfoDto> Upload([Required] string name, [Required] IFormFile file);
+
+        Task UploadPrivate([Required] string name, [Required] IFormFile file);
+    }
+}

+ 13 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/cs.json

@@ -0,0 +1,13 @@
+{
+  "culture": "cs",
+  "texts": {
+    "Menu:Home": "Úvod",
+    "Welcome": "Vítejte",
+    "LongWelcomeMessage": "Vítejte v aplikaci. Toto je startovací projekt založený na ABP frameworku. Pro více informací, navštivte abp.io.",
+    "Edit": "修改",
+    "Delete": "删除",
+    "Create": "新增",
+    "Business": "业务",
+    "DataDictionary": "数据字典"
+  }
+}

+ 8 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/en.json

@@ -0,0 +1,8 @@
+{
+  "culture": "en",
+  "texts": {
+    "Menu:Home": "Home",
+    "Welcome": "Welcome",
+    "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io."
+  }
+}

+ 8 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/pl.json

@@ -0,0 +1,8 @@
+{
+  "culture": "pl",
+  "texts": {
+    "Menu:Home": "Home",
+    "Welcome": "Witaj",
+    "LongWelcomeMessage": "Witaj w aplikacji. To jest inicjalny projekt bazujący na ABP framework. Po więcej informacji odwiedź stronę abp.io."
+  }
+}

+ 8 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/pt-BR.json

@@ -0,0 +1,8 @@
+{
+  "culture": "pt-BR",
+  "texts": {
+    "Menu:Home": "Principal",
+    "Welcome": "Seja bem-vindo!",
+    "LongWelcomeMessage": "Bem-vindo a esta aplicação. Este é um projeto inicial baseado no ABP framework. Para mais informações, visite abp.io."
+  }
+}

+ 8 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/tr.json

@@ -0,0 +1,8 @@
+{
+  "culture": "tr",
+  "texts": {
+    "Menu:Home": "Ana sayfa",
+    "Welcome": "Hoşgeldiniz",
+    "LongWelcomeMessage": "Uygulamaya hoşgeldiniz. Bu, ABP framework'ü üzerine bina edilmiş bir başlangıç projesidir. Daha fazla bilgi için abp.io adresini ziyaret edebilirsiniz."
+  }
+}

+ 8 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/vi.json

@@ -0,0 +1,8 @@
+{
+  "culture": "vi",
+  "texts": {
+    "Menu:Home": "Trang chủ",
+    "Welcome": "Chào mừng bạn",
+    "LongWelcomeMessage": "Chào mừng bạn đến ứng dụng. Đây là một dự án khởi nghiệp dựa trên khung ABP. Để biết thêm thông tin, hãy truy cập abp.io."
+  }
+}

+ 13 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/zh-Hans.json

@@ -0,0 +1,13 @@
+{
+  "culture": "zh-Hans",
+  "texts": {
+    "Menu:Home": "首页",
+    "Welcome": "欢迎",
+    "LongWelcomeMessage": "欢迎来到该应用程序. 这是一个基于ABP框架的启动项目. 有关更多信息, 请访问 abp.io.",
+    "Edit": "修改",
+    "Delete": "删除",
+    "Create": "新增",
+    "DigitalManufacturingManagement": "数字化制造平台服务",
+    "File": "存储管理"
+  }
+}

+ 8 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/DigitalManufacturing/zh-Hant.json

@@ -0,0 +1,8 @@
+{
+    "culture": "zh-Hant",
+    "texts": {
+      "Menu:Home": "首頁",
+      "Welcome": "歡迎",
+      "LongWelcomeMessage": "歡迎來到此應用程式. 這是一個基於ABP框架的起始專案. 有關更多訊息, 請瀏覽 abp.io."
+    }
+  }

+ 9 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Localization/StorageResource.cs

@@ -0,0 +1,9 @@
+using Volo.Abp.Localization;
+
+namespace Business.Localization
+{
+    [LocalizationResourceName("DigitalManufacturing")]
+    public class DigitalManufacturingResource
+    {
+    }
+}

+ 28 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Permissions/DigitalManufacturingPermissionDefinitionProvider.cs

@@ -0,0 +1,28 @@
+using Business.Localization;
+using Volo.Abp.Authorization.Permissions;
+using Volo.Abp.Localization;
+using Volo.Abp.MultiTenancy;
+
+namespace Procurement.Permissions
+{
+    public class DigitalManufacturingPermissionDefinitionProvider: PermissionDefinitionProvider
+    {
+
+        public override void Define(IPermissionDefinitionContext context)
+        {
+            var digitalManufacturing = context.AddGroup(DigitalManufacturingPermissions.DigitalManufacturingManagement, L("DigitalManufacturingManagement"));
+
+            var DigitalManufacturing = digitalManufacturing.AddPermission(DigitalManufacturingPermissions.File.Default, L("DigitalManufacturing"));
+            DigitalManufacturing.AddChild(DigitalManufacturingPermissions.File.Update, L("Edit"));
+            DigitalManufacturing.AddChild(DigitalManufacturingPermissions.File.Delete, L("Delete"));
+            DigitalManufacturing.AddChild(DigitalManufacturingPermissions.File.Create, L("Create"));
+
+            //Code generation...
+        }
+
+        private static LocalizableString L(string name)
+        {
+            return LocalizableString.Create<DigitalManufacturingResource>(name);
+        }
+    }
+}

+ 17 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application.Contracts/Permissions/DigitalManufacturingPermissions.cs

@@ -0,0 +1,17 @@
+namespace Procurement.Permissions
+{
+    public static class DigitalManufacturingPermissions
+    {
+        public const string DigitalManufacturingManagement = "DigitalManufacturingManagement";
+
+        public static class File
+        {
+            public const string Default = DigitalManufacturingManagement + ".File";
+            public const string Delete = Default + ".Delete";
+            public const string Update = Default + ".Update";
+            public const string Create = Default + ".Create";
+        }
+
+        //Code generation...
+    }
+}

+ 27 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application/DigitalManufacturing.Application.csproj

@@ -0,0 +1,27 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <RootNamespace>Procurement</RootNamespace>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="6.0.0" />
+    <PackageReference Include="Volo.Abp.AutoMapper" Version="6.0.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\DigitalManufacturing.Application.Contracts\DigitalManufacturing.Application.Contracts.csproj" />
+    <ProjectReference Include="..\DigitalManufacturing.Domain\DigitalManufacturing.Domain.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Folder Include="DigitalManufacturingManagement\DOP\" />
+    <Folder Include="DigitalManufacturingManagement\Kanban\" />
+    <Folder Include="DigitalManufacturingManagement\MES\" />
+    <Folder Include="DigitalManufacturingManagement\QMS\" />
+    <Folder Include="DigitalManufacturingManagement\SIM\" />
+    <Folder Include="DigitalManufacturingManagement\WMS\" />
+  </ItemGroup>
+
+</Project>

+ 14 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application/DigitalManufacturingApplicationAutoMapperProfile.cs

@@ -0,0 +1,14 @@
+using AutoMapper;
+using Procurement.FileManagement.Dto;
+using Procurement.Models;
+
+namespace Procurement
+{
+    public class DigitalManufacturingApplicationAutoMapperProfile : Profile
+    {
+        public DigitalManufacturingApplicationAutoMapperProfile()
+        {
+            CreateMap<FileInfo, FileInfoDto>();
+        }
+    }
+}

+ 21 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application/DigitalManufacturingApplicationModule.cs

@@ -0,0 +1,21 @@
+using Volo.Abp.AutoMapper;
+using Volo.Abp.Modularity;
+
+namespace Procurement
+{
+    [DependsOn(
+        typeof(DigitalManufacturingDomainModule),
+        typeof(DigitalManufacturingApplicationContractsModule),
+        typeof(AbpAutoMapperModule)
+    )]
+    public class DigitalManufacturingApplicationModule : AbpModule
+    {
+        public override void ConfigureServices(ServiceConfigurationContext context)
+        {
+            Configure<AbpAutoMapperOptions>(options =>
+            {
+                options.AddMaps<DigitalManufacturingApplicationModule>();
+            });
+        }
+    }
+}

+ 129 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Application/DigitalManufacturingManagement/DigitalManufacturingAppService.cs

@@ -0,0 +1,129 @@
+using Procurement.Enums;
+using Procurement.FileManagement.Dto;
+using Procurement.Models;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.IO;
+using System.Linq;
+using System.Linq.Dynamic.Core;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Domain.Repositories;
+using FileInfo = Procurement.Models.FileInfo;
+
+namespace DigitalManufacturing.DigitalManufacturingManagement
+{
+    public class DigitalManufacturingAppService : ApplicationService, IDigitalManufacturingAppService
+    {
+        private readonly IRepository<FileInfo, Guid> _repository;
+        private readonly FileManager _fileManager;
+        string[] pictureFormatArray = { ".png", ".jpg", ".jpeg", ".gif", ".PNG", ".JPG", ".JPEG", ".GIF" };
+
+        public DigitalManufacturingAppService(IRepository<FileInfo, Guid> repository, FileManager fileManager)
+        {
+            _repository = repository;
+            _fileManager = fileManager;
+        }
+
+        public async Task<PagedResultDto<FileInfoDto>> GetAll(GetFileInputDto input)
+        {
+            var query = (await _repository.GetQueryableAsync()).WhereIf(!string.IsNullOrWhiteSpace(input.Filter), _ => _.Name.Contains(input.Filter));
+
+            var totalCount = await query.CountAsync();
+            var items = await query.OrderBy(input.Sorting ?? "Name")
+                                   .Skip(input.SkipCount)
+                                   .Take(input.MaxResultCount)
+                                   .ToListAsync();
+
+            var dtos = ObjectMapper.Map<List<FileInfo>, List<FileInfoDto>>(items);
+            return new PagedResultDto<FileInfoDto>(totalCount, dtos);
+        }
+
+        public async Task<FileInfoDto> Upload([Required] string name, [Required] IFormFile file)
+        {
+            if (file == null || file.Length == 0) throw new BusinessException("无法上传空文件");
+
+            //限制100M
+            if (file.Length > 104857600)
+            {
+                throw new BusinessException("上传文件过大");
+            }
+            //文件格式
+            var fileExtension = Path.GetExtension(file.FileName);
+            if (!pictureFormatArray.Contains(fileExtension))
+            {
+                throw new BusinessException("上传文件格式错误");
+            }
+
+            var size = "";
+            if (file.Length < 1024)
+                size = file.Length.ToString() + "B";
+            else if (file.Length >= 1024 && file.Length < 1048576)
+                size = ((float)file.Length / 1024).ToString("F2") + "KB";
+            else if (file.Length >= 1048576 && file.Length < 104857600)
+                size = ((float)file.Length / 1024 / 1024).ToString("F2") + "MB";
+            else size = file.Length.ToString() + "B";
+
+            string uploadsFolder = Path.Combine(Environment.CurrentDirectory, "wwwroot", "files");
+            if (!Directory.Exists(uploadsFolder))
+            {
+                Directory.CreateDirectory(uploadsFolder);
+            }
+
+            var uniqueFileName = Guid.NewGuid().ToString() + fileExtension;
+            string filePath = Path.Combine(uploadsFolder, uniqueFileName);
+            using (var fileStream = new FileStream(filePath, FileMode.Create))
+            {
+                file.CopyTo(fileStream);
+                fileStream.Flush();
+            }
+
+            //TODO:文件md5哈希校验
+            var result = await _fileManager.Create(name, uniqueFileName, fileExtension, "", size, filePath, "/files/" + uniqueFileName, FileType.Image);
+            return ObjectMapper.Map<FileInfo, FileInfoDto>(result);
+        }
+
+        public async Task UploadPrivate([Required] string name, [Required] IFormFile file)
+        {
+            if (file == null || file.Length == 0) throw new BusinessException("无法上传空文件");
+            if (file.Length > 104857600) throw new BusinessException("上传文件过大");
+            var fileExtension = Path.GetExtension(file.FileName);
+            if (!pictureFormatArray.Contains(fileExtension)) throw new BusinessException("上传文件格式错误");
+
+            var size = "";
+            if (file.Length < 1024)
+                size = file.Length.ToString() + "B";
+            else if (file.Length >= 1024 && file.Length < 1048576)
+                size = ((float)file.Length / 1024).ToString("F2") + "KB";
+            else if (file.Length >= 1048576 && file.Length < 104857600)
+                size = ((float)file.Length / 1024 / 1024).ToString("F2") + "MB";
+            else size = file.Length.ToString() + "B";
+
+            string uploadsFolder = Path.Combine(Environment.CurrentDirectory, "files");
+            if (!Directory.Exists(uploadsFolder)) Directory.CreateDirectory(uploadsFolder);
+
+            var uniqueFileName = Guid.NewGuid().ToString() + fileExtension;
+            string filePath = Path.Combine(uploadsFolder, uniqueFileName);
+            using (var fileStream = new FileStream(filePath, FileMode.Create))
+            {
+                file.CopyTo(fileStream);
+                fileStream.Flush();
+            }
+
+            await _fileManager.Create(name, uniqueFileName, fileExtension, "", size, filePath, "/files/" + uniqueFileName, FileType.Image);
+        }
+
+        public dynamic Download([Required] string name)
+        {
+            var filePath = Path.Combine(Environment.CurrentDirectory, "files", name);
+            if (!File.Exists(filePath)) throw new BusinessException("找不到文件");
+            return new FileStreamResult(new FileStream(filePath, FileMode.Open), "application/octet-stream") { FileDownloadName = name };
+        }
+    }
+}

+ 30 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Domain/DigitalManufacturing.Domain.csproj

@@ -0,0 +1,30 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <RootNamespace>Procurement</RootNamespace>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Remove="Localization\**" />
+    <EmbeddedResource Remove="Localization\**" />
+    <None Remove="Localization\**" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Volo.Abp.Ddd.Domain" Version="6.0.0" />
+    <PackageReference Include="Volo.Abp.EntityFrameworkCore" Version="6.0.0" />
+    <PackageReference Include="Volo.Abp.Localization" Version="6.0.0" />
+    <PackageReference Include="Volo.Abp.Validation" Version="6.0.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Folder Include="Models\Kanban\" />
+    <Folder Include="Models\QMS\" />
+    <Folder Include="Models\MES\" />
+    <Folder Include="Models\WMS\" />
+    <Folder Include="Models\DOP\" />
+    <Folder Include="Models\SIM\" />
+  </ItemGroup>
+
+</Project>

+ 15 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Domain/DigitalManufacturingDomainModule.cs

@@ -0,0 +1,15 @@
+using Volo.Abp.Localization;
+using Volo.Abp.Modularity;
+
+namespace Procurement
+{
+    [DependsOn(
+        typeof(AbpLocalizationModule)
+    )]
+    public class DigitalManufacturingDomainModule : AbpModule
+    {
+        public override void ConfigureServices(ServiceConfigurationContext context)
+        {
+        }
+    }
+}

+ 19 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Domain/Enums/Enums.cs

@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Procurement.Enums
+{
+    public enum FileType
+    {
+        /// <summary>
+        /// 图片
+        /// </summary>
+        Image,
+
+        /// <summary>
+        /// 文件
+        /// </summary>
+        File
+    }
+}

+ 51 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Domain/Models/FileInfo.cs

@@ -0,0 +1,51 @@
+using Procurement.Enums;
+using System;
+using Volo.Abp;
+using Volo.Abp.Domain.Entities.Auditing;
+using Volo.Abp.MultiTenancy;
+
+namespace Procurement.Models
+{
+    public class FileInfo : AuditedAggregateRoot<Guid>, ISoftDelete, IMultiTenant
+    {
+        public Guid? TenantId { get; set; }
+
+        public string Name { get; set; }
+
+        public string RealName { get; set; }
+
+        /// <summary>
+        /// 后缀
+        /// </summary>
+        public string Suffix { get; set; }
+
+        public string Md5Code { get; set; }
+
+        public string Size { get; set; }
+
+        public string Path { get; set; }
+
+        public string Url { get; set; }
+
+        public FileType Type { get; set; }
+
+        public bool IsDeleted { get; set; }
+
+        protected FileInfo()
+        {
+
+        }
+
+        public FileInfo(Guid id, string name, string realName, string suffix, string md5code, string size, string path, string url, FileType type) : base(id)
+        {
+            Name = name;
+            RealName = realName;
+            Suffix = suffix;
+            Md5Code = md5code;
+            Size = size;
+            Path = path;
+            Url = url;
+            Type = type;
+        }
+    }
+}

+ 31 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Domain/Models/FileManager.cs

@@ -0,0 +1,31 @@
+using Procurement.Enums;
+using System;
+using System.Threading.Tasks;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Domain.Services;
+
+namespace Procurement.Models
+{
+    public class FileManager : DomainService
+    {
+        private readonly IRepository<FileInfo, Guid> _repository;
+
+        public FileManager(IRepository<FileInfo, Guid> repository)
+        {
+            _repository = repository;
+        }
+
+        public async Task<FileInfo> Create(string name, string realName, string suffix, string md5, string size, string path, string url, FileType type)
+        {
+            return await _repository.InsertAsync(new FileInfo(GuidGenerator.Create(),
+                                                                                name,
+                                                                            realName,
+                                                                              suffix,
+                                                                                 md5,
+                                                                                size,
+                                                                                path,
+                                                                                 url,
+                                                                                type));
+        }
+    }
+}

+ 21 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.EntityFrameworkCore/DigitalManufacturing.EntityFrameworkCore.csproj

@@ -0,0 +1,21 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <RootNamespace>Procurement</RootNamespace>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.3">
+      <PrivateAssets>all</PrivateAssets>
+      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+    </PackageReference>
+    <PackageReference Include="Volo.Abp.EntityFrameworkCore.MySQL" Version="6.0.0" />
+	  <PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="6.0.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\DigitalManufacturing.Domain\DigitalManufacturing.Domain.csproj" />
+  </ItemGroup>
+
+</Project>

+ 28 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.EntityFrameworkCore/EntityFrameworkCore/DigitalManufacturingDbContext.cs

@@ -0,0 +1,28 @@
+using Procurement.Models;
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Volo.Abp.Data;
+using Volo.Abp.EntityFrameworkCore;
+
+namespace Procurement.EntityFrameworkCore
+{
+    [ConnectionStringName("Default")]
+    public class DigitalManufacturingDbContext : AbpDbContext<DigitalManufacturingDbContext>
+    {
+        public DbSet<FileInfo> FileInfos { get; set; }
+
+        public DigitalManufacturingDbContext(DbContextOptions<DigitalManufacturingDbContext> options):base(options)
+        {
+
+        }
+
+        protected override void OnModelCreating(ModelBuilder modelBuilder)
+        {
+            base.OnModelCreating(modelBuilder);
+
+            modelBuilder.ConfigureProcurement();
+        }
+    }
+}

+ 33 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.EntityFrameworkCore/EntityFrameworkCore/DigitalManufacturingDbContextModelCreatingExtensions.cs

@@ -0,0 +1,33 @@
+using Procurement.Models;
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Volo.Abp;
+using Volo.Abp.EntityFrameworkCore.Modeling;
+
+namespace Procurement.EntityFrameworkCore
+{
+    public static class DigitalManufacturingDbContextModelCreatingExtensions
+    {
+        public static void ConfigureProcurement(this ModelBuilder builder)
+        {
+            Check.NotNull(builder, nameof(builder));
+
+            builder.Entity<FileInfo>(b =>
+            {
+                b.ToTable("file_info");
+
+                b.ConfigureByConvention();
+
+                b.Property(x => x.Name).IsRequired().HasMaxLength(64);
+                b.Property(x => x.RealName).IsRequired().HasMaxLength(64);
+                b.Property(x => x.Size).IsRequired().HasMaxLength(100);
+                b.Property(x => x.Suffix).IsRequired().HasMaxLength(50);
+                b.Property(x => x.Md5Code).IsRequired().HasMaxLength(256);
+                b.Property(x => x.Path).IsRequired().HasMaxLength(256);
+                b.Property(x => x.Url).IsRequired().HasMaxLength(256);
+            });
+        }
+    }
+}

+ 28 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.EntityFrameworkCore/EntityFrameworkCore/DigitalManufacturingEntityFrameworkCoreModule.cs

@@ -0,0 +1,28 @@
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.EntityFrameworkCore;
+using Volo.Abp.Modularity;
+using Volo.Abp.PermissionManagement.EntityFrameworkCore;
+
+namespace Procurement.EntityFrameworkCore
+{
+    [DependsOn(
+        typeof(DigitalManufacturingDomainModule),
+        typeof(AbpEntityFrameworkCoreModule),
+        typeof(AbpPermissionManagementEntityFrameworkCoreModule)
+    )]
+    public class DigitalManufacturingEntityFrameworkCoreModule : AbpModule
+    {
+        public override void ConfigureServices(ServiceConfigurationContext context)
+        {
+            Configure<AbpDbContextOptions>(options =>
+            {
+                options.UseMySQL();
+            });
+
+            context.Services.AddAbpDbContext<DigitalManufacturingDbContext>(options =>
+            {
+                options.AddDefaultRepositories(includeAllEntities: true);
+            });
+        }
+    }
+}

+ 130 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Host/Controllers/DOP/DOPController.cs

@@ -0,0 +1,130 @@
+using Procurement.Enums;
+using Procurement.Models;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.ComponentModel.DataAnnotations;
+using System.IO;
+using System.Linq;
+using System.Threading.Tasks;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace DigitalManufacturing.Controllers
+{
+    public class DOPController : AbpController
+    {
+        private readonly IWebHostEnvironment _hostEnvironment;
+        private readonly FileManager _fileManager;
+
+        string[] pictureFormatArray = { ".png", ".jpg", ".jpeg", ".gif", ".PNG", ".JPG", ".JPEG", ".GIF" };
+
+        public DOPController(
+            IWebHostEnvironment hostEnvironment,
+            FileManager fileManager)
+        {
+            _hostEnvironment = hostEnvironment;
+            _fileManager = fileManager;
+        }
+
+        [HttpPost]
+        [Route("api/digitalmanufacturing/feed")]
+        //备料管理
+        public async Task<ActionResult> Feed([Required]string name, IFormFile file)
+        {
+            string uniqueFileName = null;
+
+            if (file != null)
+            {
+                //限制100M
+                if (file.Length > 104857600)
+                {
+                    return new BadRequestObjectResult("上传文件过大");
+                }
+                //文件格式
+                var fileExtension = Path.GetExtension(file.FileName);
+                if (!pictureFormatArray.Contains(fileExtension))
+                {
+                    return new BadRequestObjectResult("上传文件格式错误");
+                }
+
+                var size = "";
+                if (file.Length < 1024)
+                    size = file.Length.ToString() + "B";
+                else if (file.Length >= 1024 && file.Length < 1048576)
+                    size = ((float)file.Length / 1024).ToString("F2") + "KB";
+                else if (file.Length >= 1048576 && file.Length < 104857600)
+                    size = ((float)file.Length / 1024 / 1024).ToString("F2") + "MB";
+                else size = file.Length.ToString() + "B";
+
+                string uploadsFolder = Path.Combine(_hostEnvironment.WebRootPath, "Images");
+                if (!Directory.Exists(uploadsFolder))
+                {
+                    Directory.CreateDirectory(uploadsFolder);
+                }
+
+                uniqueFileName = Guid.NewGuid().ToString() + fileExtension;
+                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
+                using (var fileStream = new FileStream(filePath, FileMode.Create))
+                {
+                    file.CopyTo(fileStream);
+                    fileStream.Flush();
+                }
+
+                //TODO:文件md5哈希校验
+                await _fileManager.Create(name, uniqueFileName, fileExtension, "", size, filePath, "/Images/" + uniqueFileName, FileType.Image);
+            }
+            return Ok(uniqueFileName);
+        }
+
+        [HttpPost]
+        [Route("api/digitalmanufacturing/stock")]
+        //库存管理
+        public async Task<ActionResult> Stock([Required] string name, IFormFile file)
+        {
+            string uniqueFileName = null;
+
+            if (file != null)
+            {
+                //限制100M
+                if (file.Length > 104857600)
+                {
+                    return new BadRequestObjectResult("上传文件过大");
+                }
+                //文件格式
+                var fileExtension = Path.GetExtension(file.FileName);
+                if (!pictureFormatArray.Contains(fileExtension))
+                {
+                    return new BadRequestObjectResult("上传文件格式错误");
+                }
+
+                var size = "";
+                if (file.Length < 1024)
+                    size = file.Length.ToString() + "B";
+                else if (file.Length >= 1024 && file.Length < 1048576)
+                    size = ((float)file.Length / 1024).ToString("F2") + "KB";
+                else if (file.Length >= 1048576 && file.Length < 104857600)
+                    size = ((float)file.Length / 1024 / 1024).ToString("F2") + "MB";
+                else size = file.Length.ToString() + "B";
+
+                string uploadsFolder = Path.Combine(_hostEnvironment.WebRootPath, "Images");
+                if (!Directory.Exists(uploadsFolder))
+                {
+                    Directory.CreateDirectory(uploadsFolder);
+                }
+
+                uniqueFileName = Guid.NewGuid().ToString() + fileExtension;
+                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
+                using (var fileStream = new FileStream(filePath, FileMode.Create))
+                {
+                    file.CopyTo(fileStream);
+                    fileStream.Flush();
+                }
+
+                //TODO:文件md5哈希校验
+                await _fileManager.Create(name, uniqueFileName, fileExtension, "", size, filePath, "/Images/" + uniqueFileName, FileType.Image);
+            }
+            return Ok(uniqueFileName);
+        }
+    }
+}

+ 13 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Host/Controllers/HomeController.cs

@@ -0,0 +1,13 @@
+using Microsoft.AspNetCore.Mvc;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace Procurement.Controllers
+{
+    public class HomeController : AbpController
+    {
+        public ActionResult Index()
+        {
+            return Redirect("/swagger");
+        }
+    }
+}

+ 81 - 0
MicroServices/DigitalManufacturing/DigitalManufacturing.Host/Controllers/Kanban/KanbanController.cs

@@ -0,0 +1,81 @@
+using Procurement.Enums;
+using Procurement.Models;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.ComponentModel.DataAnnotations;
+using System.IO;
+using System.Linq;
+using System.Threading.Tasks;
+using Volo.Abp.AspNetCore.Mvc;
+
+namespace DigitalManufacturing.Controllers
+{
+    public class KanbanController : AbpController
+    {
+        private readonly IWebHostEnvironment _hostEnvironment;
+        private readonly FileManager _fileManager;
+
+        string[] pictureFormatArray = { ".png", ".jpg", ".jpeg", ".gif", ".PNG", ".JPG", ".JPEG", ".GIF" };
+
+        public KanbanController(
+            IWebHostEnvironment hostEnvironment,
+            FileManager fileManager)
+        {
+            _hostEnvironment = hostEnvironment;
+            _fileManager = fileManager;
+        }
+
+        [HttpPost]
+        [Route("api/digitalmanufacturing/kanban/addreport")]
+        //待收货看板
+        //收货通知组织、收货通知日期、收货通知单号、收货申请人、单据类型、供应商编码、供应商名称、已等待收货时间、物料编码、物料名称、规格型号、数量
+        public async Task<ActionResult> Feed([Required]string name, IFormFile file)
+        {
+            string uniqueFileName = null;
+
+            if (file != null)
+            {
+                //限制100M
+                if (file.Length > 104857600)
+                {
+                    return new BadRequestObjectResult("上传文件过大");
+                }
+                //文件格式
+                var fileExtension = Path.GetExtension(file.FileName);
+                if (!pictureFormatArray.Contains(fileExtension))
+                {
+                    return new BadRequestObjectResult("上传文件格式错误");
+                }
+
+                var size = "";
+                if (file.Length < 1024)
+                    size = file.Length.ToString() + "B";
+                else if (file.Length >= 1024 && file.Length < 1048576)
+                    size = ((float)file.Length / 1024).ToString("F2") + "KB";
+                else if (file.Length >= 1048576 && file.Length < 104857600)
+                    size = ((float)file.Length / 1024 / 1024).ToString("F2") + "MB";
+                else size = file.Length.ToString() + "B";
+
+                string uploadsFolder = Path.Combine(_hostEnvironment.WebRootPath, "Images");
+                if (!Directory.Exists(uploadsFolder))
+                {
+                    Directory.CreateDirectory(uploadsFolder);
+                }
+
+                uniqueFileName = Guid.NewGuid().ToString() + fileExtension;
+                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
+                using (var fileStream = new FileStream(filePath, FileMode.Create))
+                {
+                    file.CopyTo(fileStream);
+                    fileStream.Flush();
+                }
+
+                //TODO:文件md5哈希校验
+                await _fileManager.Create(name, uniqueFileName, fileExtension, "", size, filePath, "/Images/" + uniqueFileName, FileType.Image);
+            }
+            return Ok(uniqueFileName);
+        }
+    }
+}

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.