Pārlūkot izejas kodu

Merge branch 'master' of http://123.60.180.165:4647/ZZYDOP/DOPCore

# Conflicts:
#	MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs
tangdi 3 gadi atpakaļ
vecāks
revīzija
4993ce58fb

+ 270 - 0
.gitignore

@@ -611,3 +611,273 @@ MicroServices/Business/Business.Tests/obj/Debug/net6.0/Business.Tests.genruntime
 MicroServices/Business/Business.Tests/obj/Debug/net6.0/Business.Tests.GlobalUsings.g.cs
 MicroServices/Business/Business.Tests/obj/Debug/net6.0/Business.Tests.GlobalUsings.g.cs
 MicroServices/Business/Business.Tests/obj/Debug/net6.0/ref/Business.Tests.dll
 MicroServices/Business/Business.Tests/obj/Debug/net6.0/ref/Business.Tests.dll
 MicroServices/Business/Business.Tests/obj/Debug/net6.0/refint/Business.Tests.dll
 MicroServices/Business/Business.Tests/obj/Debug/net6.0/refint/Business.Tests.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/AutoMapper.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/AWSSDK.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/AWSSDK.SecurityToken.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/BaseService.Application.Contracts.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/BaseService.HttpApi.Client.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Application.Contracts.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Application.Contracts.pdb
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Application.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Application.pdb
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Core.pdb
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Domain.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Domain.pdb
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Test.deps.json
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Test.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Test.pdb
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Business.Test.runtimeconfig.json
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Bussiness.Model.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Bussiness.Model.pdb
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Bussiness.MongoModel.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Bussiness.MongoModel.pdb
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Castle.Core.AsyncInterceptor.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Castle.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/CoverletSourceRootsMapping
+MicroServices/Business/Business.Test/bin/Debug/net6.0/DnsClient.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/FileStorage.Application.Contracts.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Hangfire.AspNetCore.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Hangfire.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/IdentityModel.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/JetBrains.Annotations.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Magicodes.IE.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Magicodes.IE.Html.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Magicodes.IE.Pdf.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.AspNetCore.Authorization.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.AspNetCore.Metadata.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.AspNetCore.Razor.Language.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.Bcl.AsyncInterfaces.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.CodeAnalysis.CSharp.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.CodeAnalysis.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.EntityFrameworkCore.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.EntityFrameworkCore.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.EntityFrameworkCore.Relational.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.Extensions.Caching.Memory.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.Extensions.Configuration.UserSecrets.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.Extensions.DependencyModel.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.Extensions.FileProviders.Embedded.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.Extensions.Localization.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.Extensions.Localization.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.Extensions.Logging.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.TestPlatform.AdapterUtilities.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.TestPlatform.CommunicationUtilities.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.TestPlatform.CoreUtilities.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.TestPlatform.CrossPlatEngine.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.TestPlatform.PlatformAbstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.TestPlatform.Utilities.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.VisualStudio.TestPlatform.Common.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml
+MicroServices/Business/Business.Test/bin/Debug/net6.0/MongoDB.Bson.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/MongoDB.Driver.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/MongoDB.Driver.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/MongoDB.Libmongocrypt.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Newtonsoft.Json.Bson.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Newtonsoft.Json.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Nito.AsyncEx.Context.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Nito.AsyncEx.Coordination.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Nito.AsyncEx.Tasks.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Nito.Collections.Deque.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Nito.Disposables.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/NuGet.Frameworks.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/NUglify.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/RazorEngine.NetCore.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/SharpCompress.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/SixLabors.ImageSharp.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Snappier.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/System.Linq.Dynamic.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/System.Security.Permissions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/testhost.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/testhost.exe
+MicroServices/Business/Business.Test/bin/Debug/net6.0/TimeZoneConverter.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Auditing.Contracts.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Auditing.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.AuditLogging.Domain.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.AuditLogging.Domain.Shared.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Authorization.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Authorization.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.AutoMapper.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.BackgroundJobs.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.BackgroundJobs.HangFire.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.BackgroundWorkers.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Caching.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Castle.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Data.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Ddd.Application.Contracts.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Ddd.Application.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Ddd.Domain.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.DistributedLocking.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.EntityFrameworkCore.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.EventBus.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.EventBus.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.ExceptionHandling.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Features.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.GlobalFeatures.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Guids.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.HangFire.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Http.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Http.Client.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Http.Client.IdentityModel.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Http.Client.IdentityModel.Web.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Http.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Identity.Application.Contracts.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Identity.Domain.Shared.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Identity.HttpApi.Client.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.IdentityModel.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Json.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Localization.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Localization.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Minify.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.MultiTenancy.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.ObjectExtending.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.ObjectMapping.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.PermissionManagement.Application.Contracts.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.PermissionManagement.Domain.Shared.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.RemoteServices.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Security.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Serialization.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.SettingManagement.Domain.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.SettingManagement.Domain.Shared.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Settings.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Specifications.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Threading.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Timing.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Uow.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Users.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Users.Domain.Shared.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Validation.Abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.Validation.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/Volo.Abp.VirtualFileSystem.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/WkHtmlToPdfDotNet.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/XCZ.FlowManagement.Application.Contracts.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/XCZ.FlowManagement.Application.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/XCZ.FlowManagement.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/XCZ.FlowManagement.Domain.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/XCZ.FormManagement.Application.Contracts.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/XCZ.FormManagement.Application.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/XCZ.FormManagement.Core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/XCZ.FormManagement.Domain.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/xunit.abstractions.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/xunit.assert.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/xunit.core.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/xunit.execution.dotnet.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/xunit.runner.reporters.netcoreapp10.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/xunit.runner.utility.netcoreapp10.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/xunit.runner.visualstudio.dotnetcore.testadapter.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ZstdSharp.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ca/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/de/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/es/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/fa/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/fr/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/nb/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/nl/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pt/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pt-BR/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/pt-PT/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/runtimes/linux/native/libmongocrypt.so
+MicroServices/Business/Business.Test/bin/Debug/net6.0/runtimes/linux-x64/native/libwkhtmltox.so
+MicroServices/Business/Business.Test/bin/Debug/net6.0/runtimes/linux-x86/native/libwkhtmltox.so
+MicroServices/Business/Business.Test/bin/Debug/net6.0/runtimes/osx/native/libmongocrypt.dylib
+MicroServices/Business/Business.Test/bin/Debug/net6.0/runtimes/osx-x64/native/libwkhtmltox.dylib
+MicroServices/Business/Business.Test/bin/Debug/net6.0/runtimes/win/native/mongocrypt.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/runtimes/win-x64/native/wkhtmltox.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/runtimes/win-x86/native/wkhtmltox.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/tr-TR/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hans/Magicodes.IE.Core.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
+MicroServices/Business/Business.Test/bin/Debug/net6.0/zh-TW/Hangfire.Core.resources.dll
+MicroServices/Business/Business.Test/obj/Business.Test.csproj.nuget.dgspec.json
+MicroServices/Business/Business.Test/obj/Business.Test.csproj.nuget.g.props
+MicroServices/Business/Business.Test/obj/Business.Test.csproj.nuget.g.targets
+MicroServices/Business/Business.Test/obj/project.assets.json
+MicroServices/Business/Business.Test/obj/project.nuget.cache
+MicroServices/Business/Business.Test/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.AssemblyInfo.cs
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.AssemblyInfoInputs.cache
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.assets.cache
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.csproj.AssemblyReference.cache
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.csproj.CopyComplete
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.csproj.CoreCompileInputs.cache
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.csproj.FileListAbsolute.txt
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.dll
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.GeneratedMSBuildEditorConfig.editorconfig
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.genruntimeconfig.cache
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.GlobalUsings.g.cs
+MicroServices/Business/Business.Test/obj/Debug/net6.0/Business.Test.pdb
+MicroServices/Business/Business.Test/obj/Debug/net6.0/ref/Business.Test.dll
+MicroServices/Business/Business.Test/obj/Debug/net6.0/refint/Business.Test.dll

+ 59 - 31
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -7,6 +7,7 @@ using Bussiness.Model.SRM;
 using Bussiness.MongoModel.MES.IC;
 using Bussiness.MongoModel.MES.IC;
 using Bussiness.MongoModel.Production;
 using Bussiness.MongoModel.Production;
 using Bussiness.MongoModel.SRM;
 using Bussiness.MongoModel.SRM;
+using Bussiness.MongoModel.Tech;
 using System;
 using System;
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
@@ -36,6 +37,26 @@ namespace Business.ResourceExamineManagement
         public List<mo_mes_moentry> moentriesList = new List<mo_mes_moentry>();
         public List<mo_mes_moentry> moentriesList = new List<mo_mes_moentry>();
         public List<mo_mes_mooccupy> mooccupyAllList = new List<mo_mes_mooccupy>();
         public List<mo_mes_mooccupy> mooccupyAllList = new List<mo_mes_mooccupy>();
 
 
+        /// <summary>
+        /// 工艺路径
+        /// </summary>
+        public List<mo_mes_technique> techs = new List<mo_mes_technique>();
+
+        /// <summary>
+        /// 工艺关联工序
+        /// </summary>
+        public List<mo_mes_tech_process> tech_Processes = new List<mo_mes_tech_process>();
+
+        /// <summary>
+        /// 工序
+        /// </summary>
+        public List<mo_mes_process> process = new List<mo_mes_process>();
+
+        /// <summary>
+        /// 工艺工序关联工位
+        /// </summary>
+        public List<mo_mes_tech_proc_workshop> tech_Proc_Workshops = new List<mo_mes_tech_proc_workshop>();
+
         /// <summary>
         /// <summary>
         /// 工单App
         /// 工单App
         /// </summary>
         /// </summary>
@@ -206,18 +227,23 @@ namespace Business.ResourceExamineManagement
                     if (!string.IsNullOrEmpty(mes_Morders.bom_number))
                     if (!string.IsNullOrEmpty(mes_Morders.bom_number))
                     {
                     {
                         //var ProductiveDate = ProductiveExamine(mes_Morders.bom_number, level1Dto.version, (int)mes_Morders.morder_production_number.Value);
                         //var ProductiveDate = ProductiveExamine(mes_Morders.bom_number, level1Dto.version, (int)mes_Morders.morder_production_number.Value);
-                        ProdExamineParamDto prodExamine = new ProdExamineParamDto()
-                        {
-                            bom_number = mes_Morders.bom_number,
-                            version = level1Dto.version,
-                            packages = (int)mes_Morders.morder_production_number.Value,
-                            tenantId = param.tenantId,
-                            factoryId = param.factoryId
+                        //ProdExamineParamDto prodExamine = new ProdExamineParamDto()
+                        //{
+                        //    bom_number = mes_Morders.bom_number,
+                        //    version = level1Dto.version,
+                        //    packages = (int)mes_Morders.morder_production_number.Value,
+                        //    tenantId = param.tenantId,
+                        //    factoryId = param.factoryId
+
+                        //};
+                        _productExamineAppService.tech = techs.FirstOrDefault(p => p.bom == mes_Morders.bom_number && p.bomver == level1Dto.version);
+                        _productExamineAppService.tech_Processes = tech_Processes.Where(p => p.tech_id == _productExamineAppService.tech.mysql_id).ToList();
+                        _productExamineAppService.process = process.Where(p => _productExamineAppService.tech_Processes.Select(m => m.proc_id).Contains(p.mysql_id)).ToList();
+                        _productExamineAppService.tech_Proc_Workshops = tech_Proc_Workshops.Where(p => _productExamineAppService.tech_Processes.Select(m => m.mysql_id).Contains(p.tech_proc_id.GetValueOrDefault())).ToList();
 
 
-                        };
                         var plan = planList.Find(x => x.icitem_id == level1Dto.item_id);
                         var plan = planList.Find(x => x.icitem_id == level1Dto.item_id);
-                        var ProductiveDate = _productExamineAppService.ProductiveExamine(prodExamine);
-                        var Day = ProductiveDate.Result / (60 * 10); //返回的分钟除以十个小时得出工作天数;
+                        var ProductiveDate = _productExamineAppService.ProductiveExamine((int)mes_Morders.morder_production_number.Value);
+                        var Day = ProductiveDate / (60 * 10); //返回的分钟除以十个小时得出工作天数;
                         mes_Morders.moentry_sys_stime = level1Dto.kitting_time.Value.AddDays(1);//数据齐套完成后隔天开始生产;
                         mes_Morders.moentry_sys_stime = level1Dto.kitting_time.Value.AddDays(1);//数据齐套完成后隔天开始生产;
                         //结束日期=开始时间+生产时长+自检提前期+入库提前期+发运提前期;
                         //结束日期=开始时间+生产时长+自检提前期+入库提前期+发运提前期;
                         var LeadTime = 0.00m;
                         var LeadTime = 0.00m;
@@ -230,7 +256,7 @@ namespace Business.ResourceExamineManagement
                             LeadTime = Day;
                             LeadTime = Day;
                         }
                         }
                         mes_Morders.moentry_sys_etime = mes_Morders.moentry_sys_stime.Value.AddDays((double)Day);
                         mes_Morders.moentry_sys_etime = mes_Morders.moentry_sys_stime.Value.AddDays((double)Day);
-                        mes_Morders.morder_need_time = ProductiveDate.Result;
+                        mes_Morders.morder_need_time = ProductiveDate;
                         //满足资源检查的时间需加上提前期
                         //满足资源检查的时间需加上提前期
                         level1Dto.satisfy_time = mes_Morders.moentry_sys_stime.Value.AddDays((double)LeadTime);
                         level1Dto.satisfy_time = mes_Morders.moentry_sys_stime.Value.AddDays((double)LeadTime);
                     }
                     }
@@ -438,23 +464,28 @@ namespace Business.ResourceExamineManagement
                             CalcIcitem(cilList, returnlist, bangid, input, sklist, plan_date, icitemlist, sentrys,  childidList);
                             CalcIcitem(cilList, returnlist, bangid, input, sklist, plan_date, icitemlist, sentrys,  childidList);
                             item.kitting_time = cilList.Max(s => s.kitting_time);
                             item.kitting_time = cilList.Max(s => s.kitting_time);
                         }
                         }
-
+                        item.make_qty = item.lack_qty;
                         //走自制
                         //走自制
-                        ProdExamineParamDto prodExamine = new ProdExamineParamDto()
-                        {
-                            bom_number = item.bom_number,
-                            version = item.version,
-                            packages = (int)item.lack_qty,
-                            tenantId = param.tenantId,
-                            factoryId = param.factoryId
+                        //ProdExamineParamDto prodExamine = new ProdExamineParamDto()
+                        //{
+                        //    bom_number = item.bom_number,
+                        //    version = item.version,
+                        //    packages = (int)item.lack_qty,
+                        //    tenantId = param.tenantId,
+                        //    factoryId = param.factoryId
 
 
-                        };
+                        //};
+                        //var minute = _productExamineAppService.ProductiveExamine(prodExamine);
+                        _productExamineAppService.tech = techs.FirstOrDefault(p => p.bom == item.bom_number && p.bomver == item.version);
+                        _productExamineAppService.tech_Processes = tech_Processes.Where(p => p.tech_id == _productExamineAppService.tech.mysql_id).ToList();
+                        _productExamineAppService.process = process.Where(p => _productExamineAppService.tech_Processes.Select(m => m.proc_id).Contains(p.mysql_id)).ToList();
+                        _productExamineAppService.tech_Proc_Workshops = tech_Proc_Workshops.Where(p => _productExamineAppService.tech_Processes.Select(m => m.mysql_id).Contains(p.tech_proc_id.GetValueOrDefault())).ToList();
                         item.make_qty = item.lack_qty;
                         item.make_qty = item.lack_qty;
                         //todo:增加生成子工单后,这里需要加上生成的子工单的明细。
                         //todo:增加生成子工单后,这里需要加上生成的子工单的明细。
                         item.make_list = new List<moorder>();
                         item.make_list = new List<moorder>();
-                        var minute = _productExamineAppService.ProductiveExamine(prodExamine);
+                        var minute = _productExamineAppService.ProductiveExamine((int)item.lack_qty);
                         //系统建议完工日期为 开工日期+产能检查时间=完工日期
                         //系统建议完工日期为 开工日期+产能检查时间=完工日期
-                        var Day = minute.Result / (60 * 10); //返回的分钟除以十个小时得出工作天数;
+                        var Day = minute / (60 * 10); //返回的分钟除以十个小时得出工作天数;
                         var ktime = item.kitting_time.Value.AddDays((double)Day);
                         var ktime = item.kitting_time.Value.AddDays((double)Day);
                         //item.kitting_time = ktime > mooccupylist[0].moo_etime ? ktime : mooccupylist[0].moo_etime;
                         //item.kitting_time = ktime > mooccupylist[0].moo_etime ? ktime : mooccupylist[0].moo_etime;
                         item.kitting_time = ktime;
                         item.kitting_time = ktime;
@@ -822,15 +853,12 @@ namespace Business.ResourceExamineManagement
                                 sct.kitting_time = cilList.Max(s => s.kitting_time);
                                 sct.kitting_time = cilList.Max(s => s.kitting_time);
                             }
                             }
                             //走自制
                             //走自制
-                            ProdExamineParamDto prodExamine = new ProdExamineParamDto()
-                            {
-                                bom_number = sct.bom_number,
-                                version = sct.version,
-                                packages = (int)sct.lack_qty,
-                                tenantId = param.tenantId,
-                                factoryId = param.factoryId
-                            };
-                            var minute = _productExamineAppService.ProductiveExamine(prodExamine);
+                            _productExamineAppService.tech = techs.FirstOrDefault(p => p.bom == sct.bom_number && p.bomver == sct.version);
+                            _productExamineAppService.tech_Processes = tech_Processes.Where(p => p.tech_id == _productExamineAppService.tech.mysql_id).ToList();
+                            _productExamineAppService.process = process.Where(p => _productExamineAppService.tech_Processes.Select(m => m.proc_id).Contains(p.mysql_id)).ToList();
+                            _productExamineAppService.tech_Proc_Workshops = tech_Proc_Workshops.Where(p => _productExamineAppService.tech_Processes.Select(m => m.mysql_id).Contains(p.tech_proc_id.GetValueOrDefault())).ToList();
+
+                            var minute = _productExamineAppService.ProductiveExamine((int)sct.lack_qty);
                             //系统建议完工日期为 开工日期+产能检查时间=完工日期
                             //系统建议完工日期为 开工日期+产能检查时间=完工日期
                             var Day = minute.Result / (60 * 10); //返回的分钟除以十个小时得出工作天数;
                             var Day = minute.Result / (60 * 10); //返回的分钟除以十个小时得出工作天数;
                             sct.kitting_time = sct.kitting_time.Value.AddDays((double)Day);
                             sct.kitting_time = sct.kitting_time.Value.AddDays((double)Day);

+ 45 - 15
MicroServices/Business/Business.Application/ResourceExamineManagement/MorderAppService.cs

@@ -9,11 +9,14 @@ using Bussiness.Model.SRM;
 using Bussiness.Model.Tech;
 using Bussiness.Model.Tech;
 using Bussiness.MongoModel.MES.IC;
 using Bussiness.MongoModel.MES.IC;
 using Bussiness.MongoModel.Production;
 using Bussiness.MongoModel.Production;
+using Bussiness.MongoModel.Tech;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Linq;
 using System.Linq;
 using System.Text;
 using System.Text;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using System.Threading.Tasks.Dataflow;
 using Volo.Abp.Application.Services;
 using Volo.Abp.Application.Services;
 using Volo.Abp.Domain.Repositories;
 using Volo.Abp.Domain.Repositories;
 using ZstdSharp.Unsafe;
 using ZstdSharp.Unsafe;
@@ -53,6 +56,26 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         /// </summary>
         SnowFlake snowFlake = new SnowFlake();
         SnowFlake snowFlake = new SnowFlake();
 
 
+        /// <summary>
+        /// 工艺路径
+        /// </summary>
+        public List<mo_mes_technique> techs = new List<mo_mes_technique>();
+
+        /// <summary>
+        /// 工艺关联工序
+        /// </summary>
+        public List<mo_mes_tech_process> tech_Processes = new List<mo_mes_tech_process>();
+
+        /// <summary>
+        /// 工序
+        /// </summary>
+        public List<mo_mes_process> process = new List<mo_mes_process>();
+
+        /// <summary>
+        /// 工艺工序关联工位
+        /// </summary>
+        public List<mo_mes_tech_proc_workshop> tech_Proc_Workshops = new List<mo_mes_tech_proc_workshop>();
+
         #endregion
         #endregion
         #region 构造函数
         #region 构造函数
         /// <summary>
         /// <summary>
@@ -117,19 +140,24 @@ namespace Business.ResourceExamineManagement
                 mes_Morder.moentry_sys_stime = generateMorderDto.moentry_sys_stime;
                 mes_Morder.moentry_sys_stime = generateMorderDto.moentry_sys_stime;
                 if (!string.IsNullOrEmpty(generateMorderDto.BomNumber))
                 if (!string.IsNullOrEmpty(generateMorderDto.BomNumber))
                 {
                 {
-                    ProdExamineParamDto prodExamine = new ProdExamineParamDto()
-                    {
-                        bom_number = generateMorderDto.BomNumber,
-                        version = generateMorderDto.version,
-                        packages = (int)generateMorderDto.Quantity.GetValueOrDefault(),
-                        tenantId = generateMorderDto.seorderentry.tenant_id,
-                        factoryId = generateMorderDto.seorderentry.factory_id.GetValueOrDefault()
-                    };
-                    var ProductiveDate = _productExamineAppService.ProductiveExamine(prodExamine);
+                    //ProdExamineParamDto prodExamine = new ProdExamineParamDto()
+                    //{
+                    //    bom_number = generateMorderDto.BomNumber,
+                    //    version = generateMorderDto.version,
+                    //    packages = (int)generateMorderDto.Quantity.GetValueOrDefault(),
+                    //    tenantId = generateMorderDto.seorderentry.tenant_id,
+                    //    factoryId = generateMorderDto.seorderentry.factory_id.GetValueOrDefault()
+                    //};
+                    _productExamineAppService.tech = techs.FirstOrDefault(p => p.bom == generateMorderDto.BomNumber && p.bomver == generateMorderDto.version);
+                    _productExamineAppService.tech_Processes = tech_Processes.Where(p => p.tech_id == _productExamineAppService.tech.mysql_id).ToList();
+                    _productExamineAppService.process = process.Where(p => _productExamineAppService.tech_Processes.Select(m => m.proc_id).Contains(p.mysql_id)).ToList();
+                    _productExamineAppService.tech_Proc_Workshops = tech_Proc_Workshops.Where(p => _productExamineAppService.tech_Processes.Select(m => m.mysql_id).Contains(p.tech_proc_id.GetValueOrDefault())).ToList();
+
+                    var ProductiveDate = _productExamineAppService.ProductiveExamine((int)generateMorderDto.Quantity.GetValueOrDefault());
                     //系统建议完工日期为 开工日期+产能检查时间=完工日期
                     //系统建议完工日期为 开工日期+产能检查时间=完工日期
-                    var Day = ProductiveDate.Result / (60 * 10); //返回的分钟除以十个小时得出工作天数;
+                    var Day = ProductiveDate / (60 * 10); //返回的分钟除以十个小时得出工作天数;
                     mes_Morder.moentry_sys_etime = mes_Morder.moentry_sys_stime.GetValueOrDefault().AddDays((double)Day);
                     mes_Morder.moentry_sys_etime = mes_Morder.moentry_sys_stime.GetValueOrDefault().AddDays((double)Day);
-                    mes_Morder.morder_need_time = ProductiveDate.Result;
+                    mes_Morder.morder_need_time = ProductiveDate;
                 }
                 }
             }
             }
 
 
@@ -193,7 +221,7 @@ namespace Business.ResourceExamineManagement
         /// <param name="DeliverDate">交付日期</param>
         /// <param name="DeliverDate">交付日期</param>
         /// <param name="seorderentry_id">销售订单子表ID</param>
         /// <param name="seorderentry_id">销售订单子表ID</param>
         /// <returns></returns>
         /// <returns></returns>
-        public async Task<List<mo_mes_mooccupy>> CheckMorder(string bomNumber, decimal Quantity, DateTime DeliverDate, crm_seorderentry seorderentry, mo_ic_item ic_Item, long bang_id, bool flag = true)
+        public async Task<List<mo_mes_mooccupy>> CheckMorder(string bomNumber, decimal Quantity, DateTime DeliverDate, crm_seorderentry seorderentry, mo_ic_item ic_Item, long bang_id)
         {
         {
             if (string.IsNullOrEmpty(bomNumber))
             if (string.IsNullOrEmpty(bomNumber))
             {
             {
@@ -218,7 +246,9 @@ namespace Business.ResourceExamineManagement
             //首先满足需求数量工单其次判断是否满足交付日期、当数量不满足时继续查找最早交付日期订单 工单数量累加。
             //首先满足需求数量工单其次判断是否满足交付日期、当数量不满足时继续查找最早交付日期订单 工单数量累加。
             //当前工单计划日期-1天 小于交付日期 && 计算生产数量-入库数据并且大于需求产品数量。
             //当前工单计划日期-1天 小于交付日期 && 计算生产数量-入库数据并且大于需求产品数量。
             var morderDataList = morderList.Where(x => x.moentry_sys_etime.GetValueOrDefault().AddDays(-1) < DeliverDate &&
             var morderDataList = morderList.Where(x => x.moentry_sys_etime.GetValueOrDefault().AddDays(-1) < DeliverDate &&
-            (x.morder_production_number - x.inventory_number) > Quantity).OrderByDescending(x => x.planner_end_date).ToList();
+            (x.morder_production_number - x.inventory_number - mes_mooccupyList.Where(p => p.moo_moid.GetValueOrDefault() == x.mysql_id)?.Sum(m => m.moo_qty)) > Quantity)
+             .OrderByDescending(x => x.planner_end_date).ToList();
+
             List<mo_mes_mooccupy> mes_Mooccupies = new List<mo_mes_mooccupy>();
             List<mo_mes_mooccupy> mes_Mooccupies = new List<mo_mes_mooccupy>();
             //当数量或日期不满足的时候,寻找最早日期的工单
             //当数量或日期不满足的时候,寻找最早日期的工单
             if (morderDataList.Count == 0)
             if (morderDataList.Count == 0)
@@ -230,10 +260,10 @@ namespace Business.ResourceExamineManagement
             foreach (var item in morderDataList)
             foreach (var item in morderDataList)
             {
             {
                 //查询当前工单是否存在占用情况
                 //查询当前工单是否存在占用情况
-                var mooccupies = mes_mooccupyList.Where(x => x.moo_moid == item.mysql_id).ToList();
+                var mooccupies = mes_mooccupyList.Where(x => x.moo_moid.GetValueOrDefault() == item.mysql_id).ToList();
                 //已占用数据
                 //已占用数据
                 var Sumqty = mooccupies.Count > 0 ? mooccupies.Sum(x => x.moo_qty) : 0.00m;
                 var Sumqty = mooccupies.Count > 0 ? mooccupies.Sum(x => x.moo_qty) : 0.00m;
-                //判断此工单剩余可占用数量
+                //获取此工单剩余可占用数量
                 var Sum = item.morder_production_number.GetValueOrDefault() - item.inventory_number.GetValueOrDefault() - Sumqty.GetValueOrDefault();
                 var Sum = item.morder_production_number.GetValueOrDefault() - item.inventory_number.GetValueOrDefault() - Sumqty.GetValueOrDefault();
                 if (Sum > 0)
                 if (Sum > 0)
                 {
                 {

+ 13 - 49
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductExamineAppService.cs

@@ -23,80 +23,44 @@ namespace Business.ResourceExamineManagement
         /// <summary>
         /// <summary>
         /// 工艺路径
         /// 工艺路径
         /// </summary>
         /// </summary>
-        private readonly IMongoDB<mo_mes_technique> _mes_technique;
+        public mo_mes_technique tech = new mo_mes_technique();
 
 
         /// <summary>
         /// <summary>
-        /// 工序
+        /// 工艺关联工
         /// </summary>
         /// </summary>
-        private readonly IMongoDB<mo_mes_process> _mes_process;
+        public List<mo_mes_tech_process> tech_Processes = new List<mo_mes_tech_process>();
 
 
         /// <summary>
         /// <summary>
-        /// 工艺关联工
+        /// 工序
         /// </summary>
         /// </summary>
-        private readonly IMongoDB<mo_mes_tech_process> _mes_tech_process;
-
+        public List<mo_mes_process> process = new List<mo_mes_process>();
 
 
         /// <summary>
         /// <summary>
         /// 工艺工序关联工位
         /// 工艺工序关联工位
         /// </summary>
         /// </summary>
-        private readonly IMongoDB<mo_mes_tech_proc_workshop> _mes_tech_proc_workshop;
+        public List<mo_mes_tech_proc_workshop> tech_Proc_Workshops = new List<mo_mes_tech_proc_workshop>();
+
         #endregion
         #endregion
 
 
         /// <summary>
         /// <summary>
         /// 构造函数
         /// 构造函数
         /// </summary>
         /// </summary>
-        public ProductExamineAppService(
-            IMongoDB<mo_mes_technique> mes_technique,
-            IMongoDB<mo_mes_process> mes_process,
-            IMongoDB<mo_mes_tech_process> mes_tech_process,
-            IMongoDB<mo_mes_tech_proc_workshop> mes_tech_proc_workshop
-            )
+        public ProductExamineAppService()
         {
         {
-            _mes_technique = mes_technique;
-            _mes_process = mes_process;
-            _mes_tech_process = mes_tech_process;
-            _mes_tech_proc_workshop = mes_tech_proc_workshop;
         }
         }
 
 
         /// <summary>
         /// <summary>
         /// 产能计算
         /// 产能计算
         /// </summary>
         /// </summary>
-        /// <param name="param">产能检查入参</param>
+        /// <param name="packages">件数</param>
         /// <returns>生产时长</returns>
         /// <returns>生产时长</returns>
-        public async Task<decimal> ProductiveExamine(ProdExamineParamDto param)
+        public decimal ProductiveExamine(int packages)
         {
         {
-            if (param.packages <= 0)
+            if (packages <= 0)
             {
             {
                 throw new NotImplementedException("产能计算参数有误!");
                 throw new NotImplementedException("产能计算参数有误!");
             }
             }
-            #region 1、数据准备
-            //1.1、获取工艺路径数据
-            mo_mes_technique tech = _mes_technique.Find(p => p.bom == param.bom_number && p.bomver == param.version && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted).Result.FirstOrDefault();
-            if (tech == null)
-            {
-                return param.packages * 100;
-                //throw new NotImplementedException("请先配置工艺路径!");
-            }
-
-            //1.2、获取工艺路径关联工序数据
-            List<mo_mes_tech_process> tech_Processes = await _mes_tech_process.GetManyByCondition(p => p.tech_id == tech.mysql_id && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
-            if (tech_Processes.Count == 0)
-            {
-                return param.packages * 100;
-                //throw new NotImplementedException("请先配置工序!");
-            }
-
-            //1.3、获取当前工艺路径下的工序数据
-            //FilterDefinition<mes_process> filter = Builders<mes_process>.Filter.In(s => s.Id, tech_Processes.Select(m => m.proc_id).ToList());
-            //List<mes_process> process = await _mes_process.GetManyByIds(filter);
-            List<long> procIds = tech_Processes.Select(m => m.proc_id.GetValueOrDefault()).ToList();
-            List<mo_mes_process> process = await _mes_process.GetManyByCondition(p => procIds.Contains(p.mysql_id) && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
-
-            //1.3、获取工艺工序关联工位信息
-            List<long> techProcIds = tech_Processes.Select(m => m.mysql_id).ToList();
-            List<mo_mes_tech_proc_workshop> tech_Proc_Workshops = await _mes_tech_proc_workshop.GetManyByCondition(p => techProcIds.Contains(p.tech_proc_id.Value) && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
-            #endregion
-
+            
             //1、获取工艺路径下的第一层级工序:目前只考虑第一层级
             //1、获取工艺路径下的第一层级工序:目前只考虑第一层级
             List<mo_mes_tech_process> fistLevels = tech_Processes.Where(p => p.parentprocid == tech.mysql_id).ToList();
             List<mo_mes_tech_process> fistLevels = tech_Processes.Where(p => p.parentprocid == tech.mysql_id).ToList();
             if (fistLevels.Count == 0)
             if (fistLevels.Count == 0)
@@ -104,7 +68,7 @@ namespace Business.ResourceExamineManagement
                 throw new NotImplementedException("当前工艺路径没有配置工序,请调整!");
                 throw new NotImplementedException("当前工艺路径没有配置工序,请调整!");
             }
             }
             //工艺预处理
             //工艺预处理
-            List<TechProcDto> teches = TechProcPretreatment(fistLevels,param.packages);
+            List<TechProcDto> teches = TechProcPretreatment(fistLevels,packages);
             decimal sumTimes = teches.OrderByDescending(p => p.sumTimes).First().sumTimes;
             decimal sumTimes = teches.OrderByDescending(p => p.sumTimes).First().sumTimes;
             return sumTimes;
             return sumTimes;
         }
         }

+ 149 - 0
MicroServices/Business/Business.Application/ResourceExamineManagement/PurchaseOrderAppService.cs

@@ -0,0 +1,149 @@
+using Business.Core.Enum;
+using Business.Core.MongoDBHelper;
+using Business.Core.Utilities;
+using Bussiness.Model.MES.IC;
+using Bussiness.Model.Sale;
+using Bussiness.Model.SRM;
+using Bussiness.MongoModel.MES.IC;
+using Bussiness.MongoModel.Production;
+using Bussiness.MongoModel.SRM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Domain.Repositories;
+using ZstdSharp.Unsafe;
+
+namespace Business.ResourceExamineManagement
+{
+    public class PurchaseOrderAppService : ApplicationService
+    {
+        #region 服务
+        /// <summary>
+        /// 采购订单
+        /// </summary>
+        private readonly IMongoDB<mo_srm_po_main> _mo_srm_po_main;
+        /// <summary>
+        /// 采购订单明细详情
+        /// </summary>
+        private readonly IMongoDB<mo_srm_po_list> _mo_srm_po_list;
+
+        /// <summary>
+        /// 采购订单占用详情
+        /// </summary>
+        private readonly IMongoDB<mo_srm_po_occupy> _mo_srm_po_occupy;
+        /// <summary>
+        /// 采购申请单
+        /// </summary>
+        private readonly IMongoDB<mo_srm_pr_main> _mo_srm_pr_main;
+        /// <summary>
+        ///  雪花算法
+        /// </summary>
+        SnowFlake snowFlake = new SnowFlake();
+
+        #endregion
+        #region 构造函数
+        /// <summary>
+        /// 构造函数
+        /// </summary>
+        /// <param name="icitem"></param>
+        /// <param name="icbom"></param>
+        public PurchaseOrderAppService(
+            IMongoDB<mo_srm_po_main> mo_srm_po_main,
+            IMongoDB<mo_srm_po_list> mo_srm_po_list,
+            IMongoDB<mo_srm_po_occupy> mo_srm_po_occupy,
+            IMongoDB<mo_srm_pr_main> mo_srm_pr_main
+            )
+        {
+            _mo_srm_po_main = mo_srm_po_main;
+            _mo_srm_po_list = mo_srm_po_list;
+            _mo_srm_po_occupy = mo_srm_po_occupy;
+            _mo_srm_pr_main = mo_srm_pr_main;
+        }
+        #endregion
+        /// <summary>
+        /// 检查在途订单
+        /// </summary>
+        public async void CheckPurchaseOrder(crm_seorderentry seorderentry, long icitem_id, decimal Quantity, DateTime DeliverDate, ic_plan ic_Plan, long bang_id)
+        {
+            if (seorderentry == null)
+            {
+                //TODO:入参异常
+            }
+
+            //查询出对应物料采购订单明细  --数据未被停用 && 评审通过后
+            var poDetailList = await _mo_srm_po_list.GetManyByCondition(x => x.icitem_id == icitem_id && x.state == 1 && x.rstate == 1);
+            //采购订单占用数据
+            var poOccupys = await _mo_srm_po_occupy.GetManyByCondition(x => poDetailList.Select(p => p.id).ToList().Contains(x.polist_id.GetValueOrDefault()));
+            //先查询出满足日期,并且数量可满足占用的数据
+            var poDetails = poDetailList.Where(x => x.rarrdate.GetValueOrDefault().AddDays(-(int)ic_Plan.self_inspection_date.GetValueOrDefault()) < DeliverDate && x.qty - x.rqty - x.esqty -
+                poOccupys.Where(p => p.polist_id.GetValueOrDefault() == x.mysql_id)?.Sum(m => m.qty) > Quantity).OrderByDescending(x => x.rarrdate).ToList();
+            //未满足则查询出满足日期的订单
+            if (poDetails.Count == 0)
+            {
+                poDetails = poDetailList.Where(x => x.rarrdate.GetValueOrDefault().AddDays(-(int)ic_Plan.self_inspection_date.GetValueOrDefault()) < DeliverDate).OrderByDescending(x => x.rarrdate).ToList();
+            }
+            var QuantityNumber = 0.00m;
+            foreach (var item in poDetails)
+            {
+                var poOccupy = poOccupys.Where(x => x.polist_id == item.id).ToList();
+                decimal? Qtys = poOccupy.Count > 0 ? poOccupy.Sum(x => x.qty) : 0.00m;
+                //剩余可用数量
+                var PlanQty = item.plan_qty - item.rqty - item.esqty - Qtys;
+                if (PlanQty > 0)
+                {
+                    //可占用数量-需求数量小于0时 占用全部可占用数量
+                    if (PlanQty - Quantity <= 0)
+                    {
+                        QuantityNumber = PlanQty.GetValueOrDefault();
+                    }
+                    else
+                    {
+                        //可占用数量满足 需求数量时直接占用需求数量
+                        QuantityNumber = Quantity;
+                    }
+                    var mes_Mooccupy = GetMooccupies(seorderentry, item, QuantityNumber, bang_id);
+                    //mes_Mooccupies.Add(mes_Mooccupy);
+                    //当剩余需要数量大于0则继续寻找可占用工单,已满足需要数量停止循环查找
+                    if (Quantity - PlanQty <= 0)
+                    {
+                        break;
+                    }
+                    Quantity = Quantity - PlanQty.GetValueOrDefault();
+                }
+            }
+
+        }
+        /// <summary>
+        /// 拼接工单占用表
+        /// </summary>
+        /// <param name="seorderentry">销售订单子表</param>
+        /// <param name="mysql_ic_item">物料详情表</param>
+        /// <param name="item">工单表</param>
+        /// <param name="mes_mooccupy">占用工单表</param>
+        /// <returns></returns>
+        public mo_srm_po_occupy GetMooccupies(crm_seorderentry seorderentry, mo_srm_po_list srm_po_list, decimal? number, long bang_id)
+        {
+            //生成mo_srm_po_occupy采购占用表数据。 
+            mo_srm_po_occupy srm_Po_Occupy = new mo_srm_po_occupy();
+            srm_Po_Occupy.mysql_id = snowFlake.NextId();
+            srm_Po_Occupy.bang_id = bang_id;
+            srm_Po_Occupy.polist_id = srm_po_list.id;
+            srm_Po_Occupy.polist_row = srm_po_list.polist_row;
+            srm_Po_Occupy.eid = seorderentry.entry_seq.Value;
+            srm_Po_Occupy.bill_no = seorderentry.seorder_id;
+            srm_Po_Occupy.entry_id = seorderentry.entry_seq.GetValueOrDefault();
+            srm_Po_Occupy.qty = number;
+            srm_Po_Occupy.type = "";//TODO:类型未知
+            srm_Po_Occupy.stime = DateTime.Now.Date;
+            srm_Po_Occupy.etime = srm_po_list.rarrdate;
+            srm_Po_Occupy.state = 1;
+            srm_Po_Occupy.tenant_id = seorderentry.tenant_id;//取销售子表企业ID
+            srm_Po_Occupy.factory_id = seorderentry.factory_id;
+            srm_Po_Occupy.org_id = seorderentry.org_id;
+            return srm_Po_Occupy;
+        }
+    }
+}

+ 83 - 0
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -9,6 +9,7 @@ using Bussiness.Model.Tech;
 using Bussiness.MongoModel.MES.IC;
 using Bussiness.MongoModel.MES.IC;
 using Bussiness.MongoModel.Production;
 using Bussiness.MongoModel.Production;
 using Bussiness.MongoModel.SRM;
 using Bussiness.MongoModel.SRM;
+using Bussiness.MongoModel.Tech;
 using Microsoft.EntityFrameworkCore;
 using Microsoft.EntityFrameworkCore;
 using MongoDB.Driver;
 using MongoDB.Driver;
 using MongoDB.Driver.Linq;
 using MongoDB.Driver.Linq;
@@ -32,6 +33,27 @@ namespace Business.ResourceExamineManagement
         #region 服务
         #region 服务
         SnowFlake help = new SnowFlake();
         SnowFlake help = new SnowFlake();
 
 
+        /// <summary>
+        /// 工艺路径
+        /// </summary>
+        private readonly IMongoDB<mo_mes_technique> _mes_technique;
+
+        /// <summary>
+        /// 工序
+        /// </summary>
+        private readonly IMongoDB<mo_mes_process> _mes_process;
+
+        /// <summary>
+        /// 工艺关联工序
+        /// </summary>
+        private readonly IMongoDB<mo_mes_tech_process> _mes_tech_process;
+
+
+        /// <summary>
+        /// 工艺工序关联工位
+        /// </summary>
+        private readonly IMongoDB<mo_mes_tech_proc_workshop> _mes_tech_proc_workshop;
+
         /// <summary>
         /// <summary>
         /// 物料占用记录
         /// 物料占用记录
         /// </summary>
         /// </summary>
@@ -203,6 +225,10 @@ namespace Business.ResourceExamineManagement
         /// <param name="icitem"></param>
         /// <param name="icitem"></param>
         /// <param name="icbom"></param>
         /// <param name="icbom"></param>
         public ResourceExamineAppService(
         public ResourceExamineAppService(
+            IMongoDB<mo_mes_technique> mes_technique,
+            IMongoDB<mo_mes_process> mes_process,
+            IMongoDB<mo_mes_tech_process> mes_tech_process,
+            IMongoDB<mo_mes_tech_proc_workshop> mes_tech_proc_workshop,
             IMongoDB<mo_ic_item> ic_item,
             IMongoDB<mo_ic_item> ic_item,
             IMongoDB<mo_ic_bom> ic_bom,
             IMongoDB<mo_ic_bom> ic_bom,
             IMongoDB<mo_ic_bom_child> ic_bom_child,
             IMongoDB<mo_ic_bom_child> ic_bom_child,
@@ -249,6 +275,10 @@ namespace Business.ResourceExamineManagement
             CalcBomViewAppService calcbomviewAppService
             CalcBomViewAppService calcbomviewAppService
             )
             )
         {
         {
+            _mes_technique = mes_technique;
+            _mes_process = mes_process;
+            _mes_tech_process = mes_tech_process;
+            _mes_tech_proc_workshop = mes_tech_proc_workshop;
             _ic_item = ic_item;
             _ic_item = ic_item;
             _ic_bom = ic_bom;
             _ic_bom = ic_bom;
             _ic_bom_child = ic_bom_child;
             _ic_bom_child = ic_bom_child;
@@ -356,7 +386,29 @@ namespace Business.ResourceExamineManagement
             List<long> suballidlist = suballlist.Select(c => c.mysql_id).ToList();
             List<long> suballidlist = suballlist.Select(c => c.mysql_id).ToList();
             var subdtllist = _ic_substitute_all_dtl.GetManyByCondition(p => suballidlist.Contains(p.substitute_allid) && !p.IsDeleted).Result;
             var subdtllist = _ic_substitute_all_dtl.GetManyByCondition(p => suballidlist.Contains(p.substitute_allid) && !p.IsDeleted).Result;
 
 
+            #region 1、数据准备
+            //1.1、获取工艺路径数据
+            List<mo_mes_technique> techs = GetMesTechniques(boms);
+            if (techs.Count == 0)
+            {
+                throw new NotImplementedException("请先配置工艺路径!");
+            }
+
+            //1.2、获取工艺路径关联工序数据
+            List<mo_mes_tech_process> tech_Processes = await _mes_tech_process.GetManyByCondition(p => techs.Select(m=>m.mysql_id).ToList().Contains(p.tech_id.GetValueOrDefault()) && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
+            if (tech_Processes.Count == 0)
+            {
+                throw new NotImplementedException("请先配置工序!");
+            }
+
+            //1.3、获取当前工艺路径下的工序数据
+            List<long> procIds = tech_Processes.Select(m => m.proc_id.GetValueOrDefault()).ToList();
+            List<mo_mes_process> process = await _mes_process.GetManyByCondition(p => procIds.Contains(p.mysql_id) && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
 
 
+            //1.3、获取工艺工序关联工位信息
+            List<long> techProcIds = tech_Processes.Select(m => m.mysql_id).ToList();
+            List<mo_mes_tech_proc_workshop> tech_Proc_Workshops = await _mes_tech_proc_workshop.GetManyByCondition(p => techProcIds.Contains(p.tech_proc_id.Value) && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted);
+            #endregion
 
 
             //物料占用记录
             //物料占用记录
             List<mo_ic_item_stockoccupy> sklist = new List<mo_ic_item_stockoccupy>();
             List<mo_ic_item_stockoccupy> sklist = new List<mo_ic_item_stockoccupy>();
@@ -378,6 +430,18 @@ namespace Business.ResourceExamineManagement
             _CalcBomViewAppService.planList = planList;
             _CalcBomViewAppService.planList = planList;
             _CalcBomViewAppService.leadTimeList = leadTimeList;
             _CalcBomViewAppService.leadTimeList = leadTimeList;
             _CalcBomViewAppService.supplierList = supplierList;
             _CalcBomViewAppService.supplierList = supplierList;
+            //资源检查添加工艺路径数据
+            _CalcBomViewAppService.techs = techs;//工艺路径
+            _CalcBomViewAppService.tech_Processes = tech_Processes;//工艺关联工序
+            _CalcBomViewAppService.process = process;//工序
+            _CalcBomViewAppService.tech_Proc_Workshops = tech_Proc_Workshops;//工艺工序关联工位
+
+            //工单添加工艺路径数据
+            _morderAppService.techs = techs;//工艺路径
+            _morderAppService.tech_Processes = tech_Processes;//工艺关联工序
+            _morderAppService.process = process;//工序
+            _morderAppService.tech_Proc_Workshops = tech_Proc_Workshops;//工艺工序关联工位
+
             foreach (var item in sentrys)
             foreach (var item in sentrys)
             {
             {
                 //工单资源检查信息
                 //工单资源检查信息
@@ -433,6 +497,25 @@ namespace Business.ResourceExamineManagement
 
 
         }
         }
 
 
+        /// <summary>
+        /// 通过ic_bom获取工艺路径数据
+        /// </summary>
+        /// <param name="ic_Boms"></param>
+        /// <returns></returns>
+        public List<mo_mes_technique> GetMesTechniques(List<mo_ic_bom> ic_Boms)
+        {
+            List<mo_mes_technique> techniques = new List<mo_mes_technique>();
+            foreach (var item in ic_Boms)
+            {
+                mo_mes_technique entity = _mes_technique.Find(p => p.bom == item.bom_number && p.bomver == item.version && p.tenant_id == param.tenantId && p.factory_id == param.factoryId && !p.IsDeleted).Result.FirstOrDefault();
+                if (entity != null)
+                {
+                    techniques.Add(entity);
+                }
+            }
+            return techniques;
+        }
+
         /// <summary>
         /// <summary>
         /// 递归:获取icbom,icbomchild数据
         /// 递归:获取icbom,icbomchild数据
         /// </summary>
         /// </summary>

+ 3 - 8
MicroServices/Business/Business.Tests/Business.Tests.csproj → MicroServices/Business/Business.Test/Business.Test.csproj

@@ -9,19 +9,14 @@
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="Effort.EF6" Version="2.2.16" />
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
-    <PackageReference Include="Shouldly" Version="4.1.0" />
-    <PackageReference Include="Volo.Abp.Autofac" Version="7.0.2" />
-    <PackageReference Include="Volo.Abp.TestBase" Version="6.0.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="xunit" Version="2.4.2" />
     <PackageReference Include="xunit" Version="2.4.2" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
-      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
       <PrivateAssets>all</PrivateAssets>
       <PrivateAssets>all</PrivateAssets>
-    </PackageReference>
-    <PackageReference Include="coverlet.collector" Version="3.1.2">
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
-      <PrivateAssets>all</PrivateAssets>
     </PackageReference>
     </PackageReference>
   </ItemGroup>
   </ItemGroup>
 
 

+ 180 - 0
MicroServices/Business/Business.Test/ProductExamineTest.cs

@@ -0,0 +1,180 @@
+using Business.Core.MongoDBHelper;
+using Business.ResourceExamineManagement;
+using Business.ResourceExamineManagement.Dto;
+using Bussiness.Model.Tech;
+using Bussiness.MongoModel.Tech;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Policy;
+using System.Text;
+using System.Threading.Tasks;
+using Xunit;
+
+namespace Business.Test
+{
+    /// <summary>
+    /// 产能检查单元测试类
+    /// </summary>
+    public class ProductExamineTest
+    {
+        [Fact]
+        public void ProductExamine()
+        {
+            //Arrange
+            var sut = new ProductExamineAppService();
+            sut.tech = CreateTechnique();
+            sut.process = CreateProcess();
+            sut.tech_Processes = CreateTechProcess();
+
+            //Act
+            var result =  sut.ProductiveExamine(1000);
+            //Assert
+            Xunit.Assert.Equal(14030, result);
+        }
+
+        /// <summary>
+        /// 创建工艺路径数据
+        /// </summary>
+        /// <returns></returns>
+        public mo_mes_technique CreateTechnique()
+        {
+            mo_mes_technique info = new mo_mes_technique();
+            info.id = 1111111111;
+            info.mysql_id = 111111111111111;
+            info.tech_name = "测试产能检查";
+            info.level = 2;
+            info.bom = "R650K";
+            info.bomver = "3.0";
+            info.desc = "断路器";
+            return info;
+        }
+
+        /// <summary>
+        /// 创建工序数据
+        /// </summary>
+        /// <returns></returns>
+        public List<mo_mes_process> CreateProcess()
+        {
+            List<mo_mes_process> processes = new List<mo_mes_process>();
+
+            //插入工序数据
+            mo_mes_process info1 = new mo_mes_process();
+            info1.id = 2222222222;
+            info1.mysql_id = 222222222222222;
+            info1.proc_name = "前加工1";
+            processes.Add(info1);
+
+            mo_mes_process info2 = new mo_mes_process();
+            info2.id = 3333333333;
+            info2.mysql_id = 333333333333333;
+            info2.proc_name = "组装2";
+            processes.Add(info2);
+
+            mo_mes_process info3 = new mo_mes_process();
+            info3.id = 4444444444;
+            info3.mysql_id = 444444444444444;
+            info3.proc_name = "老化3";
+            processes.Add(info3);
+
+            mo_mes_process info4 = new mo_mes_process();
+            info4.id = 5555555555;
+            info4.mysql_id = 555555555555555;
+            info4.proc_name = "包装4";
+            processes.Add(info4);
+
+            return processes;
+        }
+
+        /// <summary>
+        /// 创建工艺工序数据
+        /// </summary>
+        /// <returns></returns>
+        public List<mo_mes_tech_process> CreateTechProcess()
+        {
+            List<mo_mes_tech_process> tech_Processes = new List<mo_mes_tech_process>();
+
+            //前加工1
+            mo_mes_tech_process info5 = new mo_mes_tech_process();
+            info5.id = 6666666666;
+            info5.mysql_id = 666666666666666;
+            info5.tech_id = 111111111111111;
+            info5.proc_id = 222222222222222;
+            info5.level = 1;
+            info5.readytime = 60;
+            info5.wctype = 1;
+            info5.lq = 1;
+            info5.lqt = 10;
+            info5.wsinuse = 4;
+            info5.upe = 2;
+            info5.uph = 5;
+            info5.ct = 0;
+            info5.effect_ratio = 0.9m;
+            info5.nextprocid = 333333333333333;
+            info5.parentprocid = 111111111111111;
+            tech_Processes.Add(info5);
+
+            //组装2
+            mo_mes_tech_process info6 = new mo_mes_tech_process();
+            info6.id = 7777777777;
+            info6.mysql_id = 777777777777777;
+            info6.tech_id = 111111111111111;
+            info6.proc_id = 333333333333333;
+            info6.level = 1;
+            info6.readytime = 60;
+            info6.wctype = 2;
+            info6.lq = 16;
+            info6.lqt = 10;
+            info6.wsinuse = 2;
+            info6.upe = 2;
+            info6.uph = 0;
+            info6.ct = 37;
+            info6.effect_ratio = 0.9m;
+            info6.nextprocid = 444444444444444;
+            info6.parentprocid = 111111111111111;
+            tech_Processes.Add(info6);
+
+            //老化3
+            mo_mes_tech_process info7 = new mo_mes_tech_process();
+            info7.id = 8888888888;
+            info7.mysql_id = 888888888888888;
+            info7.tech_id = 111111111111111;
+            info7.proc_id = 444444444444444;
+            info7.level = 1;
+            info7.readytime = 60;
+            info7.wctype = 3;
+            info7.lq = 16;
+            info7.lqt = 10;
+            info7.wsinuse = 8;
+            info7.upe = 2;
+            info7.uph = 0;
+            info7.ct = 240;
+            info7.effect_ratio = 0.9m;
+            info7.nextprocid = 555555555555555;
+            info7.parentprocid = 111111111111111;
+            tech_Processes.Add(info7);
+
+            //包装4
+            mo_mes_tech_process info8 = new mo_mes_tech_process();
+            info8.id = 9999999999;
+            info8.mysql_id = 999999999999999;
+            info8.tech_id = 111111111111111;
+            info8.proc_id = 555555555555555;
+            info8.level = 1;
+            info8.readytime = 60;
+            info8.wctype = 2;
+            info8.lq = 10;
+            info8.lqt = 10;
+            info8.wsinuse = 2;
+            info8.upe = 2;
+            info8.uph = 0;
+            info8.ct = 28;
+            info8.effect_ratio = 0.9m;
+            info8.nextprocid = null;
+            info8.parentprocid = 111111111111111;
+            tech_Processes.Add(info8);
+
+            return tech_Processes;
+        }
+    }
+}

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

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

+ 0 - 65
MicroServices/Business/Business.Tests/BusinessTestBase.cs

@@ -1,65 +0,0 @@
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Volo.Abp;
-using Volo.Abp.Modularity;
-using Volo.Abp.Testing;
-using Volo.Abp.Uow;
-
-namespace Business.Tests
-{
-    /// <summary>
-    /// 测试基类
-    /// </summary>
-    public abstract class BusinessTestBase<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;
-                }
-            }
-        }
-    }
-}

+ 0 - 55
MicroServices/Business/Business.Tests/BusinessTestModule.cs

@@ -1,55 +0,0 @@
-using Autofac.Core;
-using BaseService.HttpApi.Client;
-using Business.Core.MongoDBHelper;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Volo.Abp.Application;
-using Volo.Abp.AutoMapper;
-using Volo.Abp.Http.Client.IdentityModel;
-using Volo.Abp.Identity;
-using Volo.Abp.Modularity;
-using XCZ;
-
-namespace Business.Tests
-{
-    [DependsOn(
-        typeof(BusinessDomainModule),
-        typeof(BusinessApplicationContractsModule),
-        typeof(AbpDddApplicationModule),
-        typeof(AbpHttpClientIdentityModelModule),
-        typeof(AbpIdentityHttpApiClientModule),
-        typeof(BaseServiceHttpApiClientModule),
-        typeof(FormApplicationModule),
-        typeof(FlowApplicationModule),
-        typeof(AbpAutoMapperModule))]
-    public class BusinessTestModule:AbpModule
-    {
-        public override void ConfigureServices(ServiceConfigurationContext context)
-        {
-            //MongoDBHelper依赖注入
-            context.Services.AddScoped(typeof(IMongoDB<>), typeof(MongoDBTools<>));
-
-            var configuration = context.Services.GetConfiguration();
-            //MongoDB依赖注入
-            ConfigureMongoDB(configuration);
-        }
-
-        /// <summary>
-        /// MongoDB依赖注入
-        /// </summary>
-        /// <param name="context"></param>
-        /// <param name="configuration"></param>
-        private void ConfigureMongoDB(IConfiguration configuration)
-        {
-            Configure<Config>(options => {
-                options.connectstring = configuration.GetConnectionString("MongoDB");
-                options.database = configuration.GetConnectionString("DBName");
-            });
-        }
-    }
-}

+ 0 - 47
MicroServices/Business/Business.Tests/ProductExamineTest.cs

@@ -1,47 +0,0 @@
-using Business.ResourceExamineManagement;
-using Business.ResourceExamineManagement.Dto;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Volo.Abp.Domain.Repositories;
-using XCZ.FormManagement;
-
-namespace Business.Tests
-{
-    /// <summary>
-    /// 产能检查单元测试
-    /// </summary>
-    public class ProductExamineTest:BusinessTestBase<BusinessTestModule>
-    {
-        /// <summary>
-        /// 资源检查服务
-        /// </summary>
-        private readonly IResourceExamineAppService _service;
-
-        /// <summary>
-        /// 构造函数
-        /// </summary>
-        public ProductExamineTest(IResourceExamineAppService service)
-        {
-            _service = service;
-        }
-
-        [Fact]
-        public async Task TestAddPoet()
-        {
-            await WithUnitOfWorkAsync(async () =>
-            {
-                SeorderentryDto input = new SeorderentryDto() { 
-                    sorderId = 1,
-                    tenantId = 102,
-                    factoryId = 10201
-                };
-                //Act
-                var a = await _service.ReceiveResult(input);
-                Assert.True(!string.IsNullOrEmpty(a));
-            });
-        }
-    }
-}

+ 0 - 1
MicroServices/Business/Business.Tests/Usings.cs

@@ -1 +0,0 @@
-global using Xunit;

+ 6 - 6
MicroServices/Business/Business.sln

@@ -25,7 +25,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bussiness.MongoModel", "Bus
 EndProject
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{4523E5A9-9492-49A2-8A1A-46080749D966}"
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{4523E5A9-9492-49A2-8A1A-46080749D966}"
 EndProject
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Business.Tests", "Business.Tests\Business.Tests.csproj", "{5B827CCF-FF18-4A89-A11A-CB6476394280}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Business.Test", "Business.Test\Business.Test.csproj", "{66017D12-2115-4DC9-B400-E5E57EE2D16E}"
 EndProject
 EndProject
 Global
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -73,16 +73,16 @@ Global
 		{604EACA4-3A26-425C-91B3-4516BA5282BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{604EACA4-3A26-425C-91B3-4516BA5282BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{604EACA4-3A26-425C-91B3-4516BA5282BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{604EACA4-3A26-425C-91B3-4516BA5282BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{604EACA4-3A26-425C-91B3-4516BA5282BB}.Release|Any CPU.Build.0 = Release|Any CPU
 		{604EACA4-3A26-425C-91B3-4516BA5282BB}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5B827CCF-FF18-4A89-A11A-CB6476394280}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5B827CCF-FF18-4A89-A11A-CB6476394280}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5B827CCF-FF18-4A89-A11A-CB6476394280}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5B827CCF-FF18-4A89-A11A-CB6476394280}.Release|Any CPU.Build.0 = Release|Any CPU
+		{66017D12-2115-4DC9-B400-E5E57EE2D16E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{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
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
 	GlobalSection(NestedProjects) = preSolution
-		{5B827CCF-FF18-4A89-A11A-CB6476394280} = {4523E5A9-9492-49A2-8A1A-46080749D966}
+		{66017D12-2115-4DC9-B400-E5E57EE2D16E} = {4523E5A9-9492-49A2-8A1A-46080749D966}
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {2E43F5D5-31CD-4424-A538-4C716E71D9AF}
 		SolutionGuid = {2E43F5D5-31CD-4424-A538-4C716E71D9AF}