¶Ô±ÈÐÂÎļþ |
| | |
| | | # Paths |
| | | $rootFolder = (Get-Item -Path "./" -Verbose).FullName |
| | | |
| | | $serverFolder = Join-Path $rootFolder ("/server") |
| | | |
| | | Set-Location $serverFolder |
| | | & dotnet tool install --global dotnet-ef |
| | | |
| | | & dotnet restore -s https://nexus.sycdev.com/repository/nuget-group/index.json |
| | | |
| | | $migrationFolder = Join-Path $serverFolder ("/src/CMS.Plugin.HIAWms.MySQL") |
| | | Set-Location $migrationFolder |
| | | dotnet ef migrations add InitialCreate -c CMSPluginDbContext -o Migrations |
| | | |
| | | Set-Location $serverFolder |
| | | & dotnet build |
| | | |
| | | Set-Location $rootFolder |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # Paths |
| | | $rootFolder = (Get-Item -Path "./" -Verbose).FullName |
| | | |
| | | $webFolder = Join-Path $rootFolder ("/web") |
| | | |
| | | Set-Location $rootFolder |
| | | & npm install yarn -g |
| | | & npm install lmes-cli -g |
| | | |
| | | & lmes-cli create web |
| | | |
| | | Set-Location $webFolder |
| | | & yarn |
| | | & npm run build |
| | | |
| | | Set-Location $rootFolder |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" /> |
| | | </project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="UserContentModel"> |
| | | <attachedFolders /> |
| | | <explicitIncludes /> |
| | | <explicitExcludes /> |
| | | </component> |
| | | </project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="VcsDirectoryMappings"> |
| | | <mapping directory="$PROJECT_DIR$/../../../../.." vcs="Git" /> |
| | | </component> |
| | | </project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | Microsoft Visual Studio Solution File, Format Version 12.00 |
| | | # Visual Studio Version 17 |
| | | VisualStudioVersion = 17.4.33110.190 |
| | | MinimumVisualStudioVersion = 10.0.40219.1 |
| | | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "è§£å³æ¹æ¡é¡¹", "è§£å³æ¹æ¡é¡¹", "{28C418E6-AF1D-4B74-ACDF-7B81FA4C256E}" |
| | | ProjectSection(SolutionItems) = preProject |
| | | .editorconfig = .editorconfig |
| | | .gitignore = .gitignore |
| | | common.props = common.props |
| | | common.test.props = common.test.props |
| | | configureawait.props = configureawait.props |
| | | delete-bin-obj-folders.bat = delete-bin-obj-folders.bat |
| | | Directory.Build.props = Directory.Build.props |
| | | NuGet.config = NuGet.config |
| | | package.reference.props = package.reference.props |
| | | publish.ps1 = publish.ps1 |
| | | README.md = README.md |
| | | stylecop.json = stylecop.json |
| | | EndProjectSection |
| | | EndProject |
| | | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{19F68F40-2A05-48EB-86F0-56928B3CCE9C}" |
| | | EndProject |
| | | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{5632E2B3-5592-4C6A-9493-768E5B04804D}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo", "src\CMS.Plugin.HIAWms\CMS.Plugin.SycWmsDemo.csproj", "{9926DE4C-376D-487E-9C64-494913D94379}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.EntityFrameworkCore", "src\CMS.Plugin.HIAWms.EntityFrameworkCore\CMS.Plugin.SycWmsDemo.EntityFrameworkCore.csproj", "{0022A80F-6D52-4B58-B2B3-F029DB4AEC0A}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.Domain", "src\CMS.Plugin.HIAWms.Domain\CMS.Plugin.SycWmsDemo.Domain.csproj", "{8B2BED13-2B0E-49B5-8B0A-F272D27B2F37}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.Domain.Shared", "src\CMS.Plugin.HIAWms.Domain.Shared\CMS.Plugin.SycWmsDemo.Domain.Shared.csproj", "{F405C633-8100-49B8-A270-D5340A165742}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.Application.Contracts", "src\CMS.Plugin.HIAWms.Application.Contracts\CMS.Plugin.SycWmsDemo.Application.Contracts.csproj", "{D65BB57E-618A-468C-AA28-BD8C9EBF0AF2}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.Application", "src\CMS.Plugin.HIAWms.Application\CMS.Plugin.SycWmsDemo.Application.csproj", "{02CB86F3-E614-4193-8B7F-C2FB665C8A5A}" |
| | | EndProject |
| | | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "doc", "doc", "{A68B3B6B-DDE8-431E-90F3-A9FEE1D14A53}" |
| | | ProjectSection(SolutionItems) = preProject |
| | | doc\Domain-Drive-Design.md = doc\Domain-Drive-Design.md |
| | | EndProjectSection |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.TestBase", "test\CMS.Plugin.HIAWms.TestBase\CMS.Plugin.SycWmsDemo.TestBase.csproj", "{33999EE8-73A1-4CF2-BDFD-CE353B05A727}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.EntityFrameworkCore.Tests", "test\CMS.Plugin.HIAWms.EntityFrameworkCore.Tests\CMS.Plugin.SycWmsDemo.EntityFrameworkCore.Tests.csproj", "{C6AFC427-C51D-4BD2-BBA6-8841D3495077}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.Domain.Tests", "test\CMS.Plugin.HIAWms.Domain.Tests\CMS.Plugin.SycWmsDemo.Domain.Tests.csproj", "{74E86B03-F185-47B2-A4C3-04C1CEC84F14}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.Application.Tests", "test\CMS.Plugin.HIAWms.Application.Tests\CMS.Plugin.SycWmsDemo.Application.Tests.csproj", "{731DE36F-27F5-48B8-865D-DA43C8910010}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.Abstractions", "src\CMS.Plugin.HIAWms.Abstractions\CMS.Plugin.SycWmsDemo.Abstractions.csproj", "{87D957E4-FE12-4432-9B7B-827A98DD41D1}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.MySQL", "src\CMS.Plugin.HIAWms.MySQL\CMS.Plugin.SycWmsDemo.MySQL.csproj", "{2F71D6DF-F19A-410C-BD79-F2F871E63902}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.PostgreSql", "src\CMS.Plugin.HIAWms.PostgreSql\CMS.Plugin.SycWmsDemo.PostgreSql.csproj", "{698D9FFA-080C-4F22-9FBF-B9509B28A954}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.SycWmsDemo.SqlServer", "src\CMS.Plugin.HIAWms.SqlServer\CMS.Plugin.SycWmsDemo.SqlServer.csproj", "{521D17FF-BD3A-43B4-9BEE-183FDE3522F4}" |
| | | EndProject |
| | | Global |
| | | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
| | | Debug|Any CPU = Debug|Any CPU |
| | | Release|Any CPU = Release|Any CPU |
| | | EndGlobalSection |
| | | GlobalSection(ProjectConfigurationPlatforms) = postSolution |
| | | {9926DE4C-376D-487E-9C64-494913D94379}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {9926DE4C-376D-487E-9C64-494913D94379}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {9926DE4C-376D-487E-9C64-494913D94379}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {9926DE4C-376D-487E-9C64-494913D94379}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {0022A80F-6D52-4B58-B2B3-F029DB4AEC0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {0022A80F-6D52-4B58-B2B3-F029DB4AEC0A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {0022A80F-6D52-4B58-B2B3-F029DB4AEC0A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {0022A80F-6D52-4B58-B2B3-F029DB4AEC0A}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {8B2BED13-2B0E-49B5-8B0A-F272D27B2F37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {8B2BED13-2B0E-49B5-8B0A-F272D27B2F37}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {8B2BED13-2B0E-49B5-8B0A-F272D27B2F37}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {8B2BED13-2B0E-49B5-8B0A-F272D27B2F37}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {F405C633-8100-49B8-A270-D5340A165742}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {F405C633-8100-49B8-A270-D5340A165742}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {F405C633-8100-49B8-A270-D5340A165742}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {F405C633-8100-49B8-A270-D5340A165742}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {D65BB57E-618A-468C-AA28-BD8C9EBF0AF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {D65BB57E-618A-468C-AA28-BD8C9EBF0AF2}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {D65BB57E-618A-468C-AA28-BD8C9EBF0AF2}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {D65BB57E-618A-468C-AA28-BD8C9EBF0AF2}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {02CB86F3-E614-4193-8B7F-C2FB665C8A5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {02CB86F3-E614-4193-8B7F-C2FB665C8A5A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {02CB86F3-E614-4193-8B7F-C2FB665C8A5A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {02CB86F3-E614-4193-8B7F-C2FB665C8A5A}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {33999EE8-73A1-4CF2-BDFD-CE353B05A727}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {33999EE8-73A1-4CF2-BDFD-CE353B05A727}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {33999EE8-73A1-4CF2-BDFD-CE353B05A727}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {33999EE8-73A1-4CF2-BDFD-CE353B05A727}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {C6AFC427-C51D-4BD2-BBA6-8841D3495077}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {C6AFC427-C51D-4BD2-BBA6-8841D3495077}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {C6AFC427-C51D-4BD2-BBA6-8841D3495077}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {C6AFC427-C51D-4BD2-BBA6-8841D3495077}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {74E86B03-F185-47B2-A4C3-04C1CEC84F14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {74E86B03-F185-47B2-A4C3-04C1CEC84F14}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {74E86B03-F185-47B2-A4C3-04C1CEC84F14}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {74E86B03-F185-47B2-A4C3-04C1CEC84F14}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {731DE36F-27F5-48B8-865D-DA43C8910010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {731DE36F-27F5-48B8-865D-DA43C8910010}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {731DE36F-27F5-48B8-865D-DA43C8910010}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {731DE36F-27F5-48B8-865D-DA43C8910010}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {87D957E4-FE12-4432-9B7B-827A98DD41D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {87D957E4-FE12-4432-9B7B-827A98DD41D1}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {87D957E4-FE12-4432-9B7B-827A98DD41D1}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {87D957E4-FE12-4432-9B7B-827A98DD41D1}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {2F71D6DF-F19A-410C-BD79-F2F871E63902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {2F71D6DF-F19A-410C-BD79-F2F871E63902}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {2F71D6DF-F19A-410C-BD79-F2F871E63902}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {2F71D6DF-F19A-410C-BD79-F2F871E63902}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {698D9FFA-080C-4F22-9FBF-B9509B28A954}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {698D9FFA-080C-4F22-9FBF-B9509B28A954}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {698D9FFA-080C-4F22-9FBF-B9509B28A954}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {698D9FFA-080C-4F22-9FBF-B9509B28A954}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {521D17FF-BD3A-43B4-9BEE-183FDE3522F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {521D17FF-BD3A-43B4-9BEE-183FDE3522F4}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {521D17FF-BD3A-43B4-9BEE-183FDE3522F4}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {521D17FF-BD3A-43B4-9BEE-183FDE3522F4}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | EndGlobalSection |
| | | GlobalSection(SolutionProperties) = preSolution |
| | | HideSolutionNode = FALSE |
| | | EndGlobalSection |
| | | GlobalSection(NestedProjects) = preSolution |
| | | {9926DE4C-376D-487E-9C64-494913D94379} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {0022A80F-6D52-4B58-B2B3-F029DB4AEC0A} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {8B2BED13-2B0E-49B5-8B0A-F272D27B2F37} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {F405C633-8100-49B8-A270-D5340A165742} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {D65BB57E-618A-468C-AA28-BD8C9EBF0AF2} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {02CB86F3-E614-4193-8B7F-C2FB665C8A5A} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {A68B3B6B-DDE8-431E-90F3-A9FEE1D14A53} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {33999EE8-73A1-4CF2-BDFD-CE353B05A727} = {5632E2B3-5592-4C6A-9493-768E5B04804D} |
| | | {C6AFC427-C51D-4BD2-BBA6-8841D3495077} = {5632E2B3-5592-4C6A-9493-768E5B04804D} |
| | | {74E86B03-F185-47B2-A4C3-04C1CEC84F14} = {5632E2B3-5592-4C6A-9493-768E5B04804D} |
| | | {731DE36F-27F5-48B8-865D-DA43C8910010} = {5632E2B3-5592-4C6A-9493-768E5B04804D} |
| | | {87D957E4-FE12-4432-9B7B-827A98DD41D1} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {2F71D6DF-F19A-410C-BD79-F2F871E63902} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {698D9FFA-080C-4F22-9FBF-B9509B28A954} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {521D17FF-BD3A-43B4-9BEE-183FDE3522F4} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | EndGlobalSection |
| | | GlobalSection(ExtensibilityGlobals) = postSolution |
| | | SolutionGuid = {220123E7-A888-4DE7-8F9A-8FE271543889} |
| | | EndGlobalSection |
| | | EndGlobal |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project> |
| | | <!-- C# compiler options (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/) --> |
| | | <PropertyGroup> |
| | | <!-- Nullable (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/language#nullable) --> |
| | | <Nullable>disable</Nullable> |
| | | <Deterministic>true</Deterministic> |
| | | <!-- report errors and warnings (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings) --> |
| | | <WarningLevel>5</WarningLevel> |
| | | </PropertyGroup> |
| | | |
| | | <!-- Generated file properties (https://docs.microsoft.com/en-us/dotnet/core/project-sdk/msbuild-props#generated-file-properties) --> |
| | | <PropertyGroup> |
| | | <ImplicitUsings>enable</ImplicitUsings> |
| | | </PropertyGroup> |
| | | |
| | | <!-- Code analysis properties (https://docs.microsoft.com/en-us/dotnet/core/project-sdk/msbuild-props#code-analysis-properties) --> |
| | | <PropertyGroup> |
| | | <EnableNETAnalyzers>true</EnableNETAnalyzers> |
| | | <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> |
| | | <AnalysisMode>All</AnalysisMode> |
| | | <AnalysisLevel>latest</AnalysisLevel> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <AdditionalFiles Include="$([MSBuild]::GetPathOfFileAbove('stylecop.json'))" Visible="false" /> |
| | | </ItemGroup> |
| | | |
| | | <!-- Dependencies --> |
| | | <ItemGroup Condition="$(MSBuildProjectExtension) == '.csproj'" > |
| | | <PackageReference Include="SonarAnalyzer.CSharp" Version="8.32.0.39516" PrivateAssets="all" /> |
| | | <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> |
| | | <PackageReference Include="Roslynator.Analyzers" Version="3.3.0" PrivateAssets="all" /> |
| | | </ItemGroup> |
| | | |
| | | <PropertyGroup Condition=" '$(Configuration)' == 'Debug'"> |
| | | <DefineConstants>$(DefineConstants);DEBUG;TRACE</DefineConstants> |
| | | <Optimize>false</Optimize> |
| | | <NullableReferenceTypes>true</NullableReferenceTypes> |
| | | <!-- report errors and warnings (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings) --> |
| | | <TreatWarningsAsErrors>false</TreatWarningsAsErrors> |
| | | <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors> |
| | | </PropertyGroup> |
| | | |
| | | <PropertyGroup Condition="'$(Configuration)' == 'Release'"> |
| | | <DefineConstants>$(DefineConstants);RELEASE</DefineConstants> |
| | | <Optimize>true</Optimize> |
| | | <!-- report errors and warnings (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings) --> |
| | | <TreatWarningsAsErrors>false</TreatWarningsAsErrors> |
| | | <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors> |
| | | </PropertyGroup> |
| | | |
| | | <!-- Import reference package --> |
| | | <Import Project="package.reference.props" /> |
| | | |
| | | <!-- Test Project coverlet collector --> |
| | | <PropertyGroup> |
| | | <IsTestProject Condition="$(MSBuildProjectFullPath.Contains('test')) and ($(MSBuildProjectName.EndsWith('.Tests')) or $(MSBuildProjectName.EndsWith('.TestBase')))">true</IsTestProject> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Condition="'$(IsTestProject)' == 'true'" Include="coverlet.collector" Version="3.1.0"> |
| | | <PrivateAssets>all</PrivateAssets> |
| | | <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> |
| | | </PackageReference> |
| | | </ItemGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <configuration> |
| | | <packageSources> |
| | | <clear /> |
| | | <add key="nexus" value="https://nexus.sycdev.com/repository/nuget-group/index.json" /> |
| | | <add key="nuget" value="https://api.nuget.org/v3/index.json" /> |
| | | </packageSources> |
| | | </configuration> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project> |
| | | <PropertyGroup> |
| | | <Company>SYC</Company> |
| | | <Copyright>Copyright © SYC. All rights reserved.</Copyright> |
| | | <NoWarn>$(NoWarn);CS1591</NoWarn> |
| | | <VersionMajor>1</VersionMajor> |
| | | <VersionMinor>0</VersionMinor> |
| | | <VersionPatch>0</VersionPatch> |
| | | <VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix> |
| | | <!--<VersionSuffix>-preview1</VersionSuffix>--> |
| | | <Version>$(VersionPrefix)$(VersionSuffix)</Version> |
| | | <AssemblyVersion>$(VersionMajor).0.0.0</AssemblyVersion> |
| | | <LangVersion>latest</LangVersion> |
| | | <GenerateDocumentationFile>true</GenerateDocumentationFile> |
| | | <!-- Include symbol files (*.pdb) in the built .nupkg --> |
| | | <AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project> |
| | | <PropertyGroup> |
| | | <LangVersion>latest</LangVersion> |
| | | <NoWarn>$(NoWarn);CS1591</NoWarn> |
| | | <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles> |
| | | <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> |
| | | <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> |
| | | <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project> |
| | | <ItemGroup> |
| | | <PackageReference Include="ConfigureAwait.Fody" Version="3.3.1" PrivateAssets="All" /> |
| | | <PackageReference Include="Fody" Version="6.6.1"> |
| | | <PrivateAssets>All</PrivateAssets> |
| | | <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> |
| | | </PackageReference> |
| | | </ItemGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @ECHO off |
| | | cls |
| | | |
| | | ECHO Deleting all BIN and OBJ folders... |
| | | ECHO. |
| | | |
| | | FOR /d /r . %%d in (bin,obj) DO ( |
| | | IF EXIST "%%d" ( |
| | | ECHO %%d | FIND /I "\node_modules\" > Nul && ( |
| | | ECHO.Skipping: %%d |
| | | ) || ( |
| | | ECHO.Deleting: %%d |
| | | rd /s/q "%%d" |
| | | ) |
| | | ) |
| | | ) |
| | | |
| | | ECHO. |
| | | ECHO.BIN and OBJ folders have been successfully deleted. Press any key to exit. |
| | | pause > nul |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # é¢å模å设计 |
| | | |
| | | ## ä¸ãæ¯è¯ä¸å®ä¹ |
| | | |
| | | | è±æç¼©å | è±æå
¨ç§° | ä¸æç¿»è¯ | |
| | | | -------- | -------- | -------- | |
| | | | | | | |
| | | |
| | | ## äºãä¸å¡æµç¨ |
| | | |
| | | 䏿¶å |
| | | |
| | | ## ä¸ãæ°æ®ç±»å |
| | | |
| | | æ°æ®ç±»åéç¨çæ¯C#çæ°æ®ç±»åï¼ä¸»è¦æä¸é¢çä¸äºç±»åï¼ |
| | | |
| | | | æ°æ®ç±»å | å«ä¹ | æå°å¼/æå¤§å¼/精度 | å ç¨ç©ºé´ | 说æ | |
| | | | -------------- | -------------- | ------------------------------------------------------------ | ------------- | -------------------------------- | |
| | | | bool | å¸å°å¼ | false/true | 1åè | | |
| | | | sbyte | è¶
çæ´å | -128127 | 1åè | | |
| | | | byte | æ 符å·è¶
çæ´å | 0255 | 1åè | | |
| | | | short | çæ´å | -32,76832,767 | 2åè | | |
| | | | ushort | æ 符å·çæ´å | 065,535 | 2åè | | |
| | | | int | æ´å | -2,147,483,6482,147,483,647 | 4åè | | |
| | | | uint | æ ç¬¦å·æ´å | 04,294,967,295 | 4åè | | |
| | | | long | é¿æ´å | -9,223,372,036,854,775,8089,223,372,036,854,775,807 | 8åè | | |
| | | | ulong | æ 符å·é¿æ´å | 0/18,446,744,073,709,551,615 | 8åè | | |
| | | | float | åç²¾åº¦æµ®ç¹æ° | -3.40282347E+38/F3.40282347E+38F/6~7ä½æææ°å | 4åè | | |
| | | | double | åç²¾åº¦æµ®ç¹æ° | -1.7976931348623157E+308/1.7976931348623157E+308/15~16ä½æææ°å | 8åè | | |
| | | | DateTime | æ¥ææ¶é´ | 0000-01-01 00:00:00.0000000/9999-12-31 23:59:59.9999999/100ns | 8åè | ç»ä¸ä½¿ç¨UTCæ¶é´è¿è¡ä¼ è¾ååå¨ã | |
| | | | TimeSpan | æ¶é´è·¨åº¦ | -10,675,199.02:48:05.4775808/10,675,199.02:48:05.4775807100ns | 8åè | | |
| | | | string | å符串 | | nåè | ç»ä¸ä½¿ç¨UTF8ç¼ç è¿è¡ä¼ è¾ååå¨ã | |
| | | | Complex | 夿° | | 16åè | | |
| | | | IList<T> | å表 | [0]~[n-1] | n * sizeof(T) | | |
| | | | ICollection<T> | éå | | n * sizeof(T) | ä¸IList类似ï¼åªæ¯æ²¡æé¡ºåºå
³ç³»ã | |
| | | |
| | | ## åãå®ä½ï¼Entityï¼åèåæ ¹ï¼AggregateRootï¼ |
| | | |
| | | å®ä½æ¯æ¨¡åä¸éè¦åºå个ä½çå¯¹è±¡ï¼æ¥ææ è¯ãæ°æ®åè¡ä¸ºãå®ä½ææ è¯ï¼å
许ååï¼å¤æä¸¤ä¸ªå®ä½ç¸ççæ åæ¯æ è¯ç¸çãèåï¼Aggregateï¼è¡¨ç¤ºä¸ç»é¢å对象ï¼å
æ¬å®ä½åå¼å¯¹è±¡ï¼ï¼ç¨æ¥è¡¨è¿°ä¸ä¸ªå®æ´çé¢åæ¦å¿µãèæ¯ä¸ªèå齿ä¸ä¸ªæ ¹å®ä½ï¼è¿ä¸ªæ ¹å®ä½åå«åèåæ ¹ãèåæ ¹æ¯èåæè¡¨è¿°çé¢åæ¦å¿µç主ä½ï¼å¤é¨å¯¹è±¡éè¦è®¿é®èåå
çå®ä½æ¶ï¼åªè½éè¿èåæ ¹è¿è¡è®¿é®ï¼èä¸è½ç´æ¥è®¿é®ã |
| | | |
| | | ## äºãæä¸¾ |
| | | |
| | | |
| | | ## å
ãå¼å¯¹è±¡ï¼ValueObjectï¼ |
| | | |
| | | å¼å¯¹è±¡æ¯éè¿å±æ§æ¥è¯å«ç对象ï¼å®å°å¤ä¸ªç¸å
³å±æ§ç»å为ä¸ä¸ªæ¦å¿µæ´ä½ãå¼å¯¹è±¡æ²¡ææ è¯ï¼ä¸å
许ååï¼å¤æä¸¤ä¸ªå¼å¯¹è±¡ç¸ççæ åæ¯å¼å¯¹è±¡å
鍿æå±æ§å¼ç¸çã |
| | | |
| | | |
| | | ## å
ãé¢åæå¡ |
| | | |
| | | 䏿¶å |
| | | |
| | | ## ä¸ãé¢åäºä»¶ |
| | | |
| | | 䏿¶å |
| | | |
| | | ## å
«ãå
¶ä» |
| | | |
| | | 䏿¶å |
| | | |
| | | ## ä¹ãåèå¼ç¨ |
| | | |
| | | 䏿¶å |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project> |
| | | <PropertyGroup> |
| | | <!-- All Microsoft packages --> |
| | | <MicrosoftPackageVersion>6.0.0</MicrosoftPackageVersion> |
| | | |
| | | <!-- All Abp packages --> |
| | | <ABPPackageVersion>6.0.0</ABPPackageVersion> |
| | | |
| | | <!-- All LMES packages --> |
| | | <LMESPackageVersion>2.3.*</LMESPackageVersion> |
| | | |
| | | <!-- Microsoft.NET.Test.Sdk https://www.nuget.org/packages/Microsoft.NET.Test.Sdk --> |
| | | <MicrosoftNETTestSdkPackageVersion>16.11.0</MicrosoftNETTestSdkPackageVersion> |
| | | |
| | | <!-- NSubstitute https://www.nuget.org/packages/NSubstitute --> |
| | | <NSubstitutePackageVersion>4.2.2</NSubstitutePackageVersion> |
| | | |
| | | <!-- Shouldly https://www.nuget.org/packages/Shouldly --> |
| | | <ShouldlyPackageVersion>4.0.3</ShouldlyPackageVersion> |
| | | |
| | | <!-- xunit https://www.nuget.org/packages/xUnit --> |
| | | <xUnitPackageVersion>2.4.1</xUnitPackageVersion> |
| | | |
| | | <!-- xunit.extensibility.execution https://www.nuget.org/packages/xunit.extensibility.execution --> |
| | | <xUnitExtensibilityExecutionPackageVersion>2.4.1</xUnitExtensibilityExecutionPackageVersion> |
| | | |
| | | <!-- xunit.runner.visualstudio https://www.nuget.org/packages/xunit.runner.visualstudio --> |
| | | <xUnitRunnerVisualstudioPackageVersion>2.4.3</xUnitRunnerVisualstudioPackageVersion> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # publishFolder |
| | | $publishFolder= $args[0] |
| | | |
| | | # Paths |
| | | $rootFolder = (Get-Item -Path "./" -Verbose).FullName |
| | | if ([String]::IsNullOrEmpty($publishFolder)) { |
| | | $publishFolder = Join-Path $rootFolder "output/publish" |
| | | $hasPath = Test-Path($publishFolder) |
| | | if (-Not $hasPath) { |
| | | new-item -path $rootFolder -name "output/publish" -type directory |
| | | } |
| | | } |
| | | Write-Host ("Publish Output " + $publishFolder) |
| | | |
| | | # List of projects |
| | | $projects = ( |
| | | "src/CMS.Plugin.HIAWms" |
| | | ) |
| | | |
| | | # Rebuild solution |
| | | Set-Location $rootFolder |
| | | dotnet restore -s https://nexus.sycdev.com/repository/nuget-hosted/ --runtime win-x64 |
| | | # dotnet restore --configfile NuGet.config --runtime win-x64 |
| | | Write-Host ("Restore Completed ! ") |
| | | # Publish all projects |
| | | foreach($project in $projects) { |
| | | $projectFolder = Join-Path $rootFolder $project |
| | | $projectName = $project.Substring($project.LastIndexOf("/") + 1) |
| | | Set-Location $projectFolder |
| | | Write-Host ("Publish " + $projectName) |
| | | # & dotnet publish ($projectName + ".csproj ") --configuration Release --output (Join-Path $publishFolder ("/" + $projectName.ToLower())) --nologo --verbosity quiet --no-restore |
| | | & dotnet publish ($projectName + ".csproj ") --configuration Release --output (Join-Path $publishFolder ("/" + $projectName.ToLower())) --nologo --verbosity quiet --no-restore --runtime win-x64 |
| | | } |
| | | |
| | | Write-Host ("Publish Completed ! ") |
| | | |
| | | # Go back to the root folder |
| | | Set-Location $rootFolder |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | <EnableDynamicLoading>true</EnableDynamicLoading> |
| | | <ProduceReferenceAssembly>false</ProduceReferenceAssembly> |
| | | <GenerateDocumentationFile>true</GenerateDocumentationFile> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="CMS.Plugin.FlowManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.BarcodeManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.FormulaManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.MaterialManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.ProductManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.ProductionManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.ProcessManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.ProductManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.QualityManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.OrderManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.TraceManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Abstractions; |
| | | |
| | | /// <summary> |
| | | /// æµç¨ä¸å¡æ©å±æ¨¡å |
| | | /// </summary> |
| | | public class CMSPluginHIAWmsAbstractionsModule |
| | | { |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | /// <summary> |
| | | /// æ©å±æ¹æ³ |
| | | /// </summary> |
| | | public static class CMSPluginHIAWmsExtensions |
| | | { |
| | | /// <summary> |
| | | /// Tries the add setting management. |
| | | /// </summary> |
| | | /// <param name="services">The services.</param> |
| | | /// <param name="configureOptions">The configure options.</param> |
| | | /// <returns></returns> |
| | | public static IServiceCollection TryAddHIAWms(this IServiceCollection services, Action<CMSPluginHIAWmsOptions>? configureOptions = null) |
| | | { |
| | | if (configureOptions == null) |
| | | { |
| | | services.AddOptions().Configure<CMSPluginHIAWmsOptions>(options => {}); |
| | | } |
| | | else |
| | | { |
| | | services.AddOptions().PostConfigure(configureOptions); |
| | | } |
| | | |
| | | return services; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | /// <summary> |
| | | /// åè½å®ä¹. |
| | | /// </summary> |
| | | public class CMSPluginHIAWmsFeatures |
| | | { |
| | | /// <summary> |
| | | /// The prefix |
| | | /// </summary> |
| | | private const string Prefix = "LMES"; |
| | | |
| | | /// <summary> |
| | | /// GroupName |
| | | /// </summary> |
| | | public const string GroupName = Prefix + ".HIAWms"; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å¼å¯ |
| | | /// </summary> |
| | | public const string Enable = GroupName + ".Enable"; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.MesSuite.Abstractions.Models; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | public class CMSPluginHIAWmsOptions |
| | | { |
| | | public CMSPluginHIAWmsOptions() |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å±æ§ |
| | | /// </summary> |
| | | public List<ExtraProperty> ExtraProperties { get; set; } = new(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | /// <summary> |
| | | /// CMSSettingNames |
| | | /// </summary> |
| | | public static class CMSPluginHIAWmsSettings |
| | | { |
| | | /// <summary> |
| | | /// The prefix |
| | | /// </summary> |
| | | private const string Prefix = "SCMS"; |
| | | |
| | | /// <summary> |
| | | /// The application settings prefix |
| | | /// </summary> |
| | | private const string AppSettingsPrefix = Prefix + ".AppSettings"; |
| | | |
| | | /// <summary> |
| | | /// ç»ä»¶ç¶æï¼0=å
³é,1=å¼å¯ |
| | | /// </summary> |
| | | public const string PluginState = AppSettingsPrefix + ".HIAWms.PluginState"; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.ComponentModel; |
| | | using System.Runtime.Serialization; |
| | | using CMS.Plugin.FlowManagement.Abstractions.Enums; |
| | | using CMS.Plugin.FlowManagement.Abstractions.FlowBusiness.Activitys; |
| | | using CMS.Plugin.MesSuite.Abstractions.Models; |
| | | using CMS.Plugin.OrderManagement.Abstractions.Models; |
| | | using CMS.Plugin.ProcessManagement.Abstractions.Models; |
| | | using CMS.Plugin.TraceManagement.Abstractions.Models.Traces; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Microsoft.Extensions.Logging; |
| | | using SYC.Flow.Kernel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | /// <summary> |
| | | /// HIAWms ä¸å¡æ¥éª¤ |
| | | /// </summary> |
| | | [Design("HIAWms", "HIAWms ä¸å¡æ¥éª¤", Sort = 99), Category("å®å¶æ¥éª¤")] |
| | | [Serializable] |
| | | public class HIAWmsActivity : BusinessActivity |
| | | { |
| | | /// <summary> |
| | | /// é
ç½®å±æ§1 |
| | | /// </summary> |
| | | [Design("é
ç½®å±æ§1", "é
ç½®å±æ§1", Sort = 1), Category("é
置信æ¯")] |
| | | [DataMember] |
| | | public string MyProperty1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é
ç½®å±æ§2 |
| | | /// </summary> |
| | | [Design("é
ç½®å±æ§2", "é
ç½®å±æ§2", Sort = 2), Category("é
置信æ¯")] |
| | | [DataMember] |
| | | public int MyProperty2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æµç¨ä¸ä¸ææ è¯éå |
| | | /// </summary> |
| | | public override List<FlowItemKey> FlowItemKeys => GetFlowItemKeys(); |
| | | |
| | | /// <summary> |
| | | /// å·¥èºæµç¨å¤ç |
| | | /// </summary> |
| | | public override async Task ProcessAsync(ProcessflowEventArgs args) |
| | | { |
| | | // å·¥èºæ¨¡å |
| | | var processModel = Flow.DataItems.ApplicationData as ProcessModel; |
| | | |
| | | // 工忍¡å |
| | | var orderModel = Flow.DataItems[FlowItemCollection.OrderModel] as OrderModel; |
| | | |
| | | // äº§åæ¨¡å |
| | | var productModel = Flow.DataItems[FlowItemCollection.ProductModel] as AssociationProductModel; |
| | | |
| | | // 追溯模å |
| | | var traceModel = Flow.DataItems[FlowItemCollection.TraceModel] as TraceModel; |
| | | |
| | | Flow.Logger.LogInformation($"æ§è¡æµç¨ï¼å®ä¾={Flow.Instance.ProcID} -> {Flow.Name} -> {Name} HIAWmsActivity"); |
| | | |
| | | // ä¸å¡å¤ç |
| | | // ç±äºServiceProvideræ¥æºäºFlowç»ä»¶ï¼æ¤å¤éå
±äº«CMS.Plugin.HIAWms.Abstractionsç¨åºéï¼å¦åæ æ³è°ç¨ï¼ä¿®æ¹CMS.Plugin.HIAWms项ç®ä¸çCMSPluginModule.csæä»¶ï¼åæ¶æ³¨éGetSharedAssemblies()æ¹æ³ |
| | | var hiawmsFlowService = Flow.ServiceProvider.GetService<IHIAWmsFlowService>(); |
| | | if (hiawmsFlowService != null) |
| | | { |
| | | await hiawmsFlowService.ProcessAsync(args); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Gets the flow item keys. |
| | | /// </summary> |
| | | protected virtual List<FlowItemKey> GetFlowItemKeys() |
| | | { |
| | | var result = new List<FlowItemKey>(); |
| | | return result; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using SYC.Flow.Kernel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | /// <summary> |
| | | /// HIAWms æµç¨æå¡ |
| | | /// </summary> |
| | | public interface IHIAWmsFlowService |
| | | { |
| | | /// <summary> |
| | | /// å·¥èºæµç¨å¤ç |
| | | /// </summary> |
| | | Task ProcessAsync(ProcessflowEventArgs args); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using SYC.Flow.Kernel; |
| | | |
| | | [assembly: ProcessflowExtention(true)] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | <GenerateDocumentationFile>True</GenerateDocumentationFile> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.Authorization.Abstractions" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="MiniExcel" Version="1.31.3" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Domain.Shared\CMS.Plugin.SycWmsDemo.Domain.Shared.csproj" /> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Domain\CMS.Plugin.SycWmsDemo.Domain.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Reference Include="CmsQueryExtensions"> |
| | | <HintPath>..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using Volo.Abp.Application; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts; |
| | | |
| | | /// <summary> |
| | | /// æä»¶åºç¨æå¡å¥çº¦æ¨¡å |
| | | /// </summary> |
| | | [DependsOn( |
| | | typeof(CMSPluginDomainSharedModule), |
| | | typeof(AbpDddApplicationContractsModule) |
| | | )] |
| | | public class CMSPluginApplicationContractsModule : AbpModule |
| | | { |
| | | /// <inheritdoc /> |
| | | public override void PreConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | CMSPluginDtoExtensions.Configure(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Threading; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts; |
| | | |
| | | /// <summary> |
| | | /// Dtoæ©å± |
| | | /// </summary> |
| | | public static class CMSPluginDtoExtensions |
| | | { |
| | | private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); |
| | | |
| | | /// <summary> |
| | | /// Configures this instance. |
| | | /// </summary> |
| | | public static void Configure() |
| | | { |
| | | OneTimeRunner.Run(() => |
| | | { |
| | | /* You can add extension properties to DTOs |
| | | * defined in the depended modules. |
| | | * |
| | | * Example: |
| | | * |
| | | * ObjectExtensionManager.Instance |
| | | * .AddOrUpdateProperty<IdentityRoleDto, string>("Title"); |
| | | * |
| | | * See the documentation for more: |
| | | * https://docs.abp.io/en/abp/latest/Object-Extensions |
| | | */ |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.BindInstockDto |
| | | { |
| | | /// <summary> |
| | | /// ç»çåæ° |
| | | /// </summary> |
| | | public class BindInstockInput : BindMaterialInput |
| | | { |
| | | /// <summary> |
| | | /// åºä½å· |
| | | /// </summary> |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçå· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç»çåæ° |
| | | /// </summary> |
| | | public class BindMaterialInput |
| | | { |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¹æ¬¡å· |
| | | /// </summary> |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç»å®æ°é |
| | | /// </summary> |
| | | public int StockNumber { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto |
| | | { |
| | | /// <summary> |
| | | /// 嫿è¿å |
| | | /// </summary> |
| | | public class CallMaterialOutput : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | public string MaterialNo { get; set; } |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public virtual string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼å· |
| | | /// </summary> |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºæ¶é´ |
| | | /// </summary> |
| | | public DateTime? InStockTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥æºåæ®å· |
| | | /// </summary> |
| | | public string? SourceOrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// PLCä»»å¡å· |
| | | /// </summary> |
| | | public int PlcTaskId { get; set; } |
| | | public string ConcurrencyStamp |
| | | { |
| | | get |
| | | ; |
| | | set; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto |
| | | { |
| | | /// <summary> |
| | | /// LMES嫿忰 |
| | | /// </summary> |
| | | public class LMesCallMaterialInput |
| | | { |
| | | /// <summary> |
| | | /// 嫿æ°é |
| | | /// </summary> |
| | | public int Quantity { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åææ è¯ |
| | | /// </summary> |
| | | public string DataIdentifier { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæåå· |
| | | /// </summary> |
| | | public string? MaterialMode { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ£ååºå |
| | | /// </summary> |
| | | public class ReduceInput: LMesCallMaterialInput |
| | | { |
| | | /// <summary> |
| | | /// åºä½å· |
| | | /// </summary> |
| | | public string PlaceNo { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto |
| | | { |
| | | /// <summary> |
| | | /// æºåè¾åº |
| | | /// </summary> |
| | | public class MaterialModelOutput |
| | | { |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºåæè¿° |
| | | /// </summary> |
| | | public string MaterialModelDesc { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºä½å表è¾åº |
| | | /// </summary> |
| | | public class PlaceListOutput |
| | | { |
| | | /// <summary> |
| | | /// åºä½å· |
| | | /// </summary> |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å· |
| | | /// </summary> |
| | | public string PlaceNoDesc { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto |
| | | { |
| | | /// <summary> |
| | | /// ç©æç±»åéæ©ç±» |
| | | /// </summary> |
| | | public class MaterialTypeOutput |
| | | { |
| | | /// <summary> |
| | | /// ç±»åæè¿° |
| | | /// </summary> |
| | | public string MaterialTypeDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»åç¼ç |
| | | /// </summary> |
| | | public string MaterialTypeCode { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto |
| | | { |
| | | /// <summary> |
| | | /// åºåè½¬ç§»åæ° |
| | | /// </summary> |
| | | public class MoveStockInput |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | /// <summary> |
| | | /// åæ®å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string? ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåæ°é |
| | | /// </summary> |
| | | public int StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå/è§æ ¼ |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½ |
| | | /// </summary> |
| | | public string SourcePlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½ |
| | | /// </summary> |
| | | public string ToPlace { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto |
| | | { |
| | | /// <summary> |
| | | /// æ£ååºåå
¥åº |
| | | /// </summary> |
| | | public class ReduceStockInput |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | /// <summary> |
| | | /// åæ®å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string? ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåæ°é |
| | | /// </summary> |
| | | public int StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå/è§æ ¼ |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼å· |
| | | /// </summary> |
| | | public string? PlaceNo { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto |
| | | { |
| | | /// <summary> |
| | | /// 嫿忰 |
| | | /// </summary> |
| | | public class CallMaterialInput |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç±»å |
| | | /// </summary> |
| | | public OrderTypeEnum OrderType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®å· |
| | | /// </summary> |
| | | public string OrderNo { get;set; } |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼å· |
| | | /// </summary> |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 嫿æ°é |
| | | /// </summary> |
| | | public int MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åææ è¯ |
| | | /// </summary> |
| | | public string DataIdentifier { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 忽ç¥åºåºåå· |
| | | /// </summary> |
| | | public bool IgnoreOrder { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¼å
级 |
| | | /// </summary> |
| | | public int Priority { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaæ¥è¯¢åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class GetWmsAreaInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum AreaNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum AreaName_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public string AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum AreaDesc_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public int? AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum AreaStatus_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åºåºç±»å |
| | | /// </summary> |
| | | public int? AreaType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç±»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum AreaType_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField1_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField2_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField3_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum StoreCode_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum StoreName_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string DeletionTime { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaåå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsAreaCreateDto : WmsAreaCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaåå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsAreaCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public string? AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public AreaStatusEnum AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç±»å |
| | | /// </summary> |
| | | public AreaTypeEnum AreaType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsAreaCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// åºåºå表 |
| | | /// </summary> |
| | | public class AreaForListOuptut |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaæ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsAreaDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public string? AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public AreaStatusEnum AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public string AreaStatusDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(AreaStatus); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºç±»å |
| | | /// </summary> |
| | | public AreaTypeEnum AreaType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public string AreaTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(AreaType); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaæ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsAreaUpdateDto : WmsAreaCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using MiniExcelLibs.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea |
| | | { |
| | | /// <summary> |
| | | /// WmsAreaså¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsAreasExportModel |
| | | { |
| | | /// <summary> |
| | | /// WmsAreaå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åºåºç¼å· |
| | | /// </summary> |
| | | /// <example>WH-AREA-001</example> |
| | | [ExcelColumn(Name = "åºåºç¼å·", Width = 20)] |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åºåºåç§° |
| | | /// </summary> |
| | | /// <example>åææAåº</example> |
| | | [ExcelColumn(Name = "åºåºåç§°", Width = 25)] |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åºåºæè¿°ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <example>åæ¾çµåå
å¨ä»¶</example> |
| | | [ExcelColumn(Name = "æè¿°", Width = 30)] |
| | | public string AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åºåºç¶æ |
| | | /// </summary> |
| | | /// <example>Normal</example> |
| | | [ExcelColumn(Name = "åºåºç¶æ", Width = 15)] |
| | | public AreaStatusEnum AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åºåºç±»å |
| | | /// </summary> |
| | | /// <example>Storage</example> |
| | | [ExcelColumn(Name = "åºåºç±»å", Width = 15)] |
| | | public AreaTypeEnum AreaType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary |
| | | [ExcelColumn(Name = "ä»åºä»£ç ", Width = 15)] |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä»åºåç§°", Width = 15)] |
| | | public string? StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段1 |
| | | /// </summary> |
| | | /// <example>èªå®ä¹ç¨é</example> |
| | | [ExcelColumn(Name = "æ©å±å段1", Width = 20)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段2 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段2", Width = 20)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段3 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段3", Width = 20)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public virtual string Remark { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea.WmsAreasExportModel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea |
| | | { |
| | | /// <summary> |
| | | /// WmsAreas导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsAreasImportModel |
| | | { |
| | | private List<WmsAreaImportModel> _wmsareas = new(); |
| | | |
| | | public List<WmsAreaImportModel> WmsAreas |
| | | { |
| | | get => _wmsareas; |
| | | set |
| | | { |
| | | _wmsareas = value; |
| | | var rowIndex = 2; |
| | | _wmsareas?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsArea导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsAreaImportModel : WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer; |
| | | |
| | | /// <summary> |
| | | /// æçç®¡çæ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsContainerInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | public ContainerTypeEnum? ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerType_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | public ContainerStatusEnum? ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerStatus_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | public decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum SpecLength_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | public decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum SpecWidth_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | public decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum SpecHeight_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | public decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LimitLength_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | public decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LimitWidth_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | public decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé«-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LimitHeight_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | public decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaxWeight_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸æ°é |
| | | /// </summary> |
| | | public int? ExceptionNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸æ°é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ExceptionNumber_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©ææ°é |
| | | /// </summary> |
| | | public int? MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ°é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialNumber_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField1_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField2_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField3_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineråå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsContainerCreateDto : WmsContainerCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineråå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsContainerCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | public decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | public decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | public decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | public decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | public decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | public decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | public decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸æ°é |
| | | /// </summary> |
| | | public int? ExceptionNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | ///ç©ææ°é |
| | | /// </summary> |
| | | public int? MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsContainerCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineræ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsContainerDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | public string ContainerTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(ContainerType); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | public string ContainerStatusDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(ContainerStatus); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | public decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | public decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | public decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | public decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | public decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | public decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | public decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸æ°é |
| | | /// </summary> |
| | | public int? ExceptionNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | ///ç©ææ°é |
| | | /// </summary> |
| | | public int? MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineræ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsContainerUpdateDto : WmsContainerCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using MiniExcelLibs.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer |
| | | { |
| | | /// <summary> |
| | | /// WmsContainerså¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsContainersExportModel |
| | | { |
| | | /// <summary> |
| | | /// WmsContainerå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æçç¼å·", Width = 25)] |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æçç±»å", Width = 25)] |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æçç¶æ", Width = 25)] |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "é¿åº¦", Width = 25)] |
| | | public decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "宽度", Width = 25)] |
| | | public decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "é«åº¦", Width = 25)] |
| | | public decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "éé¿", Width = 25)] |
| | | public decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "é宽", Width = 25)] |
| | | public decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | [ExcelColumn(Name = "éé«", Width = 25)] |
| | | public decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "è½½éä¸é", Width = 25)] |
| | | public decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸æ°é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å¼å¸¸æ°é", Width = 25)] |
| | | public int? ExceptionNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ°é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©ææ°é", Width = 25)] |
| | | public int? MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段1", Width = 25)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段2", Width = 25)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段3", Width = 25)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public virtual string Remark { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer.WmsContainersExportModel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer |
| | | { |
| | | /// <summary> |
| | | /// WmsContainers导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsContainersImportModel |
| | | { |
| | | private List<WmsContainerImportModel> _wmscontainers = new(); |
| | | |
| | | public List<WmsContainerImportModel> WmsContainers |
| | | { |
| | | get => _wmscontainers; |
| | | set |
| | | { |
| | | _wmscontainers = value; |
| | | var rowIndex = 2; |
| | | _wmscontainers?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsContainer导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsContainerImportModel : WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; |
| | | |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsContainerPlaceInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼ç |
| | | /// </summary> |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼ç -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PlaceNo_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç¼ç |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¼ç -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerNo_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> BindTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å建人ID |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人ID-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹æ¶é´ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äººID |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äººID-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å é¤ |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å é¤-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å é¤äººID |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å é¤äººID-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å 餿¶é´ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> DeletionTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å建人 |
| | | /// </summary> |
| | | public string CreatorName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorName_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤æ³¨ |
| | | /// </summary> |
| | | public string DeleteRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤æ³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleteRemark_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段1 |
| | | /// </summary> |
| | | public string ExtraField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段1-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ExtraField1_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段2 |
| | | /// </summary> |
| | | public string ExtraField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段2-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ExtraField2_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段3 |
| | | /// </summary> |
| | | public string ExtraField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段3-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ExtraField3_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äºº |
| | | /// </summary> |
| | | public string LastModifierName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äºº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierName_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æä½å¤æ³¨ |
| | | /// </summary> |
| | | public string OperationRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½å¤æ³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum OperationRemark_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; |
| | | |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»åå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsContainerPlaceCreateDto : WmsContainerPlaceCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; |
| | | |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»åå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsContainerPlaceCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// åºä½ç¼ç |
| | | /// </summary> |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¼ç |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public DateTime BindTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人ID |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äººID |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人 |
| | | /// </summary> |
| | | public string? CreatorName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤æ³¨ |
| | | /// </summary> |
| | | public string? DeleteRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段1 |
| | | /// </summary> |
| | | public string? ExtraField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段2 |
| | | /// </summary> |
| | | public string? ExtraField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段3 |
| | | /// </summary> |
| | | public string? ExtraField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äºº |
| | | /// </summary> |
| | | public string? LastModifierName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½å¤æ³¨ |
| | | /// </summary> |
| | | public string? OperationRemark { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerPlaceCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsContainerPlaceCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; |
| | | |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»æ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsContainerPlaceDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// åºä½ç¼ç |
| | | /// </summary> |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¼ç |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public DateTime BindTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å±æ§ |
| | | /// </summary> |
| | | public ExtraPropertyDictionary? ExtraProperties { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string? ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人ID |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹æ¶é´ |
| | | /// </summary> |
| | | public DateTime? LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äººID |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å é¤ |
| | | /// </summary> |
| | | public bool IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å é¤äººID |
| | | /// </summary> |
| | | public string? DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å 餿¶é´ |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人 |
| | | /// </summary> |
| | | public string? CreatorName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤æ³¨ |
| | | /// </summary> |
| | | public string? DeleteRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段1 |
| | | /// </summary> |
| | | public string? ExtraField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段2 |
| | | /// </summary> |
| | | public string? ExtraField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段3 |
| | | /// </summary> |
| | | public string? ExtraField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äºº |
| | | /// </summary> |
| | | public string? LastModifierName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½å¤æ³¨ |
| | | /// </summary> |
| | | public string? OperationRemark { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; |
| | | |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»å¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsContainerPlaceExportModel |
| | | { |
| | | /// <summary> |
| | | /// åºä½ç¼ç |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºä½ç¼ç ", Width = 25)] |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¼ç |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç¼ç ", Width = 25)] |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æåº", Width = 25)] |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åç§°", Width = 25)] |
| | | public DateTime BindTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦ç¦ç¨", Width = 25)] |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å建人", Width = 25)] |
| | | public string CreatorName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤æ³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å é¤å¤æ³¨", Width = 25)] |
| | | public string DeleteRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段1 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段1", Width = 25)] |
| | | public string ExtraField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段2 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段2", Width = 25)] |
| | | public string ExtraField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å段3 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段3", Width = 25)] |
| | | public string ExtraField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äºº |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä¿®æ¹äºº", Width = 25)] |
| | | public string LastModifierName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½å¤æ³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æä½å¤æ³¨", Width = 25)] |
| | | public string OperationRemark { get; set; } |
| | | |
| | | |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; |
| | | |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»æ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsContainerPlaceUpdateDto : WmsContainerPlaceCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace |
| | | { |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsContainerPlacesImportModel |
| | | { |
| | | private List<WmsContainerPlaceImportModel> _WmsContainerPlaces = new(); |
| | | |
| | | public List<WmsContainerPlaceImportModel> WmsContainerPlaces |
| | | { |
| | | get => _WmsContainerPlaces; |
| | | set |
| | | { |
| | | _WmsContainerPlaces = value; |
| | | var rowIndex = 2; |
| | | _WmsContainerPlaces?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsContainerPlaceImportModel : WmsContainerPlaceExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾è¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsEnumInput |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾ç±»ååç§° |
| | | /// </summary> |
| | | /// <example>AccountTypeEnum</example> |
| | | public string EnumName { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsInOutStockOrderInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum OrderNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¶æ |
| | | /// </summary> |
| | | public OrderStatusEnum? OrderStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¶æ-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum OrderStatus_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialName_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialModel_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¹æ¬¡å· |
| | | /// </summary> |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¹æ¬¡å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialBatch_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»å |
| | | /// </summary> |
| | | public OrderTypeEnum? OrderType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum OrderType_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public StockTypeEnum? StockType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»åï¼æä¸¾å¼ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum StockType_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæ®æ°é |
| | | /// </summary> |
| | | public int? MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®æ°é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialNumber_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä¸åæ°é |
| | | /// </summary> |
| | | public int? DistributeNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸åæ°é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DistributeNumber_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 宿æ°é |
| | | /// </summary> |
| | | public int? CompleteNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宿æ°é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CompleteNumber_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä¼å
级 |
| | | /// </summary> |
| | | public int? Priority { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¼å
级-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Priority_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å
³è计åç¼å· |
| | | /// </summary> |
| | | public string PlanNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
³è计åç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PlanNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æä½æ¶é´ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string OperateTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string DeletionTime { get; set; } |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®åå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsInOutStockOrderCreateDto : WmsInOutStockOrderCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®åå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsInOutStockOrderCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¶æ |
| | | /// </summary> |
| | | public OrderStatusEnum OrderStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string? MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¹æ¬¡å· |
| | | /// </summary> |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»å |
| | | /// </summary> |
| | | public OrderTypeEnum OrderType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public StockTypeEnum StockType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®æ°é |
| | | /// </summary> |
| | | public int MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸åæ°é |
| | | /// </summary> |
| | | public int DistributeNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宿æ°é |
| | | /// </summary> |
| | | public int CompleteNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¼å
级 |
| | | /// </summary> |
| | | public int Priority { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
³è计åç¼å· |
| | | /// </summary> |
| | | public string? PlanNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½æ¶é´ |
| | | /// </summary> |
| | | public DateTime? OperateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsInOutStockOrderCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsInOutStockOrderCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®æ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsInOutStockOrderDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¶æ |
| | | /// </summary> |
| | | public OrderStatusEnum OrderStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¶æ |
| | | /// </summary> |
| | | public string OrderStatusDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(OrderStatus); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string? MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¹æ¬¡å· |
| | | /// </summary> |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»å |
| | | /// </summary> |
| | | public OrderTypeEnum OrderType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»å |
| | | /// </summary> |
| | | public string OrderTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(OrderType); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// æä½ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public StockTypeEnum StockType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public string StockTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(StockType); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// åæ®æ°é |
| | | /// </summary> |
| | | public int MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸åæ°é |
| | | /// </summary> |
| | | public int DistributeNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宿æ°é |
| | | /// </summary> |
| | | public int CompleteNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¼å
级 |
| | | /// </summary> |
| | | public int Priority { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
³è计åç¼å· |
| | | /// </summary> |
| | | public string? PlanNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½æ¶é´ |
| | | /// </summary> |
| | | public DateTime? OperateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public ExtraPropertyDictionary? ExtraProperties { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®å¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsInOutStockOrderExportModel |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åæ®ç¼å·", Width = 25)] |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¶æ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åæ®ç¶æ", Width = 25)] |
| | | public OrderStatusEnum OrderStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æåç§°", Width = 25)] |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æä»¶å·", Width = 25)] |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åå·", Width = 25)] |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¹æ¬¡å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¹æ¬¡å·", Width = 25)] |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åæ®ç±»å", Width = 25)] |
| | | public OrderTypeEnum OrderType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æä½ç±»åï¼æä¸¾å¼ï¼", Width = 25)] |
| | | public StockTypeEnum StockType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®æ°é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åæ®æ°é", Width = 25)] |
| | | public int MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸åæ°é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä¸åæ°é", Width = 25)] |
| | | public int DistributeNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宿æ°é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "宿æ°é", Width = 25)] |
| | | public int CompleteNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¼å
级 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä¼å
级", Width = 25)] |
| | | public int Priority { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
³è计åç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å
³è计åç¼å·", Width = 25)] |
| | | public string PlanNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½æ¶é´ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æä½æ¶é´", Width = 25)] |
| | | public DateTime OperateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æåº", Width = 25)] |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦ç¦ç¨", Width = 25)] |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®æ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsInOutStockOrderUpdateDto : WmsInOutStockOrderCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder |
| | | { |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsInOutStockOrdersImportModel |
| | | { |
| | | private List<WmsInOutStockOrderImportModel> _WmsInOutStockOrders = new(); |
| | | |
| | | public List<WmsInOutStockOrderImportModel> WmsInOutStockOrders |
| | | { |
| | | get => _WmsInOutStockOrders; |
| | | set |
| | | { |
| | | _WmsInOutStockOrders = value; |
| | | var rowIndex = 2; |
| | | _WmsInOutStockOrders?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsInOutStockOrderImportModel : WmsInOutStockOrderExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsInOutStockOrderDetailInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum OrderNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æå¯ä¸ç |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå¯ä¸ç -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public OrderTypeEnum? OrderType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»åï¼æä¸¾å¼ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum OrderType_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialName_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialModel_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialBatch_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string DeletionTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
åå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsInOutStockOrderDetailCreateDto : WmsInOutStockOrderDetailCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
åå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsInOutStockOrderDetailCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå¯ä¸ç |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public OrderTypeEnum OrderType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string? MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string? ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsInOutStockOrderDetailCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
æ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsInOutStockOrderDetailDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå¯ä¸ç |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public OrderTypeEnum OrderType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public string OrderTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(OrderType); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string? MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string? ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public ExtraPropertyDictionary? ExtraProperties { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
å¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsInOutStockOrderDetailExportModel |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åæ®ç¼å·", Width = 25)] |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå¯ä¸ç |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æå¯ä¸ç ", Width = 25)] |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åæ®ç±»åï¼æä¸¾å¼ï¼", Width = 25)] |
| | | public OrderTypeEnum OrderType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æä»¶å·", Width = 25)] |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æåç§°", Width = 25)] |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "容å¨ç¼å·", Width = 25)] |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æºå", Width = 25)] |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©ææ¹æ¬¡", Width = 25)] |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦ç¦ç¨", Width = 25)] |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æåº", Width = 25)] |
| | | public int Sort { get; set; } |
| | | |
| | | |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
æ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsInOutStockOrderDetailUpdateDto : WmsInOutStockOrderDetailCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail |
| | | { |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsInOutStockOrderDetailsImportModel |
| | | { |
| | | private List<WmsInOutStockOrderDetailImportModel> _WmsInOutStockOrderDetails = new(); |
| | | |
| | | public List<WmsInOutStockOrderDetailImportModel> WmsInOutStockOrderDetails |
| | | { |
| | | get => _WmsInOutStockOrderDetails; |
| | | set |
| | | { |
| | | _WmsInOutStockOrderDetails = value; |
| | | var rowIndex = 2; |
| | | _WmsInOutStockOrderDetails?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsInOutStockOrderDetailImportModel : WmsInOutStockOrderDetailExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsInOutStockRecordInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum OrderNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialName_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»å |
| | | /// </summary> |
| | | public StockTypeEnum? StockType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum StockType_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialBatch_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialModel_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æä½æ¶é´ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string OperateTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum TaskNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½ |
| | | /// </summary> |
| | | public string SourcePlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum SourcePlace_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½ |
| | | /// </summary> |
| | | public string ToPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ToPlace_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½åå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsInOutStockRecordCreateDto : WmsInOutStockRecordCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½åå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsInOutStockRecordCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string? MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»å |
| | | /// </summary> |
| | | public StockTypeEnum StockType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string? ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½æ¶é´ |
| | | /// </summary> |
| | | public DateTime? OperateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½ |
| | | /// </summary> |
| | | public string? SourcePlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½ |
| | | /// </summary> |
| | | public string? ToPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsInOutStockRecordCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsInOutStockRecordCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½æ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsInOutStockRecordDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string? MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»å |
| | | /// </summary> |
| | | public StockTypeEnum StockType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»å |
| | | /// </summary> |
| | | public string StockTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(StockType); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string? ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½æ¶é´ |
| | | /// </summary> |
| | | public DateTime? OperateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½ |
| | | /// </summary> |
| | | public string? SourcePlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½ |
| | | /// </summary> |
| | | public string? ToPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public ExtraPropertyDictionary? ExtraProperties { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½å¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsInOutStockRecordExportModel |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åæ®ç¼å·", Width = 25)] |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æåç§°", Width = 25)] |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä»¶å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æä»¶å·", Width = 25)] |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½ç±»å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æä½ç±»å", Width = 25)] |
| | | public StockTypeEnum StockType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "容å¨ç¼å·", Width = 25)] |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æºå", Width = 25)] |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æä½æ¶é´ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æä½æ¶é´", Width = 25)] |
| | | public DateTime OperateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æID", Width = 25)] |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä»»å¡å·", Width = 25)] |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "èµ·å§åºä½", Width = 25)] |
| | | public string SourcePlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç®æ åºä½", Width = 25)] |
| | | public string ToPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æåº", Width = 25)] |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦ç¦ç¨", Width = 25)] |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½æ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsInOutStockRecordUpdateDto : WmsInOutStockRecordCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord |
| | | { |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsInOutStockRecordsImportModel |
| | | { |
| | | private List<WmsInOutStockRecordImportModel> _WmsInOutStockRecords = new(); |
| | | |
| | | public List<WmsInOutStockRecordImportModel> WmsInOutStockRecords |
| | | { |
| | | get => _WmsInOutStockRecords; |
| | | set |
| | | { |
| | | _WmsInOutStockRecords = value; |
| | | var rowIndex = 2; |
| | | _WmsInOutStockRecords?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsInOutStockRecordImportModel : WmsInOutStockRecordExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsMaterialInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | public string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialCode_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialNo_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialName_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public PurchaseTypeEnum? PurchaseType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PurchaseType_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public string? MaterialTypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialType_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public string? MaterialTypeDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialTypeDesc_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 主åä½ï¼å¦ï¼kgãmãä¸ªï¼ |
| | | /// </summary> |
| | | public string PrimaryUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 主åä½ï¼å¦ï¼kgãmã个ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PrimaryUnit_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ |
| | | /// </summary> |
| | | public string Standard { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Standard_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal? OuterDiameter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼mmï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum OuterDiameter_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal? WallThickness { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼mmï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum WallThickness_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼ |
| | | /// </summary> |
| | | public string MaterialQuality { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialQuality_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼mï¼ |
| | | /// </summary> |
| | | public decimal? Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼mï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Length_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡ |
| | | /// </summary> |
| | | public YesNoEnum? IsMainBranch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsMainBranch_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç产工å |
| | | /// </summary> |
| | | public string Factory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç产工å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Factory_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// è¯ä¹¦ç¼å· |
| | | /// </summary> |
| | | public string Certification { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¯ä¹¦ç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Certification_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField1_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField2_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField3_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string DeletionTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialModel_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯åå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialCreateDto : WmsMaterialCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | |
| | | /// <summary> |
| | | /// å建人 |
| | | /// </summary> |
| | | public string CreatorName { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯åå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsMaterialCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | public string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public PurchaseTypeEnum PurchaseType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public string MaterialTypeCode { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public string MaterialTypeDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 主åä½ï¼å¦ï¼kgãmãä¸ªï¼ |
| | | /// </summary> |
| | | public string? PrimaryUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ |
| | | /// </summary> |
| | | public string? Standard { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal OuterDiameter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal WallThickness { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼ |
| | | /// </summary> |
| | | public string? MaterialQuality { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼mï¼ |
| | | /// </summary> |
| | | public decimal Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡ |
| | | /// </summary> |
| | | public YesNoEnum IsMainBranch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç产工å |
| | | /// </summary> |
| | | public string? Factory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¯ä¹¦ç¼å· |
| | | /// </summary> |
| | | public string? Certification { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsMaterialCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯æ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | public string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public PurchaseTypeEnum PurchaseType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public string PurchaseTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(PurchaseType); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// ç©æç±»åç¼ç |
| | | /// </summary> |
| | | public string MaterialTypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åæè¿° |
| | | /// </summary> |
| | | public string MaterialTypeDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 主åä½ï¼å¦ï¼kgãmãä¸ªï¼ |
| | | /// </summary> |
| | | public string? PrimaryUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ |
| | | /// </summary> |
| | | public string? Standard { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal OuterDiameter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal WallThickness { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼ |
| | | /// </summary> |
| | | public string? MaterialQuality { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼mï¼ |
| | | /// </summary> |
| | | public decimal Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡ |
| | | /// </summary> |
| | | public YesNoEnum IsMainBranch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡ |
| | | /// </summary> |
| | | public string IsMainBranchDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(IsMainBranch); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// ç产工å |
| | | /// </summary> |
| | | public string? Factory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¯ä¹¦ç¼å· |
| | | /// </summary> |
| | | public string? Certification { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public ExtraPropertyDictionary? ExtraProperties { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯å¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialExportModel |
| | | { |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | //[ExcelColumn(Name = "ç©æç¼ç ï¼å¯ä¸æ è¯ï¼", Width = 25)] |
| | | //public string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æç¼ç ", Width = 25)] |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æåç§°", Width = 25)] |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "éè´ç±»å", Width = 25)] |
| | | public PurchaseTypeEnum PurchaseType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æç±»åç¼ç ", Width = 25)] |
| | | public string MaterialTypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æç±»å", Width = 25)] |
| | | public string MaterialTypeDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 主åä½ï¼å¦ï¼kgãmãä¸ªï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "主åä½", Width = 25)] |
| | | public string PrimaryUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "è§æ ¼/æ å", Width = 25)] |
| | | public string Standard { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å¤å¾", Width = 25)] |
| | | public decimal OuterDiameter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å£å", Width = 25)] |
| | | public decimal WallThickness { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æè´¨", Width = 25)] |
| | | public string MaterialQuality { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼mï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "é¿åº¦", Width = 25)] |
| | | public decimal Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦ä¸ºä¸»æ¯ç®¡", Width = 25)] |
| | | public YesNoEnum IsMainBranch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç产工å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç产工å", Width = 25)] |
| | | public string Factory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¯ä¹¦ç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "è¯ä¹¦ç¼å·", Width = 25)] |
| | | public string Certification { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段1 - é¢çæ©å±ç¨é", Width = 25)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段2 - é¢çæ©å±ç¨é", Width = 25)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段3 - é¢çæ©å±ç¨é", Width = 25)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | [ExcelColumn(Name = "", Width = 25)] |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | [ExcelColumn(Name = "", Width = 25)] |
| | | public DateTime LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åå·", Width = 25)] |
| | | public string MaterialModel { get; set; } |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial |
| | | { |
| | | /// <summary> |
| | | /// WmsMaterials导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialImportModels |
| | | { |
| | | private List<WmsMaterialImportModel> _wmsmaterials = new(); |
| | | |
| | | public List<WmsMaterialImportModel> WmsMaterials |
| | | { |
| | | get => _wmsmaterials; |
| | | set |
| | | { |
| | | _wmsmaterials = value; |
| | | var rowIndex = 2; |
| | | _wmsmaterials?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsMaterial导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialImportModel : WmsMaterialExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯æ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialUpdateDto : WmsMaterialCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äºº |
| | | /// </summary> |
| | | public string LastModifierName { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial |
| | | { |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialsImportModel |
| | | { |
| | | private List<WmsMaterialImportModel> _WmsMaterials = new(); |
| | | |
| | | public List<WmsMaterialImportModel> WmsMaterials |
| | | { |
| | | get => _WmsMaterials; |
| | | set |
| | | { |
| | | _WmsMaterials = value; |
| | | var rowIndex = 2; |
| | | _WmsMaterials?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialImportModel : WmsMaterialExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialContainer; |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsMaterialContainerInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerNo_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialContainer; |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»åå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialContainerCreateDto : WmsMaterialContainerCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialContainer; |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»åå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsMaterialContainerCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialContainerCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsMaterialContainerCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialContainer; |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»æ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialContainerDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public ExtraPropertyDictionary? ExtraProperties { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialContainer; |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»å¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialContainerExportModel |
| | | { |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æçç¼å·", Width = 25)] |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æID", Width = 25)] |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | [ExcelColumn(Name = "", Width = 25)] |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | [ExcelColumn(Name = "", Width = 25)] |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialContainer; |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»æ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialContainerUpdateDto : WmsMaterialContainerCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialContainer |
| | | { |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialContainersImportModel |
| | | { |
| | | private List<WmsMaterialContainerImportModel> _WmsMaterialContainers = new(); |
| | | |
| | | public List<WmsMaterialContainerImportModel> WmsMaterialContainers |
| | | { |
| | | get => _WmsMaterialContainers; |
| | | set |
| | | { |
| | | _WmsMaterialContainers = value; |
| | | var rowIndex = 2; |
| | | _WmsMaterialContainers?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialContainerImportModel : WmsMaterialContainerExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialInfoæ¥è¯¢åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class GetWmsMaterialInfosInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | /// <summary> |
| | | /// Gets or sets the filter. |
| | | /// </summary> |
| | | public string Filter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets or sets the name. |
| | | /// </summary> |
| | | public string Name { get; set; } |
| | | /// <summary> |
| | | /// ç©æä»£å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå¯ä¸ç |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public int? StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹å· |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåç¼å· |
| | | /// </summary> |
| | | public string? SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ |
| | | /// </summary> |
| | | public MaterialCheckStatusEnum? CheckStatus { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialInfoåå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialInfoCreateDto : WmsMaterialInfoCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialInfoåå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsMaterialInfoCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// ç©æä»£å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå¯ä¸ç |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public int? StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹å· |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåç¼å· |
| | | /// </summary> |
| | | public string? SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ |
| | | /// </summary> |
| | | public MaterialCheckStatusEnum? CheckStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialInfoCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsMaterialInfoCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialInfoæ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialInfoDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// ç©æä»£å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå¯ä¸ç |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public int? StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹å· |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåç¼å· |
| | | /// </summary> |
| | | public string? SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ |
| | | /// </summary> |
| | | public MaterialCheckStatusEnum? CheckStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialInfoæ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialInfoUpdateDto : WmsMaterialInfoCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using MiniExcelLibs.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos |
| | | { |
| | | /// <summary> |
| | | /// WmsMaterialInfoså¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialInfosExportModel |
| | | { |
| | | /// <summary> |
| | | /// WmsMaterialInfoå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æç¼å·", Width = 20)] |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æåç§°", Width = 25)] |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå/è§æ ¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æºåè§æ ¼", Width = 20)] |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå¯ä¸ç |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å¯ä¸æ è¯ç ", Width = 25)] |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåæ°é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºåæ°é", Width = 15)] |
| | | public int? StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©ææ¹æ¬¡", Width = 20)] |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä¾åºåç¼å·", Width = 25)] |
| | | public string SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ£éªç¶æ", Width = 25)] |
| | | public MaterialCheckStatusEnum? CheckStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºæ¶é´ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å
¥åºæ¶é´", Width = 25, Format = "yyyy-MM-dd HH:mm")] |
| | | public DateTime? InStockTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 30)] |
| | | public string Remark { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos.WmsMaterialInfosExportModel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos |
| | | { |
| | | /// <summary> |
| | | /// WmsMaterialInfos导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialInfosImportModel |
| | | { |
| | | private List<WmsMaterialInfoImportModel> _wmsmaterialinfos = new(); |
| | | |
| | | public List<WmsMaterialInfoImportModel> WmsMaterialInfos |
| | | { |
| | | get => _wmsmaterialinfos; |
| | | set |
| | | { |
| | | _wmsmaterialinfos = value; |
| | | var rowIndex = 2; |
| | | _wmsmaterialinfos?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialInfo导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialInfoImportModel : WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsMaterialStockInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialName_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¶æ |
| | | /// </summary> |
| | | public ContainerStatusEnum? ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¶æ-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerStatus_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»å |
| | | /// </summary> |
| | | public ContainerTypeEnum? ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerType_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åºåæ°é |
| | | /// </summary> |
| | | public int? StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåæ°é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum StockNumber_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialBatch_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåç¼å· |
| | | /// </summary> |
| | | public string SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum SupplierCode_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æºå/è§æ ¼ |
| | | /// </summary> |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå/è§æ ¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialModel_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼å· |
| | | /// </summary> |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PlaceNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¶æ; |
| | | /// </summary> |
| | | public PlaceStatusEnum? PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¶æ;-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PlaceStatus_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»å |
| | | /// </summary> |
| | | public PlaceTypeEnum? StorageTypeNo { get; set; } = PlaceTypeEnum.YUANLIAOKUWEI; |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum StorageTypeNo_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åºåç¼å· |
| | | /// </summary> |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum AreaCode_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum AreaName_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ(1:æªæ£éª,2:æ£éªéè¿,3:æ£éªä¸éè¿) |
| | | /// </summary> |
| | | public MaterialCheckStatusEnum? CheckStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ(1:æªæ£éª,2:æ£éªéè¿,3:æ£éªä¸éè¿)-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CheckStatus_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå®(2:æªéå®,1:å·²éå®) |
| | | /// </summary> |
| | | public YesNoEnum? IsLock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå®(2:æªéå®,1:å·²éå®)-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsLock_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ(2:å¦,1:æ¯) |
| | | /// </summary> |
| | | public YesNoEnum? EmptyContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ(2:å¦,1:æ¯)-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum EmptyContainer_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å
¥åºæ¶é´ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> InStockTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField1_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField2_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField3_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
åå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialStockCreateDto : WmsMaterialStockCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
åå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsMaterialStockCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string? ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¶æ |
| | | /// </summary> |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»å |
| | | /// </summary> |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåæ°é |
| | | /// </summary> |
| | | public int StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåç¼å· |
| | | /// </summary> |
| | | public string? SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå/è§æ ¼ |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼å· |
| | | /// </summary> |
| | | public string? PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¶æ; |
| | | /// </summary> |
| | | public PlaceStatusEnum PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»å |
| | | /// </summary> |
| | | public PlaceTypeEnum StorageTypeNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç¼å· |
| | | /// </summary> |
| | | public string? AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string? AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ(1:æªæ£éª,2:æ£éªéè¿,3:æ£éªä¸éè¿) |
| | | /// </summary> |
| | | public MaterialCheckStatusEnum? CheckStatus { get; set; } = MaterialCheckStatusEnum.HEGE; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå®(2:æªéå®,1:å·²éå®) |
| | | /// </summary> |
| | | public YesNoEnum IsLock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ(2:å¦,1:æ¯) |
| | | /// </summary> |
| | | public YesNoEnum EmptyContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºæ¶é´ |
| | | /// </summary> |
| | | public DateTime? InStockTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialStockCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsMaterialStockCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
æ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialStockDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string? ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¶æ |
| | | /// </summary> |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¶æ |
| | | /// </summary> |
| | | public string ContainerStatusDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(ContainerStatus); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 容å¨ç±»å |
| | | /// </summary> |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»å |
| | | /// </summary> |
| | | public string ContainerTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(ContainerType); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåæ°é |
| | | /// </summary> |
| | | public int StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string? MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåç¼å· |
| | | /// </summary> |
| | | public string? SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå/è§æ ¼ |
| | | /// </summary> |
| | | public string? MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼å· |
| | | /// </summary> |
| | | public string? PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¶æ; |
| | | /// </summary> |
| | | public PlaceStatusEnum PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¶æ; |
| | | /// </summary> |
| | | public string PlaceStatusDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(PlaceStatus); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// åºä½ç±»å |
| | | /// </summary> |
| | | public PlaceTypeEnum StorageTypeNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»å |
| | | /// </summary> |
| | | public string StorageTypeNoDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(StorageTypeNo); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// åºåç¼å· |
| | | /// </summary> |
| | | public string? AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string? AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ(1:æªæ£éª,2:æ£éªéè¿,3:æ£éªä¸éè¿) |
| | | /// </summary> |
| | | public MaterialCheckStatusEnum? CheckStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ(1:æªæ£éª,2:æ£éªéè¿,3:æ£éªä¸éè¿) |
| | | /// </summary> |
| | | public string? CheckStatusDesc |
| | | { |
| | | get |
| | | { |
| | | if (!CheckStatus.HasValue) { return "æªæ£éª"; } |
| | | return GetEnumDescriptionUtil.GetEnumDescription(CheckStatus); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// æ¯å¦éå®(2:æªéå®,1:å·²éå®) |
| | | /// </summary> |
| | | public YesNoEnum IsLock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå®(2:æªéå®,1:å·²éå®) |
| | | /// </summary> |
| | | public string IsLockDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(IsLock); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ(2:å¦,1:æ¯) |
| | | /// </summary> |
| | | public YesNoEnum EmptyContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ(2:å¦,1:æ¯) |
| | | /// </summary> |
| | | public string EmptyContainerDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(EmptyContainer); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// å
¥åºæ¶é´ |
| | | /// </summary> |
| | | public DateTime? InStockTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåæ¬¡åº |
| | | /// </summary> |
| | | public int OrderInPlace { get; set; } |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string? RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public ExtraPropertyDictionary? ExtraProperties { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
å¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialStockExportModel |
| | | { |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æID", Width = 25)] |
| | | public string MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æåç§°", Width = 25)] |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "容å¨ç¼å·", Width = 25)] |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¶æ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "容å¨ç¶æ", Width = 25)] |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "容å¨ç±»å", Width = 25)] |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æç¼å·", Width = 25)] |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåæ°é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºåæ°é", Width = 25)] |
| | | public int StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©ææ¹æ¬¡", Width = 25)] |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä¾åºåç¼å·", Width = 25)] |
| | | public string SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºå/è§æ ¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æºå/è§æ ¼", Width = 25)] |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºä½ç¼å·", Width = 25)] |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¶æ; |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºä½ç¶æ;", Width = 25)] |
| | | public PlaceStatusEnum PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºä½ç±»å", Width = 25)] |
| | | public PlaceTypeEnum StorageTypeNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºåç¼å·", Width = 25)] |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºåºåç§°", Width = 25)] |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ(1:æªæ£éª,2:æ£éªéè¿,3:æ£éªä¸éè¿) |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ£éªç¶æ(1:æªæ£éª,2:æ£éªéè¿,3:æ£éªä¸éè¿)", Width = 25)] |
| | | public MaterialCheckStatusEnum? CheckStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå®(2:æªéå®,1:å·²éå®) |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦éå®(2:æªéå®,1:å·²éå®)", Width = 25)] |
| | | public YesNoEnum IsLock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ(2:å¦,1:æ¯) |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦ç©ºæ(2:å¦,1:æ¯)", Width = 25)] |
| | | public YesNoEnum EmptyContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºæ¶é´ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å
¥åºæ¶é´", Width = 25)] |
| | | public DateTime InStockTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段1 - é¢çæ©å±ç¨é", Width = 25)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段2 - é¢çæ©å±ç¨é", Width = 25)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段3 - é¢çæ©å±ç¨é", Width = 25)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | [ExcelColumn(Name = "", Width = 25)] |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | [ExcelColumn(Name = "", Width = 25)] |
| | | public DateTime LastModificationTime { get; set; } |
| | | |
| | | |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
æ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialStockUpdateDto : WmsMaterialStockCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using MiniExcelLibs.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks |
| | | { |
| | | /// <summary> |
| | | /// WmsMaterialStockså¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialStocksExportModel |
| | | { |
| | | /// <summary> |
| | | /// WmsMaterialStockå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// ç©æç¼å·ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æç¼å·", Width = 25)] |
| | | public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§°/æè¿° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©æåç§°", Width = 25)] |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨/æçç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "容å¨ç¼å·", Width = 25)] |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¶ææä¸¾å¼ |
| | | /// <para>0-ç©ºå®¹å¨ 1-å·²è£
è½½ 2-æ
é</para> |
| | | /// </summary> |
| | | [ExcelColumn(Name = "容å¨ç¶æ", Width = 25)] |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»åæä¸¾å¼ |
| | | /// <para>1-æç 2-æç®± 3-å¨è½¬ç®±</para> |
| | | /// </summary> |
| | | [ExcelColumn(Name = "容å¨ç±»å", Width = 25)] |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å½ååºåæ°éï¼æ´æ°ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºåæ°é", Width = 25)] |
| | | public int StockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡å·ï¼LOTï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©ææ¹æ¬¡", Width = 25)] |
| | | public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåç¼ç ï¼å
³èä¾åºåè¡¨ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä¾åºåç¼å·", Width = 25)] |
| | | public string SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æè§æ ¼åå· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åå·", Width = 25)] |
| | | public string MaterialModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼ç ï¼åºä½è¡¨å¤é®ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºä½ç¼å·", Width = 25)] |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¶ææä¸¾å¼ |
| | | /// <para>1-ç©ºé² 2-å ç¨ 3-ç¦ç¨</para> |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºä½ç¶æ", Width = 25)] |
| | | public PlaceStatusEnum PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»åæä¸¾å¼ |
| | | /// <para>1-å¹³é¢åº 2-ç«ä½åº 3-éåè´§æ¶</para> |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºä½ç±»å", Width = 25)] |
| | | public PlaceTypeEnum StorageTypeNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå±åºåºç¼ç ï¼åºå表å¤é®ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºåç¼å·", Width = 25)] |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§°ï¼æ¾ç¤ºç¨ï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åºåºåç§°", Width = 25)] |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç¶æ |
| | | /// </summary> |
| | | public MaterialCheckStatusEnum? CheckStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éå®ç¶æ |
| | | /// <para>0-æªéå® 1-å·²éå®</para> |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦éå®", Width = 25)] |
| | | public YesNoEnum IsLock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦ç©ºæ", Width = 25)] |
| | | public YesNoEnum EmptyContainer { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// æåå
¥åºæ¶é´ï¼å¯ä¸ºç©ºï¼ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å
¥åºæ¶é´", Width = 25, Format = "yyyy-MM-dd HH:mm")] |
| | | public DateTime? InStockTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¾ç¤ºæåºåºå· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æåº", Width = 15)] |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ä¿¡æ¯ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 30)] |
| | | public string Remark { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks |
| | | { |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialStocksImportModel |
| | | { |
| | | private List<WmsMaterialStockImportModel> _WmsMaterialStocks = new(); |
| | | |
| | | public List<WmsMaterialStockImportModel> WmsMaterialStocks |
| | | { |
| | | get => _WmsMaterialStocks; |
| | | set |
| | | { |
| | | _WmsMaterialStocks = value; |
| | | var rowIndex = 2; |
| | | _WmsMaterialStocks?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialStockImportModel : WmsMaterialStockExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; |
| | | |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsMaterialTypeInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// ç±»åæè¿° |
| | | /// </summary> |
| | | public string MaterialTypeDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»åæè¿°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialTypeDesc_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç±»åç¼ç |
| | | /// </summary> |
| | | public string MaterialTypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»åç¼ç -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialTypeCode_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å建人ID |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人ID-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåä¿®æ¹æ¶é´ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æåä¿®æ¹äººID |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåä¿®æ¹äººID-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å·²å é¤ |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å·²å é¤-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å é¤äººID |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å é¤äººID-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å 餿¶é´ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string DeletionTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorName_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierName_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string OperationRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum OperationRemark_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleteRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleteRemark_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string ExtraField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ExtraField1_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string ExtraField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ExtraField2_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string ExtraField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ExtraField3_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; |
| | | |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯åå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialTypeCreateDto : WmsMaterialTypeCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | |
| | | /// <summary> |
| | | /// å建人 |
| | | /// </summary> |
| | | public string CreatorName { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; |
| | | |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯åå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsMaterialTypeCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// ç±»åæè¿° |
| | | /// </summary> |
| | | public string MaterialTypeDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»åç¼ç |
| | | /// </summary> |
| | | public string MaterialTypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人ID |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåä¿®æ¹äººID |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å 餿¶é´ |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? OperationRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? DeleteRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ExtraField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ExtraField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ExtraField3 { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialTypeCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsMaterialTypeCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; |
| | | |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯æ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialTypeDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// ç±»åæè¿° |
| | | /// </summary> |
| | | public string MaterialTypeDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»åç¼ç |
| | | /// </summary> |
| | | public string MaterialTypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public ExtraPropertyDictionary? ExtraProperties { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人ID |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåä¿®æ¹æ¶é´ |
| | | /// </summary> |
| | | public DateTime? LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåä¿®æ¹äººID |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å·²å é¤ |
| | | /// </summary> |
| | | public bool IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å é¤äººID |
| | | /// </summary> |
| | | public string? DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å 餿¶é´ |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? OperationRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? DeleteRemark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ExtraField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ExtraField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ExtraField3 { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; |
| | | |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯å¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialTypeExportModel |
| | | { |
| | | /// <summary> |
| | | /// ç±»åæè¿° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç±»åæè¿°", Width = 25)] |
| | | public string MaterialTypeDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»åç¼ç |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç±»åç¼ç ", Width = 25)] |
| | | public string MaterialTypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å建æ¶é´", Width = 25)] |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåä¿®æ¹æ¶é´ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æåä¿®æ¹æ¶é´", Width = 25)] |
| | | public DateTime LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | [ExcelColumn(Name = "", Width = 25)] |
| | | public string CreatorName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | [ExcelColumn(Name = "", Width = 25)] |
| | | public string LastModifierName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public string Remark { get; set; } |
| | | |
| | | |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; |
| | | |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯æ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialTypeUpdateDto : WmsMaterialTypeCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äºº |
| | | /// </summary> |
| | | public string LastModifierName { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType |
| | | { |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialTypesImportModel |
| | | { |
| | | private List<WmsMaterialTypeImportModel> _WmsMaterialTypes = new(); |
| | | |
| | | public List<WmsMaterialTypeImportModel> WmsMaterialTypes |
| | | { |
| | | get => _WmsMaterialTypes; |
| | | set |
| | | { |
| | | _WmsMaterialTypes = value; |
| | | var rowIndex = 2; |
| | | _WmsMaterialTypes?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯å¯¼å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialTypeImportModel : WmsMaterialTypeExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceæ¥è¯¢åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class GetWmsPlaceInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼å· |
| | | /// </summary> |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PlaceNo_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç±»å |
| | | /// </summary> |
| | | public int? StorageTypeNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç±»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum StorageTypeNo_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ |
| | | /// </summary> |
| | | public int? PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PlaceStatus_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº |
| | | /// </summary> |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum AreaCode_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int? Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Aisle_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ |
| | | /// </summary> |
| | | public int? RowNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RowNo_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å |
| | | /// </summary> |
| | | public int? ColumnNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ColumnNo_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å± |
| | | /// </summary> |
| | | public int? LayerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å±-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LayerNo_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå® |
| | | /// </summary> |
| | | public int? Islock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå®-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Islock_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ |
| | | /// </summary> |
| | | public int? EmptyContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum EmptyContainer_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æå¤§åºåé |
| | | /// </summary> |
| | | public int? MaxStockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¤§åºåé-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaxStockNumber_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField1_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField2_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField3_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string DeletionTime { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceåå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsPlaceCreateDto : WmsPlaceCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceåå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsPlaceCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç±»å |
| | | /// </summary> |
| | | public PlaceTypeEnum StorageTypeNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ |
| | | /// </summary> |
| | | public PlaceStatusEnum PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº |
| | | /// </summary> |
| | | public string AreaCode { get; set; } |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool IsDisabled { get; set; } |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public int Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ |
| | | /// </summary> |
| | | public int RowNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å |
| | | /// </summary> |
| | | public int ColumnNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å± |
| | | /// </summary> |
| | | public int LayerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå® |
| | | /// </summary> |
| | | public YesNoEnum Islock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ |
| | | /// </summary> |
| | | public YesNoEnum EmptyContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¤§åºåé |
| | | /// </summary> |
| | | public int MaxStockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsPlaceCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å··éå表 |
| | | /// </summary> |
| | | public class PlaceAisleForListOuptut |
| | | { |
| | | /// <summary> |
| | | /// å··éç¼å· |
| | | /// </summary> |
| | | public int Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··éåç§° |
| | | /// </summary> |
| | | public string AisleName { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceæ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsPlaceDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string PlaceNo { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç±»å |
| | | /// </summary> |
| | | public PlaceTypeEnum StorageTypeNo { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç±»å |
| | | /// </summary> |
| | | public string StorageTypeNoDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(StorageTypeNo); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ |
| | | /// </summary> |
| | | public PlaceStatusEnum PlaceStatus { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ |
| | | /// </summary> |
| | | public string PlaceStatusDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(PlaceStatus); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº |
| | | /// </summary> |
| | | public string AreaCode { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public int Aisle { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// æ |
| | | /// </summary> |
| | | public int RowNo { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// å |
| | | /// </summary> |
| | | public int ColumnNo { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// å± |
| | | /// </summary> |
| | | public int LayerNo { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå® |
| | | /// </summary> |
| | | public YesNoEnum Islock { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå® |
| | | /// </summary> |
| | | public string IslockDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(Islock); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ |
| | | /// </summary> |
| | | public YesNoEnum EmptyContainer { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ |
| | | /// </summary> |
| | | public string EmptyContainerDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(EmptyContainer); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æå¤§åºåé |
| | | /// </summary> |
| | | public int MaxStockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceæ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsPlaceUpdateDto : WmsPlaceCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using MiniExcelLibs.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace |
| | | { |
| | | /// <summary> |
| | | /// WmsPlaceså¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsPlacesExportModel |
| | | { |
| | | /// <summary> |
| | | /// WmsPlaceå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®è´§ä½ç¼å· |
| | | /// </summary> |
| | | /// <example>PL-001-01-01</example> |
| | | [ExcelColumn(Name = "è´§ä½ç¼å·", Width = 20)] |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®è´§ä½ç±»å |
| | | /// </summary> |
| | | /// <example>Normal</example> |
| | | [ExcelColumn(Name = "è´§ä½ç±»å", Width = 15)] |
| | | public PlaceTypeEnum StorageTypeNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®è´§ä½ç¶æ |
| | | /// </summary> |
| | | /// <example>Available</example> |
| | | [ExcelColumn(Name = "è´§ä½ç¶æ", Width = 15)] |
| | | public PlaceStatusEnum PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®æå¨åºåºç¼å· |
| | | /// </summary> |
| | | /// <example>AREA-001</example> |
| | | [ExcelColumn(Name = "æå±åºåº", Width = 20)] |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®å··éç¼å· |
| | | /// </summary> |
| | | /// <example>1</example> |
| | | [ExcelColumn(Name = "å··é", Width = 10)] |
| | | public int Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®æå· |
| | | /// </summary> |
| | | /// <example>2</example> |
| | | [ExcelColumn(Name = "æ", Width = 10)] |
| | | public int RowNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åå· |
| | | /// </summary> |
| | | /// <example>3</example> |
| | | [ExcelColumn(Name = "å", Width = 10)] |
| | | public int ColumnNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®å±å· |
| | | /// </summary> |
| | | /// <example>1</example> |
| | | [ExcelColumn(Name = "å±", Width = 10)] |
| | | public int LayerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®éå®ç¶æ |
| | | /// </summary> |
| | | /// <example>No</example> |
| | | [ExcelColumn(Name = "æ¯å¦éå®", Width = 12)] |
| | | public YesNoEnum Islock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®ç©ºæç¶æ |
| | | /// </summary> |
| | | /// <example>Yes</example> |
| | | [ExcelColumn(Name = "æ¯å¦ç©ºæ", Width = 12)] |
| | | public YesNoEnum EmptyContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¤§åºåé |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æå¤§åºåé", Width = 12)] |
| | | public int MaxStockNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段1 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段1", Width = 20)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段2 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段2", Width = 20)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段3 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段3", Width = 20)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public virtual string Remark { get; set; } |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦ç¦ç¨", Width = 25)] |
| | | public virtual bool IsDisabled { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace.WmsPlacesExportModel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace |
| | | { |
| | | /// <summary> |
| | | /// WmsPlaces导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsPlacesImportModel |
| | | { |
| | | private List<WmsPlaceImportModel> _wmsplaces = new(); |
| | | |
| | | public List<WmsPlaceImportModel> WmsPlaces |
| | | { |
| | | get => _wmsplaces; |
| | | set |
| | | { |
| | | _wmsplaces = value; |
| | | var rowIndex = 2; |
| | | _wmsplaces?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsPlace导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsPlaceImportModel : WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreæ¥è¯¢åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class GetWmsStoreInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum StoreCode_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum StoreName_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField1_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField2_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField3_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string DeletionTime { get; set; } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreåå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsStoreCreateDto : WmsStoreCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreåå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsStoreCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsStoreCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsStoreCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreæ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsStoreDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// åä»åºéæ©ä½¿ç¨ |
| | | /// </summary> |
| | | public class WmsStoreForAreaOutpur |
| | | { |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreæ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsStoreUpdateDto : WmsStoreCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore |
| | | { |
| | | /// <summary> |
| | | /// WmsStoreså¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsStoresExportModel |
| | | { |
| | | /// <summary> |
| | | /// WmsStoreå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®ä»åºä»£ç |
| | | /// </summary> |
| | | /// <example>WH-001</example> |
| | | [ExcelColumn(Name = "ä»åºä»£ç ", Width = 20)] |
| | | public string StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®ä»åºåç§° |
| | | /// </summary> |
| | | /// <example>䏿µ·ä¸å¿ä»</example> |
| | | [ExcelColumn(Name = "ä»åºåç§°", Width = 25)] |
| | | public string StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段1 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段1", Width = 20)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段2 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段2", Width = 20)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段3 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段3", Width = 20)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public virtual string Remark { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore.WmsStoresExportModel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore |
| | | { |
| | | /// <summary> |
| | | /// WmsStores导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsStoresImportModel |
| | | { |
| | | private List<WmsStoreImportModel> _wmsstores = new(); |
| | | |
| | | public List<WmsStoreImportModel> WmsStores |
| | | { |
| | | get => _wmsstores; |
| | | set |
| | | { |
| | | _wmsstores = value; |
| | | var rowIndex = 2; |
| | | _wmsstores?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsStore导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsStoreImportModel : WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask |
| | | { |
| | | /// <summary> |
| | | /// ä¿®æ¹ç®æ åºä½åæ° |
| | | /// </summary> |
| | | public class ChangeTaskToPlaceInput |
| | | { |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç±»å |
| | | /// </summary> |
| | | public TaskTypeEnum TaskType { get; set; } |
| | | /// <summary> |
| | | /// èµ·å§åºä½ |
| | | /// </summary> |
| | | public string? SourcePlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½ |
| | | /// </summary> |
| | | public string? ToPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé1 |
| | | /// </summary> |
| | | public string? MutableParam1 { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç®¡çæ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsTaskInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum TaskNo_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç±»å |
| | | /// </summary> |
| | | public TaskTypeEnum? TaskType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç±»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum TaskType_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç级 |
| | | /// </summary> |
| | | public int? TaskLevel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç级-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum TaskLevel_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç¶æ |
| | | /// </summary> |
| | | public WmsTaskStatus? TaskStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç¶æ-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum TaskStatus_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ContainerNo_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½ |
| | | /// </summary> |
| | | public string SourcePlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum SourcePlace_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½ |
| | | /// </summary> |
| | | public string ToPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ToPlace_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int? PlcTaskId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PlcTaskId_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public int? Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Aisle_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å åæºID |
| | | /// </summary> |
| | | public int? DodeviceId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å åæºID-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DodeviceId_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç±»å |
| | | /// </summary> |
| | | public DodevicetypeEnum? Dodevicetype { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç±»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Dodevicetype_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 设å¤ä»»å¡ç¶æ |
| | | /// </summary> |
| | | public TaskDodeviceStatus? TaskDodeviceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ä»»å¡ç¶æ-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum TaskDodeviceStatus_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// WCSæ¯å¦å¯ä»¥è¯»å |
| | | /// </summary> |
| | | public bool? IsRead { get; set; } |
| | | |
| | | /// <summary> |
| | | /// WCSæ¯å¦å¯ä»¥è¯»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsRead_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä»»å¡ç±»å |
| | | /// </summary> |
| | | public SonTaskTypeEnum? SonTaskType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä»»å¡ç±»å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum SonTaskType_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¥æºåæ®å· |
| | | /// </summary> |
| | | public string SourceOrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥æºåæ®å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum SourceOrderNo_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ä¸ä¸ªä»»å¡æ¯å¦çææå |
| | | /// </summary> |
| | | public int? IsNextTask { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸ä¸ªä»»å¡æ¯å¦çææå-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsNextTask_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å¯ååé1 |
| | | /// </summary> |
| | | public string MutableParam1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé1-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MutableParam1_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å¯ååé2 |
| | | /// </summary> |
| | | public string MutableParam2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé2-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MutableParam2_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å¯ååé3 |
| | | /// </summary> |
| | | public string MutableParam3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé3-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MutableParam3_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public string DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask |
| | | { |
| | | /// <summary> |
| | | /// æ¥è¯¢ä»»å¡å
¥å |
| | | /// </summary> |
| | | public class QueryTaskTypeInput |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡ç±»å |
| | | /// </summary> |
| | | public TaskTypeEnum TaskType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºå£æè´§ |
| | | /// </summary> |
| | | public bool InStockHasGood { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºå£æè´§ |
| | | /// </summary> |
| | | public bool OutStockHasGood { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å宿çä»»å¡å
¥å. |
| | | /// </summary> |
| | | public class ExcecuteTaskInput |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set;} |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | |
| | | /// <summary> |
| | | /// Wmsä»»å¡ç®¡çåå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsTaskCreateDto : WmsTaskCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | |
| | | /// <summary> |
| | | /// Wmsä»»å¡ç®¡çåå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsTaskCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç±»å |
| | | /// </summary> |
| | | public TaskTypeEnum TaskType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç级 |
| | | /// </summary> |
| | | public int TaskLevel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç¶æ |
| | | /// </summary> |
| | | public WmsTaskStatus TaskStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string? ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// PLCä»»å¡å· |
| | | /// </summary> |
| | | public int PlcTaskId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½ |
| | | /// </summary> |
| | | public string? SourcePlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½ |
| | | /// </summary> |
| | | public string? ToPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public int? Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å åæºID |
| | | /// </summary> |
| | | public int? DodeviceId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç±»å |
| | | /// </summary> |
| | | public DodevicetypeEnum Dodevicetype { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ä»»å¡ç¶æ |
| | | /// </summary> |
| | | public TaskDodeviceStatus TaskDodeviceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// WCSæ¯å¦å¯ä»¥è¯»å |
| | | /// </summary> |
| | | public bool IsRead { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä»»å¡ç±»å |
| | | /// </summary> |
| | | public SonTaskTypeEnum? SonTaskType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥æºåæ®å· |
| | | /// </summary> |
| | | public string? SourceOrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸ä¸ªä»»å¡æ¯å¦çææå |
| | | /// </summary> |
| | | public int? IsNextTask { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé1 |
| | | /// </summary> |
| | | public string? MutableParam1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé2 |
| | | /// </summary> |
| | | public string? MutableParam2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé3 |
| | | /// </summary> |
| | | public string? MutableParam3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsTaskCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsTaskCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | |
| | | /// <summary> |
| | | /// Wmsä»»å¡ç®¡çæ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsTaskDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç±»å |
| | | /// </summary> |
| | | public TaskTypeEnum TaskType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç±»å |
| | | /// </summary> |
| | | public string TaskTypeDesc |
| | | { |
| | | get |
| | | { |
| | | if (TaskType == 0) return ""; |
| | | return GetEnumDescriptionUtil.GetEnumDescription(TaskType); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// ä»»å¡ç级 |
| | | /// </summary> |
| | | public int TaskLevel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç¶æ |
| | | /// </summary> |
| | | public WmsTaskStatus TaskStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç¶æ |
| | | /// </summary> |
| | | public string TaskStatusDesc |
| | | { |
| | | get |
| | | { |
| | | if (TaskStatus == 0) return ""; |
| | | return GetEnumDescriptionUtil.GetEnumDescription(TaskStatus); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string? ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½ |
| | | /// </summary> |
| | | public string? SourcePlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½ |
| | | /// </summary> |
| | | public string? ToPlace { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// PLCä»»å¡å· |
| | | /// </summary> |
| | | public int PlcTaskId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public int? Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å åæºID |
| | | /// </summary> |
| | | public int? DodeviceId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç±»å |
| | | /// </summary> |
| | | public DodevicetypeEnum Dodevicetype { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç±»åDesc |
| | | /// </summary> |
| | | public string DodevicetypeDesc |
| | | { |
| | | get |
| | | { |
| | | if (Dodevicetype == 0) return ""; |
| | | return GetEnumDescriptionUtil.GetEnumDescription(Dodevicetype); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ä»»å¡ç¶æ |
| | | /// </summary> |
| | | public TaskDodeviceStatus TaskDodeviceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç±»åDesc |
| | | /// </summary> |
| | | public string TaskDodeviceStatusDesc |
| | | { |
| | | get |
| | | { |
| | | if (TaskDodeviceStatus == 0) return ""; |
| | | return GetEnumDescriptionUtil.GetEnumDescription(TaskDodeviceStatus); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WCSæ¯å¦å¯ä»¥è¯»å |
| | | /// </summary> |
| | | public bool IsRead { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä»»å¡ç±»å |
| | | /// </summary> |
| | | public SonTaskTypeEnum? SonTaskType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä»»å¡ç±»å |
| | | /// </summary> |
| | | public string? SonTaskTypeDesc |
| | | { |
| | | get |
| | | { |
| | | if (SonTaskType == 0 || !SonTaskType.HasValue) return ""; |
| | | return GetEnumDescriptionUtil.GetEnumDescription(SonTaskType); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// æ¥æºåæ®å· |
| | | /// </summary> |
| | | public string? SourceOrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸ä¸ªä»»å¡æ¯å¦çææå |
| | | /// </summary> |
| | | public int? IsNextTask { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé1 |
| | | /// </summary> |
| | | public string? MutableParam1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé2 |
| | | /// </summary> |
| | | public string? MutableParam2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé3 |
| | | /// </summary> |
| | | public string? MutableParam3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public ExtraPropertyDictionary? ExtraProperties { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime CreationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? LastModificationTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string? DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime? DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | |
| | | /// <summary> |
| | | /// Wmsä»»å¡ç®¡çå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsTaskExportModel |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä»»å¡å·", Width = 25)] |
| | | public string TaskNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç±»å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä»»å¡ç±»å", Width = 25)] |
| | | public TaskTypeEnum TaskType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç级 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä»»å¡ç级", Width = 25)] |
| | | public int TaskLevel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç¶æ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä»»å¡ç¶æ", Width = 25)] |
| | | public WmsTaskStatus TaskStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æçç¼å·", Width = 25)] |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// èµ·å§åºä½ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "èµ·å§åºä½", Width = 25)] |
| | | public string SourcePlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç®æ åºä½ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç®æ åºä½", Width = 25)] |
| | | public string ToPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// PLCä»»å¡å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "PLCä»»å¡å·", Width = 25)] |
| | | public int PlcTaskId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å··é", Width = 25)] |
| | | public int? Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å åæºID |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å åæºID", Width = 25)] |
| | | public int? DodeviceId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç±»å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "设å¤ç±»å", Width = 25)] |
| | | public DodevicetypeEnum Dodevicetype { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ä»»å¡ç¶æ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "设å¤ä»»å¡ç¶æ", Width = 25)] |
| | | public TaskDodeviceStatus TaskDodeviceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// WCSæ¯å¦å¯ä»¥è¯»å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "WCSæ¯å¦å¯ä»¥è¯»å", Width = 25)] |
| | | public bool IsRead { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä»»å¡ç±»å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä»»å¡ç±»å", Width = 25)] |
| | | public SonTaskTypeEnum? SonTaskType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥æºåæ®å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¥æºåæ®å·", Width = 25)] |
| | | public string SourceOrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸ä¸ªä»»å¡æ¯å¦çææå |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä¸ä¸ªä»»å¡æ¯å¦çææå", Width = 25)] |
| | | public int? IsNextTask { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé1 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å¯ååé1", Width = 25)] |
| | | public string MutableParam1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé2 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å¯ååé2", Width = 25)] |
| | | public string MutableParam2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¯ååé3 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å¯ååé3", Width = 25)] |
| | | public string MutableParam3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æåº", Width = 25)] |
| | | public int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ¯å¦ç¦ç¨", Width = 25)] |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | |
| | | /// <summary> |
| | | /// Wmsä»»å¡ç®¡çæ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsTaskUpdateDto : WmsTaskCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 忶/宿忰 |
| | | /// </summary> |
| | | public class WmsTaskStatusDto |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNo { get;set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask |
| | | { |
| | | /// <summary> |
| | | /// Wmsä»»å¡ç®¡ç导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsTasksImportModel |
| | | { |
| | | private List<WmsTaskImportModel> _WmsTasks = new(); |
| | | |
| | | public List<WmsTaskImportModel> WmsTasks |
| | | { |
| | | get => _WmsTasks; |
| | | set |
| | | { |
| | | _WmsTasks = value; |
| | | var rowIndex = 2; |
| | | _WmsTasks?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Wmsä»»å¡ç®¡ç导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsTaskImportModel : WmsTaskExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts; |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢åºç¨æå¡ |
| | | /// </summary> |
| | | public interface ICMSPluginQueryAppService : IApplicationService |
| | | { |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services |
| | | { |
| | | public interface ILMesOperateAppService |
| | | { |
| | | /// <summary> |
| | | /// LMES嫿忰 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<List<CallMaterialOutput>> LMesCallMaterialAsync(List<LMesCallMaterialInput> input); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaåºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsAreaAppService : ICrudAppService<WmsAreaDto, Guid, GetWmsAreaInput, WmsAreaCreateDto, WmsAreaUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsAreaDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsAreasImportModel input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsAreaInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.BindInstockDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services |
| | | { |
| | | /// <summary> |
| | | /// ç»çå
¥åºæ¥å£ |
| | | /// </summary> |
| | | public interface IWmsBindInStockAppService |
| | | { |
| | | /// <summary> |
| | | /// ç»ç |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<WmsMaterialStockDto> BindMaterialContaienrAsync(BindInstockInput input); |
| | | |
| | | /// <summary> |
| | | /// ç»çå
¥åº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task BindInStockAsync(BindInstockInput input); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services |
| | | { |
| | | public interface IWmsCommonAppService |
| | | { |
| | | /// <summary> |
| | | /// æ¥æ¾å¯ç¨åºä½ |
| | | /// </summary> |
| | | /// <param name="materialModel"></param> |
| | | /// <param name="requiredNum"></param> |
| | | /// <param name="materialNo"></param> |
| | | /// <returns></returns> |
| | | Task<Dictionary<WmsPlaceDto, int>> FindAvailablePlacesAsync(string materialModel, int requiredNum, string materialNo = ""); |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¾åºå |
| | | /// </summary> |
| | | /// <param name="materialModel"></param> |
| | | /// <param name="requiredNum"></param> |
| | | /// <param name="materialNo"></param> |
| | | /// <returns></returns> |
| | | Task<Dictionary<WmsMaterialStockDto, int>> FindStockAsync(string materialModel, int requiredNum, string placeNo = "", PlaceTypeEnum placeType = PlaceTypeEnum.YUANLIAOKUWEI, string materialNo = ""); |
| | | |
| | | /// <summary> |
| | | /// æ£ååºå |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialStockDto>> ReduceMaterialStockAsync(ReduceStockInput input); |
| | | |
| | | /// <summary> |
| | | /// åºå转移 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialStockDto>> MoveMaterialStock(MoveStockInput input); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineråºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsContainerAppService : ICrudAppService<WmsContainerDto, Guid, GetWmsContainerInput, WmsContainerCreateDto, WmsContainerUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsContainerDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsContainersImportModel input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsContainerInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»åºç¨æå¡æ¥å£ |
| | | /// </summary> |
| | | public interface IWmsContainerPlaceAppService : ICrudAppService<WmsContainerPlaceDto, Guid, GetWmsContainerPlaceInput, WmsContainerPlaceCreateDto, WmsContainerPlaceUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// å
éåºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsContainerPlaceDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// å é¤åºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºåºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// 导å
¥åºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsContainerPlacesImportModel input); |
| | | |
| | | /// <summary> |
| | | /// 导åºåºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsContainerPlaceInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CmsQueryExtensions; |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea.WmsAreaCreateOrUpdateDtoBase; |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace.WmsPlaceCreateOrUpdateDtoBase; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾æ¥å£ |
| | | /// </summary> |
| | | public interface IWmsEnumAppService |
| | | { |
| | | /// <summary> |
| | | /// è·åæä¸¾. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | List<EnumItem> GetEnumDataList(WmsEnumInput enumInput); |
| | | |
| | | /// <summary> |
| | | /// è·åä»åºå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<List<WmsStoreForAreaOutpur>> GetStreList(); |
| | | |
| | | /// <summary> |
| | | /// åºåºå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<List<AreaForListOuptut>> GetAreaListAsync(); |
| | | |
| | | /// <summary> |
| | | /// å··éå表. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<List<PlaceAisleForListOuptut>> GetAisleListAsync(); |
| | | |
| | | |
| | | /// <summary> |
| | | /// è·åæºå |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<List<MaterialModelOutput>> GetMaterialModeListAsync(); |
| | | |
| | | /// <summary> |
| | | /// è·ååºä½å表 |
| | | /// </summary> |
| | | /// <param name="placeType"></param> |
| | | /// <returns></returns> |
| | | Task<List<PlaceListOutput>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType); |
| | | |
| | | /// <summary> |
| | | /// è·åç©æç±»å |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<List<MaterialTypeOutput>> GetMaterialTypeListAsync(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®åºç¨æå¡æ¥å£ |
| | | /// </summary> |
| | | public interface IWmsInOutStockOrderAppService : ICrudAppService<WmsInOutStockOrderDto, Guid, GetWmsInOutStockOrderInput, WmsInOutStockOrderCreateDto, WmsInOutStockOrderUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// å
éåºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsInOutStockOrderDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// å é¤åºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºåºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// 导å
¥åºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsInOutStockOrdersImportModel input); |
| | | |
| | | /// <summary> |
| | | /// 导åºåºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
åºç¨æå¡æ¥å£ |
| | | /// </summary> |
| | | public interface IWmsInOutStockOrderDetailAppService : ICrudAppService<WmsInOutStockOrderDetailDto, Guid, GetWmsInOutStockOrderDetailInput, WmsInOutStockOrderDetailCreateDto, WmsInOutStockOrderDetailUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// å
éåºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsInOutStockOrderDetailDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// å é¤åºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºåºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// 导å
¥åºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsInOutStockOrderDetailsImportModel input); |
| | | |
| | | /// <summary> |
| | | /// 导åºåºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderDetailInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½åºç¨æå¡æ¥å£ |
| | | /// </summary> |
| | | public interface IWmsInOutStockRecordAppService : ICrudAppService<WmsInOutStockRecordDto, Guid, GetWmsInOutStockRecordInput, WmsInOutStockRecordCreateDto, WmsInOutStockRecordUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// å
éåºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsInOutStockRecordDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// å é¤åºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºåºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// 导å
¥åºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsInOutStockRecordsImportModel input); |
| | | |
| | | /// <summary> |
| | | /// 导åºåºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockRecordInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialåºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsMaterialAppService : ICrudAppService<WmsMaterialDto, Guid, GetWmsMaterialInput, WmsMaterialCreateDto, WmsMaterialUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsMaterialImportModels input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialContainer; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»åºç¨æå¡æ¥å£ |
| | | /// </summary> |
| | | public interface IWmsMaterialContainerAppService : ICrudAppService<WmsMaterialContainerDto, Guid, GetWmsMaterialContainerInput, WmsMaterialContainerCreateDto, WmsMaterialContainerUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// å
éç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialContainerDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// å é¤ç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// 导å
¥ç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsMaterialContainersImportModel input); |
| | | |
| | | /// <summary> |
| | | /// 导åºç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialContainerInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialInfoåºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsMaterialInfoAppService : ICrudAppService<WmsMaterialInfoDto, Guid, GetWmsMaterialInfosInput, WmsMaterialInfoCreateDto, WmsMaterialInfoUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialInfoDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsMaterialInfosImportModel input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInfosInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialStockåºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsMaterialStockAppService : ICrudAppService<WmsMaterialStockDto, Guid, GetWmsMaterialStockInput, WmsMaterialStockCreateDto, WmsMaterialStockUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialStockDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// è·ååºåæç» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<PagedResultDto<WmsMaterialStockDto>> GetStockDetailAsync(GetWmsMaterialStockInput input); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// éè¿ç©æç¼å·å é¤åºå |
| | | /// </summary> |
| | | /// <param name="materialNo"></param> |
| | | /// <returns></returns> |
| | | Task DeleteByMaterialAsync(string materialNo); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsMaterialStocksImportModel input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialStockInput input); |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·ååºå
¥åºåæ®è¯¦æ
å表 |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialStock>> GetListByFilterAsync(Expression<Func<WmsMaterialStock, bool>> whereConditions, CancellationToken cancellationToken = default); |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·åå个åºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="isMultipleThrowException">æ¯å¦æ¥è¯¢åºå¤æ¡å°±æ¥é</param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | Task<WmsMaterialStock> GetSingleByFilterAsync(Expression<Func<WmsMaterialStock, bool>> whereConditions, bool isâMultipleThrowException = false, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·ååºå
¥åºåæ®è¯¦æ
å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialStockDto>> FindListByFilterAsync(GetWmsMaterialStockInput input, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·åå个åºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<WmsMaterialStockDto> FindSingleByFilterAsync(GetWmsMaterialStockInput input, CancellationToken cancellationToken = default); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos; |
| | | using Volo.Abp.Application.Services; |
| | | using CmsQueryExtensions.Entitys; |
| | | using System.Linq.Expressions; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialTypes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯åºç¨æå¡æ¥å£ |
| | | /// </summary> |
| | | public interface IWmsMaterialTypeAppService : ICrudAppService<WmsMaterialTypeDto, Guid, GetWmsMaterialTypeInput, WmsMaterialTypeCreateDto, WmsMaterialTypeUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// å
éç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialTypeDto>> CloneAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser); |
| | | |
| | | /// <summary> |
| | | /// å é¤ç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser); |
| | | |
| | | /// <summary> |
| | | /// ç©çå é¤ç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id">主é®ID</param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | Task DeletePermanentlyAsync(Guid id, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default); |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¹éç©çå é¤ç©ælç±»åä¿¡æ¯ï¼ç´æ¥å é¤ï¼ä¸è½¯å é¤ï¼ |
| | | /// </summary> |
| | | /// <param name="ids">è¦å é¤ç主é®IDå表</param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// 导å
¥ç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsMaterialTypesImportModel input, MyCurrentUser myCurrentUser); |
| | | |
| | | /// <summary> |
| | | /// 导åºç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialTypeInput input); |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·åç©ælç±»åä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialType>> GetListByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·ååä¸ªç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="isMultipleThrowException"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | Task<WmsMaterialType> GetSingleByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, bool isâMultipleThrowException = false, CancellationToken cancellationToken = default); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services |
| | | { |
| | | public interface IWmsOutStockAppService |
| | | { |
| | | /// <summary> |
| | | /// 嫿 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<List<CallMaterialOutput>> CallMaterialAsync(List<CallMaterialInput> input); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceåºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsPlaceAppService : ICrudAppService<WmsPlaceDto, Guid, GetWmsPlaceInput, WmsPlaceCreateDto, WmsPlaceUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsPlaceDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsPlacesImportModel input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsPlaceInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreåºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsStoreAppService : ICrudAppService<WmsStoreDto, Guid, GetWmsStoreInput, WmsStoreCreateDto, WmsStoreUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsStoreDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsStoresImportModel input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsStoreInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// Wmsä»»å¡ç®¡çåºç¨æå¡æ¥å£ |
| | | /// </summary> |
| | | public interface IWmsTaskAppService : ICrudAppService<WmsTaskDto, Guid, GetWmsTaskInput, WmsTaskCreateDto, WmsTaskUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// å
éWmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsTaskDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// å é¤Wmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºWmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// 导å
¥Wmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsTasksImportModel input); |
| | | |
| | | /// <summary> |
| | | /// 导åºWmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsTaskInput input); |
| | | |
| | | /// <summary> |
| | | /// 强å¶å®æä»»å¡ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<WmsTaskDto> FinishTaskAsync(WmsTaskStatusDto input); |
| | | |
| | | /// <summary> |
| | | /// åæ¶ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task CancelTaskAysnc(WmsTaskStatusDto input); |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹ç®æ åºä½ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task ChangeTaskToPlaceAsync(ChangeTaskToPlaceInput input); |
| | | |
| | | /// <summary> |
| | | /// è·åéè¦æ§è¡çå åæºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input); |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ä»»å¡ä¸ºæ§è¡ä¸ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<WmsTaskDto> StartExecuteTaskAsync(ExcecuteTaskInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.Dapper" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.AutoMapper" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.Ddd.Application" Version="$(ABPPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Application.Contracts\CMS.Plugin.SycWmsDemo.Application.Contracts.csproj" /> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Domain\CMS.Plugin.SycWmsDemo.Domain.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Reference Include="CmsQueryExtensions"> |
| | | <HintPath>..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Localization; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application; |
| | | |
| | | /// <summary> |
| | | /// Inherit your application services from this class. |
| | | /// </summary> |
| | | public abstract class CMSPluginAppService : ApplicationService |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="CMSPluginAppService"/> class. |
| | | /// </summary> |
| | | protected CMSPluginAppService() |
| | | { |
| | | ObjectMapperContext = typeof(CMSPluginApplicationModule); |
| | | LocalizationResource = typeof(HIAWmsResource); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts; |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Volo.Abp.Application; |
| | | using Volo.Abp.AutoMapper; |
| | | using Volo.Abp.EventBus; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application; |
| | | |
| | | /// <summary> |
| | | /// æä»¶åºç¨æå¡æ¨¡å |
| | | /// </summary> |
| | | [DependsOn( |
| | | typeof(CMSPluginDomainModule), |
| | | typeof(CMSPluginApplicationContractsModule), |
| | | typeof(AbpAutoMapperModule), |
| | | typeof(AbpEventBusModule), |
| | | typeof(AbpDddApplicationModule) |
| | | )] |
| | | public class CMSPluginApplicationModule : AbpModule |
| | | { |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | context.Services.AddAutoMapperObjectMapper<CMSPluginApplicationModule>(); |
| | | Configure<AbpAutoMapperOptions>(options => |
| | | { |
| | | options.AddMaps<CMSPluginApplicationModule>(validate: true); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts; |
| | | using CMS.Plugin.HIAWms.Domain.Data; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application; |
| | | |
| | | /// <inheritdoc /> |
| | | public class CMSPluginQueryAppService : CMSPluginAppService, ICMSPluginQueryAppService |
| | | { |
| | | private readonly ICMSPluginDapperRepository _dapperRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="CMSPluginQueryAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="dapperRepository">The dapper repository.</param> |
| | | public CMSPluginQueryAppService(ICMSPluginDapperRepository dapperRepository) |
| | | { |
| | | _dapperRepository = dapperRepository; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsTask; |
| | | 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.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements |
| | | { |
| | | /// <summary> |
| | | /// LMESæä½æå¡ |
| | | /// </summary> |
| | | public class LMesOperateAppService : CMSPluginAppService, ILMesOperateAppService |
| | | { |
| | | private readonly IWmsTaskRepository _wmsTaskRepository; |
| | | private readonly IWmsMaterialRepository _wmsMaterialRepository; |
| | | private readonly IWmsCommonAppService _wmsCommonAppService; |
| | | private readonly IWmsInOutStockOrderAppService _wmsInOutStockOrderAppService; |
| | | private readonly IWmsOutStockAppService _wmsOutStockOrderAppService; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | |
| | | public LMesOperateAppService(IWmsTaskRepository wmsTaskRepository, |
| | | IWmsMaterialRepository wmsMaterialRepository, |
| | | IWmsInOutStockOrderAppService wmsInOutStockOrderAppService, |
| | | IWmsOutStockAppService wmsOutStockOrderAppService |
| | | , |
| | | IServiceProvider serviceProvider, |
| | | IWmsCommonAppService wmsCommonAppService) |
| | | { |
| | | _wmsTaskRepository = wmsTaskRepository; |
| | | _wmsMaterialRepository = wmsMaterialRepository; |
| | | _wmsInOutStockOrderAppService = wmsInOutStockOrderAppService; |
| | | _wmsOutStockOrderAppService = wmsOutStockOrderAppService; |
| | | _serviceProvider = serviceProvider; |
| | | _wmsCommonAppService = wmsCommonAppService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// lmes嫿. |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task<List<CallMaterialOutput>> LMesCallMaterialAsync(List<LMesCallMaterialInput> input) |
| | | { |
| | | if (input == null || input.Count == 0) |
| | | { |
| | | throw new UserFriendlyException("嫿忰é误"); |
| | | } |
| | | |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | var result = new List<CallMaterialOutput>(); |
| | | foreach (var item in input) |
| | | { |
| | | if (string.IsNullOrEmpty(item.MaterialMode)) |
| | | { |
| | | throw new UserFriendlyException("嫿åå·ä¸è½ä¸ºç©º"); |
| | | } |
| | | |
| | | var task = await _wmsTaskRepository.QueryWmsTaskByDataIdentifierAasync(item.DataIdentifier); |
| | | if (task != null) |
| | | { |
| | | throw new UserFriendlyException($"åææ è¯{item.DataIdentifier}å·²çæä»»å¡,ä»»å¡å·{task.TaskNo}ï¼æ éé夿ä½"); |
| | | } |
| | | |
| | | // çæåºåºå |
| | | var materiaL = await _wmsMaterialRepository.FindByModelAsync(item.MaterialMode); |
| | | if (materiaL == null) |
| | | { |
| | | throw new UserFriendlyException("该åå·ç©æä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | |
| | | var createOrderInput = new WmsInOutStockOrderCreateDto |
| | | { |
| | | OrderType = Domain.Shared.Enums.OrderTypeEnum.PRODUCTCALL, |
| | | MaterialNo = materiaL.MaterialNo, |
| | | MaterialName = materiaL.MaterialName, |
| | | MaterialModel = item.MaterialMode, |
| | | MaterialNumber = 1, |
| | | MaterialBatch = item.MaterialMode, |
| | | OrderStatus = Domain.Shared.Enums.OrderStatusEnum.Executing, |
| | | OperateTime = DateTime.Now, |
| | | DistributeNumber = 1, |
| | | }; |
| | | var createResult = await _wmsInOutStockOrderAppService.CreateAsync(createOrderInput); |
| | | |
| | | // 嫿 |
| | | var callInput = new List<CallMaterialInput> |
| | | { |
| | | new CallMaterialInput |
| | | { |
| | | OrderNo = createResult.OrderNo, |
| | | MaterialModel = item.MaterialMode, |
| | | MaterialNumber = 1, |
| | | MaterialNo = materiaL.MaterialNo, |
| | | MaterialName = materiaL.MaterialName, |
| | | DataIdentifier = item.DataIdentifier, |
| | | IgnoreOrder = true, |
| | | OrderType = createResult.OrderType, |
| | | Priority = createResult.Priority |
| | | }, |
| | | }; |
| | | var callresult = await _wmsOutStockOrderAppService.CallMaterialAsync(callInput); |
| | | result.AddRange(callresult); |
| | | } |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// LMesåºåº |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task LMesOutStockAsync(ReduceInput input) |
| | | { |
| | | if (input == null) |
| | | { |
| | | throw new UserFriendlyException("åºåºåæ°é误"); |
| | | } |
| | | |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | if (string.IsNullOrEmpty(input.MaterialMode)) |
| | | { |
| | | throw new UserFriendlyException("åºåºåå·ä¸è½ä¸ºç©º"); |
| | | } |
| | | var reduceInput = new ReduceStockInput |
| | | { |
| | | MaterialModel = input.MaterialMode, |
| | | StockNumber = input.Quantity, |
| | | PlaceNo = input.PlaceNo, |
| | | }; |
| | | await _wmsCommonAppService.ReduceMaterialStockAsync(reduceInput); |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsAreas; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using CMS.Plugin.HIAWms.Domain.WmsStores; |
| | | using CmsQueryExtensions; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsAreaAppService : CMSPluginAppService, IWmsAreaAppService |
| | | { |
| | | private readonly IWmsAreaRepository _wmsareaRepository; |
| | | private readonly IWmsStoreRepository _wmsstoreRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsareaRepository">The task job repository.</param> |
| | | public WmsAreaAppService(IWmsAreaRepository wmsareaRepository, IWmsStoreRepository wmsstoreRepository) |
| | | { |
| | | _wmsareaRepository = wmsareaRepository; |
| | | _wmsstoreRepository = wmsstoreRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsAreaDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsArea, WmsAreaDto>(await _wmsareaRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·åä»åºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<WmsAreaDto>> GetListAsync(GetWmsAreaInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsArea.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await _wmsareaRepository.GetCountAsync(whereConditions); |
| | | var list = await _wmsareaRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsAreaDto>(count, ObjectMapper.Map<List<WmsArea>, List<WmsAreaDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsArea, bool>>> DynamicGetQueryParams(GetWmsAreaInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsArea, GetWmsAreaInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsArea, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsArea, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsAreaDto> CreateAsync(WmsAreaCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmsareaRepository.NameExistAsync(input.AreaNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.AreaNo]); |
| | | } |
| | | |
| | | var maxSort = await _wmsareaRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | var wmsarea = ObjectMapper.Map<WmsAreaCreateDto, WmsArea>(input); |
| | | wmsarea.Sort = sort; |
| | | var store = await _wmsstoreRepository.FindByNameAsync(input.StoreCode); |
| | | if (store == null) |
| | | { |
| | | throw new UserFriendlyException("ä»åºä¿¡æ¯ä¸å"); |
| | | } |
| | | |
| | | input.MapExtraPropertiesTo(wmsarea, MappingPropertyDefinitionChecks.None); |
| | | wmsarea.StoreName = store.StoreName; |
| | | await _wmsareaRepository.InsertAsync(wmsarea); |
| | | |
| | | if (input.Sort.HasValue && wmsarea.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmsarea.Id, wmsarea.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsArea, WmsAreaDto>(wmsarea); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsAreaDto> UpdateAsync(Guid id, WmsAreaUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmsarea = await _wmsareaRepository.GetAsync(id); |
| | | var exist = await _wmsareaRepository.NameExistAsync(input.AreaNo, wmsarea.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.AreaNo]); |
| | | } |
| | | |
| | | wmsarea.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmsarea, MappingPropertyDefinitionChecks.None); |
| | | var store = await _wmsstoreRepository.FindByNameAsync(input.StoreCode); |
| | | if (store == null) |
| | | { |
| | | throw new UserFriendlyException("ä»åºä¿¡æ¯ä¸å"); |
| | | } |
| | | |
| | | wmsarea.AreaName = input.AreaName; |
| | | wmsarea.AreaDesc = input.AreaDesc; |
| | | wmsarea.AreaStatus = input.AreaStatus; |
| | | wmsarea.AreaType = input.AreaType; |
| | | wmsarea.StoreCode = input.StoreCode; |
| | | wmsarea.StoreName = store.StoreName; |
| | | |
| | | await _wmsareaRepository.UpdateAsync(wmsarea); |
| | | |
| | | return ObjectMapper.Map<WmsArea, WmsAreaDto>(wmsarea); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsAreaDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | var wmsareas = new List<WmsArea>(); |
| | | if (ids != null) |
| | | { |
| | | var sort = await _wmsareaRepository.GetMaxSortAsync(); |
| | | foreach (var id in ids) |
| | | { |
| | | var wmsarea = await _wmsareaRepository.FindAsync(id); |
| | | if (wmsarea != null) |
| | | { |
| | | var name = wmsarea.AreaNo + WmsAreaConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmsareaRepository.NameExistAsync(name); |
| | | if (exist || wmsareas.Any(x => x.AreaNo == name)) |
| | | { |
| | | name += WmsAreaConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | wmsareas.Add(wmsarea); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ObjectMapper.Map<List<WmsArea>, List<WmsAreaDto>>(wmsareas); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsareaRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmsareaRepository.GetListAsync(null,nameof(WmsArea.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmsareaRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsAreasImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsareaCreateDtos = new List<(int RowIndex, WmsAreaCreateDto Item)>(); |
| | | var wmsareaUpdateDtos = new List<(int RowIndex, Guid Id, WmsAreaUpdateDto Item)>(); |
| | | var wmsareas = input.WmsAreas; |
| | | |
| | | if (wmsareas != null && wmsareas.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsAreas = wmsareas.GroupBy(x => x.AreaNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsAreas?.Any() == true) |
| | | { |
| | | var duplicateWmsAreaMsgs = duplicateWmsAreas.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsAreaMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmsarea in wmsareas) |
| | | { |
| | | if (wmsarea.AreaNo.IsNullOrWhiteSpace() && wmsarea.AreaName.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmsarea.AreaName.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsarea.RowIndex}è¡ï¼WmsAreaåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsArea = await _wmsareaRepository.FindByNameAsync(wmsarea.AreaNo); |
| | | if (oldWmsArea != null) |
| | | { |
| | | var wmsareaUpdateDto = new WmsAreaUpdateDto |
| | | { |
| | | AreaName = wmsarea.AreaName, |
| | | AreaDesc = wmsarea.AreaDesc, |
| | | AreaStatus = wmsarea.AreaStatus, |
| | | AreaType = wmsarea.AreaType, |
| | | StoreCode = wmsarea.StoreCode, |
| | | StoreName = wmsarea.StoreName, |
| | | Remark = wmsarea.Remark, |
| | | }; |
| | | |
| | | wmsareaUpdateDtos.Add((wmsarea.RowIndex, oldWmsArea.Id, wmsareaUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsareaCreateDto = new WmsAreaCreateDto |
| | | { |
| | | AreaName = wmsarea.AreaName, |
| | | AreaDesc = wmsarea.AreaDesc, |
| | | AreaStatus = wmsarea.AreaStatus, |
| | | AreaType = wmsarea.AreaType, |
| | | StoreCode = wmsarea.StoreCode, |
| | | StoreName = wmsarea.StoreName, |
| | | Remark = wmsarea.Remark, |
| | | }; |
| | | |
| | | wmsareaCreateDtos.Add((wmsarea.RowIndex, wmsareaCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsareaDto in wmsareaCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsareaDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsareaDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsareaDto in wmsareaUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsareaDto.Id, wmsareaDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsareaDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºä»åºåºåºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsAreaInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsArea.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | var list = await _wmsareaRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsArea>, List<WmsAreaDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = "åºåºä¿¡æ¯"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsAreaCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.AreaNo, "ç¼å·", WmsAreaConsts.MaxCodeLength); |
| | | Check.NotNullOrWhiteSpace(input.AreaName, "åç§°", WmsAreaConsts.MaxNameLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsAreaConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.BindInstockDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainerPlace; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialContainer; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.WmsTask; |
| | | 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.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements |
| | | { |
| | | /// <summary> |
| | | /// ç»çå
¥åº |
| | | /// </summary> |
| | | public class WmsBindInStockAppService : CMSPluginAppService, IWmsBindInStockAppService |
| | | { |
| | | private readonly IWmsMaterialRepository _wmsMaterialRepository; |
| | | private readonly IWmsContainerRepository _wmsContainerRepository; |
| | | private readonly IWmsPlaceRepository _wmsPlaceRepository; |
| | | private readonly IWmsMaterialContainerRepository _wmsMaterialContainerRepository; |
| | | private readonly IWmsContainerPlaceRepository _wmsContainerPlaceRepository; |
| | | private readonly IWmsMaterialInfoRepository _wmsMaterialInfoRepository; |
| | | private readonly IWmsMaterialStockAppService _wmsMaterialStockAppService; |
| | | private readonly IWmsCommonAppService _wmsCommonAppService; |
| | | private readonly IWmsTaskRepository _wmsTaskRepository; |
| | | private readonly IWmsTaskAppService _wmsTaskAppService; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | |
| | | public WmsBindInStockAppService(IWmsMaterialRepository wmsMaterialRepository, |
| | | IWmsContainerRepository wmsContainerRepository, |
| | | IWmsPlaceRepository wmsPlaceRepository |
| | | , |
| | | IWmsMaterialContainerRepository wmsMaterialContainerRepository, |
| | | IWmsContainerPlaceRepository wmsContainerPlaceRepository, |
| | | IWmsMaterialInfoRepository wmsMaterialInfoRepository, |
| | | IWmsMaterialStockAppService wmsMaterialStockAppService, |
| | | IWmsCommonAppService wmsCommonAppService, |
| | | IWmsTaskRepository wmsTaskRepository, |
| | | IWmsTaskAppService wmsTaskAppService, |
| | | IServiceProvider serviceProvider) |
| | | { |
| | | _wmsMaterialRepository = wmsMaterialRepository; |
| | | _wmsContainerRepository = wmsContainerRepository; |
| | | _wmsPlaceRepository = wmsPlaceRepository; |
| | | _wmsMaterialContainerRepository = wmsMaterialContainerRepository; |
| | | _wmsContainerPlaceRepository = wmsContainerPlaceRepository; |
| | | _wmsMaterialInfoRepository = wmsMaterialInfoRepository; |
| | | _wmsMaterialStockAppService = wmsMaterialStockAppService; |
| | | _wmsCommonAppService = wmsCommonAppService; |
| | | _wmsTaskRepository = wmsTaskRepository; |
| | | _wmsTaskAppService = wmsTaskAppService; |
| | | _serviceProvider = serviceProvider; |
| | | } |
| | | |
| | | public async Task<WmsMaterialStockDto> BindMaterialContaienrAsync(BindInstockInput input) |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | if (string.IsNullOrEmpty(input.MaterialModel)) { throw new UserFriendlyException("è¯·éæ©åºä½ç¼å·"); } |
| | | if (string.IsNullOrEmpty(input.MaterialBatch)) { throw new UserFriendlyException("请è¾å
¥æ¹æ¬¡å·"); } |
| | | if (input.StockNumber <= 0) { throw new UserFriendlyException("å
¥åºæ°éå¿
须大äº0"); } |
| | | #region åºå¼ |
| | | //string containerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString(); |
| | | |
| | | //// 5. å建æç |
| | | //var container = new WmsContainer |
| | | //{ |
| | | // ContainerNo = containerNo, |
| | | // ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI, |
| | | // ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.ZUPANG, |
| | | //}; |
| | | //await _wmsContainerRepository.InsertAsync(container); |
| | | |
| | | //var materialContainerList = new List<WmsMaterialContainer>(); |
| | | //var materialInfoList = new List<WmsMaterialInfo>(); |
| | | //for (int i = 0; i < input.MaterialStockNumber; i++) |
| | | //{ |
| | | // string materialId = Guid.NewGuid().ToString("N"); |
| | | // var materialContainer = new WmsMaterialContainer |
| | | // { |
| | | // MaterialId = materialId, |
| | | // ContainerNo = containerNo, |
| | | // }; |
| | | // materialContainerList.Add(materialContainer); |
| | | |
| | | // var materialInfo = new WmsMaterialInfo |
| | | // { |
| | | |
| | | // }; |
| | | // materialInfoList.Add(materialInfo); |
| | | //} |
| | | |
| | | //await _wmsMaterialContainerRepository.InsertManyAsync(materialContainerList); |
| | | //await _wmsMaterialInfoRepository.InsertManyAsync(materialInfoList); |
| | | #endregion |
| | | |
| | | var material = await _wmsMaterialRepository.FindByModelAsync(input.MaterialModel); |
| | | if (material == null) |
| | | { |
| | | throw new UserFriendlyException($"ç©æåå· {input.MaterialModel} ä¸åå¨ï¼"); |
| | | } |
| | | |
| | | // 5. å建æç |
| | | var containerNo = input.ContainerNo; |
| | | if (string.IsNullOrEmpty(containerNo)) |
| | | { |
| | | containerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString(); |
| | | } |
| | | //var container = new WmsContainer |
| | | //{ |
| | | // ContainerNo = containerNo, |
| | | // ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI, |
| | | // ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.ZUPANG, |
| | | //}; |
| | | //var result = await _wmsContainerRepository.InsertAsync(container); |
| | | |
| | | var materialStock = new WmsMaterialStockCreateDto |
| | | { |
| | | MaterialNo = material.MaterialNo, |
| | | MaterialName = material.MaterialName, |
| | | MaterialBatch = input.MaterialBatch, |
| | | StockNumber = input.StockNumber, |
| | | CheckStatus = MaterialCheckStatusEnum.HEGE, |
| | | IsLock = YesNoEnum.N, |
| | | PlaceNo = input.PlaceNo, |
| | | ContainerNo = containerNo, |
| | | MaterialModel = input.MaterialModel, |
| | | EmptyContainer = YesNoEnum.N, |
| | | }; |
| | | var result = await _wmsMaterialStockAppService.CreateAsync(materialStock); |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// ç»çå
¥åº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task BindInStockAsync(BindInstockInput input) |
| | | { |
| | | if (string.IsNullOrEmpty(input.PlaceNo)) { throw new UserFriendlyException("è¯·éæ©åºä½ç¼å·"); } |
| | | |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | input.ContainerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString(); |
| | | await BindMaterialContaienrAsync(input); |
| | | |
| | | // çæä»»å¡ |
| | | var plactDict = await _wmsCommonAppService.FindAvailablePlacesAsync(input.MaterialModel, input.StockNumber); |
| | | var taskList = new List<WmsTask>(); |
| | | foreach (var kvp in plactDict) |
| | | { |
| | | var place = kvp.Key; // WmsPlace对象 |
| | | var quantity = kvp.Value; // åé
æ°é |
| | | |
| | | for (int i = 0; i < quantity; i++) |
| | | { |
| | | var task = new WmsTask |
| | | { |
| | | TaskNo = $"RK_{DateTime.Now:yyyyMMddHHmmss}_{Guid.NewGuid().ToString("N").Substring(0, 6)}", |
| | | ContainerNo = input.ContainerNo, |
| | | SourcePlace = input.PlaceNo, |
| | | ToPlace = place.PlaceNo, |
| | | TaskType = TaskTypeEnum.RUKU, |
| | | SonTaskType = SonTaskTypeEnum.RGRUKU, |
| | | TaskStatus = WmsTaskStatus.WEIZHIXING, |
| | | TaskLevel = 999, |
| | | Aisle = 1, |
| | | DodeviceId = 0, |
| | | Dodevicetype = DodevicetypeEnum.Srm, |
| | | TaskDodeviceStatus = TaskDodeviceStatus.SrmNoStart, |
| | | IsNextTask = (int)YesNoEnum.Y, |
| | | IsRead = true, |
| | | PlcTaskId = new Random(Guid.NewGuid().GetHashCode()).Next(101, 99999), |
| | | MutableParam1 = input.MaterialModel, |
| | | }; |
| | | taskList.Add(task); |
| | | } |
| | | } |
| | | await _wmsTaskRepository.InsertManyAsync(taskList); |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CmsQueryExtensions.Extension; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Linq.Expressions; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements |
| | | { |
| | | /// <summary> |
| | | /// å
Œ
±æä½æå¡ |
| | | /// </summary> |
| | | public class WmsCommonAppService : CMSPluginAppService, IWmsCommonAppService |
| | | { |
| | | private readonly IWmsMaterialRepository _wmsMaterialRepository; |
| | | private readonly IWmsPlaceRepository _wmsPlaceRepository; |
| | | private readonly IWmsMaterialStockRepository _wmsMaterialStockRepository; |
| | | private readonly IWmsInOutStockRecordRepository _wmsInOutStockRecordRepository; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | |
| | | public WmsCommonAppService(IWmsMaterialRepository wmsMaterialRepository, |
| | | IWmsPlaceRepository wmsPlaceRepository, |
| | | IWmsMaterialStockRepository wmsMaterialStockRepository |
| | | , |
| | | IServiceProvider serviceProvider, |
| | | IWmsInOutStockRecordRepository wmsInOutStockRecordRepository) |
| | | { |
| | | _wmsMaterialRepository = wmsMaterialRepository; |
| | | _wmsPlaceRepository = wmsPlaceRepository; |
| | | _wmsMaterialStockRepository = wmsMaterialStockRepository; |
| | | _serviceProvider = serviceProvider; |
| | | _wmsInOutStockRecordRepository = wmsInOutStockRecordRepository; |
| | | } |
| | | |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsPlace, bool>>> DynamicGetQueryPlaceParams(GetWmsPlaceInput input) |
| | | { |
| | | // 卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsPlace, GetWmsPlaceInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsPlace, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsPlace, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¾ç©ºåºä½ |
| | | /// </summary> |
| | | /// <param name="materialModel"></param> |
| | | /// <param name="materialNo"></param> |
| | | /// <param name="requiredNum"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task<Dictionary<WmsPlaceDto, int>> FindAvailablePlacesAsync(string materialModel, int requiredNum, string materialNo = "") |
| | | { |
| | | |
| | | var whereConditions = DynamicGetQueryParams(new GetWmsMaterialStockInput { StorageTypeNo = Domain.Shared.Enums.PlaceTypeEnum.YUANLIAOKUWEI }); |
| | | // 1. è·åææåºåååºä½ä¿¡æ¯ |
| | | var stockList = await _wmsMaterialStockRepository.GetListAsync(whereConditions); |
| | | |
| | | var placeConditions = DynamicGetQueryPlaceParams(new GetWmsPlaceInput { StorageTypeNo = (int)PlaceTypeEnum.YUANLIAOKUWEI }); |
| | | |
| | | var placeList = await _wmsPlaceRepository.GetListByFilterAsync(placeConditions.data); |
| | | var allPlaceList = ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(placeList.Where(x => !x.IsDisabled).ToList()); |
| | | |
| | | // 2. æ¥æ¾ç¸åç©æåå·åç¼å·çåºåï¼æåºåééåºï¼ |
| | | var sameModelStocks = stockList |
| | | .Where(x => x.MaterialModel == materialModel) |
| | | .WhereIf(!string.IsNullOrEmpty(materialNo), x => x.MaterialNo == materialNo) |
| | | .OrderByDescending(x => x.StockNumber) |
| | | .ToList(); |
| | | |
| | | var availablePlaces = new Dictionary<WmsPlaceDto, int>(); |
| | | int remainingNum = requiredNum; |
| | | |
| | | // 3. ä¼å
æ£æ¥å·²æåºåçåºä½æ¯å¦è½åæ¾ï¼ç¸å MaterialNoï¼ |
| | | foreach (var stock in sameModelStocks) |
| | | { |
| | | if (remainingNum <= 0) break; // æ°éå·²åé
å® |
| | | |
| | | var placeInfo = allPlaceList.FirstOrDefault(x => x.PlaceNo == stock.PlaceNo); |
| | | if (placeInfo == null) continue; |
| | | |
| | | int availableSpace = placeInfo.MaxStockNumber - stock.StockNumber; |
| | | if (availableSpace <= 0) continue; |
| | | |
| | | int allocatedNum = Math.Min(availableSpace, remainingNum); |
| | | availablePlaces.Add(placeInfo, allocatedNum); |
| | | remainingNum -= allocatedNum; |
| | | } |
| | | |
| | | // 4. 妿仿å©ä½ï¼æ¥æ¾ç©ºåºä½ |
| | | if (remainingNum > 0) |
| | | { |
| | | var usedPlaceNos = stockList.Select(x => x.PlaceNo).Distinct().ToList(); |
| | | var emptyPlaces = allPlaceList |
| | | .Where(x => !usedPlaceNos.Contains(x.PlaceNo)) |
| | | .ToList(); |
| | | |
| | | foreach (var place in emptyPlaces) |
| | | { |
| | | if (remainingNum <= 0) break; |
| | | |
| | | int allocatedNum = Math.Min(place.MaxStockNumber, remainingNum); |
| | | availablePlaces.Add(place, allocatedNum); |
| | | remainingNum -= allocatedNum; |
| | | } |
| | | } |
| | | |
| | | // 5. 妿仿å©ä½ï¼è¯´æåºä½ä¸è¶³ |
| | | if (remainingNum > 0) |
| | | { |
| | | throw new UserFriendlyException($"åºä½ä¸è¶³ï¼è¿å·® {remainingNum} ä¸ªæ æ³åæ¾ï¼"); |
| | | } |
| | | |
| | | return availablePlaces; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¾åºå |
| | | /// </summary> |
| | | /// <param name="materialModel"></param> |
| | | /// <param name="requiredNum"></param> |
| | | /// <param name="materialNo"></param> |
| | | /// <returns></returns> |
| | | public async Task<Dictionary<WmsMaterialStockDto, int>> FindStockAsync(string materialModel, int requiredNum, string placeNo = "", PlaceTypeEnum placeType = PlaceTypeEnum.YUANLIAOKUWEI, string materialNo = "") |
| | | { |
| | | var allocation = new Dictionary<WmsMaterialStockDto, int>(); // <åºä½å·, åºåºæ°> |
| | | // 1. è·åææåºåï¼æé¤éå®åºåï¼ |
| | | var input = new GetWmsMaterialStockInput(); |
| | | var whereConditions = DynamicGetQueryParams(new GetWmsMaterialStockInput()); |
| | | var stockList = (await _wmsMaterialStockRepository.GetListAsync(whereConditions)) |
| | | .Where(x => x.IsLock == Domain.Shared.Enums.YesNoEnum.N) |
| | | .Where(x => x.StorageTypeNo == placeType) |
| | | .ToList(); |
| | | |
| | | if (!string.IsNullOrEmpty(placeNo)) |
| | | { |
| | | var stock = stockList.Where(x => x.PlaceNo == placeNo).FirstOrDefault(); |
| | | if (stock.StockNumber < requiredNum) |
| | | { |
| | | throw new UserFriendlyException($"åºä½{placeNo}åºåä¸è¶³,å¯ç¨: {stock.StockNumber}, 缺: {requiredNum - stock.StockNumber}"); |
| | | } |
| | | |
| | | allocation.Add(ObjectMapper.Map<WmsMaterialStock, WmsMaterialStockDto>(stock), requiredNum); |
| | | return allocation; |
| | | } |
| | | |
| | | // 2. çéå¹é
ç©æ |
| | | var availableStocklist = stockList |
| | | .Where(x => x.MaterialModel == materialModel) |
| | | .WhereIf(!string.IsNullOrEmpty(materialNo), x => x.MaterialNo == materialNo) |
| | | .OrderBy(x => x.StockNumber) // ä¼å
ä»åºåå°çåºä½åº |
| | | .ToList(); |
| | | |
| | | var availableStocks = ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(availableStocklist); |
| | | |
| | | // 3. æ£æ¥æ»åºåæ¯å¦è¶³å¤ |
| | | int totalAvailable = availableStocks.Sum(x => x.StockNumber); |
| | | if (totalAvailable < requiredNum) |
| | | { |
| | | throw new UserFriendlyException( |
| | | $"åºåä¸è¶³ï¼éæ±: {requiredNum}, å¯ç¨: {totalAvailable}, 缺: {requiredNum - totalAvailable}"); |
| | | } |
| | | |
| | | // 4. 计ç®ååºä½åºåºæ°é |
| | | int remaining = requiredNum; |
| | | |
| | | foreach (var stock in availableStocks) |
| | | { |
| | | if (remaining <= 0) break; |
| | | |
| | | int deductAmount = Math.Min(stock.StockNumber, remaining); |
| | | allocation.Add(stock, deductAmount); |
| | | remaining -= deductAmount; |
| | | } |
| | | |
| | | return allocation; |
| | | } |
| | | |
| | | private FunReturnResultModel<Expression<Func<WmsMaterialStock, bool>>> DynamicGetQueryParams(GetWmsMaterialStockInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterialStock, GetWmsMaterialStockInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsMaterialStock, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsMaterialStock, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ£ååºå |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsMaterialStockDto>> ReduceMaterialStockAsync(ReduceStockInput input) |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | var materialModel = await _wmsMaterialRepository.FindByModelAsync(input.MaterialModel); |
| | | if (materialModel == null) |
| | | { |
| | | throw new UserFriendlyException("ç©æåå·ä¸åå¨"); |
| | | } |
| | | var placeInfo = await _wmsPlaceRepository.FindByNameAsync(input.PlaceNo); |
| | | if (placeInfo == null) |
| | | { |
| | | throw new UserFriendlyException("åºä½ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | var stockresult = await FindStockAsync(input.MaterialModel, input.StockNumber, input.PlaceNo, placeInfo.StorageTypeNo); |
| | | if (stockresult == null) |
| | | { |
| | | throw new UserFriendlyException("å½åæ åºå"); |
| | | } |
| | | var recordList = new List<WmsInOutStockRecord>(); |
| | | var delStock = new List<WmsMaterialStock>(); |
| | | foreach (var kvp in stockresult) |
| | | { |
| | | var stock = kvp.Key; // WmsPlace对象 |
| | | var quantity = kvp.Value; // åé
æ°é |
| | | |
| | | // æ£ååºå |
| | | var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = input.MaterialModel, PlaceNo = stock.PlaceNo }); |
| | | var reduceStockList = stockList.OrderBy(x => x.InStockTime).Take(quantity).ToList(); |
| | | delStock.AddRange(reduceStockList); |
| | | |
| | | // åºå
¥åºè®°å½ |
| | | foreach (var item in reduceStockList) |
| | | { |
| | | var record = new WmsInOutStockRecord |
| | | { |
| | | TaskNo = string.IsNullOrEmpty(input.OrderNo) ? "Task_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") : input.OrderNo, |
| | | OrderNo = input.OrderNo, |
| | | StockType = StockTypeEnum.Move, |
| | | ContainerNo = item.ContainerNo, |
| | | MaterialId = item.MaterialId, |
| | | MaterialModel = item.MaterialModel, |
| | | MaterialName = item.MaterialName, |
| | | MaterialNo = item.MaterialNo, |
| | | MaterialBatch = item.MaterialBatch, |
| | | SourcePlace = item.PlaceNo, |
| | | ToPlace = "åºåº", |
| | | OperateTime = DateTime.Now, |
| | | Remark = "åºåºæ£å", |
| | | }; |
| | | recordList.Add(record); |
| | | } |
| | | } |
| | | await _wmsMaterialStockRepository.DeleteManyAsync(delStock); |
| | | await _wmsInOutStockRecordRepository.InsertManyAsync(recordList); |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | |
| | | var result = ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(delStock); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºå转移 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsMaterialStockDto>> MoveMaterialStock(MoveStockInput input) |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | var materialModel = await _wmsMaterialRepository.FindByModelAsync(input.MaterialModel); |
| | | if (materialModel == null) |
| | | { |
| | | throw new UserFriendlyException("ç©æåå·ä¸åå¨"); |
| | | } |
| | | |
| | | var placeInfo = await _wmsPlaceRepository.FindByNameAsync(input.SourcePlace); |
| | | if (placeInfo == null) |
| | | { |
| | | throw new UserFriendlyException("æ¥æºåºä½ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | var toPlace = await _wmsPlaceRepository.FindByNameAsync(input.ToPlace); |
| | | if (toPlace == null) |
| | | { |
| | | throw new UserFriendlyException("ç®æ åºä½ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | var stockresult = await FindStockAsync(input.MaterialModel, input.StockNumber, input.SourcePlace, placeInfo.StorageTypeNo); |
| | | if (stockresult == null) |
| | | { |
| | | throw new UserFriendlyException("å½åæ åºå"); |
| | | } |
| | | |
| | | var recordList = new List<WmsInOutStockRecord>(); |
| | | var result = new List<WmsMaterialStockDto>(); |
| | | foreach (var kvp in stockresult) |
| | | { |
| | | var stock = kvp.Key; // WmsPlace对象 |
| | | var quantity = kvp.Value; // åé
æ°é |
| | | |
| | | // æ£å转移 |
| | | var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = input.MaterialModel, PlaceNo = stock.PlaceNo }); |
| | | var reduceStockList = stockList.OrderBy(x => x.InStockTime).Take(quantity).ToList(); |
| | | |
| | | // åºå
¥åºè®°å½ |
| | | foreach (var item in reduceStockList) |
| | | { |
| | | var record = new WmsInOutStockRecord |
| | | { |
| | | TaskNo = string.IsNullOrEmpty(input.OrderNo) ? "Task_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") : input.OrderNo, |
| | | OrderNo = input.OrderNo, |
| | | StockType = StockTypeEnum.Move, |
| | | ContainerNo = item.ContainerNo, |
| | | MaterialId = item.MaterialId, |
| | | MaterialModel = item.MaterialModel, |
| | | MaterialName = item.MaterialName, |
| | | MaterialNo = item.MaterialNo, |
| | | MaterialBatch = item.MaterialBatch, |
| | | SourcePlace = item.PlaceNo, |
| | | ToPlace = input.ToPlace, |
| | | OperateTime = DateTime.Now, |
| | | Remark = "åºåºæ£å", |
| | | }; |
| | | recordList.Add(record); |
| | | item.PlaceNo = input.ToPlace; |
| | | } |
| | | |
| | | await _wmsMaterialStockRepository.UpdateManyAsync(reduceStockList); |
| | | await _wmsInOutStockRecordRepository.InsertManyAsync(recordList); |
| | | |
| | | result.AddRange(ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(reduceStockList)); |
| | | } |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | |
| | | return result; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CmsQueryExtensions; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsContainerAppService : CMSPluginAppService, IWmsContainerAppService |
| | | { |
| | | private readonly IWmsContainerRepository _wmscontainerRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmscontainerRepository">The task job repository.</param> |
| | | public WmsContainerAppService(IWmsContainerRepository wmscontainerRepository) |
| | | { |
| | | _wmscontainerRepository = wmscontainerRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsContainerDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsContainer, WmsContainerDto>(await _wmscontainerRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<PagedResultDto<WmsContainerDto>> GetListAsync(GetWmsContainerInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsContainer.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await _wmscontainerRepository.GetCountAsync(whereConditions); |
| | | var list = await _wmscontainerRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsContainerDto>(count, ObjectMapper.Map<List<WmsContainer>, List<WmsContainerDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsContainer, bool>>> DynamicGetQueryParams(GetWmsContainerInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsContainer, GetWmsContainerInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsContainer, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsContainer, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsContainerDto> CreateAsync(WmsContainerCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmscontainerRepository.NameExistAsync(input.ContainerNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.ContainerNo]); |
| | | } |
| | | |
| | | var maxSort = await _wmscontainerRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | var wmscontainer = ObjectMapper.Map<WmsContainerCreateDto,WmsContainer>(input); |
| | | input.MapExtraPropertiesTo(wmscontainer, MappingPropertyDefinitionChecks.None); |
| | | wmscontainer.Sort = sort; |
| | | await _wmscontainerRepository.InsertAsync(wmscontainer); |
| | | |
| | | if (input.Sort.HasValue && wmscontainer.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmscontainer.Id, wmscontainer.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsContainer, WmsContainerDto>(wmscontainer); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsContainerDto> UpdateAsync(Guid id, WmsContainerUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmscontainer = await _wmscontainerRepository.GetAsync(id); |
| | | var exist = await _wmscontainerRepository.NameExistAsync(input.ContainerNo, wmscontainer.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.ContainerNo]); |
| | | } |
| | | |
| | | wmscontainer.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmscontainer, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmscontainer.ContainerStatus = input.ContainerStatus; |
| | | wmscontainer.ContainerType = input.ContainerType; |
| | | wmscontainer.SpecLength = input.SpecLength; |
| | | wmscontainer.SpecWidth = input.SpecWidth; |
| | | wmscontainer.SpecHeight = input.SpecHeight; |
| | | wmscontainer.LimitLength = input.LimitLength; |
| | | wmscontainer.LimitWidth = input.LimitWidth; |
| | | wmscontainer.LimitHeight = input.LimitHeight; |
| | | wmscontainer.MaxWeight = input.MaxWeight; |
| | | wmscontainer.MaterialNumber = input.MaterialNumber; |
| | | wmscontainer.ExceptionNumber = input.ExceptionNumber; |
| | | |
| | | await _wmscontainerRepository.UpdateAsync(wmscontainer); |
| | | |
| | | return ObjectMapper.Map<WmsContainer, WmsContainerDto>(wmscontainer); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsContainerDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | var wmscontainers = new List<WmsContainer>(); |
| | | if (ids != null) |
| | | { |
| | | var sort = await _wmscontainerRepository.GetMaxSortAsync(); |
| | | foreach (var id in ids) |
| | | { |
| | | var wmscontainer = await _wmscontainerRepository.FindAsync(id); |
| | | if (wmscontainer != null) |
| | | { |
| | | var containerNo = wmscontainer.ContainerNo + WmsContainerConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmscontainerRepository.NameExistAsync(containerNo); |
| | | if (exist || wmscontainers.Any(x => x.ContainerNo == containerNo)) |
| | | { |
| | | containerNo += WmsContainerConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | //wmscontainer = await _wmscontainerRepository.InsertAsync(wmscontainer.Clone(GuidGenerator.Create(), containerNo, sort++)); |
| | | wmscontainers.Add(wmscontainer); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ObjectMapper.Map<List<WmsContainer>, List<WmsContainerDto>>(wmscontainers); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmscontainerRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmscontainerRepository.GetListAsync(null,nameof(WmsContainer.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmscontainerRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsContainersImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmscontainerCreateDtos = new List<(int RowIndex, WmsContainerCreateDto Item)>(); |
| | | var wmscontainerUpdateDtos = new List<(int RowIndex, Guid Id, WmsContainerUpdateDto Item)>(); |
| | | var wmscontainers = input.WmsContainers; |
| | | |
| | | if (wmscontainers != null && wmscontainers.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsContainers = wmscontainers.GroupBy(x => x.ContainerNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsContainers?.Any() == true) |
| | | { |
| | | var duplicateWmsContainerMsgs = duplicateWmsContainers.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsContainerMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmscontainer in wmscontainers) |
| | | { |
| | | if (wmscontainer.ContainerNo.IsNullOrWhiteSpace() && wmscontainer.ContainerNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmscontainer.ContainerNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmscontainer.RowIndex}è¡ï¼WmsContaineråç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsContainer = await _wmscontainerRepository.FindByNameAsync(wmscontainer.ContainerNo); |
| | | if (oldWmsContainer != null) |
| | | { |
| | | var wmscontainerUpdateDto = new WmsContainerUpdateDto |
| | | { |
| | | ContainerNo = wmscontainer.ContainerNo, |
| | | ContainerType = wmscontainer.ContainerType, |
| | | ContainerStatus = wmscontainer.ContainerStatus, |
| | | SpecLength = wmscontainer.SpecLength, |
| | | SpecWidth = wmscontainer.SpecWidth, |
| | | SpecHeight = wmscontainer.SpecHeight, |
| | | LimitLength = wmscontainer.LimitLength, |
| | | LimitWidth = wmscontainer.LimitWidth, |
| | | LimitHeight = wmscontainer.LimitHeight, |
| | | MaxWeight = wmscontainer.MaxWeight, |
| | | Remark = wmscontainer.Remark, |
| | | }; |
| | | |
| | | wmscontainerUpdateDtos.Add((wmscontainer.RowIndex, oldWmsContainer.Id, wmscontainerUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmscontainerCreateDto = new WmsContainerCreateDto |
| | | { |
| | | ContainerNo = wmscontainer.ContainerNo, |
| | | ContainerType = wmscontainer.ContainerType, |
| | | ContainerStatus = wmscontainer.ContainerStatus, |
| | | SpecLength = wmscontainer.SpecLength, |
| | | SpecWidth = wmscontainer.SpecWidth, |
| | | SpecHeight = wmscontainer.SpecHeight, |
| | | LimitLength = wmscontainer.LimitLength, |
| | | LimitWidth = wmscontainer.LimitWidth, |
| | | LimitHeight = wmscontainer.LimitHeight, |
| | | MaxWeight = wmscontainer.MaxWeight, |
| | | Remark = wmscontainer.Remark |
| | | }; |
| | | |
| | | wmscontainerCreateDtos.Add((wmscontainer.RowIndex, wmscontainerCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmscontainerDto in wmscontainerCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmscontainerDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmscontainerDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmscontainerDto in wmscontainerUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmscontainerDto.Id, wmscontainerDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmscontainerDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | /// <summary> |
| | | /// å¯¼åºæç管ç |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsContainerInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsContainer.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var list = await _wmscontainerRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsContainer>, List<WmsContainerDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = "æç管ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsContainerCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.ContainerNo, "ç¼å·", WmsContainerConsts.MaxCodeLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsContainerConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CmsQueryExtensions; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainerPlace; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»åºç¨æå¡ |
| | | /// </summary> |
| | | public class WmsContainerPlaceAppService : CMSPluginAppService, IWmsContainerPlaceAppService |
| | | { |
| | | private readonly IWmsContainerPlaceRepository wmsContainerPlaceRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerPlaceAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="WmsContainerPlaceRepository">The task job repository.</param> |
| | | public WmsContainerPlaceAppService(IWmsContainerPlaceRepository _WmsContainerPlaceRepository) |
| | | { |
| | | wmsContainerPlaceRepository = _WmsContainerPlaceRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæå®åºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsContainerPlaceDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsContainerPlace, WmsContainerPlaceDto>(await wmsContainerPlaceRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·ååºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<WmsContainerPlaceDto>> GetListAsync(GetWmsContainerPlaceInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsContainerPlace.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await wmsContainerPlaceRepository.GetCountAsync(whereConditions); |
| | | var list = await wmsContainerPlaceRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsContainerPlaceDto>(count, ObjectMapper.Map<List<WmsContainerPlace>, List<WmsContainerPlaceDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsContainerPlace, bool>>> DynamicGetQueryParams(GetWmsContainerPlaceInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsContainerPlace, GetWmsContainerPlaceInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsContainerPlace, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsContainerPlace, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ°å»ºåºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsContainerPlaceDto> CreateAsync(WmsContainerPlaceCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await wmsContainerPlaceRepository.NameExistAsync(input.PlaceNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.PlaceNo]); |
| | | } |
| | | |
| | | var maxSort = await wmsContainerPlaceRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | var insertObj = ObjectMapper.Map<WmsContainerPlaceCreateDto, WmsContainerPlace>(input); |
| | | insertObj.Sort = sort; |
| | | input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await wmsContainerPlaceRepository.InsertAsync(insertObj); |
| | | |
| | | //if (input.Sort.HasValue && insertObj.Sort != maxSort) |
| | | //{ |
| | | // await AdjustSortAsync(insertObj.Id, insertObj.Sort); |
| | | //} |
| | | |
| | | return ObjectMapper.Map<WmsContainerPlace, WmsContainerPlaceDto>(insertObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°åºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsContainerPlaceDto> UpdateAsync(Guid id, WmsContainerPlaceUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var updateObj = await wmsContainerPlaceRepository.GetAsync(id); |
| | | var exist = await wmsContainerPlaceRepository.NameExistAsync(input.PlaceNo, updateObj.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.PlaceNo]); |
| | | } |
| | | |
| | | updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | updateObj.PlaceNo = input.PlaceNo; |
| | | updateObj.ContainerNo = input.ContainerNo; |
| | | updateObj.IsDisabled = input.IsDisabled; |
| | | updateObj.Remark = input.Remark; |
| | | updateObj.CreatorName = input.CreatorName; |
| | | updateObj.DeleteRemark = input.DeleteRemark; |
| | | updateObj.ExtraField1 = input.ExtraField1; |
| | | updateObj.ExtraField2 = input.ExtraField2; |
| | | updateObj.ExtraField3 = input.ExtraField3; |
| | | updateObj.LastModifierName = input.LastModifierName; |
| | | updateObj.OperationRemark = input.OperationRemark; |
| | | |
| | | |
| | | await wmsContainerPlaceRepository.UpdateAsync(updateObj); |
| | | |
| | | return ObjectMapper.Map<WmsContainerPlace, WmsContainerPlaceDto>(updateObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éåºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsContainerPlaceDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | //var wmsContainerPlaces = new List<WmsContainerPlace>(); |
| | | //if (ids != null) |
| | | //{ |
| | | // var sort = await wmsContainerPlaceRepository.GetMaxSortAsync(); |
| | | // foreach (var id in ids) |
| | | // { |
| | | // var WmsContainerPlace = await wmsContainerPlaceRepository.FindAsync(id); |
| | | // if (WmsContainerPlace != null) |
| | | // { |
| | | // var name = WmsContainerPlace.Name + WmsContainerPlaceConsts.CloneTag; |
| | | // var notExist = false; |
| | | // while (!notExist) |
| | | // { |
| | | // var exist = await wmsContainerPlaceRepository.NameExistAsync(name); |
| | | // if (exist || wmsContainerPlaces.Any(x => x.Name == name)) |
| | | // { |
| | | // name += WmsContainerPlaceConsts.CloneTag; |
| | | // continue; |
| | | // } |
| | | |
| | | // notExist = true; |
| | | // } |
| | | |
| | | // //WmsContainerPlace = await wmsContainerPlaceRepository.InsertAsync(WmsContainerPlace.Clone(GuidGenerator.Create(), name, sort++)); |
| | | // wmsContainerPlaces.Add(WmsContainerPlace); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //return ObjectMapper.Map<List<WmsContainerPlace>, List<WmsContainerPlaceDto>>(wmsContainerPlaces); |
| | | return new List<WmsContainerPlaceDto>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å个åºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return wmsContainerPlaceRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤ä¸ªåºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºåºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await wmsContainerPlaceRepository.GetListAsync(null, nameof(WmsContainerPlace.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await wmsContainerPlaceRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥åºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task ImportAsync(WmsContainerPlacesImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsContainerPlaceCreateDtos = new List<(int RowIndex, WmsContainerPlaceCreateDto Item)>(); |
| | | var wmsContainerPlaceUpdateDtos = new List<(int RowIndex, Guid Id, WmsContainerPlaceUpdateDto Item)>(); |
| | | var importItems = input.WmsContainerPlaces; |
| | | |
| | | if (importItems != null && importItems.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsContainerPlaces = importItems.GroupBy(x => x.PlaceNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsContainerPlaces?.Any() == true) |
| | | { |
| | | var duplicateWmsContainerPlaceMsgs = duplicateWmsContainerPlaces.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsContainerPlaceMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var impItem in importItems) |
| | | { |
| | | if (impItem.PlaceNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (impItem.PlaceNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{impItem.RowIndex}è¡ï¼WmsContainerPlaceåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsContainerPlace = await wmsContainerPlaceRepository.FindByNameAsync(impItem.PlaceNo); |
| | | if (oldWmsContainerPlace != null) |
| | | { |
| | | var wmsContainerPlaceUpdateDto = new WmsContainerPlaceUpdateDto |
| | | { |
| | | PlaceNo = impItem.PlaceNo, |
| | | ContainerNo = impItem.ContainerNo, |
| | | BindTime = impItem.BindTime, |
| | | IsDisabled = impItem.IsDisabled, |
| | | Remark = impItem.Remark, |
| | | CreatorName = impItem.CreatorName, |
| | | DeleteRemark = impItem.DeleteRemark, |
| | | ExtraField1 = impItem.ExtraField1, |
| | | ExtraField2 = impItem.ExtraField2, |
| | | ExtraField3 = impItem.ExtraField3, |
| | | LastModifierName = impItem.LastModifierName, |
| | | OperationRemark = impItem.OperationRemark, |
| | | |
| | | }; |
| | | |
| | | wmsContainerPlaceUpdateDtos.Add((impItem.RowIndex, oldWmsContainerPlace.Id, wmsContainerPlaceUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsContainerPlaceCreateDto = new WmsContainerPlaceCreateDto |
| | | { |
| | | PlaceNo = impItem.PlaceNo, |
| | | ContainerNo = impItem.ContainerNo, |
| | | BindTime = impItem.BindTime, |
| | | IsDisabled = impItem.IsDisabled, |
| | | Remark = impItem.Remark, |
| | | CreatorName = impItem.CreatorName, |
| | | DeleteRemark = impItem.DeleteRemark, |
| | | ExtraField1 = impItem.ExtraField1, |
| | | ExtraField2 = impItem.ExtraField2, |
| | | ExtraField3 = impItem.ExtraField3, |
| | | LastModifierName = impItem.LastModifierName, |
| | | OperationRemark = impItem.OperationRemark, |
| | | |
| | | }; |
| | | |
| | | wmsContainerPlaceCreateDtos.Add((impItem.RowIndex, wmsContainerPlaceCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsContainerPlaceDto in wmsContainerPlaceCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsContainerPlaceDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsContainerPlaceDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsContainerPlaceDto in wmsContainerPlaceUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsContainerPlaceDto.Id, wmsContainerPlaceDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsContainerPlaceDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºåºä½å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsContainerPlaceInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsContainerPlace.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | var list = await wmsContainerPlaceRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsContainerPlace>, List<WmsContainerPlaceDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "åºä½å®¹å¨å
³ç³»å表" : result.Count == 1 ? result[0]?.PlaceNo : "WmsContainerPlace模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¡éªåºä½å®¹å¨å
³ç³»ï¼å½æ°å»ºææ´æ°æ¶ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsContainerPlaceCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.PlaceNo, "åºä½ç¼ç ", 50); |
| | | Check.NotNullOrWhiteSpace(input.ContainerNo, "ç¼ç ", 64); |
| | | Check.NotNull(input.BindTime, "åç§°"); |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialTypes; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.WmsStores; |
| | | using CmsQueryExtensions; |
| | | using CmsQueryExtensions.Extension; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Linq.Expressions; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialTypes; |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea.WmsAreaCreateOrUpdateDtoBase; |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace.WmsPlaceCreateOrUpdateDtoBase; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾ç±»åæ¥å£å®ç° |
| | | /// </summary> |
| | | public class WmsEnumAppService : CMSPluginAppService, IWmsEnumAppService |
| | | { |
| | | private readonly IWmsStoreRepository _storeRepository; |
| | | private readonly IWmsAreaRepository _wmsAreaRepository; |
| | | private readonly IWmsPlaceRepository _wmsPlaceRepository; |
| | | private readonly IWmsMaterialRepository _wmsMaterialRepository; |
| | | private readonly IWmsMaterialTypeRepository _WmsMaterialTypeRepository; |
| | | |
| | | public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository, IWmsPlaceRepository wmsPlaceRepository, IWmsMaterialRepository wmsMaterialRepository, IWmsMaterialTypeRepository wmsMaterialTypeRepository) |
| | | { |
| | | _storeRepository = storeRepository; |
| | | _wmsAreaRepository = wmsAreaRepository; |
| | | _wmsPlaceRepository = wmsPlaceRepository; |
| | | _wmsMaterialRepository = wmsMaterialRepository; |
| | | _WmsMaterialTypeRepository = wmsMaterialTypeRepository; |
| | | } |
| | | |
| | | public List<EnumItem> GetEnumDataList(WmsEnumInput enumInput) |
| | | { |
| | | return EnumHelper.GetEnumItems(enumInput.EnumName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åä»åºå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsStoreForAreaOutpur>> GetStreList() |
| | | { |
| | | var list = await _storeRepository.GetListForSelectAsync(); |
| | | if (list == null || list.Count <= 0) { return new List<WmsStoreForAreaOutpur>(); } |
| | | |
| | | var result = list.Select(x => new WmsStoreForAreaOutpur |
| | | { |
| | | StoreCode = x.StoreCode, |
| | | StoreName = x.StoreName, |
| | | }).ToList(); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<List<AreaForListOuptut>> GetAreaListAsync() |
| | | { |
| | | var list = await _wmsAreaRepository.GetListForSelectAsync(); |
| | | if (list == null || list.Count <= 0) { return new List<AreaForListOuptut>(); } |
| | | var result = list.Select(x => new AreaForListOuptut |
| | | { |
| | | AreaName = x.AreaName, |
| | | AreaNo = x.AreaNo, |
| | | }).ToList(); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å··éå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<List<PlaceAisleForListOuptut>> GetAisleListAsync() |
| | | { |
| | | var list = await _wmsPlaceRepository.GetAisleListForSelectAsync(); |
| | | if (list == null || list.Count <= 0) { return new List<PlaceAisleForListOuptut>(); } |
| | | |
| | | var result = list.Select(x => new PlaceAisleForListOuptut |
| | | { |
| | | Aisle = x.Aisle, |
| | | AisleName = $"第{x.Aisle}å··é", |
| | | }).ToList(); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæºå |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<List<MaterialModelOutput>> GetMaterialModeListAsync() |
| | | { |
| | | var materialList = await _wmsMaterialRepository.GetMaterialListAsync(new WmsMaterial()); |
| | | if (materialList == null || materialList.Count <= 0) return new List<MaterialModelOutput>(); |
| | | |
| | | return materialList.Select(material => new MaterialModelOutput |
| | | { |
| | | MaterialModel = material.MaterialModel, |
| | | MaterialModelDesc = material.MaterialModel |
| | | }).ToList(); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// è·ååºåºå表 |
| | | /// </summary> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<PlaceListOutput>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType) |
| | | { |
| | | var placeList = await _wmsPlaceRepository.GetPlaceListForSelectAsync(placeType); |
| | | if (placeList == null || placeList.Count <= 0) return new List<PlaceListOutput>(); ; |
| | | |
| | | return placeList.Select(place => new PlaceListOutput |
| | | { |
| | | PlaceNo = place.PlaceNo, |
| | | PlaceNoDesc = place.PlaceNo |
| | | }).ToList(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åç±»åå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<List<MaterialTypeOutput>> GetMaterialTypeListAsync() |
| | | { |
| | | var queryInput = new GetWmsMaterialTypeInput(); |
| | | var whereConditions = DynamicGetQueryParams(queryInput); |
| | | var list = await _WmsMaterialTypeRepository.GetListAsync(whereConditions); |
| | | |
| | | var result = new List<MaterialTypeOutput>(); |
| | | if (list == null || list.Count <= 0) return result; |
| | | |
| | | result = list.Select(x => new MaterialTypeOutput |
| | | { |
| | | MaterialTypeCode = x.MaterialTypeCode, |
| | | MaterialTypeDesc = x.MaterialTypeDesc, |
| | | }).ToList(); |
| | | return result; |
| | | } |
| | | |
| | | private FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> DynamicGetQueryParams(GetWmsMaterialTypeInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterialType, GetWmsMaterialTypeInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsMaterialType, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsMaterialType, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CmsQueryExtensions; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®åºç¨æå¡ |
| | | /// </summary> |
| | | public class WmsInOutStockOrderAppService : CMSPluginAppService, IWmsInOutStockOrderAppService |
| | | { |
| | | private readonly IWmsInOutStockOrderRepository wmsInOutStockOrderRepository; |
| | | private readonly IWmsMaterialRepository _wmsMaterialRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsInOutStockOrderAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="WmsInOutStockOrderRepository">The task job repository.</param> |
| | | public WmsInOutStockOrderAppService(IWmsInOutStockOrderRepository _WmsInOutStockOrderRepository, IWmsMaterialRepository wmsMaterialRepository) |
| | | { |
| | | wmsInOutStockOrderRepository = _WmsInOutStockOrderRepository; |
| | | _wmsMaterialRepository = wmsMaterialRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæå®åºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsInOutStockOrderDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsInOutStockOrder, WmsInOutStockOrderDto>(await wmsInOutStockOrderRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·ååºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<WmsInOutStockOrderDto>> GetListAsync(GetWmsInOutStockOrderInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsInOutStockOrder.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await wmsInOutStockOrderRepository.GetCountAsync(whereConditions); |
| | | var list = await wmsInOutStockOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsInOutStockOrderDto>(count, ObjectMapper.Map<List<WmsInOutStockOrder>, List<WmsInOutStockOrderDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> DynamicGetQueryParams(GetWmsInOutStockOrderInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsInOutStockOrder, GetWmsInOutStockOrderInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsInOutStockOrder, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsInOutStockOrder, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ°å»ºåºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsInOutStockOrderDto> CreateAsync(WmsInOutStockOrderCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var material = await _wmsMaterialRepository.FindByNameAsync(input.MaterialNo); |
| | | if (material == null) |
| | | { |
| | | throw new UserFriendlyException("ç©æä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | |
| | | var exist = await wmsInOutStockOrderRepository.NameExistAsync(input.OrderNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.OrderNo]); |
| | | } |
| | | |
| | | var maxSort = await wmsInOutStockOrderRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | var maxPriority = await wmsInOutStockOrderRepository.GetMaxPriorityAsync(); |
| | | var priority = input.Priority > 0 ? input.Priority : maxPriority; |
| | | |
| | | var insertObj = ObjectMapper.Map<WmsInOutStockOrderCreateDto, WmsInOutStockOrder>(input); |
| | | insertObj.MaterialName = material.MaterialName; |
| | | insertObj.MaterialModel = material.MaterialModel; |
| | | insertObj.OrderStatus = Domain.Shared.Enums.OrderStatusEnum.NoStart; |
| | | |
| | | var type = "RK-"; |
| | | insertObj.StockType = Domain.Shared.Enums.StockTypeEnum.InBound; |
| | | if (input.OrderType == Domain.Shared.Enums.OrderTypeEnum.PRODUCTCALL || input.OrderType == Domain.Shared.Enums.OrderTypeEnum.PERSONOT) |
| | | { |
| | | type = "CK-"; |
| | | insertObj.StockType = Domain.Shared.Enums.StockTypeEnum.OutBound; |
| | | } |
| | | insertObj.OrderNo = string.IsNullOrEmpty(input.OrderNo) ? type + DateTime.Now.ToString("yyyyMMddHHmmssfff") : input.OrderNo; |
| | | insertObj.Sort = sort; |
| | | insertObj.Priority = priority; |
| | | input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await wmsInOutStockOrderRepository.InsertAsync(insertObj); |
| | | |
| | | //if (input.Sort.HasValue && insertObj.Sort != maxSort) |
| | | //{ |
| | | // await AdjustSortAsync(insertObj.Id, insertObj.Sort); |
| | | //} |
| | | |
| | | return ObjectMapper.Map<WmsInOutStockOrder, WmsInOutStockOrderDto>(insertObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°åºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsInOutStockOrderDto> UpdateAsync(Guid id, WmsInOutStockOrderUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var updateObj = await wmsInOutStockOrderRepository.GetAsync(id); |
| | | var exist = await wmsInOutStockOrderRepository.NameExistAsync(input.OrderNo, updateObj.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.OrderNo]); |
| | | } |
| | | |
| | | updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | updateObj.OrderNo = input.OrderNo; |
| | | updateObj.OrderStatus = input.OrderStatus; |
| | | updateObj.MaterialName = input.MaterialName; |
| | | updateObj.MaterialNo = input.MaterialNo; |
| | | updateObj.MaterialModel = input.MaterialModel; |
| | | updateObj.MaterialBatch = input.MaterialBatch; |
| | | updateObj.OrderType = input.OrderType; |
| | | updateObj.StockType = input.StockType; |
| | | updateObj.MaterialNumber = input.MaterialNumber; |
| | | updateObj.DistributeNumber = input.DistributeNumber; |
| | | updateObj.CompleteNumber = input.CompleteNumber; |
| | | updateObj.Priority = input.Priority; |
| | | updateObj.PlanNo = input.PlanNo; |
| | | updateObj.OperateTime = input.OperateTime; |
| | | updateObj.Remark = input.Remark; |
| | | updateObj.IsDisabled = input.IsDisabled; |
| | | |
| | | |
| | | await wmsInOutStockOrderRepository.UpdateAsync(updateObj); |
| | | |
| | | return ObjectMapper.Map<WmsInOutStockOrder, WmsInOutStockOrderDto>(updateObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éåºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsInOutStockOrderDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | //var wmsInOutStockOrders = new List<WmsInOutStockOrder>(); |
| | | //if (ids != null) |
| | | //{ |
| | | // var sort = await wmsInOutStockOrderRepository.GetMaxSortAsync(); |
| | | // foreach (var id in ids) |
| | | // { |
| | | // var WmsInOutStockOrder = await wmsInOutStockOrderRepository.FindAsync(id); |
| | | // if (WmsInOutStockOrder != null) |
| | | // { |
| | | // var name = WmsInOutStockOrder.Name + WmsInOutStockOrderConsts.CloneTag; |
| | | // var notExist = false; |
| | | // while (!notExist) |
| | | // { |
| | | // var exist = await wmsInOutStockOrderRepository.NameExistAsync(name); |
| | | // if (exist || wmsInOutStockOrders.Any(x => x.Name == name)) |
| | | // { |
| | | // name += WmsInOutStockOrderConsts.CloneTag; |
| | | // continue; |
| | | // } |
| | | |
| | | // notExist = true; |
| | | // } |
| | | |
| | | // //WmsInOutStockOrder = await wmsInOutStockOrderRepository.InsertAsync(WmsInOutStockOrder.Clone(GuidGenerator.Create(), name, sort++)); |
| | | // wmsInOutStockOrders.Add(WmsInOutStockOrder); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //return ObjectMapper.Map<List<WmsInOutStockOrder>, List<WmsInOutStockOrderDto>>(wmsInOutStockOrders); |
| | | return new List<WmsInOutStockOrderDto>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å个åºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task DeleteAsync(Guid id) |
| | | { |
| | | var order = await wmsInOutStockOrderRepository.GetAsync(id); |
| | | if(order != null && order.OrderStatus != Domain.Shared.Enums.OrderStatusEnum.NoStart) |
| | | { |
| | | throw new UserFriendlyException("åªè½å 餿ªå¼å§çåæ®"); |
| | | } |
| | | await wmsInOutStockOrderRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤ä¸ªåºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºåºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await wmsInOutStockOrderRepository.GetListAsync(null, nameof(WmsInOutStockOrder.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await wmsInOutStockOrderRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥åºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task ImportAsync(WmsInOutStockOrdersImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsInOutStockOrderCreateDtos = new List<(int RowIndex, WmsInOutStockOrderCreateDto Item)>(); |
| | | var wmsInOutStockOrderUpdateDtos = new List<(int RowIndex, Guid Id, WmsInOutStockOrderUpdateDto Item)>(); |
| | | var importItems = input.WmsInOutStockOrders; |
| | | |
| | | if (importItems != null && importItems.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsInOutStockOrders = importItems.GroupBy(x => x.OrderNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsInOutStockOrders?.Any() == true) |
| | | { |
| | | var duplicateWmsInOutStockOrderMsgs = duplicateWmsInOutStockOrders.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsInOutStockOrderMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var impItem in importItems) |
| | | { |
| | | if (impItem.OrderNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (impItem.OrderNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{impItem.RowIndex}è¡ï¼WmsInOutStockOrderåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsInOutStockOrder = await wmsInOutStockOrderRepository.FindByNameAsync(impItem.OrderNo); |
| | | if (oldWmsInOutStockOrder != null) |
| | | { |
| | | var wmsInOutStockOrderUpdateDto = new WmsInOutStockOrderUpdateDto |
| | | { |
| | | OrderNo = impItem.OrderNo, |
| | | OrderStatus = impItem.OrderStatus, |
| | | MaterialName = impItem.MaterialName, |
| | | MaterialNo = impItem.MaterialNo, |
| | | MaterialModel = impItem.MaterialModel, |
| | | MaterialBatch = impItem.MaterialBatch, |
| | | OrderType = impItem.OrderType, |
| | | StockType = impItem.StockType, |
| | | MaterialNumber = impItem.MaterialNumber, |
| | | DistributeNumber = impItem.DistributeNumber, |
| | | CompleteNumber = impItem.CompleteNumber, |
| | | Priority = impItem.Priority, |
| | | PlanNo = impItem.PlanNo, |
| | | OperateTime = impItem.OperateTime, |
| | | Remark = impItem.Remark, |
| | | IsDisabled = impItem.IsDisabled, |
| | | |
| | | }; |
| | | |
| | | wmsInOutStockOrderUpdateDtos.Add((impItem.RowIndex, oldWmsInOutStockOrder.Id, wmsInOutStockOrderUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsInOutStockOrderCreateDto = new WmsInOutStockOrderCreateDto |
| | | { |
| | | OrderNo = impItem.OrderNo, |
| | | OrderStatus = impItem.OrderStatus, |
| | | MaterialName = impItem.MaterialName, |
| | | MaterialNo = impItem.MaterialNo, |
| | | MaterialModel = impItem.MaterialModel, |
| | | MaterialBatch = impItem.MaterialBatch, |
| | | OrderType = impItem.OrderType, |
| | | StockType = impItem.StockType, |
| | | MaterialNumber = impItem.MaterialNumber, |
| | | DistributeNumber = impItem.DistributeNumber, |
| | | CompleteNumber = impItem.CompleteNumber, |
| | | Priority = impItem.Priority, |
| | | PlanNo = impItem.PlanNo, |
| | | OperateTime = impItem.OperateTime, |
| | | Remark = impItem.Remark, |
| | | IsDisabled = impItem.IsDisabled, |
| | | |
| | | }; |
| | | |
| | | wmsInOutStockOrderCreateDtos.Add((impItem.RowIndex, wmsInOutStockOrderCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsInOutStockOrderDto in wmsInOutStockOrderCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsInOutStockOrderDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsInOutStockOrderDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsInOutStockOrderDto in wmsInOutStockOrderUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsInOutStockOrderDto.Id, wmsInOutStockOrderDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsInOutStockOrderDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºåºå
¥åºåæ® |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsInOutStockOrder.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | var list = await wmsInOutStockOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsInOutStockOrder>, List<WmsInOutStockOrderDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "åºå
¥åºåæ®å表" : result.Count == 1 ? result[0]?.OrderNo : "WmsInOutStockOrder模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¡éªåºå
¥åºåæ®ï¼å½æ°å»ºææ´æ°æ¶ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockOrderCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.MaterialNo, "ç©æç¼å·", 50); |
| | | Check.NotNullOrWhiteSpace(input.MaterialBatch, "æ¹æ¬¡å·", 50); |
| | | Check.NotNull(input.OrderType, "åæ®ç±»å"); |
| | | Check.NotNull(input.StockType, "æä½ç±»å"); |
| | | Check.NotNull(input.MaterialNumber, "åæ®æ°é"); |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CmsQueryExtensions; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
åºç¨æå¡ |
| | | /// </summary> |
| | | public class WmsInOutStockOrderDetailAppService : CMSPluginAppService, IWmsInOutStockOrderDetailAppService |
| | | { |
| | | private readonly IWmsInOutStockOrderDetailRepository wmsInOutStockOrderDetailRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="WmsInOutStockOrderDetailRepository">The task job repository.</param> |
| | | public WmsInOutStockOrderDetailAppService(IWmsInOutStockOrderDetailRepository _WmsInOutStockOrderDetailRepository) |
| | | { |
| | | wmsInOutStockOrderDetailRepository = _WmsInOutStockOrderDetailRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæå®åºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsInOutStockOrderDetailDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(await wmsInOutStockOrderDetailRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·ååºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<WmsInOutStockOrderDetailDto>> GetListAsync(GetWmsInOutStockOrderDetailInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsInOutStockOrderDetail.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await wmsInOutStockOrderDetailRepository.GetCountAsync(whereConditions); |
| | | var list = await wmsInOutStockOrderDetailRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsInOutStockOrderDetailDto>(count, ObjectMapper.Map<List<WmsInOutStockOrderDetail>, List<WmsInOutStockOrderDetailDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> DynamicGetQueryParams(GetWmsInOutStockOrderDetailInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsInOutStockOrderDetail, GetWmsInOutStockOrderDetailInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsInOutStockOrderDetail, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsInOutStockOrderDetail, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ°å»ºåºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsInOutStockOrderDetailDto> CreateAsync(WmsInOutStockOrderDetailCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await wmsInOutStockOrderDetailRepository.NameExistAsync(input.MaterialId); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]); |
| | | } |
| | | |
| | | var maxSort = await wmsInOutStockOrderDetailRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | var insertObj = ObjectMapper.Map<WmsInOutStockOrderDetailCreateDto, WmsInOutStockOrderDetail>(input); |
| | | insertObj.Sort = sort; |
| | | input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await wmsInOutStockOrderDetailRepository.InsertAsync(insertObj); |
| | | |
| | | //if (input.Sort.HasValue && insertObj.Sort != maxSort) |
| | | //{ |
| | | // await AdjustSortAsync(insertObj.Id, insertObj.Sort); |
| | | //} |
| | | |
| | | return ObjectMapper.Map<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(insertObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°åºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsInOutStockOrderDetailDto> UpdateAsync(Guid id, WmsInOutStockOrderDetailUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var updateObj = await wmsInOutStockOrderDetailRepository.GetAsync(id); |
| | | var exist = await wmsInOutStockOrderDetailRepository.NameExistAsync(input.MaterialId, updateObj.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]); |
| | | } |
| | | |
| | | updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | updateObj.OrderNo = input.OrderNo; |
| | | updateObj.MaterialId = input.MaterialId; |
| | | updateObj.OrderType = input.OrderType; |
| | | updateObj.MaterialNo = input.MaterialNo; |
| | | updateObj.MaterialName = input.MaterialName; |
| | | updateObj.ContainerNo = input.ContainerNo; |
| | | updateObj.MaterialModel = input.MaterialModel; |
| | | updateObj.MaterialBatch = input.MaterialBatch; |
| | | updateObj.IsDisabled = input.IsDisabled; |
| | | updateObj.Remark = input.Remark; |
| | | |
| | | |
| | | await wmsInOutStockOrderDetailRepository.UpdateAsync(updateObj); |
| | | |
| | | return ObjectMapper.Map<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(updateObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éåºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsInOutStockOrderDetailDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | //var wmsInOutStockOrderDetails = new List<WmsInOutStockOrderDetail>(); |
| | | //if (ids != null) |
| | | //{ |
| | | // var sort = await wmsInOutStockOrderDetailRepository.GetMaxSortAsync(); |
| | | // foreach (var id in ids) |
| | | // { |
| | | // var WmsInOutStockOrderDetail = await wmsInOutStockOrderDetailRepository.FindAsync(id); |
| | | // if (WmsInOutStockOrderDetail != null) |
| | | // { |
| | | // var name = WmsInOutStockOrderDetail.Name + WmsInOutStockOrderDetailConsts.CloneTag; |
| | | // var notExist = false; |
| | | // while (!notExist) |
| | | // { |
| | | // var exist = await wmsInOutStockOrderDetailRepository.NameExistAsync(name); |
| | | // if (exist || wmsInOutStockOrderDetails.Any(x => x.Name == name)) |
| | | // { |
| | | // name += WmsInOutStockOrderDetailConsts.CloneTag; |
| | | // continue; |
| | | // } |
| | | |
| | | // notExist = true; |
| | | // } |
| | | |
| | | // //WmsInOutStockOrderDetail = await wmsInOutStockOrderDetailRepository.InsertAsync(WmsInOutStockOrderDetail.Clone(GuidGenerator.Create(), name, sort++)); |
| | | // wmsInOutStockOrderDetails.Add(WmsInOutStockOrderDetail); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //return ObjectMapper.Map<List<WmsInOutStockOrderDetail>, List<WmsInOutStockOrderDetailDto>>(wmsInOutStockOrderDetails); |
| | | return new List<WmsInOutStockOrderDetailDto>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å个åºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return wmsInOutStockOrderDetailRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤ä¸ªåºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºåºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await wmsInOutStockOrderDetailRepository.GetListAsync(null, nameof(WmsInOutStockOrderDetail.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await wmsInOutStockOrderDetailRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥åºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task ImportAsync(WmsInOutStockOrderDetailsImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsInOutStockOrderDetailCreateDtos = new List<(int RowIndex, WmsInOutStockOrderDetailCreateDto Item)>(); |
| | | var wmsInOutStockOrderDetailUpdateDtos = new List<(int RowIndex, Guid Id, WmsInOutStockOrderDetailUpdateDto Item)>(); |
| | | var importItems = input.WmsInOutStockOrderDetails; |
| | | |
| | | if (importItems != null && importItems.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsInOutStockOrderDetails = importItems.GroupBy(x => x.MaterialId).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsInOutStockOrderDetails?.Any() == true) |
| | | { |
| | | var duplicateWmsInOutStockOrderDetailMsgs = duplicateWmsInOutStockOrderDetails.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsInOutStockOrderDetailMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var impItem in importItems) |
| | | { |
| | | if (impItem.MaterialId.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (impItem.MaterialId.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{impItem.RowIndex}è¡ï¼WmsInOutStockOrderDetailåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsInOutStockOrderDetail = await wmsInOutStockOrderDetailRepository.FindByNameAsync(impItem.MaterialId); |
| | | if (oldWmsInOutStockOrderDetail != null) |
| | | { |
| | | var wmsInOutStockOrderDetailUpdateDto = new WmsInOutStockOrderDetailUpdateDto |
| | | { |
| | | OrderNo = impItem.OrderNo, |
| | | MaterialId = impItem.MaterialId, |
| | | OrderType = impItem.OrderType, |
| | | MaterialNo = impItem.MaterialNo, |
| | | MaterialName = impItem.MaterialName, |
| | | ContainerNo = impItem.ContainerNo, |
| | | MaterialModel = impItem.MaterialModel, |
| | | MaterialBatch = impItem.MaterialBatch, |
| | | IsDisabled = impItem.IsDisabled, |
| | | Remark = impItem.Remark, |
| | | |
| | | }; |
| | | |
| | | wmsInOutStockOrderDetailUpdateDtos.Add((impItem.RowIndex, oldWmsInOutStockOrderDetail.Id, wmsInOutStockOrderDetailUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsInOutStockOrderDetailCreateDto = new WmsInOutStockOrderDetailCreateDto |
| | | { |
| | | OrderNo = impItem.OrderNo, |
| | | MaterialId = impItem.MaterialId, |
| | | OrderType = impItem.OrderType, |
| | | MaterialNo = impItem.MaterialNo, |
| | | MaterialName = impItem.MaterialName, |
| | | ContainerNo = impItem.ContainerNo, |
| | | MaterialModel = impItem.MaterialModel, |
| | | MaterialBatch = impItem.MaterialBatch, |
| | | IsDisabled = impItem.IsDisabled, |
| | | Remark = impItem.Remark, |
| | | |
| | | }; |
| | | |
| | | wmsInOutStockOrderDetailCreateDtos.Add((impItem.RowIndex, wmsInOutStockOrderDetailCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsInOutStockOrderDetailDto in wmsInOutStockOrderDetailCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsInOutStockOrderDetailDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsInOutStockOrderDetailDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsInOutStockOrderDetailDto in wmsInOutStockOrderDetailUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsInOutStockOrderDetailDto.Id, wmsInOutStockOrderDetailDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsInOutStockOrderDetailDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºåºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderDetailInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsInOutStockOrderDetail.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | var list = await wmsInOutStockOrderDetailRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsInOutStockOrderDetail>, List<WmsInOutStockOrderDetailDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "åºå
¥åºåæ®è¯¦æ
å表" : result.Count == 1 ? result[0]?.MaterialId : "WmsInOutStockOrderDetail模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¡éªåºå
¥åºåæ®è¯¦æ
ï¼å½æ°å»ºææ´æ°æ¶ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockOrderDetailCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.OrderNo, "åæ®ç¼å·", 50); |
| | | Check.NotNullOrWhiteSpace(input.MaterialId, "ç©æå¯ä¸ç ", 64); |
| | | Check.NotNull(input.OrderType, "åæ®ç±»åï¼æä¸¾å¼ï¼"); |
| | | Check.NotNullOrWhiteSpace(input.MaterialNo, "ç©æä»¶å·", 50); |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CmsQueryExtensions; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½åºç¨æå¡ |
| | | /// </summary> |
| | | public class WmsInOutStockRecordAppService : CMSPluginAppService, IWmsInOutStockRecordAppService |
| | | { |
| | | private readonly IWmsInOutStockRecordRepository wmsInOutStockRecordRepository; |
| | | private readonly IWmsMaterialRepository _wmsMaterialRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsInOutStockRecordAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="WmsInOutStockRecordRepository">The task job repository.</param> |
| | | public WmsInOutStockRecordAppService(IWmsInOutStockRecordRepository _WmsInOutStockRecordRepository, IWmsMaterialRepository wmsMaterialRepository) |
| | | { |
| | | wmsInOutStockRecordRepository = _WmsInOutStockRecordRepository; |
| | | _wmsMaterialRepository = wmsMaterialRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæå®åºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsInOutStockRecordDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(await wmsInOutStockRecordRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·ååºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<WmsInOutStockRecordDto>> GetListAsync(GetWmsInOutStockRecordInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsInOutStockRecord.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await wmsInOutStockRecordRepository.GetCountAsync(whereConditions); |
| | | var list = await wmsInOutStockRecordRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsInOutStockRecordDto>(count, ObjectMapper.Map<List<WmsInOutStockRecord>, List<WmsInOutStockRecordDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsInOutStockRecord, bool>>> DynamicGetQueryParams(GetWmsInOutStockRecordInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsInOutStockRecord, GetWmsInOutStockRecordInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsInOutStockRecord, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsInOutStockRecord, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ°å»ºåºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsInOutStockRecordDto> CreateAsync(WmsInOutStockRecordCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | //var exist = await wmsInOutStockRecordRepository.NameExistAsync(input.MaterialId); |
| | | //if (exist) |
| | | //{ |
| | | // throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]); |
| | | //} |
| | | // æ ¡éªç©ææ¯å¦åå¨ |
| | | |
| | | var maxSort = await wmsInOutStockRecordRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | var insertObj = ObjectMapper.Map<WmsInOutStockRecordCreateDto, WmsInOutStockRecord>(input); |
| | | insertObj.Sort = sort; |
| | | input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await wmsInOutStockRecordRepository.InsertAsync(insertObj); |
| | | |
| | | if (input.Sort.HasValue && insertObj.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(insertObj.Id, insertObj.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(insertObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°åºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsInOutStockRecordDto> UpdateAsync(Guid id, WmsInOutStockRecordUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var updateObj = await wmsInOutStockRecordRepository.GetAsync(id); |
| | | //var exist = await wmsInOutStockRecordRepository.NameExistAsync(input.Id, updateObj.Id); |
| | | //if (exist) |
| | | //{ |
| | | // throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Id]); |
| | | //} |
| | | |
| | | updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | updateObj.OrderNo = input.OrderNo; |
| | | updateObj.MaterialName = input.MaterialName; |
| | | updateObj.MaterialNo = input.MaterialNo; |
| | | updateObj.StockType = input.StockType; |
| | | updateObj.ContainerNo = input.ContainerNo; |
| | | updateObj.MaterialModel = input.MaterialModel; |
| | | updateObj.OperateTime = input.OperateTime; |
| | | updateObj.Remark = input.Remark; |
| | | updateObj.MaterialId = input.MaterialId; |
| | | updateObj.TaskNo = input.TaskNo; |
| | | updateObj.SourcePlace = input.SourcePlace; |
| | | updateObj.ToPlace = input.ToPlace; |
| | | updateObj.IsDisabled = input.IsDisabled; |
| | | |
| | | |
| | | await wmsInOutStockRecordRepository.UpdateAsync(updateObj); |
| | | |
| | | return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(updateObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éåºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsInOutStockRecordDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | //var wmsInOutStockRecords = new List<WmsInOutStockRecord>(); |
| | | //if (ids != null) |
| | | //{ |
| | | // var sort = await wmsInOutStockRecordRepository.GetMaxSortAsync(); |
| | | // foreach (var id in ids) |
| | | // { |
| | | // var WmsInOutStockRecord = await wmsInOutStockRecordRepository.FindAsync(id); |
| | | // if (WmsInOutStockRecord != null) |
| | | // { |
| | | // var name = WmsInOutStockRecord.Name + WmsInOutStockRecordConsts.CloneTag; |
| | | // var notExist = false; |
| | | // while (!notExist) |
| | | // { |
| | | // var exist = await wmsInOutStockRecordRepository.NameExistAsync(name); |
| | | // if (exist || wmsInOutStockRecords.Any(x => x.Name == name)) |
| | | // { |
| | | // name += WmsInOutStockRecordConsts.CloneTag; |
| | | // continue; |
| | | // } |
| | | |
| | | // notExist = true; |
| | | // } |
| | | |
| | | // //WmsInOutStockRecord = await wmsInOutStockRecordRepository.InsertAsync(WmsInOutStockRecord.Clone(GuidGenerator.Create(), name, sort++)); |
| | | // wmsInOutStockRecords.Add(WmsInOutStockRecord); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //return ObjectMapper.Map<List<WmsInOutStockRecord>, List<WmsInOutStockRecordDto>>(wmsInOutStockRecords); |
| | | return new List<WmsInOutStockRecordDto>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å个åºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return wmsInOutStockRecordRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤ä¸ªåºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºåºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await wmsInOutStockRecordRepository.GetListAsync(null, nameof(WmsInOutStockRecord.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await wmsInOutStockRecordRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥åºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task ImportAsync(WmsInOutStockRecordsImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsInOutStockRecordCreateDtos = new List<(int RowIndex, WmsInOutStockRecordCreateDto Item)>(); |
| | | var wmsInOutStockRecordUpdateDtos = new List<(int RowIndex, Guid Id, WmsInOutStockRecordUpdateDto Item)>(); |
| | | var importItems = input.WmsInOutStockRecords; |
| | | |
| | | if (importItems != null && importItems.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsInOutStockRecords = importItems.GroupBy(x => x.MaterialNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsInOutStockRecords?.Any() == true) |
| | | { |
| | | var duplicateWmsInOutStockRecordMsgs = duplicateWmsInOutStockRecords.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsInOutStockRecordMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var impItem in importItems) |
| | | { |
| | | if (impItem.MaterialNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (impItem.MaterialNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{impItem.RowIndex}è¡ï¼WmsInOutStockRecordåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsInOutStockRecord = await wmsInOutStockRecordRepository.FindByNameAsync(impItem.MaterialNo); |
| | | if (oldWmsInOutStockRecord != null) |
| | | { |
| | | var wmsInOutStockRecordUpdateDto = new WmsInOutStockRecordUpdateDto |
| | | { |
| | | OrderNo = impItem.OrderNo, |
| | | MaterialName = impItem.MaterialName, |
| | | MaterialNo = impItem.MaterialNo, |
| | | StockType = impItem.StockType, |
| | | ContainerNo = impItem.ContainerNo, |
| | | MaterialModel = impItem.MaterialModel, |
| | | OperateTime = impItem.OperateTime, |
| | | Remark = impItem.Remark, |
| | | MaterialId = impItem.MaterialId, |
| | | TaskNo = impItem.TaskNo, |
| | | SourcePlace = impItem.SourcePlace, |
| | | ToPlace = impItem.ToPlace, |
| | | IsDisabled = impItem.IsDisabled, |
| | | |
| | | }; |
| | | |
| | | wmsInOutStockRecordUpdateDtos.Add((impItem.RowIndex, oldWmsInOutStockRecord.Id, wmsInOutStockRecordUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsInOutStockRecordCreateDto = new WmsInOutStockRecordCreateDto |
| | | { |
| | | OrderNo = impItem.OrderNo, |
| | | MaterialName = impItem.MaterialName, |
| | | MaterialNo = impItem.MaterialNo, |
| | | StockType = impItem.StockType, |
| | | ContainerNo = impItem.ContainerNo, |
| | | MaterialModel = impItem.MaterialModel, |
| | | OperateTime = impItem.OperateTime, |
| | | Remark = impItem.Remark, |
| | | MaterialId = impItem.MaterialId, |
| | | TaskNo = impItem.TaskNo, |
| | | SourcePlace = impItem.SourcePlace, |
| | | ToPlace = impItem.ToPlace, |
| | | IsDisabled = impItem.IsDisabled, |
| | | |
| | | }; |
| | | |
| | | wmsInOutStockRecordCreateDtos.Add((impItem.RowIndex, wmsInOutStockRecordCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsInOutStockRecordDto in wmsInOutStockRecordCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsInOutStockRecordDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsInOutStockRecordDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsInOutStockRecordDto in wmsInOutStockRecordUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsInOutStockRecordDto.Id, wmsInOutStockRecordDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsInOutStockRecordDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºåºå
¥åºè®°å½ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockRecordInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsInOutStockRecord.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | var list = await wmsInOutStockRecordRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsInOutStockRecord>, List<WmsInOutStockRecordDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "åºå
¥åºè®°å½å表" : result.Count == 1 ? result[0]?.MaterialNo : "WmsInOutStockRecord模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¡éªåºå
¥åºè®°å½ï¼å½æ°å»ºææ´æ°æ¶ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockRecordCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | //Check.NotNullOrWhiteSpace(input.OrderNo, "åæ®ç¼å·", 50); |
| | | Check.NotNullOrWhiteSpace(input.MaterialNo, "ç©æä»¶å·", 50); |
| | | Check.NotNull(input.ContainerNo, "æçå·"); |
| | | Check.NotNull(input.SourcePlace, "èµ·å§åºä½"); |
| | | Check.NotNull(input.ToPlace, "ç®æ åºä½"); |
| | | Check.NotNull(input.TaskNo, "ä»»å¡å·"); |
| | | Check.NotNullOrWhiteSpace(input.MaterialId, "ç©æID", 50); |
| | | Check.NotNullOrWhiteSpace(input.TaskNo, "ä»»å¡å·", 50); |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CmsQueryExtensions; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsMaterialAppService : CMSPluginAppService, IWmsMaterialAppService |
| | | { |
| | | private readonly IWmsMaterialRepository _wmsmaterialRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsmaterialRepository">The task job repository.</param> |
| | | public WmsMaterialAppService(IWmsMaterialRepository wmsmaterialRepository) |
| | | { |
| | | _wmsmaterialRepository = wmsmaterialRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsMaterialDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(await _wmsmaterialRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<PagedResultDto<WmsMaterialDto>> GetListAsync(GetWmsMaterialInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterial.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await _wmsmaterialRepository.GetCountAsync(whereConditions); |
| | | var list = await _wmsmaterialRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsMaterialDto>(count, ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> DynamicGetQueryParams(GetWmsMaterialInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterial, GetWmsMaterialInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsMaterial, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsMaterial, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]); |
| | | } |
| | | |
| | | var maxSort = await _wmsmaterialRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | var wmsmaterial = ObjectMapper.Map<WmsMaterialCreateDto, WmsMaterial>(input); |
| | | wmsmaterial.Sort = sort; |
| | | input.MapExtraPropertiesTo(wmsmaterial, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await _wmsmaterialRepository.InsertAsync(wmsmaterial); |
| | | |
| | | if (input.Sort.HasValue && wmsmaterial.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmsmaterial.Id, wmsmaterial.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(wmsmaterial); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmsmaterial = await _wmsmaterialRepository.GetAsync(id); |
| | | var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialNo, wmsmaterial.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]); |
| | | } |
| | | |
| | | wmsmaterial.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmsmaterial, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmsmaterial.MaterialName = input.MaterialName; |
| | | wmsmaterial.PurchaseType = input.PurchaseType; |
| | | wmsmaterial.MaterialTypeCode = input.MaterialTypeCode; |
| | | wmsmaterial.PrimaryUnit = input.PrimaryUnit; |
| | | wmsmaterial.Standard = input.Standard; |
| | | wmsmaterial.OuterDiameter = input.OuterDiameter; |
| | | wmsmaterial.WallThickness = input.WallThickness; |
| | | wmsmaterial.MaterialQuality = input.MaterialQuality; |
| | | wmsmaterial.Length = input.Length; |
| | | wmsmaterial.IsMainBranch = input.IsMainBranch; |
| | | wmsmaterial.Factory = input.Factory; |
| | | wmsmaterial.MaterialModel = input.MaterialModel; |
| | | wmsmaterial.Certification = input.Certification; |
| | | wmsmaterial.MaterialTypeDesc = input.MaterialTypeDesc; |
| | | await _wmsmaterialRepository.UpdateAsync(wmsmaterial); |
| | | |
| | | return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(wmsmaterial); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsMaterialDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | //var wmsmaterials = new List<WmsMaterial>(); |
| | | //if (ids != null) |
| | | //{ |
| | | // var sort = await _wmsmaterialRepository.GetMaxSortAsync(); |
| | | // foreach (var id in ids) |
| | | // { |
| | | // var wmsmaterial = await _wmsmaterialRepository.FindAsync(id); |
| | | // if (wmsmaterial != null) |
| | | // { |
| | | // var name = wmsmaterial.Name + WmsMaterialConsts.CloneTag; |
| | | // var notExist = false; |
| | | // while (!notExist) |
| | | // { |
| | | // var exist = await _wmsmaterialRepository.NameExistAsync(name); |
| | | // if (exist || wmsmaterials.Any(x => x.Name == name)) |
| | | // { |
| | | // name += WmsMaterialConsts.CloneTag; |
| | | // continue; |
| | | // } |
| | | |
| | | // notExist = true; |
| | | // } |
| | | |
| | | // //wmsmaterial = await _wmsmaterialRepository.InsertAsync(wmsmaterial.Clone(GuidGenerator.Create(), name, sort++)); |
| | | // wmsmaterials.Add(wmsmaterial); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //return ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(wmsmaterials); |
| | | return new List<WmsMaterialDto>(); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsmaterialRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmsmaterialRepository.GetListAsync(null, nameof(WmsMaterial.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmsmaterialRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsMaterialImportModels input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsmaterialCreateDtos = new List<(int RowIndex, WmsMaterialCreateDto Item)>(); |
| | | var wmsmaterialUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialUpdateDto Item)>(); |
| | | var wmsmaterials = input.WmsMaterials; |
| | | |
| | | if (wmsmaterials != null && wmsmaterials.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsMaterials = wmsmaterials.GroupBy(x => x.MaterialNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsMaterials?.Any() == true) |
| | | { |
| | | var duplicateWmsMaterialMsgs = duplicateWmsMaterials.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsMaterialMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmsmaterial in wmsmaterials) |
| | | { |
| | | if (wmsmaterial.MaterialNo.IsNullOrWhiteSpace() && wmsmaterial.MaterialName.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmsmaterial.MaterialNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterial.RowIndex}è¡ï¼WmsMaterialåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsMaterial = await _wmsmaterialRepository.FindByNameAsync(wmsmaterial.MaterialNo); |
| | | if (oldWmsMaterial != null) |
| | | { |
| | | var wmsmaterialUpdateDto = new WmsMaterialUpdateDto |
| | | { |
| | | MaterialNo = wmsmaterial.MaterialNo, |
| | | MaterialName = wmsmaterial.MaterialName, |
| | | PurchaseType = wmsmaterial.PurchaseType, |
| | | MaterialTypeCode = wmsmaterial.MaterialTypeCode, |
| | | MaterialTypeDesc = wmsmaterial.MaterialTypeDesc, |
| | | PrimaryUnit = wmsmaterial.PrimaryUnit, |
| | | Standard = wmsmaterial.Standard, |
| | | OuterDiameter = wmsmaterial.OuterDiameter, |
| | | WallThickness = wmsmaterial.WallThickness, |
| | | MaterialQuality = wmsmaterial.MaterialQuality, |
| | | Length = wmsmaterial.Length, |
| | | IsMainBranch = wmsmaterial.IsMainBranch, |
| | | Factory = wmsmaterial.Factory, |
| | | Certification = wmsmaterial.Certification, |
| | | MaterialModel = wmsmaterial.MaterialModel, |
| | | Remark = wmsmaterial.Remark, |
| | | }; |
| | | |
| | | wmsmaterialUpdateDtos.Add((wmsmaterial.RowIndex, oldWmsMaterial.Id, wmsmaterialUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsmaterialCreateDto = new WmsMaterialCreateDto |
| | | { |
| | | MaterialNo = wmsmaterial.MaterialNo, |
| | | MaterialName = wmsmaterial.MaterialName, |
| | | PurchaseType = wmsmaterial.PurchaseType, |
| | | MaterialTypeCode = wmsmaterial.MaterialTypeCode, |
| | | MaterialTypeDesc = wmsmaterial.MaterialTypeDesc, |
| | | PrimaryUnit = wmsmaterial.PrimaryUnit, |
| | | Standard = wmsmaterial.Standard, |
| | | OuterDiameter = wmsmaterial.OuterDiameter, |
| | | WallThickness = wmsmaterial.WallThickness, |
| | | MaterialQuality = wmsmaterial.MaterialQuality, |
| | | Length = wmsmaterial.Length, |
| | | IsMainBranch = wmsmaterial.IsMainBranch, |
| | | MaterialModel = wmsmaterial.MaterialModel, |
| | | Factory = wmsmaterial.Factory, |
| | | Certification = wmsmaterial.Certification, |
| | | Remark = wmsmaterial.Remark, |
| | | }; |
| | | |
| | | wmsmaterialCreateDtos.Add((wmsmaterial.RowIndex, wmsmaterialCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsmaterialDto in wmsmaterialCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsmaterialDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterialDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsmaterialDto in wmsmaterialUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsmaterialDto.Id, wmsmaterialDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterialDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterial.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | var list = await _wmsmaterialRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = "ç©æåºç¡"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.MaterialNo, "ç¼å·", WmsMaterialConsts.MaxCodeLength); |
| | | Check.NotNullOrWhiteSpace(input.MaterialName, "åç§°", WmsMaterialConsts.MaxNameLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsMaterialConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialContainer; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CmsQueryExtensions; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialContainer; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»åºç¨æå¡ |
| | | /// </summary> |
| | | public class WmsMaterialContainerAppService : CMSPluginAppService, IWmsMaterialContainerAppService |
| | | { |
| | | private readonly IWmsMaterialContainerRepository wmsMaterialContainerRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialContainerAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="WmsMaterialContainerRepository">The task job repository.</param> |
| | | public WmsMaterialContainerAppService(IWmsMaterialContainerRepository _WmsMaterialContainerRepository) |
| | | { |
| | | wmsMaterialContainerRepository = _WmsMaterialContainerRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæå®ç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsMaterialContainerDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsMaterialContainer, WmsMaterialContainerDto>(await wmsMaterialContainerRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·åç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<WmsMaterialContainerDto>> GetListAsync(GetWmsMaterialContainerInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialContainer.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await wmsMaterialContainerRepository.GetCountAsync(whereConditions); |
| | | var list = await wmsMaterialContainerRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsMaterialContainerDto>(count, ObjectMapper.Map<List<WmsMaterialContainer>, List<WmsMaterialContainerDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsMaterialContainer, bool>>> DynamicGetQueryParams(GetWmsMaterialContainerInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterialContainer, GetWmsMaterialContainerInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsMaterialContainer, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsMaterialContainer, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ°å»ºç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsMaterialContainerDto> CreateAsync(WmsMaterialContainerCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await wmsMaterialContainerRepository.NameExistAsync(input.MaterialId); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]); |
| | | } |
| | | |
| | | var maxSort = await wmsMaterialContainerRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | var insertObj = ObjectMapper.Map<WmsMaterialContainerCreateDto, WmsMaterialContainer>(input); |
| | | insertObj.Sort = sort; |
| | | input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await wmsMaterialContainerRepository.InsertAsync(insertObj); |
| | | |
| | | //if (input.Sort.HasValue && insertObj.Sort != maxSort) |
| | | //{ |
| | | // await AdjustSortAsync(insertObj.Id, insertObj.Sort); |
| | | //} |
| | | |
| | | return ObjectMapper.Map<WmsMaterialContainer, WmsMaterialContainerDto>(insertObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsMaterialContainerDto> UpdateAsync(Guid id, WmsMaterialContainerUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var updateObj = await wmsMaterialContainerRepository.GetAsync(id); |
| | | var exist = await wmsMaterialContainerRepository.NameExistAsync(input.MaterialId, updateObj.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]); |
| | | } |
| | | |
| | | updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | updateObj.ContainerNo = input.ContainerNo; |
| | | updateObj.MaterialId = input.MaterialId; |
| | | updateObj.IsDisabled = input.IsDisabled; |
| | | |
| | | |
| | | await wmsMaterialContainerRepository.UpdateAsync(updateObj); |
| | | |
| | | return ObjectMapper.Map<WmsMaterialContainer, WmsMaterialContainerDto>(updateObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsMaterialContainerDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | //var wmsMaterialContainers = new List<WmsMaterialContainer>(); |
| | | //if (ids != null) |
| | | //{ |
| | | // var sort = await wmsMaterialContainerRepository.GetMaxSortAsync(); |
| | | // foreach (var id in ids) |
| | | // { |
| | | // var WmsMaterialContainer = await wmsMaterialContainerRepository.FindAsync(id); |
| | | // if (WmsMaterialContainer != null) |
| | | // { |
| | | // var name = WmsMaterialContainer.Name + WmsMaterialContainerConsts.CloneTag; |
| | | // var notExist = false; |
| | | // while (!notExist) |
| | | // { |
| | | // var exist = await wmsMaterialContainerRepository.NameExistAsync(name); |
| | | // if (exist || wmsMaterialContainers.Any(x => x.Name == name)) |
| | | // { |
| | | // name += WmsMaterialContainerConsts.CloneTag; |
| | | // continue; |
| | | // } |
| | | |
| | | // notExist = true; |
| | | // } |
| | | |
| | | // //WmsMaterialContainer = await wmsMaterialContainerRepository.InsertAsync(WmsMaterialContainer.Clone(GuidGenerator.Create(), name, sort++)); |
| | | // wmsMaterialContainers.Add(WmsMaterialContainer); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //return ObjectMapper.Map<List<WmsMaterialContainer>, List<WmsMaterialContainerDto>>(wmsMaterialContainers); |
| | | return new List<WmsMaterialContainerDto>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤åä¸ªç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return wmsMaterialContainerRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤ä¸ªç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await wmsMaterialContainerRepository.GetListAsync(null, nameof(WmsMaterialContainer.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await wmsMaterialContainerRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥ç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task ImportAsync(WmsMaterialContainersImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsMaterialContainerCreateDtos = new List<(int RowIndex, WmsMaterialContainerCreateDto Item)>(); |
| | | var wmsMaterialContainerUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialContainerUpdateDto Item)>(); |
| | | var importItems = input.WmsMaterialContainers; |
| | | |
| | | if (importItems != null && importItems.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsMaterialContainers = importItems.GroupBy(x => x.MaterialId).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsMaterialContainers?.Any() == true) |
| | | { |
| | | var duplicateWmsMaterialContainerMsgs = duplicateWmsMaterialContainers.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsMaterialContainerMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var impItem in importItems) |
| | | { |
| | | if (impItem.MaterialId.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (impItem.MaterialId.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{impItem.RowIndex}è¡ï¼WmsMaterialContaineråç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsMaterialContainer = await wmsMaterialContainerRepository.FindByNameAsync(impItem.MaterialId); |
| | | if (oldWmsMaterialContainer != null) |
| | | { |
| | | var wmsMaterialContainerUpdateDto = new WmsMaterialContainerUpdateDto |
| | | { |
| | | ContainerNo = impItem.ContainerNo, |
| | | MaterialId = impItem.MaterialId, |
| | | IsDisabled = impItem.IsDisabled, |
| | | |
| | | }; |
| | | |
| | | wmsMaterialContainerUpdateDtos.Add((impItem.RowIndex, oldWmsMaterialContainer.Id, wmsMaterialContainerUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsMaterialContainerCreateDto = new WmsMaterialContainerCreateDto |
| | | { |
| | | ContainerNo = impItem.ContainerNo, |
| | | MaterialId = impItem.MaterialId, |
| | | IsDisabled = impItem.IsDisabled, |
| | | |
| | | }; |
| | | |
| | | wmsMaterialContainerCreateDtos.Add((impItem.RowIndex, wmsMaterialContainerCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsMaterialContainerDto in wmsMaterialContainerCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsMaterialContainerDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsMaterialContainerDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsMaterialContainerDto in wmsMaterialContainerUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsMaterialContainerDto.Id, wmsMaterialContainerDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsMaterialContainerDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºç©æå®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialContainerInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialContainer.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | var list = await wmsMaterialContainerRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsMaterialContainer>, List<WmsMaterialContainerDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "ç©æå®¹å¨å
³ç³»å表" : result.Count == 1 ? result[0]?.MaterialId : "WmsMaterialContainer模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¡éªç©æå®¹å¨å
³ç³»ï¼å½æ°å»ºææ´æ°æ¶ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialContainerCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.ContainerNo, "æçç¼å·", 50); |
| | | Check.NotNullOrWhiteSpace(input.MaterialId, "ç©æID", 64); |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialInfos; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | using CmsQueryExtensions; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsMaterialInfoAppService : CMSPluginAppService, IWmsMaterialInfoAppService |
| | | { |
| | | private readonly IWmsMaterialInfoRepository _wmsmaterialinfoRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialInfoAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsmaterialinfoRepository">The task job repository.</param> |
| | | public WmsMaterialInfoAppService(IWmsMaterialInfoRepository wmsmaterialinfoRepository) |
| | | { |
| | | _wmsmaterialinfoRepository = wmsmaterialinfoRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsMaterialInfoDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsMaterialInfo, WmsMaterialInfoDto>(await _wmsmaterialinfoRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<PagedResultDto<WmsMaterialInfoDto>> GetListAsync(GetWmsMaterialInfosInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialInfo.Sort); |
| | | } |
| | | |
| | | var specification = new WmsMaterialInfoSpecification(input.Name); |
| | | var materialInfo = ObjectMapper.Map<GetWmsMaterialInfosInput, WmsMaterialInfo>(input); |
| | | var count = await _wmsmaterialinfoRepository.GetCountAsync(materialInfo,input.Filter, specification); |
| | | var list = await _wmsmaterialinfoRepository.GetListAsync(materialInfo,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification); |
| | | |
| | | return new PagedResultDto<WmsMaterialInfoDto>(count, ObjectMapper.Map<List<WmsMaterialInfo>, List<WmsMaterialInfoDto>>(list)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsMaterialInfoDto> CreateAsync(WmsMaterialInfoCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmsmaterialinfoRepository.NameExistAsync(input.MaterialNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]); |
| | | } |
| | | |
| | | var maxSort = await _wmsmaterialinfoRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | var wmsmaterialinfo = ObjectMapper.Map<WmsMaterialInfoCreateDto, WmsMaterialInfo>(input); |
| | | input.MapExtraPropertiesTo(wmsmaterialinfo, MappingPropertyDefinitionChecks.None); |
| | | wmsmaterialinfo.Sort = sort; |
| | | await _wmsmaterialinfoRepository.InsertAsync(wmsmaterialinfo); |
| | | |
| | | if (input.Sort.HasValue && wmsmaterialinfo.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmsmaterialinfo.Id, wmsmaterialinfo.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsMaterialInfo, WmsMaterialInfoDto>(wmsmaterialinfo); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsMaterialInfoDto> UpdateAsync(Guid id, WmsMaterialInfoUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmsMaterialInfo = await _wmsmaterialinfoRepository.GetAsync(id); |
| | | var exist = await _wmsmaterialinfoRepository.NameExistAsync(input.MaterialNo, wmsMaterialInfo.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]); |
| | | } |
| | | |
| | | wmsMaterialInfo.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmsMaterialInfo, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmsMaterialInfo.MaterialNo = input.MaterialNo; |
| | | wmsMaterialInfo.MaterialName = input.MaterialName; |
| | | wmsMaterialInfo.MaterialModel = input.MaterialModel; |
| | | wmsMaterialInfo.MaterialId = input.MaterialId; |
| | | wmsMaterialInfo.StockNumber = input.StockNumber; |
| | | wmsMaterialInfo.MaterialBatch = input.MaterialBatch; |
| | | wmsMaterialInfo.SupplierCode = input.SupplierCode; |
| | | wmsMaterialInfo.CheckStatus = input.CheckStatus; |
| | | wmsMaterialInfo.RedundantField1 = input.RedundantField1; |
| | | wmsMaterialInfo.RedundantField2 = input.RedundantField2; |
| | | wmsMaterialInfo.RedundantField3 = input.RedundantField3; |
| | | wmsMaterialInfo.Remark = input.Remark; |
| | | |
| | | await _wmsmaterialinfoRepository.UpdateAsync(wmsMaterialInfo); |
| | | |
| | | return ObjectMapper.Map<WmsMaterialInfo, WmsMaterialInfoDto>(wmsMaterialInfo); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsMaterialInfoDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | var wmsmaterialinfos = new List<WmsMaterialInfo>(); |
| | | if (ids != null) |
| | | { |
| | | var sort = await _wmsmaterialinfoRepository.GetMaxSortAsync(); |
| | | foreach (var id in ids) |
| | | { |
| | | var wmsmaterialinfo = await _wmsmaterialinfoRepository.FindAsync(id); |
| | | if (wmsmaterialinfo != null) |
| | | { |
| | | var name = wmsmaterialinfo.MaterialName + WmsMaterialInfoConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmsmaterialinfoRepository.NameExistAsync(name); |
| | | if (exist || wmsmaterialinfos.Any(x => x.MaterialName == name)) |
| | | { |
| | | name += WmsMaterialInfoConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | //wmsmaterialinfo = await _wmsmaterialinfoRepository.InsertAsync(wmsmaterialinfo.Clone(GuidGenerator.Create(), name, sort++)); |
| | | wmsmaterialinfos.Add(wmsmaterialinfo); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ObjectMapper.Map<List<WmsMaterialInfo>, List<WmsMaterialInfoDto>>(wmsmaterialinfos); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsmaterialinfoRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmsmaterialinfoRepository.GetListAsync(null,nameof(WmsMaterialInfo.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmsmaterialinfoRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsMaterialInfosImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsmaterialinfoCreateDtos = new List<(int RowIndex, WmsMaterialInfoCreateDto Item)>(); |
| | | var wmsmaterialinfoUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialInfoUpdateDto Item)>(); |
| | | var wmsmaterialinfos = input.WmsMaterialInfos; |
| | | |
| | | if (wmsmaterialinfos != null && wmsmaterialinfos.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsMaterialInfos = wmsmaterialinfos.GroupBy(x => x.MaterialNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsMaterialInfos?.Any() == true) |
| | | { |
| | | var duplicateWmsMaterialInfoMsgs = duplicateWmsMaterialInfos.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsMaterialInfoMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmsmaterialinfo in wmsmaterialinfos) |
| | | { |
| | | if (wmsmaterialinfo.MaterialNo.IsNullOrWhiteSpace() && wmsmaterialinfo.MaterialNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmsmaterialinfo.MaterialNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterialinfo.RowIndex}è¡ï¼WmsMaterialInfoåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsMaterialInfo = await _wmsmaterialinfoRepository.FindByNameAsync(wmsmaterialinfo.MaterialNo); |
| | | if (oldWmsMaterialInfo != null) |
| | | { |
| | | var wmsmaterialinfoUpdateDto = new WmsMaterialInfoUpdateDto |
| | | { |
| | | MaterialNo = wmsmaterialinfo.MaterialNo, |
| | | MaterialName = wmsmaterialinfo.MaterialName, |
| | | MaterialId = wmsmaterialinfo.MaterialId, |
| | | |
| | | // ç©æç¹æ§ |
| | | MaterialModel = wmsmaterialinfo.MaterialModel, |
| | | MaterialBatch = wmsmaterialinfo.MaterialBatch, |
| | | StockNumber = wmsmaterialinfo.StockNumber, |
| | | |
| | | // ä¾åºåä¿¡æ¯ |
| | | SupplierCode = wmsmaterialinfo.SupplierCode, |
| | | |
| | | // ç¶æä¿¡æ¯ |
| | | CheckStatus = wmsmaterialinfo.CheckStatus, |
| | | |
| | | // ç³»ç»å段 |
| | | Remark = wmsmaterialinfo.Remark, |
| | | }; |
| | | |
| | | wmsmaterialinfoUpdateDtos.Add((wmsmaterialinfo.RowIndex, oldWmsMaterialInfo.Id, wmsmaterialinfoUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsmaterialinfoCreateDto = new WmsMaterialInfoCreateDto |
| | | { |
| | | MaterialNo = wmsmaterialinfo.MaterialNo, |
| | | MaterialName = wmsmaterialinfo.MaterialName, |
| | | MaterialId = wmsmaterialinfo.MaterialId, |
| | | |
| | | // ç©æç¹æ§ |
| | | MaterialModel = wmsmaterialinfo.MaterialModel, |
| | | MaterialBatch = wmsmaterialinfo.MaterialBatch, |
| | | StockNumber = wmsmaterialinfo.StockNumber, |
| | | |
| | | // ä¾åºåä¿¡æ¯ |
| | | SupplierCode = wmsmaterialinfo.SupplierCode, |
| | | |
| | | // ç¶æä¿¡æ¯ |
| | | CheckStatus = wmsmaterialinfo.CheckStatus, |
| | | |
| | | // ç³»ç»å段 |
| | | Remark = wmsmaterialinfo.Remark, |
| | | }; |
| | | |
| | | wmsmaterialinfoCreateDtos.Add((wmsmaterialinfo.RowIndex, wmsmaterialinfoCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsmaterialinfoDto in wmsmaterialinfoCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsmaterialinfoDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterialinfoDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsmaterialinfoDto in wmsmaterialinfoUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsmaterialinfoDto.Id, wmsmaterialinfoDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterialinfoDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInfosInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialInfo.Sort); |
| | | } |
| | | |
| | | var specification = new WmsMaterialInfoSpecification(input.Name); |
| | | var materialInfo = ObjectMapper.Map<GetWmsMaterialInfosInput, WmsMaterialInfo>(input); |
| | | var list = await _wmsmaterialinfoRepository.GetListAsync(materialInfo,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsMaterialInfo>, List<WmsMaterialInfoDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "WmsMaterialInfoå表" : result.Count == 1 ? result.First()?.MaterialNo : "WmsMaterialInfo模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialInfoCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.MaterialNo, "ç¼å·", WmsMaterialInfoConsts.MaxMaterialIdLength); |
| | | Check.NotNullOrWhiteSpace(input.MaterialName, "åç§°", WmsMaterialInfoConsts.MaxMaterialIdLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsMaterialInfoConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.WmsTask; |
| | | using CmsQueryExtensions; |
| | | using CmsQueryExtensions.Extension; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using SqlKata; |
| | | using System.Linq.Expressions; |
| | | using System.Text.Json; |
| | | using System.Threading.Tasks; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsMaterialStockAppService : CMSPluginAppService, IWmsMaterialStockAppService |
| | | { |
| | | private readonly IWmsMaterialStockRepository _wmsmaterialstockRepository; |
| | | private readonly IWmsMaterialRepository _wmsMaterialRepository; |
| | | private readonly IWmsContainerRepository _wmscontainerRepository; |
| | | private readonly IWmsPlaceRepository _wmsplaceRepository; |
| | | private readonly IWmsAreaRepository _wmsareaRepository; |
| | | private readonly IWmsInOutStockRecordAppService _wmspInOutStockRecordAppService; |
| | | private readonly IWmsInOutStockRecordRepository _wmsInOutStockRecordRepository; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialStockAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsmaterialstockRepository">The task job repository.</param> |
| | | public WmsMaterialStockAppService(IWmsMaterialStockRepository wmsmaterialstockRepository, |
| | | IWmsMaterialRepository wmsMaterialRepository, |
| | | IWmsContainerRepository wmscontainerRepository, |
| | | IWmsPlaceRepository wmsplaceRepository, |
| | | IWmsAreaRepository wmsareaRepository |
| | | , |
| | | IServiceProvider serviceProvider, |
| | | IWmsInOutStockRecordAppService wmspInOutStockRecordAppService, |
| | | IWmsInOutStockRecordRepository wmsInOutStockRecordRepository |
| | | ) |
| | | { |
| | | _wmsmaterialstockRepository = wmsmaterialstockRepository; |
| | | _wmsMaterialRepository = wmsMaterialRepository; |
| | | _wmscontainerRepository = wmscontainerRepository; |
| | | _wmsplaceRepository = wmsplaceRepository; |
| | | _wmsareaRepository = wmsareaRepository; |
| | | _serviceProvider = serviceProvider; |
| | | _wmspInOutStockRecordAppService = wmspInOutStockRecordAppService; |
| | | _wmsInOutStockRecordRepository = wmsInOutStockRecordRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsMaterialStockDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsMaterialStock, WmsMaterialStockDto>(await _wmsmaterialstockRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<PagedResultDto<WmsMaterialStockDto>> GetListAsync(GetWmsMaterialStockInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialStock.Sort); |
| | | } |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | var stock = ObjectMapper.Map<GetWmsMaterialStockInput, WmsMaterialStock>(input); |
| | | var count = await _wmsmaterialstockRepository.GetCountAsync(whereConditions); |
| | | var list = await _wmsmaterialstockRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsMaterialStockDto>(count, ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(list)); |
| | | } |
| | | |
| | | public async Task<PagedResultDto<WmsMaterialStockDto>> GetStockDetailAsync(GetWmsMaterialStockInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialStock.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await _wmsmaterialstockRepository.GetDetailCountAsync(whereConditions); |
| | | var list = await _wmsmaterialstockRepository.GetStockDetailListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | var result = list |
| | | .GroupBy(x => x.PlaceNo) // æåºä½å·åç» |
| | | .SelectMany(g => g |
| | | .OrderBy(x => x.InStockTime) // æå
¥åºæ¶é´æåº |
| | | .Select((x, index) => new WmsMaterialStockDto |
| | | { |
| | | MaterialId = x.MaterialId, |
| | | MaterialBatch = x.MaterialBatch, |
| | | MaterialModel = x.MaterialModel, |
| | | MaterialName = x.MaterialName, |
| | | MaterialNo = x.MaterialNo, |
| | | CheckStatus = x.CheckStatus, |
| | | ContainerNo = x.ContainerNo, |
| | | ContainerType = x.ContainerType, |
| | | StockNumber = x.StockNumber, |
| | | SupplierCode = x.SupplierCode, |
| | | PlaceNo = x.PlaceNo, |
| | | PlaceStatus = x.PlaceStatus, |
| | | StorageTypeNo = x.StorageTypeNo, |
| | | AreaCode = x.AreaCode, |
| | | AreaName = x.AreaName, |
| | | IsLock = x.IsLock, |
| | | Id = x.Id, |
| | | EmptyContainer = x.EmptyContainer, |
| | | InStockTime = x.InStockTime, |
| | | RedundantField1 = x.RedundantField1, |
| | | RedundantField2 = x.RedundantField2, |
| | | RedundantField3 = x.RedundantField3, |
| | | Remark = x.Remark, |
| | | OrderInPlace = index+1 |
| | | |
| | | })).ToList(); |
| | | |
| | | return new PagedResultDto<WmsMaterialStockDto>(count, result); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsMaterialStock, bool>>> DynamicGetQueryParams(GetWmsMaterialStockInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterialStock, GetWmsMaterialStockInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsMaterialStock, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsMaterialStock, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsMaterialStockDto> CreateAsync(WmsMaterialStockCreateDto input) |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var materialModel = await _wmsMaterialRepository.FindByModelAsync(input.MaterialModel); |
| | | if(materialModel == null) |
| | | { |
| | | throw new UserFriendlyException("ç©æåå·ä¸åå¨"); |
| | | } |
| | | |
| | | var material = await _wmsMaterialRepository.FindByNameAsync(materialModel.MaterialNo); |
| | | if (material == null) |
| | | { |
| | | throw new UserFriendlyException("ç©æä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | var palceInfo = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo); |
| | | |
| | | //if (container == null) |
| | | //{ |
| | | // throw new UserFriendlyException("æçä¿¡æ¯ä¸åå¨"); |
| | | //} |
| | | input.ContainerNo = string.IsNullOrEmpty(input.ContainerNo) ? "TP_" + DateTime.Now.ToString("yyMMddHHmmssfff") : input.ContainerNo; |
| | | |
| | | var wmsmaterialstock = ObjectMapper.Map<WmsMaterialStockCreateDto, WmsMaterialStock>(input); |
| | | input.MapExtraPropertiesTo(wmsmaterialstock, MappingPropertyDefinitionChecks.None); |
| | | wmsmaterialstock.MaterialId = Guid.NewGuid().ToString("N"); |
| | | wmsmaterialstock.MaterialNo = material.MaterialNo; |
| | | wmsmaterialstock.MaterialName = material.MaterialName; |
| | | |
| | | var wmsmaterialstockList = await _wmsmaterialstockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.PlaceNo }); |
| | | if (wmsmaterialstockList.Count > 0) |
| | | { |
| | | if (wmsmaterialstock.StorageTypeNo == PlaceTypeEnum.YUANLIAOKUWEI) |
| | | { |
| | | wmsmaterialstock.ContainerNo = wmsmaterialstockList[0].ContainerNo; |
| | | input.ContainerNo = wmsmaterialstockList[0].ContainerNo; |
| | | } |
| | | if (wmsmaterialstockList[0].MaterialNo != material.MaterialNo) |
| | | { |
| | | throw new UserFriendlyException("å½ååºä½å·²åæ¾å«çç©æ"); |
| | | } |
| | | } |
| | | |
| | | var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo); |
| | | |
| | | wmsmaterialstock.ContainerStatus = ContainerStatusEnum.KUWEI; |
| | | wmsmaterialstock.ContainerType = container == null ? ContainerTypeEnum.XUNI : container.ContainerType; |
| | | wmsmaterialstock.StorageTypeNo = PlaceTypeEnum.XUNIKUWEI; |
| | | wmsmaterialstock.PlaceStatus = PlaceStatusEnum.DAIRU; |
| | | if (!string.IsNullOrEmpty(input.PlaceNo)) |
| | | { |
| | | var place = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo); |
| | | if (place == null) |
| | | { |
| | | throw new UserFriendlyException("åºä½ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | var area = await _wmsareaRepository.FindByNameAsync(place.AreaCode); |
| | | if (area == null) |
| | | { |
| | | throw new UserFriendlyException("åºä½åºåºä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | |
| | | wmsmaterialstock.PlaceStatus = PlaceStatusEnum.CUNHUO; |
| | | wmsmaterialstock.StorageTypeNo = place.StorageTypeNo; |
| | | wmsmaterialstock.AreaCode = place.AreaCode; |
| | | wmsmaterialstock.AreaName = area.AreaName; |
| | | |
| | | place.PlaceStatus = PlaceStatusEnum.CUNHUO; |
| | | place.Islock = input.IsLock; |
| | | |
| | | await _wmsplaceRepository.UpdateAsync(place); |
| | | } |
| | | |
| | | |
| | | var maxSort = await _wmsmaterialstockRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | wmsmaterialstock.MaterialModel = material.MaterialModel; |
| | | wmsmaterialstock.MaterialBatch = input.MaterialBatch; |
| | | |
| | | wmsmaterialstock.Sort = sort; |
| | | wmsmaterialstock.InStockTime = DateTime.Now; |
| | | |
| | | var stockList = new List<WmsMaterialStock>(); |
| | | var recordList = new List<WmsInOutStockRecord>(); |
| | | for (int i = 0; i < input.StockNumber; i++) |
| | | { |
| | | var stock = new WmsMaterialStock(); |
| | | var json = JsonSerializer.Serialize(wmsmaterialstock); |
| | | stock = JsonSerializer.Deserialize<WmsMaterialStock>(json); |
| | | stock.MaterialId = Guid.NewGuid().ToString("N"); |
| | | stock.StockNumber = 1; |
| | | stockList.Add(stock); |
| | | |
| | | // æ·»å åºåè®°å½ |
| | | var record = new WmsInOutStockRecord |
| | | { |
| | | TaskNo = string.IsNullOrEmpty(input.OrderNo) ? "Task_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") : input.OrderNo, |
| | | OrderNo = input.OrderNo, |
| | | StockType = StockTypeEnum.InBound, |
| | | ContainerNo = stock.ContainerNo, |
| | | MaterialId = stock.MaterialId, |
| | | MaterialModel = stock.MaterialModel, |
| | | MaterialName = stock.MaterialName, |
| | | MaterialNo = stock.MaterialNo, |
| | | MaterialBatch = stock.MaterialBatch, |
| | | SourcePlace = "æ·»å åºå", |
| | | ToPlace = stock.PlaceNo, |
| | | OperateTime = DateTime.Now, |
| | | Remark = "å
¥åº", |
| | | }; |
| | | recordList.Add(record); |
| | | } |
| | | await _wmsInOutStockRecordRepository.InsertManyAsync(recordList); |
| | | await _wmsmaterialstockRepository.InsertManyAsync(stockList); |
| | | |
| | | if (container == null) |
| | | { |
| | | container = new WmsContainer |
| | | { |
| | | ContainerNo = wmsmaterialstock.ContainerNo, |
| | | ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI, |
| | | ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI, |
| | | }; |
| | | var result = await _wmscontainerRepository.InsertAsync(container); |
| | | } |
| | | else |
| | | { |
| | | container.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI; |
| | | |
| | | await _wmscontainerRepository.UpdateAsync(container); |
| | | } |
| | | |
| | | //if (input.Sort.HasValue && wmsmaterialstock.Sort != maxSort) |
| | | //{ |
| | | // await AdjustSortAsync(wmsmaterialstock.Id, wmsmaterialstock.Sort); |
| | | //} |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | return ObjectMapper.Map<WmsMaterialStock, WmsMaterialStockDto>(wmsmaterialstock); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsMaterialStockDto> UpdateAsync(Guid id, WmsMaterialStockUpdateDto input) |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmsmaterialstockList = await _wmsmaterialstockRepository.GetStockListAsync(new WmsMaterialStock { MaterialNo = input.MaterialNo }); |
| | | //var exist = await _wmsmaterialstockRepository.NameExistAsync(input.MaterialNo, wmsmaterialstock.Id); |
| | | //if (exist) |
| | | //{ |
| | | // throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]); |
| | | //} |
| | | var material = await _wmsMaterialRepository.FindByNameAsync(input.MaterialNo); |
| | | if (material == null) |
| | | { |
| | | throw new UserFriendlyException("ç©æä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo); |
| | | if (container == null) |
| | | { |
| | | throw new UserFriendlyException("æçä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | var place = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo); |
| | | if (place == null) |
| | | { |
| | | throw new UserFriendlyException("åºä½ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | var area = await _wmsareaRepository.FindByNameAsync(place.AreaCode); |
| | | if (area == null) |
| | | { |
| | | throw new UserFriendlyException("åºä½åºåºä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | |
| | | foreach (var wmsmaterialstock in wmsmaterialstockList) |
| | | { |
| | | if (input.StockNumber < wmsmaterialstockList.Count) |
| | | { |
| | | wmsmaterialstock.IsDeleted = true; |
| | | input.StockNumber += 1; |
| | | } |
| | | wmsmaterialstock.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmsmaterialstock, MappingPropertyDefinitionChecks.None); |
| | | wmsmaterialstock.MaterialNo = input.MaterialNo; |
| | | wmsmaterialstock.ContainerNo = input.ContainerNo; |
| | | //wmsmaterialstock.StockNumber = input.StockNumber; |
| | | wmsmaterialstock.PlaceNo = input.PlaceNo; |
| | | wmsmaterialstock.IsLock = input.IsLock; |
| | | wmsmaterialstock.EmptyContainer = input.EmptyContainer; |
| | | //wmsmaterialstock.InStockTime = input.InStockTime; |
| | | wmsmaterialstock.Remark = input.Remark; |
| | | |
| | | wmsmaterialstock.MaterialName = material.MaterialName; |
| | | wmsmaterialstock.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI; |
| | | wmsmaterialstock.ContainerType = container.ContainerType; |
| | | |
| | | wmsmaterialstock.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO; |
| | | wmsmaterialstock.StorageTypeNo = place.StorageTypeNo; |
| | | wmsmaterialstock.AreaCode = place.AreaCode; |
| | | wmsmaterialstock.AreaName = area.AreaName; |
| | | |
| | | wmsmaterialstock.MaterialModel = material.MaterialModel; |
| | | wmsmaterialstock.MaterialBatch = input.MaterialBatch; |
| | | } |
| | | if (input.StockNumber > wmsmaterialstockList.Count) |
| | | { |
| | | var stockList = new List<WmsMaterialStock>(); |
| | | for (int i = 0; i < input.StockNumber - wmsmaterialstockList.Count; i++) |
| | | { |
| | | var stock = new WmsMaterialStock(); |
| | | var json = JsonSerializer.Serialize(wmsmaterialstockList[0]); |
| | | stock = JsonSerializer.Deserialize<WmsMaterialStock>(json); |
| | | stock.MaterialId = Guid.NewGuid().ToString("N"); |
| | | stock.StockNumber = 1; |
| | | stockList.Add(stock); |
| | | } |
| | | await _wmsmaterialstockRepository.InsertManyAsync(stockList); |
| | | } |
| | | |
| | | await _wmsmaterialstockRepository.UpdateManyAsync(wmsmaterialstockList); |
| | | |
| | | container.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI; |
| | | place.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO; |
| | | place.Islock = input.IsLock; |
| | | |
| | | await _wmscontainerRepository.UpdateAsync(container); |
| | | await _wmsplaceRepository.UpdateAsync(place); |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | |
| | | var result = wmsmaterialstockList.GroupBy(x => new { x.MaterialNo, x.PlaceNo, x.ContainerNo }) |
| | | .Select(g => new WmsMaterialStock |
| | | { |
| | | MaterialNo = g.Key.MaterialNo, |
| | | MaterialName = g.First().MaterialName, |
| | | PlaceNo = g.Key.PlaceNo, |
| | | ContainerNo = g.Key.ContainerNo, |
| | | ContainerStatus = g.First().ContainerStatus, |
| | | PlaceStatus = g.First().PlaceStatus, |
| | | StorageTypeNo = g.First().StorageTypeNo, |
| | | MaterialBatch = g.First().MaterialBatch, |
| | | MaterialModel = g.First().MaterialModel, |
| | | AreaCode = g.First().AreaCode, |
| | | AreaName = g.First().AreaName, |
| | | CheckStatus = g.First().CheckStatus, |
| | | IsLock = g.First().IsLock, |
| | | EmptyContainer = g.First().EmptyContainer, |
| | | InStockTime = g.First().InStockTime, |
| | | StockNumber = g.Sum(x => x.StockNumber) |
| | | }) |
| | | .FirstOrDefault(); |
| | | return ObjectMapper.Map<WmsMaterialStock, WmsMaterialStockDto>(result); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsMaterialStockDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | var wmsmaterialstocks = new List<WmsMaterialStock>(); |
| | | if (ids != null) |
| | | { |
| | | var sort = await _wmsmaterialstockRepository.GetMaxSortAsync(); |
| | | foreach (var id in ids) |
| | | { |
| | | var wmsmaterialstock = await _wmsmaterialstockRepository.FindAsync(id); |
| | | if (wmsmaterialstock != null) |
| | | { |
| | | var name = wmsmaterialstock.MaterialNo + WmsMaterialStockConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmsmaterialstockRepository.NameExistAsync(name); |
| | | if (exist || wmsmaterialstocks.Any(x => x.MaterialNo == name)) |
| | | { |
| | | name += WmsMaterialStockConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | //wmsmaterialstock = await _wmsmaterialstockRepository.InsertAsync(wmsmaterialstock.Clone(GuidGenerator.Create(), name, sort++)); |
| | | wmsmaterialstocks.Add(wmsmaterialstock); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(wmsmaterialstocks); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsmaterialstockRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤åºå |
| | | /// </summary> |
| | | /// <param name="materialNo"></param> |
| | | /// <returns></returns> |
| | | public async Task DeleteByMaterialAsync(string materialNo) |
| | | { |
| | | var wmsmaterialstockList = await _wmsmaterialstockRepository.GetStockListAsync(new WmsMaterialStock { MaterialNo = materialNo }); |
| | | var ids = wmsmaterialstockList.Select(x => x.Id); |
| | | await DeleteManyAsync(ids); |
| | | } |
| | | |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmsmaterialstockRepository.GetListAsync(null, "", 0, 999); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmsmaterialstockRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsMaterialStocksImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsmaterialstockCreateDtos = new List<(int RowIndex, WmsMaterialStockCreateDto Item)>(); |
| | | var wmsmaterialstockUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialStockUpdateDto Item)>(); |
| | | var wmsmaterialstocks = input.WmsMaterialStocks; |
| | | |
| | | if (wmsmaterialstocks != null && wmsmaterialstocks.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsMaterialStocks = wmsmaterialstocks.GroupBy(x => x.MaterialNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsMaterialStocks?.Any() == true) |
| | | { |
| | | var duplicateWmsMaterialStockMsgs = duplicateWmsMaterialStocks.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsMaterialStockMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmsmaterialstock in wmsmaterialstocks) |
| | | { |
| | | if (wmsmaterialstock.MaterialNo.IsNullOrWhiteSpace() && wmsmaterialstock.MaterialNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmsmaterialstock.MaterialNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterialstock.RowIndex}è¡ï¼WmsMaterialStockåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsMaterialStock = await _wmsmaterialstockRepository.FindByNameAsync(wmsmaterialstock.MaterialNo); |
| | | if (oldWmsMaterialStock != null) |
| | | { |
| | | var wmsMaterialStockUpdateDto = new WmsMaterialStockUpdateDto |
| | | { |
| | | // åºç¡ä¿¡æ¯ |
| | | MaterialNo = wmsmaterialstock.MaterialNo, |
| | | MaterialName = wmsmaterialstock.MaterialName, |
| | | Remark = wmsmaterialstock.Remark, |
| | | |
| | | // 容å¨ä¿¡æ¯ |
| | | ContainerNo = wmsmaterialstock.ContainerNo, |
| | | ContainerStatus = wmsmaterialstock.ContainerStatus, |
| | | ContainerType = wmsmaterialstock.ContainerType, |
| | | |
| | | // åºåä¿¡æ¯ |
| | | StockNumber = wmsmaterialstock.StockNumber, |
| | | MaterialBatch = wmsmaterialstock.MaterialBatch, |
| | | |
| | | // ä¾åºåä¿¡æ¯ |
| | | SupplierCode = wmsmaterialstock.SupplierCode, |
| | | MaterialModel = wmsmaterialstock.MaterialModel, |
| | | |
| | | // åºä½ä¿¡æ¯ |
| | | PlaceNo = wmsmaterialstock.PlaceNo, |
| | | PlaceStatus = wmsmaterialstock.PlaceStatus, |
| | | StorageTypeNo = wmsmaterialstock.StorageTypeNo, |
| | | |
| | | // åºåºä¿¡æ¯ |
| | | AreaCode = wmsmaterialstock.AreaCode, |
| | | AreaName = wmsmaterialstock.AreaName, |
| | | |
| | | // ç¶æä¿¡æ¯ |
| | | IsLock = wmsmaterialstock.IsLock, |
| | | InStockTime = wmsmaterialstock.InStockTime, |
| | | |
| | | // å¹¶åæ§å¶ |
| | | ConcurrencyStamp = oldWmsMaterialStock.ConcurrencyStamp |
| | | }; |
| | | |
| | | wmsmaterialstockUpdateDtos.Add((wmsmaterialstock.RowIndex, oldWmsMaterialStock.Id, wmsMaterialStockUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsmaterialstockCreateDto = new WmsMaterialStockCreateDto |
| | | { |
| | | // åºç¡ä¿¡æ¯ |
| | | MaterialNo = wmsmaterialstock.MaterialNo, |
| | | MaterialName = wmsmaterialstock.MaterialName, |
| | | Remark = wmsmaterialstock.Remark, |
| | | |
| | | // 容å¨ä¿¡æ¯ |
| | | ContainerNo = wmsmaterialstock.ContainerNo, |
| | | ContainerStatus = wmsmaterialstock.ContainerStatus, |
| | | ContainerType = wmsmaterialstock.ContainerType, |
| | | |
| | | // åºåä¿¡æ¯ |
| | | StockNumber = wmsmaterialstock.StockNumber, |
| | | MaterialBatch = wmsmaterialstock.MaterialBatch, |
| | | |
| | | // ä¾åºåä¿¡æ¯ |
| | | SupplierCode = wmsmaterialstock.SupplierCode, |
| | | MaterialModel = wmsmaterialstock.MaterialModel, |
| | | |
| | | // åºä½ä¿¡æ¯ |
| | | PlaceNo = wmsmaterialstock.PlaceNo, |
| | | PlaceStatus = wmsmaterialstock.PlaceStatus, |
| | | StorageTypeNo = wmsmaterialstock.StorageTypeNo, |
| | | |
| | | // åºåºä¿¡æ¯ |
| | | AreaCode = wmsmaterialstock.AreaCode, |
| | | AreaName = wmsmaterialstock.AreaName, |
| | | |
| | | // ç¶æä¿¡æ¯ |
| | | IsLock = wmsmaterialstock.IsLock, |
| | | InStockTime = wmsmaterialstock.InStockTime, |
| | | }; |
| | | |
| | | wmsmaterialstockCreateDtos.Add((wmsmaterialstock.RowIndex, wmsmaterialstockCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsmaterialstockDto in wmsmaterialstockCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsmaterialstockDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterialstockDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsmaterialstockDto in wmsmaterialstockUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsmaterialstockDto.Id, wmsmaterialstockDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterialstockDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialStockInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialStock.Sort); |
| | | } |
| | | |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | var stock = ObjectMapper.Map<GetWmsMaterialStockInput, WmsMaterialStock>(input); |
| | | var list = await _wmsmaterialstockRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | var result = ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "WmsMaterialStockå表" : result.Count == 1 ? result.First()?.MaterialNo : "WmsMaterialStock模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialStockCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | //Check.NotNullOrWhiteSpace(input.MaterialNo, "ç¼å·", WmsMaterialStockConsts.MaxCodeLength); |
| | | //Check.NotNullOrWhiteSpace(input.MaterialName, "åç§°", WmsMaterialStockConsts.MaxNameLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsMaterialStockConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·ååºå
¥åºåæ®è¯¦æ
å表 |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsMaterialStock>> GetListByFilterAsync(Expression<Func<WmsMaterialStock, bool>> whereConditions, CancellationToken cancellationToken = default) |
| | | { |
| | | return await _wmsmaterialstockRepository.GetListByFilterAsync(whereConditions); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·åå个åºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="isMultipleThrowException">æ¯å¦æ¥è¯¢åºå¤æ¡å°±æ¥é</param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task<WmsMaterialStock> GetSingleByFilterAsync(Expression<Func<WmsMaterialStock, bool>> whereConditions, bool isâMultipleThrowException = false, CancellationToken cancellationToken = default) |
| | | { |
| | | return await _wmsmaterialstockRepository.GetSingleByFilterAsync(whereConditions, isâMultipleThrowException); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·ååºå
¥åºåæ®è¯¦æ
å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<List<WmsMaterialStockDto>> FindListByFilterAsync(GetWmsMaterialStockInput input, CancellationToken cancellationToken = default) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialStock.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var list = await _wmsmaterialstockRepository.GetListByFilterAsync(whereConditions?.data); |
| | | |
| | | return new List<WmsMaterialStockDto>(ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(list)); |
| | | } |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·åå个åºå
¥åºåæ®è¯¦æ
|
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsMaterialStockDto> FindSingleByFilterAsync(GetWmsMaterialStockInput input, CancellationToken cancellationToken = default) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialStock.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var dataObj = await _wmsmaterialstockRepository.GetSingleByFilterAsync(whereConditions?.data); |
| | | |
| | | return (ObjectMapper.Map<WmsMaterialStock, WmsMaterialStockDto>(dataObj)); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CmsQueryExtensions; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using CmsQueryExtensions.Entitys; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialTypes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯åºç¨æå¡ |
| | | /// </summary> |
| | | public class WmsMaterialTypeAppService : CMSPluginAppService, IWmsMaterialTypeAppService |
| | | { |
| | | private readonly IWmsMaterialTypeRepository _WmsMaterialTypeRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialTypeAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="WmsMaterialTypeRepository">The task job repository.</param> |
| | | public WmsMaterialTypeAppService(IWmsMaterialTypeRepository WmsMaterialTypeRepository) |
| | | { |
| | | _WmsMaterialTypeRepository = WmsMaterialTypeRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæå®ç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsMaterialTypeDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsMaterialType, WmsMaterialTypeDto>(await _WmsMaterialTypeRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·åç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<WmsMaterialTypeDto>> GetListAsync(GetWmsMaterialTypeInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialType.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await _WmsMaterialTypeRepository.GetCountAsync(whereConditions); |
| | | var list = await _WmsMaterialTypeRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsMaterialTypeDto>(count, ObjectMapper.Map<List<WmsMaterialType>, List<WmsMaterialTypeDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> DynamicGetQueryParams(GetWmsMaterialTypeInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterialType, GetWmsMaterialTypeInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsMaterialType, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsMaterialType, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ°å»ºç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsMaterialTypeDto> CreateAsync(WmsMaterialTypeCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _WmsMaterialTypeRepository.NameExistAsync(input.MaterialTypeCode); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialTypeCode]); |
| | | } |
| | | |
| | | var maxSort = await _WmsMaterialTypeRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | var insertObj = ObjectMapper.Map<WmsMaterialTypeCreateDto, WmsMaterialType>(input); |
| | | insertObj.Sort = sort; |
| | | input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | insertObj.CreatorName = input.CreatorName;//å建人 |
| | | await _WmsMaterialTypeRepository.InsertAsync(insertObj); |
| | | |
| | | //if (input.Sort.HasValue && insertObj.Sort != maxSort) |
| | | //{ |
| | | // await AdjustSortAsync(insertObj.Id, insertObj.Sort); |
| | | //} |
| | | |
| | | return ObjectMapper.Map<WmsMaterialType, WmsMaterialTypeDto>(insertObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsMaterialTypeDto> UpdateAsync(Guid id, WmsMaterialTypeUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var updateObj = await _WmsMaterialTypeRepository.GetAsync(id); |
| | | var exist = await _WmsMaterialTypeRepository.NameExistAsync(input.MaterialTypeCode, updateObj.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialTypeCode]); |
| | | } |
| | | |
| | | updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | updateObj.MaterialTypeDesc = input.MaterialTypeDesc; |
| | | updateObj.MaterialTypeCode = input.MaterialTypeCode; |
| | | updateObj.Remark = input.Remark; |
| | | |
| | | |
| | | updateObj.LastModifierName = input.LastModifierName;//ä¿®æ¹äºº |
| | | |
| | | await _WmsMaterialTypeRepository.UpdateAsync(updateObj); |
| | | |
| | | return ObjectMapper.Map<WmsMaterialType, WmsMaterialTypeDto>(updateObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsMaterialTypeDto>> CloneAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser) |
| | | { |
| | | //var WmsMaterialTypes = new List<WmsMaterialType>(); |
| | | //if (ids != null) |
| | | //{ |
| | | // var sort = await _WmsMaterialTypeRepository.GetMaxSortAsync(); |
| | | // foreach (var id in ids) |
| | | // { |
| | | // var WmsMaterialType = await _WmsMaterialTypeRepository.FindAsync(id); |
| | | // if (WmsMaterialType != null) |
| | | // { |
| | | // var name = WmsMaterialType.Name + WmsMaterialTypeConsts.CloneTag; |
| | | // var notExist = false; |
| | | // while (!notExist) |
| | | // { |
| | | // var exist = await _WmsMaterialTypeRepository.NameExistAsync(name); |
| | | // if (exist || WmsMaterialTypes.Any(x => x.Name == name)) |
| | | // { |
| | | // name += WmsMaterialTypeConsts.CloneTag; |
| | | // continue; |
| | | // } |
| | | |
| | | // notExist = true; |
| | | // } |
| | | |
| | | // //WmsMaterialType = await _WmsMaterialTypeRepository.InsertAsync(WmsMaterialType.Clone(GuidGenerator.Create(), name, sort++)); |
| | | // WmsMaterialTypes.Add(WmsMaterialType); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //return ObjectMapper.Map<List<WmsMaterialType>, List<WmsMaterialTypeDto>>(WmsMaterialTypes); |
| | | return new List<WmsMaterialTypeDto>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤åä¸ªç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _WmsMaterialTypeRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤ä¸ªç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©çå é¤ç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id">主é®ID</param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task DeletePermanentlyAsync(Guid id, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default) |
| | | { |
| | | _WmsMaterialTypeRepository.DeletePermanentlyAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éç©çå é¤ç©ælç±»åä¿¡æ¯ï¼ç´æ¥å é¤ï¼ä¸è½¯å é¤ï¼ |
| | | /// </summary> |
| | | /// <param name="ids">è¦å é¤ç主é®IDå表</param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default) |
| | | { |
| | | _WmsMaterialTypeRepository.BatchDeletePermanentlyAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _WmsMaterialTypeRepository.GetListAsync(null, nameof(WmsMaterialType.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _WmsMaterialTypeRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥ç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task ImportAsync(WmsMaterialTypesImportModel input, MyCurrentUser myCurrentUser) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var WmsMaterialTypeCreateDtos = new List<(int RowIndex, WmsMaterialTypeCreateDto Item)>(); |
| | | var WmsMaterialTypeUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialTypeUpdateDto Item)>(); |
| | | var importItems = input.WmsMaterialTypes; |
| | | |
| | | if (importItems != null && importItems.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsMaterialTypes = importItems.GroupBy(x => x.MaterialTypeCode).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsMaterialTypes?.Any() == true) |
| | | { |
| | | var duplicateWmsMaterialTypeMsgs = duplicateWmsMaterialTypes.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsMaterialTypeMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var impItem in importItems) |
| | | { |
| | | if (impItem.MaterialTypeCode.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (impItem.MaterialTypeCode.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{impItem.RowIndex}è¡ï¼WmsMaterialTypeåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsMaterialType = await _WmsMaterialTypeRepository.FindByNameAsync(impItem.MaterialTypeCode); |
| | | if (oldWmsMaterialType != null) |
| | | { |
| | | var WmsMaterialTypeUpdateDto = new WmsMaterialTypeUpdateDto |
| | | { |
| | | MaterialTypeDesc = impItem.MaterialTypeDesc, |
| | | MaterialTypeCode = impItem.MaterialTypeCode, |
| | | Remark = impItem.Remark, |
| | | |
| | | }; |
| | | |
| | | WmsMaterialTypeUpdateDtos.Add((impItem.RowIndex, oldWmsMaterialType.Id, WmsMaterialTypeUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var WmsMaterialTypeCreateDto = new WmsMaterialTypeCreateDto |
| | | { |
| | | MaterialTypeDesc = impItem.MaterialTypeDesc, |
| | | MaterialTypeCode = impItem.MaterialTypeCode, |
| | | Remark = impItem.Remark, |
| | | |
| | | }; |
| | | |
| | | WmsMaterialTypeCreateDtos.Add((impItem.RowIndex, WmsMaterialTypeCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var WmsMaterialTypeDto in WmsMaterialTypeCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | WmsMaterialTypeDto.Item.CreatorName = myCurrentUser.UserAccount;//å建人 |
| | | await CreateAsync(WmsMaterialTypeDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{WmsMaterialTypeDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var WmsMaterialTypeDto in WmsMaterialTypeUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | WmsMaterialTypeDto.Item.LastModifierName = myCurrentUser.UserAccount;//ä¿®æ¹äºº |
| | | await UpdateAsync(WmsMaterialTypeDto.Id, WmsMaterialTypeDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{WmsMaterialTypeDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialTypeInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialType.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | var list = await _WmsMaterialTypeRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsMaterialType>, List<WmsMaterialTypeDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = "ç©æç±»å"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¡éªç©ælç±»åä¿¡æ¯ï¼å½æ°å»ºææ´æ°æ¶ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialTypeCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.MaterialTypeDesc, "ç±»åæè¿°", 128); |
| | | Check.NotNullOrWhiteSpace(input.MaterialTypeCode, "ç±»åç¼ç ", 64); |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·åç©ælç±»åä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsMaterialType>> GetListByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, CancellationToken cancellationToken = default) |
| | | { |
| | | return await _WmsMaterialTypeRepository.GetListByFilterAsync(whereConditions); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·ååä¸ªç©ælç±»åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="isMultipleThrowException">æ¯å¦æ¥è¯¢åºå¤æ¡å°±æ¥é</param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task<WmsMaterialType> GetSingleByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, bool isâMultipleThrowException = false, CancellationToken cancellationToken = default) |
| | | { |
| | | return await _WmsMaterialTypeRepository.GetSingleByFilterAsync(whereConditions, isâMultipleThrowException); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements |
| | | { |
| | | public class WmsOrderOperateAppService : CMSPluginAppService |
| | | { |
| | | /// <summary> |
| | | /// 嫿 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task CallMaterialAsync() |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsTask; |
| | | 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.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements |
| | | { |
| | | /// <summary> |
| | | /// åºåºæå¡ |
| | | /// </summary> |
| | | public class WmsOutStockAppService : CMSPluginAppService, IWmsOutStockAppService |
| | | { |
| | | private readonly IWmsMaterialStockRepository _wmsMaterialStockRepository; |
| | | private readonly IWmsCommonAppService _wmsCommonAppService; |
| | | private readonly IWmsTaskRepository _wmsTaskRepository; |
| | | private readonly IWmsInOutStockOrderRepository _wmsInOutStockOrderRepository; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | public WmsOutStockAppService(IWmsMaterialStockRepository wmsMaterialStockRepository, |
| | | IWmsCommonAppService wmsCommonAppService, IWmsTaskRepository wmsTaskRepository, |
| | | IWmsInOutStockOrderRepository wmsInOutStockOrderRepository, IServiceProvider serviceProvider |
| | | ) |
| | | { |
| | | _wmsMaterialStockRepository = wmsMaterialStockRepository; |
| | | _wmsCommonAppService = wmsCommonAppService; |
| | | _wmsTaskRepository = wmsTaskRepository; |
| | | _wmsInOutStockOrderRepository = wmsInOutStockOrderRepository; |
| | | _serviceProvider = serviceProvider; |
| | | } |
| | | |
| | | public async Task<List<CallMaterialOutput>> CallMaterialAsync(List<CallMaterialInput> input) |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | var distinctModels = input.Select(x => x.MaterialModel).Distinct().ToList(); |
| | | if (distinctModels.Count > 1) |
| | | { |
| | | throw new UserFriendlyException("䏿¬¡å«æåªè½é对åä¸åå·çç©æï¼"); |
| | | } |
| | | var callOutput = new List<CallMaterialOutput>(); |
| | | foreach (var inputItem in input) |
| | | { |
| | | if (inputItem.MaterialNumber <= 0) |
| | | { |
| | | throw new UserFriendlyException("嫿æ°éå¿
须大äº0"); |
| | | } |
| | | if (!inputItem.IgnoreOrder) |
| | | { |
| | | var order = await _wmsInOutStockOrderRepository.FindByNameAsync(inputItem.OrderNo); |
| | | if (order == null) |
| | | { |
| | | throw new UserFriendlyException("åºåºåæ®ä¸åå¨"); |
| | | } |
| | | if (order.OrderType == OrderTypeEnum.SelfMadeParts || order.OrderType == OrderTypeEnum.PERSONIN) |
| | | { |
| | | throw new UserFriendlyException("å
¥åºåä¸å
è®¸å«æ"); |
| | | } |
| | | if (order.OrderStatus == OrderStatusEnum.Finish) |
| | | { |
| | | throw new UserFriendlyException("已宿忮ä¸å
è®¸å«æ"); |
| | | } |
| | | if (order.MaterialNumber < inputItem.MaterialNumber + order.DistributeNumber) |
| | | { |
| | | throw new UserFriendlyException("嫿æ°éä¸è½å¤§äºåæ®æ°é"); |
| | | } |
| | | order.OrderStatus = OrderStatusEnum.Executing; |
| | | order.DistributeNumber = inputItem.MaterialNumber; |
| | | order.OperateTime = DateTime.Now; |
| | | |
| | | await _wmsInOutStockOrderRepository.UpdateAsync(order); |
| | | } |
| | | |
| | | var stockresult = await _wmsCommonAppService.FindStockAsync(inputItem.MaterialModel, inputItem.MaterialNumber); |
| | | if (stockresult == null) |
| | | { |
| | | throw new UserFriendlyException("å½åæ åºå"); |
| | | } |
| | | var taskList = new List<WmsTask>(); |
| | | foreach (var kvp in stockresult) |
| | | { |
| | | var stock = kvp.Key; // WmsPlace对象 |
| | | var quantity = kvp.Value; // åé
æ°é |
| | | |
| | | for (int i = 0; i < quantity; i++) |
| | | { |
| | | var task = new WmsTask |
| | | { |
| | | TaskNo = $"CK_{DateTime.Now:yyyyMMddHHmmss}_{Guid.NewGuid().ToString("N").Substring(0, 6)}", |
| | | ContainerNo = stock.ContainerNo, |
| | | SourcePlace = stock.PlaceNo, |
| | | ToPlace = "201",// place.PlaceNo, |
| | | TaskType = TaskTypeEnum.CHUKU, |
| | | SonTaskType = inputItem.OrderType == OrderTypeEnum.PRODUCTCALL ? SonTaskTypeEnum.ZDCHUKU : SonTaskTypeEnum.RGRUKU, |
| | | TaskStatus = WmsTaskStatus.WEIZHIXING, |
| | | TaskLevel = inputItem.Priority, |
| | | Aisle = 1, |
| | | DodeviceId = 0, |
| | | Dodevicetype = DodevicetypeEnum.Srm, |
| | | TaskDodeviceStatus = TaskDodeviceStatus.SrmNoStart, |
| | | IsNextTask = (int)YesNoEnum.Y, |
| | | IsRead = true, |
| | | PlcTaskId = new Random(Guid.NewGuid().GetHashCode()).Next(101, 99999), |
| | | SourceOrderNo = inputItem.OrderNo, |
| | | MutableParam1 = inputItem.MaterialModel, |
| | | MutableParam2 = inputItem.DataIdentifier |
| | | }; |
| | | taskList.Add(task); |
| | | |
| | | var output = ObjectMapper.Map<WmsMaterialStockDto, CallMaterialOutput>(stock); |
| | | output.TaskNo = task.TaskNo; |
| | | output.PlcTaskId = task.PlcTaskId; |
| | | output.SourceOrderNo = task.SourceOrderNo; |
| | | callOutput.Add(output); |
| | | } |
| | | } |
| | | await _wmsTaskRepository.InsertManyAsync(taskList); |
| | | } |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | |
| | | return callOutput; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CmsQueryExtensions; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using System.Text.RegularExpressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsPlaceAppService : CMSPluginAppService, IWmsPlaceAppService |
| | | { |
| | | private readonly IWmsPlaceRepository _wmsplaceRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsplaceRepository">The task job repository.</param> |
| | | public WmsPlaceAppService(IWmsPlaceRepository wmsplaceRepository) |
| | | { |
| | | _wmsplaceRepository = wmsplaceRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsPlaceDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsPlace, WmsPlaceDto>(await _wmsplaceRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·ååºä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<WmsPlaceDto>> GetListAsync(GetWmsPlaceInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsPlace.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await _wmsplaceRepository.GetCountAsync(whereConditions); |
| | | var list = await _wmsplaceRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsPlaceDto>(count, ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsPlace, bool>>> DynamicGetQueryParams(GetWmsPlaceInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsPlace, GetWmsPlaceInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsPlace, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsPlace, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsPlaceDto> CreateAsync(WmsPlaceCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmsplaceRepository.NameExistAsync(input.PlaceNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.PlaceNo]); |
| | | } |
| | | |
| | | var maxSort = await _wmsplaceRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | var wmsplace = ObjectMapper.Map<WmsPlaceCreateDto,WmsPlace>(input); |
| | | input.MapExtraPropertiesTo(wmsplace, MappingPropertyDefinitionChecks.None); |
| | | wmsplace.Sort = sort; |
| | | await _wmsplaceRepository.InsertAsync(wmsplace); |
| | | |
| | | if (input.Sort.HasValue && wmsplace.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmsplace.Id, wmsplace.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsPlace, WmsPlaceDto>(wmsplace); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsPlaceDto> UpdateAsync(Guid id, WmsPlaceUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmsplace = await _wmsplaceRepository.GetAsync(id); |
| | | var exist = await _wmsplaceRepository.NameExistAsync(input.PlaceNo, wmsplace.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.PlaceNo]); |
| | | } |
| | | |
| | | wmsplace.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmsplace, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmsplace.StorageTypeNo = input.StorageTypeNo; |
| | | wmsplace.PlaceStatus = input.PlaceStatus; |
| | | wmsplace.AreaCode = input.AreaCode; |
| | | wmsplace.Aisle = input.Aisle; |
| | | wmsplace.RowNo = input.RowNo; |
| | | wmsplace.ColumnNo = input.ColumnNo; |
| | | wmsplace.LayerNo = input.LayerNo; |
| | | wmsplace.Islock = input.Islock; |
| | | wmsplace.EmptyContainer = input.EmptyContainer; |
| | | wmsplace.RedundantField1 = input.RedundantField1; |
| | | wmsplace.RedundantField2 = input.RedundantField2; |
| | | wmsplace.RedundantField3 = input.RedundantField3; |
| | | wmsplace.Remark = input.Remark; |
| | | wmsplace.IsDisabled = input.IsDisabled; |
| | | |
| | | await _wmsplaceRepository.UpdateAsync(wmsplace); |
| | | |
| | | return ObjectMapper.Map<WmsPlace, WmsPlaceDto>(wmsplace); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsPlaceDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | var wmsplaces = new List<WmsPlace>(); |
| | | if (ids != null) |
| | | { |
| | | var sort = await _wmsplaceRepository.GetMaxSortAsync(); |
| | | foreach (var id in ids) |
| | | { |
| | | var wmsplace = await _wmsplaceRepository.FindAsync(id); |
| | | if (wmsplace != null) |
| | | { |
| | | var name = wmsplace.PlaceNo + WmsPlaceConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmsplaceRepository.NameExistAsync(name); |
| | | if (exist || wmsplaces.Any(x => x.PlaceNo == name)) |
| | | { |
| | | name += WmsPlaceConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | //wmsplace = await _wmsplaceRepository.InsertAsync(wmsplace.Clone(GuidGenerator.Create(), name, sort++)); |
| | | wmsplaces.Add(wmsplace); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(wmsplaces); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsplaceRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmsplaceRepository.GetListAsync(null,nameof(WmsPlace.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmsplaceRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsPlacesImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsplaceCreateDtos = new List<(int RowIndex, WmsPlaceCreateDto Item)>(); |
| | | var wmsplaceUpdateDtos = new List<(int RowIndex, Guid Id, WmsPlaceUpdateDto Item)>(); |
| | | var wmsplaces = input.WmsPlaces; |
| | | |
| | | if (wmsplaces != null && wmsplaces.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsPlaces = wmsplaces.GroupBy(x => x.PlaceNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsPlaces?.Any() == true) |
| | | { |
| | | var duplicateWmsPlaceMsgs = duplicateWmsPlaces.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsPlaceMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmsplace in wmsplaces) |
| | | { |
| | | if (wmsplace.PlaceNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmsplace.PlaceNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsplace.RowIndex}è¡ï¼WmsPlaceåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsPlace = await _wmsplaceRepository.FindByNameAsync(wmsplace.PlaceNo); |
| | | if (oldWmsPlace != null) |
| | | { |
| | | var wmsplaceUpdateDto = new WmsPlaceUpdateDto |
| | | { |
| | | PlaceNo = wmsplace.PlaceNo, |
| | | PlaceStatus = wmsplace.PlaceStatus, |
| | | Remark = wmsplace.Remark, |
| | | }; |
| | | |
| | | wmsplaceUpdateDtos.Add((wmsplace.RowIndex, oldWmsPlace.Id, wmsplaceUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsplaceCreateDto = new WmsPlaceCreateDto |
| | | { |
| | | PlaceNo = wmsplace.PlaceNo, |
| | | PlaceStatus = wmsplace.PlaceStatus, |
| | | Remark = wmsplace.Remark, |
| | | }; |
| | | |
| | | wmsplaceCreateDtos.Add((wmsplace.RowIndex, wmsplaceCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsplaceDto in wmsplaceCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsplaceDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsplaceDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsplaceDto in wmsplaceUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsplaceDto.Id, wmsplaceDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsplaceDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºåºä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsPlaceInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsPlace.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | var list = await _wmsplaceRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = "åºä½ä¿¡æ¯"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsPlaceCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.PlaceNo, "ç¼å·", WmsPlaceConsts.MaxCodeLength); |
| | | string pattern = @"^\d+-\d+$"; |
| | | if (input.StorageTypeNo == Domain.Shared.Enums.PlaceTypeEnum.YUANLIAOKUWEI && !Regex.IsMatch(input.PlaceNo, pattern)) |
| | | { |
| | | throw new UserFriendlyException("åºä½ç¼å·æ ¼å¼é误"); |
| | | } |
| | | Check.Length(input.Remark, "夿³¨", WmsPlaceConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.WmsStores; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsStores; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using CmsQueryExtensions; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsStoreAppService : CMSPluginAppService, IWmsStoreAppService |
| | | { |
| | | private readonly IWmsStoreRepository _wmsstoreRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsStoreAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsstoreRepository">The task job repository.</param> |
| | | public WmsStoreAppService(IWmsStoreRepository wmsstoreRepository) |
| | | { |
| | | _wmsstoreRepository = wmsstoreRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsStoreDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsStore, WmsStoreDto>(await _wmsstoreRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<PagedResultDto<WmsStoreDto>> GetListAsync(GetWmsStoreInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsStore.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await _wmsstoreRepository.GetCountAsync(whereConditions); |
| | | var list = await _wmsstoreRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsStoreDto>(count, ObjectMapper.Map<List<WmsStore>, List<WmsStoreDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsStore, bool>>> DynamicGetQueryParams(GetWmsStoreInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsStore, GetWmsStoreInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsStore, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsStore, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsStoreDto> CreateAsync(WmsStoreCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmsstoreRepository.NameExistAsync(input.StoreCode); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.StoreCode]); |
| | | } |
| | | |
| | | var maxSort = await _wmsstoreRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | var wmsstore = ObjectMapper.Map<WmsStoreCreateDto,WmsStore>(input); |
| | | wmsstore.Sort = sort; |
| | | input.MapExtraPropertiesTo(wmsstore, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await _wmsstoreRepository.InsertAsync(wmsstore); |
| | | |
| | | if (input.Sort.HasValue && wmsstore.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmsstore.Id, wmsstore.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsStore, WmsStoreDto>(wmsstore); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsStoreDto> UpdateAsync(Guid id, WmsStoreUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmsstore = await _wmsstoreRepository.GetAsync(id); |
| | | var exist = await _wmsstoreRepository.NameExistAsync(input.StoreCode, wmsstore.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.StoreCode]); |
| | | } |
| | | |
| | | wmsstore.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmsstore, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmsstore.StoreName = input.StoreName; |
| | | wmsstore.Remark = input.Remark; |
| | | |
| | | await _wmsstoreRepository.UpdateAsync(wmsstore); |
| | | |
| | | return ObjectMapper.Map<WmsStore, WmsStoreDto>(wmsstore); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsStoreDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | var wmsstores = new List<WmsStore>(); |
| | | if (ids != null) |
| | | { |
| | | var sort = await _wmsstoreRepository.GetMaxSortAsync(); |
| | | foreach (var id in ids) |
| | | { |
| | | var wmsstore = await _wmsstoreRepository.FindAsync(id); |
| | | if (wmsstore != null) |
| | | { |
| | | var name = wmsstore.StoreName + WmsStoreConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmsstoreRepository.NameExistAsync(name); |
| | | if (exist || wmsstores.Any(x => x.StoreCode == name)) |
| | | { |
| | | name += WmsStoreConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | //wmsstore = await _wmsstoreRepository.InsertAsync(wmsstore.Clone(GuidGenerator.Create(), name, sort++)); |
| | | wmsstores.Add(wmsstore); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ObjectMapper.Map<List<WmsStore>, List<WmsStoreDto>>(wmsstores); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsstoreRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmsstoreRepository.GetListAsync(null,nameof(WmsStore.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmsstoreRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsStoresImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsstoreCreateDtos = new List<(int RowIndex, WmsStoreCreateDto Item)>(); |
| | | var wmsstoreUpdateDtos = new List<(int RowIndex, Guid Id, WmsStoreUpdateDto Item)>(); |
| | | var wmsstores = input.WmsStores; |
| | | |
| | | if (wmsstores != null && wmsstores.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsStores = wmsstores.GroupBy(x => x.StoreCode).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsStores?.Any() == true) |
| | | { |
| | | var duplicateWmsStoreMsgs = duplicateWmsStores.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsStoreMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmsstore in wmsstores) |
| | | { |
| | | if (wmsstore.StoreCode.IsNullOrWhiteSpace() && wmsstore.StoreName.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmsstore.StoreCode.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsstore.RowIndex}è¡ï¼WmsStoreåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsStore = await _wmsstoreRepository.FindByNameAsync(wmsstore.StoreCode); |
| | | if (oldWmsStore != null) |
| | | { |
| | | var wmsstoreUpdateDto = new WmsStoreUpdateDto |
| | | { |
| | | StoreCode = wmsstore.StoreCode, |
| | | StoreName = wmsstore.StoreName, |
| | | Remark = wmsstore.Remark, |
| | | }; |
| | | |
| | | wmsstoreUpdateDtos.Add((wmsstore.RowIndex, oldWmsStore.Id, wmsstoreUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsstoreCreateDto = new WmsStoreCreateDto |
| | | { |
| | | StoreCode = wmsstore.StoreCode, |
| | | StoreName = wmsstore.StoreName, |
| | | Remark = wmsstore.Remark, |
| | | }; |
| | | |
| | | wmsstoreCreateDtos.Add((wmsstore.RowIndex, wmsstoreCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsstoreDto in wmsstoreCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsstoreDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsstoreDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsstoreDto in wmsstoreUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsstoreDto.Id, wmsstoreDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsstoreDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsStoreInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsStore.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | var list = await _wmsstoreRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsStore>, List<WmsStoreDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = "ä»åºä¿¡æ¯"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsStoreCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.StoreCode, "ç¼å·", WmsStoreConsts.MaxCodeLength); |
| | | Check.NotNullOrWhiteSpace(input.StoreName, "åç§°", WmsStoreConsts.MaxNameLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsStoreConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CmsQueryExtensions; |
| | | using CMS.Plugin.HIAWms.Domain.WmsTask; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | using Volo.Abp.Uow; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using NPOI.SS.Formula.Functions; |
| | | using System.Collections.Generic; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <summary> |
| | | /// Wmsä»»å¡ç®¡çåºç¨æå¡ |
| | | /// </summary> |
| | | public class WmsTaskAppService : CMSPluginAppService, IWmsTaskAppService |
| | | { |
| | | private readonly IWmsTaskRepository wmsTaskRepository; |
| | | private readonly IWmsContainerRepository _wmsContainerRepository; |
| | | private readonly IWmsPlaceRepository _wmsPlaceRepository; |
| | | private readonly IWmsMaterialStockRepository _wmsMaterialStockRepository; |
| | | private readonly IWmsInOutStockOrderRepository _wmsInOutStockOrderRepository; |
| | | private readonly IWmsInOutStockOrderDetailRepository _wmsInOutStockOrderDetailRepository; |
| | | private readonly IWmsContainerRepository _wmsContainerRepository1; |
| | | private readonly IWmsInOutStockOrderDetailAppService _wmsInOutStockOrderDetailAppService; |
| | | private readonly IWmsInOutStockRecordAppService _wmsInOutStockRecordAppService; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsTaskAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="WmsTaskRepository">The task job repository.</param> |
| | | public WmsTaskAppService(IWmsTaskRepository _WmsTaskRepository, |
| | | IWmsContainerRepository wmsContainerRepository, |
| | | IWmsPlaceRepository wmsPlaceRepository, |
| | | IWmsMaterialStockRepository wmsMaterialStockRepository, |
| | | IWmsInOutStockOrderRepository wmsInOutStockOrderRepository, |
| | | IWmsInOutStockOrderDetailRepository wmsInOutStockOrderDetailRepository |
| | | , |
| | | IWmsContainerRepository wmsContainerRepository1, |
| | | IWmsInOutStockOrderDetailAppService wmsInOutStockOrderDetailAppService, |
| | | IWmsInOutStockRecordAppService wmsInOutStockRecordAppService, |
| | | IServiceProvider serviceProvider = null) |
| | | { |
| | | wmsTaskRepository = _WmsTaskRepository; |
| | | _wmsContainerRepository = wmsContainerRepository; |
| | | _wmsPlaceRepository = wmsPlaceRepository; |
| | | _wmsMaterialStockRepository = wmsMaterialStockRepository; |
| | | _wmsInOutStockOrderRepository = wmsInOutStockOrderRepository; |
| | | _wmsInOutStockOrderDetailRepository = wmsInOutStockOrderDetailRepository; |
| | | _wmsContainerRepository1 = wmsContainerRepository1; |
| | | _wmsInOutStockOrderDetailAppService = wmsInOutStockOrderDetailAppService; |
| | | _wmsInOutStockRecordAppService = wmsInOutStockRecordAppService; |
| | | _serviceProvider = serviceProvider; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæå®Wmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsTaskDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsTask, WmsTaskDto>(await wmsTaskRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·åWmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<WmsTaskDto>> GetListAsync(GetWmsTaskInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsTask.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await wmsTaskRepository.GetCountAsync(whereConditions); |
| | | var list = await wmsTaskRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsTaskDto>(count, ObjectMapper.Map<List<WmsTask>, List<WmsTaskDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsTask, bool>>> DynamicGetQueryParams(GetWmsTaskInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsTask, GetWmsTaskInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsTask, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsTask, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ°å»ºWmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsTaskDto> CreateAsync(WmsTaskCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await wmsTaskRepository.NameExistAsync(input.TaskNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskNo]); |
| | | } |
| | | // æ ¡éªæçæ¯å¦åå¨ |
| | | var existContainer = await _wmsContainerRepository.NameExistAsync(input.ContainerNo); |
| | | if (existContainer) |
| | | { |
| | | throw new UserFriendlyException("æçä¸åå¨ï¼è¯·å
æ·»å æç"); |
| | | } |
| | | // æ ¡éªç©ææ¯å¦åå¨ |
| | | var existSourcePlace = await _wmsPlaceRepository.NameExistAsync(input.SourcePlace); |
| | | if (existSourcePlace) |
| | | { |
| | | throw new UserFriendlyException("èµ·å§åºä½ä¸åå¨ï¼è¯·å
æ·»å åºä½"); |
| | | } |
| | | //æ ¡éªåºä½æ¯å¦åå¨ |
| | | var existToPlace = await _wmsPlaceRepository.NameExistAsync(input.ToPlace); |
| | | if (existToPlace) |
| | | { |
| | | throw new UserFriendlyException("ç®æ åºä½ä¸åå¨ï¼è¯·å
æ·»å åºä½"); |
| | | } |
| | | |
| | | var maxSort = await wmsTaskRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | var insertObj = ObjectMapper.Map<WmsTaskCreateDto, WmsTask>(input); |
| | | insertObj.Sort = sort; |
| | | input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); |
| | | insertObj.PlcTaskId = new Random(Guid.NewGuid().GetHashCode()).Next(101, 99999); |
| | | |
| | | await wmsTaskRepository.InsertAsync(insertObj); |
| | | |
| | | if (input.Sort.HasValue && insertObj.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(insertObj.Id, insertObj.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsTask, WmsTaskDto>(insertObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°Wmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsTaskDto> UpdateAsync(Guid id, WmsTaskUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var updateObj = await wmsTaskRepository.GetAsync(id); |
| | | var exist = await wmsTaskRepository.NameExistAsync(input.TaskNo, updateObj.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskNo]); |
| | | } |
| | | |
| | | updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | if (input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.WANCHENG || input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.QUXIAO) |
| | | { |
| | | throw new UserFriendlyException("宿æè
åæ¶çä»»å¡ä¸å
è®¸æ´æ¹"); |
| | | } |
| | | |
| | | input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | updateObj.TaskNo = input.TaskNo; |
| | | updateObj.TaskType = input.TaskType; |
| | | updateObj.TaskLevel = input.TaskLevel; |
| | | updateObj.TaskStatus = input.TaskStatus; |
| | | updateObj.ContainerNo = input.ContainerNo; |
| | | updateObj.SourcePlace = input.SourcePlace; |
| | | updateObj.ToPlace = input.ToPlace; |
| | | updateObj.Aisle = input.Aisle; |
| | | updateObj.DodeviceId = input.DodeviceId; |
| | | updateObj.Dodevicetype = input.Dodevicetype; |
| | | updateObj.TaskDodeviceStatus = input.TaskDodeviceStatus; |
| | | updateObj.IsRead = input.IsRead; |
| | | updateObj.SonTaskType = input.SonTaskType; |
| | | updateObj.SourceOrderNo = input.SourceOrderNo; |
| | | updateObj.IsNextTask = input.IsNextTask; |
| | | updateObj.MutableParam1 = input.MutableParam1; |
| | | updateObj.MutableParam2 = input.MutableParam2; |
| | | updateObj.MutableParam3 = input.MutableParam3; |
| | | updateObj.IsDisabled = input.IsDisabled; |
| | | |
| | | await wmsTaskRepository.UpdateAsync(updateObj); |
| | | |
| | | return ObjectMapper.Map<WmsTask, WmsTaskDto>(updateObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éWmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsTaskDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | //var wmsTasks = new List<WmsTask>(); |
| | | //if (ids != null) |
| | | //{ |
| | | // var sort = await wmsTaskRepository.GetMaxSortAsync(); |
| | | // foreach (var id in ids) |
| | | // { |
| | | // var WmsTask = await wmsTaskRepository.FindAsync(id); |
| | | // if (WmsTask != null) |
| | | // { |
| | | // var name = WmsTask.Name + WmsTaskConsts.CloneTag; |
| | | // var notExist = false; |
| | | // while (!notExist) |
| | | // { |
| | | // var exist = await wmsTaskRepository.NameExistAsync(name); |
| | | // if (exist || wmsTasks.Any(x => x.Name == name)) |
| | | // { |
| | | // name += WmsTaskConsts.CloneTag; |
| | | // continue; |
| | | // } |
| | | |
| | | // notExist = true; |
| | | // } |
| | | |
| | | // //WmsTask = await wmsTaskRepository.InsertAsync(WmsTask.Clone(GuidGenerator.Create(), name, sort++)); |
| | | // wmsTasks.Add(WmsTask); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //return ObjectMapper.Map<List<WmsTask>, List<WmsTaskDto>>(wmsTasks); |
| | | return new List<WmsTaskDto>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å个Wmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return wmsTaskRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤ä¸ªWmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºWmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await wmsTaskRepository.GetListAsync(null, nameof(WmsTask.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await wmsTaskRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥Wmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task ImportAsync(WmsTasksImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsTaskCreateDtos = new List<(int RowIndex, WmsTaskCreateDto Item)>(); |
| | | var wmsTaskUpdateDtos = new List<(int RowIndex, Guid Id, WmsTaskUpdateDto Item)>(); |
| | | var importItems = input.WmsTasks; |
| | | |
| | | if (importItems != null && importItems.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsTasks = importItems.GroupBy(x => x.TaskNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsTasks?.Any() == true) |
| | | { |
| | | var duplicateWmsTaskMsgs = duplicateWmsTasks.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsTaskMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var impItem in importItems) |
| | | { |
| | | if (impItem.TaskNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (impItem.TaskNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{impItem.RowIndex}è¡ï¼WmsTaskåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsTask = await wmsTaskRepository.FindByNameAsync(impItem.TaskNo); |
| | | if (oldWmsTask != null) |
| | | { |
| | | var wmsTaskUpdateDto = new WmsTaskUpdateDto |
| | | { |
| | | TaskNo = impItem.TaskNo, |
| | | TaskType = impItem.TaskType, |
| | | TaskLevel = impItem.TaskLevel, |
| | | TaskStatus = impItem.TaskStatus, |
| | | ContainerNo = impItem.ContainerNo, |
| | | SourcePlace = impItem.SourcePlace, |
| | | ToPlace = impItem.ToPlace, |
| | | Aisle = impItem.Aisle, |
| | | DodeviceId = impItem.DodeviceId, |
| | | Dodevicetype = impItem.Dodevicetype, |
| | | TaskDodeviceStatus = impItem.TaskDodeviceStatus, |
| | | IsRead = impItem.IsRead, |
| | | SonTaskType = impItem.SonTaskType, |
| | | SourceOrderNo = impItem.SourceOrderNo, |
| | | IsNextTask = impItem.IsNextTask, |
| | | MutableParam1 = impItem.MutableParam1, |
| | | MutableParam2 = impItem.MutableParam2, |
| | | MutableParam3 = impItem.MutableParam3, |
| | | IsDisabled = impItem.IsDisabled, |
| | | |
| | | }; |
| | | |
| | | wmsTaskUpdateDtos.Add((impItem.RowIndex, oldWmsTask.Id, wmsTaskUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsTaskCreateDto = new WmsTaskCreateDto |
| | | { |
| | | TaskNo = impItem.TaskNo, |
| | | TaskType = impItem.TaskType, |
| | | TaskLevel = impItem.TaskLevel, |
| | | TaskStatus = impItem.TaskStatus, |
| | | ContainerNo = impItem.ContainerNo, |
| | | SourcePlace = impItem.SourcePlace, |
| | | ToPlace = impItem.ToPlace, |
| | | Aisle = impItem.Aisle, |
| | | DodeviceId = impItem.DodeviceId, |
| | | Dodevicetype = impItem.Dodevicetype, |
| | | TaskDodeviceStatus = impItem.TaskDodeviceStatus, |
| | | IsRead = impItem.IsRead, |
| | | SonTaskType = impItem.SonTaskType, |
| | | SourceOrderNo = impItem.SourceOrderNo, |
| | | IsNextTask = impItem.IsNextTask, |
| | | MutableParam1 = impItem.MutableParam1, |
| | | MutableParam2 = impItem.MutableParam2, |
| | | MutableParam3 = impItem.MutableParam3, |
| | | IsDisabled = impItem.IsDisabled, |
| | | |
| | | }; |
| | | |
| | | wmsTaskCreateDtos.Add((impItem.RowIndex, wmsTaskCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsTaskDto in wmsTaskCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsTaskDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsTaskDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsTaskDto in wmsTaskUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsTaskDto.Id, wmsTaskDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsTaskDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºWmsä»»å¡ç®¡ç |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsTaskInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsTask.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | var list = await wmsTaskRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsTask>, List<WmsTaskDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "Wmsä»»å¡ç®¡çå表" : result.Count == 1 ? result[0]?.TaskNo : "WmsTask模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¡éªWmsä»»å¡ç®¡çï¼å½æ°å»ºææ´æ°æ¶ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsTaskCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.TaskNo, "ä»»å¡å·", 50); |
| | | Check.NotNull(input.TaskType, "ä»»å¡ç±»å"); |
| | | Check.NotNull(input.TaskLevel, "ä»»å¡ç级"); |
| | | Check.NotNull(input.TaskStatus, "ä»»å¡ç¶æ"); |
| | | Check.NotNull(input.Dodevicetype, "设å¤ç±»å"); |
| | | Check.NotNull(input.ContainerNo, "æçå·"); |
| | | Check.NotNull(input.SourcePlace, "èµ·å§ä½ç½®"); |
| | | Check.NotNull(input.ToPlace, "ç®æ æªç¥"); |
| | | Check.NotNull(input.TaskDodeviceStatus, "设å¤ä»»å¡ç¶æ"); |
| | | Check.NotNull(input.IsRead, "WCSæ¯å¦å¯ä»¥è¯»å"); |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å¼ºå¶å®æ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task<WmsTaskDto> FinishTaskAsync(WmsTaskStatusDto input) |
| | | { |
| | | if (string.IsNullOrEmpty(input.TaskNo)) |
| | | { |
| | | throw new UserFriendlyException("ä»»å¡å·ä¸è½ä¸ºç©º"); |
| | | } |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo); |
| | | if (task == null) |
| | | { |
| | | throw new UserFriendlyException("ä»»å¡ä¸åå¨"); |
| | | } |
| | | if (task.TaskStatus == WmsTaskStatus.WANCHENG || task.TaskStatus == WmsTaskStatus.QUXIAO) |
| | | { |
| | | throw new UserFriendlyException("åæ¶æè
宿çä»»å¡ä¸å
许æä½"); |
| | | } |
| | | task.TaskStatus = WmsTaskStatus.WANCHENG; |
| | | task.TaskDodeviceStatus = TaskDodeviceStatus.SrmFinish; |
| | | await wmsTaskRepository.UpdateAsync(task); |
| | | |
| | | var place = await _wmsPlaceRepository.FindByNameAsync(task.ToPlace); |
| | | if (place == null) |
| | | { |
| | | throw new UserFriendlyException("ç®æ åºä½ä¸åå¨"); |
| | | } |
| | | |
| | | // æ´æ°åºå |
| | | var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = task.MutableParam1, PlaceNo = task.SourcePlace }); |
| | | if (stockList == null || stockList.Count <= 0) |
| | | { |
| | | throw new UserFriendlyException("ååºä½ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | var stock = stockList.FirstOrDefault(); |
| | | stock.PlaceNo = task.ToPlace; |
| | | stock.StorageTypeNo = place.StorageTypeNo; |
| | | stock.InStockTime = DateTime.Now; |
| | | stock.ContainerNo = "TP" + task.ToPlace; |
| | | |
| | | await _wmsMaterialStockRepository.UpdateAsync(stock); |
| | | |
| | | place.PlaceStatus = PlaceStatusEnum.CUNHUO; |
| | | await _wmsPlaceRepository.UpdateAsync(place); |
| | | |
| | | |
| | | var container = await _wmsContainerRepository.FindByNameAsync(stock.ContainerNo); |
| | | if (container == null) |
| | | { |
| | | await _wmsContainerRepository.InsertAsync(new WmsContainer |
| | | { |
| | | ContainerNo = stock.ContainerNo, |
| | | ContainerStatus = ContainerStatusEnum.KUWEI, |
| | | ContainerType = ContainerTypeEnum.XUNI, |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | container.ContainerStatus = ContainerStatusEnum.KUWEI; |
| | | await _wmsContainerRepository.UpdateAsync(container); |
| | | } |
| | | |
| | | var oldContainer = await _wmsContainerRepository.FindByNameAsync(task.ContainerNo); |
| | | if (oldContainer != null) |
| | | { |
| | | await _wmsContainerRepository.DeleteAsync(oldContainer); |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(task.SourceOrderNo)) |
| | | { |
| | | // è·æ°åæ®å®ææ°é |
| | | var orderNo = await _wmsInOutStockOrderRepository.FindByNameAsync(task.SourceOrderNo); |
| | | if (orderNo != null) |
| | | { |
| | | orderNo.CompleteNumber += 1; |
| | | orderNo.OrderStatus = OrderStatusEnum.Executing; |
| | | } |
| | | if (orderNo.MaterialNumber <= orderNo.CompleteNumber) |
| | | { |
| | | orderNo.OrderStatus = OrderStatusEnum.Finish; |
| | | } |
| | | |
| | | await _wmsInOutStockOrderRepository.UpdateAsync(orderNo); |
| | | // è®°å½ä¸æ¡è¯¦æ
|
| | | var detail = new WmsInOutStockOrderDetailCreateDto |
| | | { |
| | | OrderNo = orderNo.OrderNo, |
| | | OrderType = orderNo.OrderType, |
| | | MaterialId = stock.MaterialId, |
| | | MaterialBatch = stock.MaterialBatch, |
| | | MaterialModel = stock.MaterialModel, |
| | | MaterialName = stock.MaterialName, |
| | | MaterialNo = stock.MaterialNo, |
| | | }; |
| | | await _wmsInOutStockOrderDetailAppService.CreateAsync(detail); |
| | | } |
| | | |
| | | // åºå
¥åºè®°å½ |
| | | var record = new WmsInOutStockRecordCreateDto |
| | | { |
| | | TaskNo = task.TaskNo, |
| | | OrderNo = task.SourceOrderNo, |
| | | StockType = task.TaskType == TaskTypeEnum.CHUKU ? StockTypeEnum.OutBound : StockTypeEnum.InBound, |
| | | ContainerNo = task.ContainerNo, |
| | | MaterialId = stock.MaterialId, |
| | | MaterialModel = stock.MaterialModel, |
| | | MaterialName = stock.MaterialName, |
| | | MaterialNo = stock.MaterialNo, |
| | | MaterialBatch = stock.MaterialBatch, |
| | | SourcePlace = task.SourcePlace, |
| | | ToPlace = task.ToPlace, |
| | | OperateTime = DateTime.Now, |
| | | }; |
| | | await _wmsInOutStockRecordAppService.CreateAsync(record); |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | |
| | | return ObjectMapper.Map<WmsTask, WmsTaskDto>(task); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åæ¶ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task CancelTaskAysnc(WmsTaskStatusDto input) |
| | | { |
| | | if (string.IsNullOrEmpty(input.TaskNo)) |
| | | { |
| | | throw new UserFriendlyException("ä»»å¡å·ä¸è½ä¸ºç©º"); |
| | | } |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo); |
| | | if (task == null) |
| | | { |
| | | throw new UserFriendlyException("ä»»å¡ä¸åå¨"); |
| | | } |
| | | if (task.TaskStatus == WmsTaskStatus.WANCHENG || task.TaskStatus == WmsTaskStatus.QUXIAO) |
| | | { |
| | | throw new UserFriendlyException("åæ¶æè
宿çä»»å¡ä¸å
许æä½"); |
| | | } |
| | | task.TaskStatus = WmsTaskStatus.QUXIAO; |
| | | |
| | | // æ´æ°åºå |
| | | var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = task.MutableParam1, PlaceNo = task.SourcePlace }); |
| | | if (stockList == null || stockList.Count <= 0) |
| | | { |
| | | throw new UserFriendlyException("ååºä½ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | var stock = stockList.FirstOrDefault(); |
| | | await _wmsMaterialStockRepository.DeleteAsync(stock); |
| | | |
| | | if (!string.IsNullOrEmpty(task.SourceOrderNo)) |
| | | { |
| | | // è·æ°åæ®å®ææ°é |
| | | var orderNo = await _wmsInOutStockOrderRepository.FindByNameAsync(task.SourceOrderNo); |
| | | if (orderNo != null) |
| | | { |
| | | orderNo.CompleteNumber -= 1; |
| | | orderNo.OrderStatus = OrderStatusEnum.NoStart; |
| | | } |
| | | if (orderNo.CompleteNumber > 0) |
| | | { |
| | | orderNo.OrderStatus = OrderStatusEnum.Executing; |
| | | } |
| | | |
| | | await _wmsInOutStockOrderRepository.UpdateAsync(orderNo); |
| | | |
| | | } |
| | | |
| | | await uow.SaveChangesAsync(); |
| | | await uow.CompleteAsync(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹ç®æ åºä½ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task ChangeTaskToPlaceAsync(ChangeTaskToPlaceInput input) |
| | | { |
| | | |
| | | if (string.IsNullOrEmpty(input.TaskNo)) |
| | | { |
| | | throw new UserFriendlyException("ä»»å¡å·ä¸è½ä¸ºç©º"); |
| | | } |
| | | |
| | | var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo); |
| | | if (task == null) |
| | | { |
| | | throw new UserFriendlyException("ä»»å¡ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | |
| | | if (task.TaskStatus != WmsTaskStatus.WEIZHIXING) |
| | | { |
| | | throw new UserFriendlyException("å·²å¼å§æè
ç»æçä»»å¡ä¸å
许修æ¹"); |
| | | } |
| | | |
| | | var toPlaceInfo = await _wmsPlaceRepository.FindByNameAsync(input.ToPlace); |
| | | if (toPlaceInfo == null) |
| | | { |
| | | throw new UserFriendlyException("ç®æ åºä½ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | |
| | | if (toPlaceInfo.IsDisabled) |
| | | { |
| | | throw new UserFriendlyException("ç®æ åºä½å·²è¢«ç¦ç¨"); |
| | | } |
| | | |
| | | var toplaceStock = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.ToPlace }); |
| | | if (toplaceStock != null && toplaceStock.Count > 0) |
| | | { |
| | | var model = toplaceStock.FirstOrDefault(); |
| | | if (model.MaterialModel != input.MutableParam1) |
| | | { |
| | | throw new UserFriendlyException("ç®æ åºä½åå·ä¸å½ååå·ä¸ä¸è´ä¸å
许修æ¹"); |
| | | } |
| | | } |
| | | task.ToPlace = input.ToPlace; |
| | | |
| | | await wmsTaskRepository.UpdateAsync(task); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åéè¦æ§è¡çä»»å¡ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input) |
| | | { |
| | | var queryInput = new GetWmsTaskInput |
| | | { |
| | | TaskStatus = WmsTaskStatus.WEIZHIXING, |
| | | }; |
| | | var whereConditions = DynamicGetQueryParams(queryInput); |
| | | |
| | | var NoStartTaskList = await wmsTaskRepository.GetTaskListAsync(whereConditions); |
| | | |
| | | |
| | | if (NoStartTaskList.Count <= 0) return null; |
| | | |
| | | var executeTaskList = NoStartTaskList.WhereIf(input.TaskType > 0, x => x.TaskType == input.TaskType).OrderBy(x => x.TaskType).ThenBy(x => x.TaskLevel).ToList(); |
| | | |
| | | var executeTask = executeTaskList.FirstOrDefault(); |
| | | if (input.OutStockHasGood) |
| | | { |
| | | executeTask = NoStartTaskList.OrderByDescending(x => x.TaskType == TaskTypeEnum.RUKU).ThenBy(x => x.TaskLevel).FirstOrDefault(); |
| | | } |
| | | |
| | | if (executeTask == null) |
| | | { |
| | | return ObjectMapper.Map<WmsTask, WmsTaskDto>(NoStartTaskList.FirstOrDefault()); |
| | | } |
| | | |
| | | if (executeTask.TaskType == TaskTypeEnum.CHUKU && input.OutStockHasGood) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | if(executeTask.TaskType == TaskTypeEnum.RUKU && !input.InStockHasGood) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsTask, WmsTaskDto>(executeTask); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ä»»å¡ä¸ºæ§è¡ä¸ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<WmsTaskDto> StartExecuteTaskAsync(ExcecuteTaskInput input) |
| | | { |
| | | if (string.IsNullOrEmpty(input.TaskNo)) |
| | | { |
| | | throw new UserFriendlyException("ä»»å¡å·ä¸è½ä¸ºç©º"); |
| | | } |
| | | var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo); |
| | | if(task == null) |
| | | { |
| | | return null; |
| | | } |
| | | task.TaskStatus = WmsTaskStatus.ZHIXINGZHONG; |
| | | task.TaskDodeviceStatus = TaskDodeviceStatus.SrmProgress; |
| | | await wmsTaskRepository.UpdateAsync(task); |
| | | return ObjectMapper.Map<WmsTask, WmsTaskDto>(task); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsAreaAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsAreaAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsArea, WmsAreaDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsAreaCreateDto, WmsArea>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsAreaInput, WmsArea>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainer; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsContainerAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsContainerAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsContainer, WmsContainerDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsContainerCreateDto, WmsContainer>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsContainerInput, WmsContainer>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainerPlace; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// åºä½å®¹å¨å
³ç³»AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsContainerPlaceAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerPlaceAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsContainerPlaceAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsContainerPlace, WmsContainerPlaceDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsContainerPlaceCreateDto, WmsContainerPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsContainerPlaceInput, WmsContainerPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsInOutStockOrderAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsInOutStockOrderAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsInOutStockOrderAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsInOutStockOrder, WmsInOutStockOrderDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsInOutStockOrderCreateDto, WmsInOutStockOrder>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsInOutStockOrderInput, WmsInOutStockOrder>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºåæ®è¯¦æ
AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsInOutStockOrderDetailAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsInOutStockOrderDetailAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsInOutStockOrderDetailCreateDto, WmsInOutStockOrderDetail>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsInOutStockOrderDetailInput, WmsInOutStockOrderDetail>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºè®°å½AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsInOutStockRecordAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsInOutStockRecordAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsInOutStockRecordAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsInOutStockRecord, WmsInOutStockRecordDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsInOutStockRecordCreateDto, WmsInOutStockRecord>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsInOutStockRecordInput, WmsInOutStockRecord>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsMaterialStockDto, CallMaterialOutput>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsMaterialAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsMaterialAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsMaterial, WmsMaterialDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsMaterialCreateDto, WmsMaterial>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsMaterialInput, WmsMaterial>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialContainer; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialContainer; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¹å¨å
³ç³»AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsMaterialContainerAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialContainerAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsMaterialContainerAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsMaterialContainer, WmsMaterialContainerDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsMaterialContainerCreateDto, WmsMaterialContainer>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsMaterialContainerInput, WmsMaterialContainer>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsMaterialInfoAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialInfoAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsMaterialInfoAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsMaterialInfo, WmsMaterialInfoDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsMaterialInfoCreateDto, WmsMaterialInfo>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsPlaceInput, WmsMaterialInfo>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsMaterialStockAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialStockAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsMaterialStockAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsMaterialStock, WmsMaterialStockDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsMaterialStockCreateDto, WmsMaterialStock>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsMaterialStockInput, WmsMaterialStock>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterialTypes; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// ç©ælç±»åä¿¡æ¯AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsMaterialTypeAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialTypeAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsMaterialTypeAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsMaterialType, WmsMaterialTypeDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsMaterialTypeCreateDto, WmsMaterialType>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsMaterialTypeInput, WmsMaterialType>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsPlaceAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsPlaceAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsPlace, WmsPlaceDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsPlaceCreateDto, WmsPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsPlaceInput, WmsPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsStoreAutoMapperProfile.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsTaskAutoMapperProfile.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Properties/AssemblyInfo.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.SycWmsDemo.Domain.Shared.csproj
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMSPluginDomainErrorCodes.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMSPluginDomainSharedModule.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMSPluginModuleExtensionConfigurator.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/AreaStatusEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/AreaTypeEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/ContainerStatusEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/ContainerTypeEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/DodevicetypeEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/HIAWmsStatus.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/MaterialCheckStatusEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/MaterialTypeEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/OrderStatusEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/OrderTypeEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/PlaceStatusEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/PlaceTypeEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/PurchaseTypeEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/SonTaskTypeEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/StockTypeEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/TaskDodeviceStatus.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/TaskTypeEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/WmsTaskStatus.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/FodyWeavers.xml
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Localization/HIAWms/en.json
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Localization/HIAWms/zh-Hans.json
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Localization/HIAWmsResource.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/EnumHelper.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/GetEnumDescriptionUtil.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsAreas/WmsAreaConsts.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsAreas/WmsAreaEto.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsContainers/WmsContainerConsts.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsContainers/WmsContainerEto.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoConsts.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoEto.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialStocks/WmsMaterialStockConsts.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialStocks/WmsMaterialStockEto.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterials/WmsMaterialConsts.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterials/WmsMaterialEto.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsPlaces/WmsPlaceConsts.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsPlaces/WmsPlaceEto.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsStores/WmsStoreConsts.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsStores/WmsStoreEto.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/CMS.Plugin.SycWmsDemo.Domain.csproj
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/CMSPluginDbProperties.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/CMSPluginDomainModule.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Data/CMSPluginDbMigrationService.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Data/ICMSPluginDapperRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Data/ICMSPluginDbSchemaMigrator.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Data/NullCMSPluginDbSchemaMigrator.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsAreaEventHandler.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsContainerEventHandler.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsMaterialEventHandler.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsMaterialInfoEventHandler.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsMaterialStockEventHandler.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsPlaceEventHandler.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsStoreEventHandler.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/FodyWeavers.xml
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/MyExtension/EntityTypeBuilderExtensions.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/MyExtension/EntityTypeBuilderExtensionsForRecord.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/MyExtension/MyFullAuditedAggregateRoot.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/MyExtension/MyFullAuditedAggregateRootForRecord.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Properties/AssemblyInfo.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Settings/CMSPluginSettingDefinitionProvider.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/IWmsAreaRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/WmsArea.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/WmsAreaDataSeedContributor.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/WmsAreaSpecification.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/IWmsContainerPlaceRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/WmsContainerPlace.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/IWmsContainerRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainer.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainerDataSeedContributor.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainerSpecification.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/IWmsInOutStockOrderRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/IWmsInOutStockOrderDetailRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockRecord/IWmsInOutStockRecordRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockRecord/WmsInOutStockRecord.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialContainer/IWmsMaterialContainerRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialContainer/WmsMaterialContainer.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/IWmsMaterialInfoRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfo.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoDataSeedContributor.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoSpecification.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/IWmsMaterialStockRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStock.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStockDataSeedContributor.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStockSpecification.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/IWmsMaterialTypeRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/WmsMaterialType.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialDataSeedContributor.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/WmsPlace.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/WmsPlaceDataSeedContributor.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/WmsPlaceSpecification.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsStores/IWmsStoreRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsStores/WmsStore.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsStores/WmsStoreDataSeedContributor.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsStores/WmsStoreSpecification.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/WmsTask.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/CMS.Plugin.SycWmsDemo.EntityFrameworkCore.csproj
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/CMSPluginDapperRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/CMSPluginDbSchemaMigrator.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/CMSPluginEfCoreEntityExtensionMappings.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/CMSPluginEntityFrameworkCoreModule.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsArea.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainer.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockOrder.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockOrderDetail.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockRecord.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialInfo.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialStock.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialType.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsPlace.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsStore.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/FodyWeavers.xml
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/ICMSPluginDbContext.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Properties/AssemblyInfo.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerPlaceRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderDetailRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockRecordRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialContainerRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialInfoRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialTypeRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/appsettings.json
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/CMS.Plugin.SycWmsDemo.MySQL.csproj
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContextFactory.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginMySQLModule.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/FodyWeavers.xml
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250516020008_InitialCreate17.Designer.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250516020008_InitialCreate17.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Properties/AssemblyInfo.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateDB.bat
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/CMS.Plugin.SycWmsDemo.PostgreSql.csproj
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContextFactory.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginPostgreSqlModule.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/FodyWeavers.xml
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/Properties/AssemblyInfo.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/Scripts/UpdateDB.bat
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/Scripts/UpdateMigrations.bat
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/CMS.Plugin.SycWmsDemo.SqlServer.csproj
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContextFactory.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginSqlServerModule.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/FodyWeavers.xml
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/Properties/AssemblyInfo.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/Scripts/UpdateDB.bat
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/Scripts/UpdateMigrations.bat
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Apis/IHIAWmsExternalApi.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/CMS.Plugin.SycWmsDemo.csproj
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/CMSPluginEntry.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/CMSPluginModule.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/CMSPluginRuntimeMigrator.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/LMesOperateController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsAreaController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerPlaceController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderDetailController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockRecordController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsInsStockController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialContainerController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialInfoController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialStockController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialTypeController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsOutStockController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsPlaceController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsStoreController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/EventHandlers/HIAWmsEventHandler.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/FlowProcessors/HIAWmsFlowProcessor.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Flows/50001_1.pfd
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Flows/FlowInfo.xml
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/FodyWeavers.xml
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Jobs/HIAWmsArgs.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Jobs/HIAWmsJob.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/ProjectService/HIAWmsProjectService.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Properties/launchSettings.json
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsArea导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainerPlace导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainer导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrderDetail导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrder导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialContainer导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialInfo导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialStock导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialType导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterial导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsPlace导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsStore导出模板.xlsx
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Services/HIAWmsFlowService.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Workers/HIAWmsWorker.cs
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/appsettings.json
SYC_WmsDemo/server/stylecop.json
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Application.Tests/CMS.Plugin.SycWmsDemo.Application.Tests.csproj
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Application.Tests/HIAWmsApplicationTestBase.cs
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Application.Tests/HIAWmsApplicationTestModule.cs
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Domain.Tests/CMS.Plugin.SycWmsDemo.Domain.Tests.csproj
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Domain.Tests/HIAWmsDomainTestBase.cs
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Domain.Tests/HIAWmsDomainTestModule.cs
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.EntityFrameworkCore.Tests/CMS.Plugin.SycWmsDemo.EntityFrameworkCore.Tests.csproj
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.EntityFrameworkCore.Tests/HIAWmsEntityFrameworkTestBase.cs
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.EntityFrameworkCore.Tests/HIAWmsTestEntityFrameworkCoreModule.cs
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.TestBase/CMS.Plugin.SycWmsDemo.TestBase.csproj
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.TestBase/HIAWmsDataSeedContributor.cs
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.TestBase/HIAWmsTestBase.cs
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.TestBase/HIAWmsTestBaseModule.cs
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.TestBase/HIAWmsTestData.cs
SYC_WmsDemo/syc_wms_demo_web/.build.local
SYC_WmsDemo/syc_wms_demo_web/.env
SYC_WmsDemo/syc_wms_demo_web/.env.development
SYC_WmsDemo/syc_wms_demo_web/.env.production
SYC_WmsDemo/syc_wms_demo_web/.eslintrc.cjs
SYC_WmsDemo/syc_wms_demo_web/.prettierrc.json
SYC_WmsDemo/syc_wms_demo_web/.vscode/extensions.json
SYC_WmsDemo/syc_wms_demo_web/.vscode/settings.json
SYC_WmsDemo/syc_wms_demo_web/README.md
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Controllers/File.ts
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Controllers/MyEntityName.ts
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Controllers/MyEntityNameDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Models/MyEntityName.ts
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Models/MyEntityNameDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Models/Service/MyEntityName.ts
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Models/Service/MyEntityNameDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/MyPluginName.module.scss
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/MyPluginName.tsx
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/Pages/Dialog/MyEntityNameDrawer/MyEntityNameDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/Pages/Dialog/MyEntityNameDrawer/MyEntityNameDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/Pages/MyEntityName/Config.ts
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/Pages/MyEntityName/MyEntityName.module.scss
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/Pages/MyEntityName/MyEntityName.tsx
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/config/MyEntityName.json
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/enum.ts
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/index.ts
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/type/Type.d.ts
SYC_WmsDemo/syc_wms_demo_web/components.d.ts
SYC_WmsDemo/syc_wms_demo_web/env.d.ts
SYC_WmsDemo/syc_wms_demo_web/index.html
SYC_WmsDemo/syc_wms_demo_web/main.ts
SYC_WmsDemo/syc_wms_demo_web/package-lock.json
SYC_WmsDemo/syc_wms_demo_web/package.json
SYC_WmsDemo/syc_wms_demo_web/public/config.json
SYC_WmsDemo/syc_wms_demo_web/public/defaulttheme.css
SYC_WmsDemo/syc_wms_demo_web/public/favicon.ico
SYC_WmsDemo/syc_wms_demo_web/public/language/Common.en-US.json
SYC_WmsDemo/syc_wms_demo_web/public/language/language.en-US.json
SYC_WmsDemo/syc_wms_demo_web/public/language/language.zh-CN.json
SYC_WmsDemo/syc_wms_demo_web/public/svgpngbacktheme.json
SYC_WmsDemo/syc_wms_demo_web/public/svgpngwhitetheme.json
SYC_WmsDemo/syc_wms_demo_web/public/theme.css
SYC_WmsDemo/syc_wms_demo_web/public/widgets/mock.json
SYC_WmsDemo/syc_wms_demo_web/public/widgets/mock/index.js
SYC_WmsDemo/syc_wms_demo_web/public/对theme.css的说明
SYC_WmsDemo/syc_wms_demo_web/script/autoMenu.js
SYC_WmsDemo/syc_wms_demo_web/script/build.js
SYC_WmsDemo/syc_wms_demo_web/script/plugins/vite-plugin-cs-module-filter.ts
SYC_WmsDemo/syc_wms_demo_web/script/plugins/vite-plugin-widget-provider.ts
SYC_WmsDemo/syc_wms_demo_web/src/App.vue
SYC_WmsDemo/syc_wms_demo_web/src/api/file.ts
SYC_WmsDemo/syc_wms_demo_web/src/api/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/api/project-api.ts
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/demo.css
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/demo_index.html
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.css
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.eot
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.js
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.json
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.ttf
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.woff
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.woff2
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/+.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/X.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/add-annex.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/add-p.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/banben.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/batch-b.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/batch-list.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/chart.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/close.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/closeDark.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/close_x.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/copy.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/d.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/del.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/delete.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/down.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/drawer_bg.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/edit.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/export.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/f.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/fb.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/fj.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/fnV.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/g.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/gongyiduan.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon-module.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_add.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_add2.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_del.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_exclamation.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_move.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_next.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_nodata.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_pre.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_process.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_search.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/import.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/in.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/left-arrow.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/lightsetting.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/o.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/out.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/pdf.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/pre_icon.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/procedure-direction.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/process.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/processStep1.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/processStep2.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/processStep3.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/processStep4.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/refresh.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/right-arrow.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/s.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/s_input.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/scale-menu.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/scale.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/search.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/setting.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/settings.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/sop.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/sys.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/tag_close.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/tip.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/up.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/variable.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/view.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/white_search.png
SYC_WmsDemo/syc_wms_demo_web/src/assets/styles/common.scss
SYC_WmsDemo/syc_wms_demo_web/src/assets/styles/element.scss
SYC_WmsDemo/syc_wms_demo_web/src/assets/styles/index.scss
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/add.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/add1.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/barcode.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/bianji.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/bom.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/del.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/del1.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/f.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/field.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/flow.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/materialManagement.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/more.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/move.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/order.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/p.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/peifangguanli.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/processConfiguration.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/prod.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/q.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/system.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/t.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/tip.svg
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/title.svg
SYC_WmsDemo/syc_wms_demo_web/src/cms/index.css
SYC_WmsDemo/syc_wms_demo_web/src/cms/sdk.es.js
SYC_WmsDemo/syc_wms_demo_web/src/cms/sdk.es.ssr.js
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseConfigSelect/BaseConfigSelect.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseConfigSelect/BaseConfigSelect.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseContent/BaseContent.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseContent/BaseContent.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseDialog/BaseDialog.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseDialog/BaseDialog.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseDialog/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseDrawer/BaseDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseDrawer/BaseDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseInput/BaseInput.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseInput/BaseInput.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseQueryDrawer/BaseQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseQueryDrawer/BaseQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/ConfirmBox/ConfirmBox.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/ConfirmBox/ConfirmBox.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Container/Container.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Container/Container.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Content/Content.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Content/Content.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/DatePicker/PrefixIcon.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/DatePicker/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/DateTimePickRange/DateTimePickRange.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/DateTimePickRange/DateTimePickRange.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Dialog/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/DyForm/DyForm.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/DyForm/DyForm.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/DyForm/DyForm.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/DyFormForHighQuery/DyFormForHighQuery.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/DyFormForHighQuery/DyFormForHighQuery.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/DyFormForHighQuery/DyFormForHighQuery.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/DyFormForHighQuery/DyFormForHighQueryOptions.js
SYC_WmsDemo/syc_wms_demo_web/src/components/ElSelect/ElOption.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/ElSelect/ElSelect.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/ElSelect/index.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Empty/Empty.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Empty/Empty.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Flow/Flow.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Flow/Flow.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Icon/Icon.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/IconButton/IconButton.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/IconButton/IconButton.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Menu/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/MyPages/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/Pdf/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/PreviewDialog/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/ProjectConfig/ProjectConfig.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/ProjectConfig/ProjectConfig.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Radio/Radio.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Radio/Radio.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Search/Search.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Search/Search.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/SearchInput/SearchInput.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/SearchInput/SearchInput.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Select/Option.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Select/Select.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/SelectInput/SelectInput.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/SelectInput/SelectInput.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Setting/Setting.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/SettingItem/SettingItem.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/SettingItem/state.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/Tab/Tab.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Tab/Tab.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Tab/TabPane.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/Readme.md
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/Table.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/api.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/components/custom-vxe-column.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/components/pagination.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/index.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/index.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/index.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/state.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/TableFilter/TableFilter.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/TableFilter/TableFilter.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Tag/Tag.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Tag/Tag.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/TdButton/TdButton.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/TdButton/TdButton.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Text/Text.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Text/Text.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/Title/Title.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Title/Title.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/TouchScale/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/Upload/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/Variable/Variable.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/Variable/Variable.tsx
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenu.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenu.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuDefine.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuGroup.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuIconCheck.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuIconRight.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuInstance.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuItem.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuMutex.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuSeparator.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuUtils.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextSubMenu.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextSubMenuWrapper.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/MenuBar.scss
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/MenuBar.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/MenuBar.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/MenuBarIconMenu.vue
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/env.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/shims-vue.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/tsconfig.json
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/vite.config.ts
SYC_WmsDemo/syc_wms_demo_web/src/config/menu.ts
SYC_WmsDemo/syc_wms_demo_web/src/env.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/home.vue
SYC_WmsDemo/syc_wms_demo_web/src/hooks/hook.ts
SYC_WmsDemo/syc_wms_demo_web/src/index.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Base/Base.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Create/Create.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Hook/Hook.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Language/Language.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Language/i18n/langEN.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Language/i18n/langTH.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Language/i18n/langZH.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Permission/Permission.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Permission/Permission.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Provider/Provider.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Provider/app.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Store/State.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Store/Store.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/Store/Store.ts
SYC_WmsDemo/syc_wms_demo_web/src/libs/enum.ts
SYC_WmsDemo/syc_wms_demo_web/src/main.ts
SYC_WmsDemo/syc_wms_demo_web/src/plugins/vxe-table.ts
SYC_WmsDemo/syc_wms_demo_web/src/provider/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/provider/index.vue
SYC_WmsDemo/syc_wms_demo_web/src/router.ts
SYC_WmsDemo/syc_wms_demo_web/src/utils/ElMessage.ts
SYC_WmsDemo/syc_wms_demo_web/src/utils/commonOptionConstants.js
SYC_WmsDemo/syc_wms_demo_web/src/utils/enum/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/utils/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/utils/myHighQueryUtils.ts
SYC_WmsDemo/syc_wms_demo_web/src/utils/myformUtils.ts
SYC_WmsDemo/syc_wms_demo_web/src/utils/permission.js
SYC_WmsDemo/syc_wms_demo_web/src/utils/request.ts
SYC_WmsDemo/syc_wms_demo_web/src/utils/storage.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/File.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterial.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterialType.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterial.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterialQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterialType.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterial.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterialDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterialQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterialType.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterialTypeDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterialTypeQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/HIAWms.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/HIAWms.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/config/WmsMaterial.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/config/WmsMaterialType.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/enum.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/type/Type.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/Http/Http.vue
SYC_WmsDemo/syc_wms_demo_web/src/widgets/Http/Settings/Http.settings.vue
SYC_WmsDemo/syc_wms_demo_web/src/widgets/Http/components/InputCode.vue
SYC_WmsDemo/syc_wms_demo_web/src/widgets/Http/components/OptionConfigDialog.vue
SYC_WmsDemo/syc_wms_demo_web/src/widgets/Http/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Controllers/File.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Controllers/WmsContainer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Controllers/WmsContainerQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/Service/WmsContainer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/Service/WmsContainerDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/Service/WmsContainerQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/WmsContainer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/WmsContainerDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/WmsContainerQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerQueryDrawer/WmsContainerQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerQueryDrawer/WmsContainerQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/WmsContainer/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/WmsContainer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/WmsContainer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/config/WmsContainer.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/enum.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/type/Type.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Controllers/File.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Controllers/WmsOutOrderCallMaterialDialog.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/config/WmsInOutStockOrder.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/enum.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/type/type.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Controllers/File.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetail.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetail.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetail.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/config/WmsInOutStockOrderDetail.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/enum.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/type/type.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Controllers/File.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecord.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecord.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/WmsInOutStockRecord.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/WmsInOutStockRecordDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/WmsInOutStockRecordQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/WmsInOutStockRecord.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/WmsInOutStockRecord.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/config/WmsInOutStockRecord.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/enum.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/type/type.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Controllers/File.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Controllers/WmsMaterialContainer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Controllers/WmsMaterialContainerDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Controllers/WmsMaterialContainerQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainerDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainerQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/WmsMaterialContainer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/WmsMaterialContainerDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/WmsMaterialContainerQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/Dialog/WmsMaterialContainerDrawer/WmsMaterialContainerDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/Dialog/WmsMaterialContainerDrawer/WmsMaterialContainerDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/Dialog/WmsMaterialContainerQueryDrawer/WmsMaterialContainerQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/Dialog/WmsMaterialContainerQueryDrawer/WmsMaterialContainerQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/config/WmsMaterialContainer.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/enum.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/type/type.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Controllers/File.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStock.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDetailQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStock.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockDetailQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/WmsMaterialStock.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/WmsMaterialStockDetailQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/WmsMaterialStockDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/WmsMaterialStockQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDetailQuery/WmsMaterialStockDetailQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDetailQuery/WmsMaterialStockDetailQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockQuery/WmsMaterialStockQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockQuery/WmsMaterialStockQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/config/WmsMaterialStock.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/config/WmsMaterialStockDetail.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/enum.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/type/Type.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/File.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsArea.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsAreaQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsPlace.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsPlaceDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsPlaceQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsStore.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsStoreDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsStoreQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsArea.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsAreaDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsAreaQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsPlace.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsPlaceDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsPlaceQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsStore.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsStoreDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsStoreQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsArea.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsAreaDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsAreaQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsPlace.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsPlaceDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsPlaceQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsStore.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsStoreDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsStoreQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsAreaDrawer/WmsAreaDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsAreaDrawer/WmsAreaDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsAreaQueryDrawer/WmsAreaQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsAreaQueryDrawer/WmsAreaQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsPlaceDrawer/WmsPlaceDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsPlaceDrawer/WmsPlaceDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsPlaceQueryDrawer/WmsPlaceQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsPlaceQueryDrawer/WmsPlaceQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsStoreDrawer/WmsStoreDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsStoreDrawer/WmsStoreDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsStoreQueryDrawer/WmsStoreQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsStoreQueryDrawer/WmsStoreQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/WmsStoreInfo.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/WmsStoreInfo.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/config/WmsArea.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/config/WmsPlace.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/config/WmsStore.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/enum.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/type/Type.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Controllers/ChangeToPlace.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Controllers/File.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Controllers/WmsTask.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/Service/WmsTask.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/Service/WmsTaskDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/Service/WmsTaskQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/WmsTask.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/WmsTaskDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/WmsTaskQueryDrawer.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/ChangeToPlaceDialog/ChangeToPlaceDialog.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/ChangeToPlaceDialog/ChangeToPlaceDialog.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskDrawer/WmsTaskDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskDrawer/WmsTaskDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/WmsTask/Config.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/WmsTask.module.scss
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/WmsTask.tsx
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/config/WmsTask.json
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/enum.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/index.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/type/type.d.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/hook.ts
SYC_WmsDemo/syc_wms_demo_web/src/widgets/index.ts
SYC_WmsDemo/syc_wms_demo_web/tsconfig.json
SYC_WmsDemo/syc_wms_demo_web/vite.config.ts
SYC_WmsDemo/syc_wms_demo_web/vite.lib.config.ts
SYC_WmsDemo/syc_wms_demo_web/yarn.lock
SYC_WmsDemo/此项目是应用伟本立体库的demo.txt |