schangxiang@126.com
10 小时以前 1b27eddeb3e4c2fd3f59a567b2972aadd6310dc1
增加wms demo
已添加1,024个文件
611525 ■■■■■ 文件已修改
SYC_WmsDemo/build-server.ps1 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/build-web.ps1 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/project/WCS_变量.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/project/WCS_流程_20250604170659.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/project/WCS演示工程-1.cmsproj 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/project/Wms.cmsproj 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/.idea/.idea.CMS.Plugin.HIAWms/.idea/encodings.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/.idea/.idea.CMS.Plugin.HIAWms/.idea/indexLayout.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/.idea/.idea.CMS.Plugin.HIAWms/.idea/vcs.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/CMS.Plugin.SycWmsDemo.sln 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/Directory.Build.props 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/NuGet.config 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/README.md 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/common.props 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/common.test.props 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/configureawait.props 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/delete-bin-obj-folders.bat 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/doc/Domain-Drive-Design.md 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/package.reference.props 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/publish.ps1 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMS.Plugin.SycWmsDemo.Abstractions.csproj 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMSPluginHIAWmsAbstractionsModule.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMSPluginHIAWmsExtensions.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMSPluginHIAWmsFeatures.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMSPluginHIAWmsOptions.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMSPluginHIAWmsSettings.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/FodyWeavers.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/HIAWmsActivity.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/IHIAWmsFlowService.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/Properties/AssemblyInfo.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMS.Plugin.SycWmsDemo.Application.Contracts.csproj 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMSPluginApplicationContractsModule.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMSPluginDtoExtensions.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/CallMaterialOutput.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/LMesCallMaterialInput.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialTypeOutput.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MoveStockInput.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/ReduceStockInput{.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/OutStockDto/CallMaterialInput.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/GetWmsAreaInput.cs 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreaCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreaCreateOrUpdateDtoBase.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreaDto.cs 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreaUpdateDto.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreasExportModel.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreasImportModel.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/GetWmsContainerInput.cs 292 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainerCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainerCreateOrUpdateDtoBase.cs 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainerDto.cs 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainerUpdateDto.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainersExportModel.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainersImportModel.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/GetWmsContainerPlaceInput.cs 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateOrUpdateDtoBase.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceDto.cs 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceExportModel.cs 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceUpdateDto.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlacesImportModel.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsEnumDto/WmsEnumInput.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/GetWmsInOutStockOrderInput.cs 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateOrUpdateDtoBase.cs 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderDto.cs 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderExportModel.cs 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderUpdateDto.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrdersImportModel.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/GetWmsInOutStockOrderDetailInput.cs 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateOrUpdateDtoBase.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailDto.cs 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailExportModel.cs 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailUpdateDto.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailsImportModel.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/GetWmsInOutStockRecordInput.cs 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordCreateOrUpdateDtoBase.cs 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordDto.cs 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordExportModel.cs 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordUpdateDto.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordsImportModel.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs 332 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateDto.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialImportModels.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialUpdateDto.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialsImportModel.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/GetWmsMaterialContainerInput.cs 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainerCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainerCreateOrUpdateDtoBase.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainerDto.cs 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainerExportModel.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainerUpdateDto.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainersImportModel.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/GetWmsMaterialInfosInput.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateOrUpdateDtoBase.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoDto.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoUpdateDto.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosExportModel.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosImportModel.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/GetWmsMaterialStockInput.cs 360 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateDto.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockDto.cs 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockExportModel.cs 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockUpdateDto.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStocksExportModel.cs 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStocksImportModel.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/GetWmsMaterialTypeInput.cs 232 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateDto.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateOrUpdateDtoBase.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeDto.cs 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeExportModel.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeUpdateDto.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypesImportModel.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/GetWmsPlacesInput.cs 278 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlaceCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlaceCreateOrUpdateDtoBase.cs 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlaceDto.cs 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlaceUpdateDto.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlacesExportModel.cs 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlacesImportModel.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/GetWmsStoreInput.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoreCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoreCreateOrUpdateDtoBase.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoreDto.cs 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoreUpdateDto.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoresExportModel.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoresImportModel.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/ChangeTaskToPlaceInput.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/GetWmsTaskInput.cs 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskCreateDto.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskCreateOrUpdateDtoBase.cs 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskExportModel.cs 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskUpdateDto.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTasksImportModel.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/FodyWeavers.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/ICMSPluginQueryAppService.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/ILMesOperateAppService.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsAreaAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsBindInStockAppService.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerPlaceAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderDetailAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockRecordAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialContainerAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialInfoAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialStockAppService.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialTypeAppService.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsOutStockAppService.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsPlaceAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsStoreAppService.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/CMS.Plugin.SycWmsDemo.Application.csproj 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/CMSPluginAppService.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/CMSPluginApplicationModule.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/CMSPluginQueryAppService.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/FodyWeavers.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/LMesOperateAppService.cs 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs 383 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAppService.cs 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs 372 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerAppService.cs 376 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerPlaceAppService.cs 430 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderAppService.cs 475 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderDetailAppService.cs 426 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs 443 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs 394 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialContainerAppService.cs 403 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialInfoAppService.cs 351 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs 789 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialTypeAppService.cs 454 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOrderOperateAppService.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsStoreAppService.cs 350 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs 825 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsAreaAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerPlaceAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderDetailAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockRecordAutoMapperProfile.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialContainerAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialInfoAutoMapperProfile.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialStockAutoMapperProfile.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialTypeAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsStoreAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsTaskAutoMapperProfile.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Properties/AssemblyInfo.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.SycWmsDemo.Domain.Shared.csproj 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMSPluginDomainErrorCodes.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMSPluginDomainSharedModule.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMSPluginModuleExtensionConfigurator.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/AreaStatusEnum.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/AreaTypeEnum.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/ContainerStatusEnum.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/ContainerTypeEnum.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/DodevicetypeEnum.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/HIAWmsStatus.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/MaterialCheckStatusEnum.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/MaterialTypeEnum.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/OrderStatusEnum.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/OrderTypeEnum.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/PlaceStatusEnum.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/PlaceTypeEnum.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/PurchaseTypeEnum.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/SonTaskTypeEnum.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/StockTypeEnum.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/TaskDodeviceStatus.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/TaskTypeEnum.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/WmsTaskStatus.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/FodyWeavers.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Localization/HIAWms/en.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Localization/HIAWms/zh-Hans.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Localization/HIAWmsResource.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/EnumHelper.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/GetEnumDescriptionUtil.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsAreas/WmsAreaConsts.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsAreas/WmsAreaEto.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsContainers/WmsContainerConsts.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsContainers/WmsContainerEto.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoConsts.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoEto.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialStocks/WmsMaterialStockConsts.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialStocks/WmsMaterialStockEto.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterials/WmsMaterialConsts.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterials/WmsMaterialEto.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsPlaces/WmsPlaceConsts.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsPlaces/WmsPlaceEto.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsStores/WmsStoreConsts.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsStores/WmsStoreEto.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/CMS.Plugin.SycWmsDemo.Domain.csproj 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/CMSPluginDbProperties.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/CMSPluginDomainModule.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Data/CMSPluginDbMigrationService.cs 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Data/ICMSPluginDapperRepository.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Data/ICMSPluginDbSchemaMigrator.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Data/NullCMSPluginDbSchemaMigrator.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsAreaEventHandler.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsContainerEventHandler.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsMaterialEventHandler.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsMaterialInfoEventHandler.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsMaterialStockEventHandler.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsPlaceEventHandler.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsStoreEventHandler.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/FodyWeavers.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/MyExtension/EntityTypeBuilderExtensions.cs 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/MyExtension/EntityTypeBuilderExtensionsForRecord.cs 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/MyExtension/MyFullAuditedAggregateRoot.cs 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/MyExtension/MyFullAuditedAggregateRootForRecord.cs 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Properties/AssemblyInfo.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/Settings/CMSPluginSettingDefinitionProvider.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/IWmsAreaRepository.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/WmsArea.cs 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/WmsAreaDataSeedContributor.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/WmsAreaSpecification.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/IWmsContainerPlaceRepository.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/WmsContainerPlace.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/IWmsContainerRepository.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainer.cs 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainerDataSeedContributor.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainerSpecification.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/IWmsInOutStockOrderRepository.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/IWmsInOutStockOrderDetailRepository.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockRecord/IWmsInOutStockRecordRepository.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockRecord/WmsInOutStockRecord.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialContainer/IWmsMaterialContainerRepository.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialContainer/WmsMaterialContainer.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/IWmsMaterialInfoRepository.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfo.cs 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoDataSeedContributor.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoSpecification.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/IWmsMaterialStockRepository.cs 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStock.cs 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStockDataSeedContributor.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStockSpecification.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/IWmsMaterialTypeRepository.cs 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/WmsMaterialType.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialDataSeedContributor.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/WmsPlace.cs 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/WmsPlaceDataSeedContributor.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/WmsPlaceSpecification.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsStores/IWmsStoreRepository.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsStores/WmsStore.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsStores/WmsStoreDataSeedContributor.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsStores/WmsStoreSpecification.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/WmsTask.cs 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/CMS.Plugin.SycWmsDemo.EntityFrameworkCore.csproj 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/CMSPluginDapperRepository.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/CMSPluginDbSchemaMigrator.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/CMSPluginEfCoreEntityExtensionMappings.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/CMSPluginEntityFrameworkCoreModule.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsArea.cs 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainer.cs 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockOrder.cs 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockOrderDetail.cs 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockRecord.cs 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialInfo.cs 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialStock.cs 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialType.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsPlace.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsStore.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/FodyWeavers.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/ICMSPluginDbContext.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Properties/AssemblyInfo.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerPlaceRepository.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerRepository.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderDetailRepository.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderRepository.cs 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockRecordRepository.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialContainerRepository.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialInfoRepository.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs 367 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialTypeRepository.cs 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/appsettings.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/CMS.Plugin.SycWmsDemo.MySQL.csproj 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContextFactory.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginMySQLModule.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/FodyWeavers.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250516020008_InitialCreate17.Designer.cs 1909 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250516020008_InitialCreate17.cs 1023 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs 1907 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Properties/AssemblyInfo.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateDB.bat 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/CMS.Plugin.SycWmsDemo.PostgreSql.csproj 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContextFactory.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginPostgreSqlModule.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/FodyWeavers.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/Properties/AssemblyInfo.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/Scripts/UpdateDB.bat 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.PostgreSql/Scripts/UpdateMigrations.bat 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/CMS.Plugin.SycWmsDemo.SqlServer.csproj 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContextFactory.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginSqlServerModule.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/FodyWeavers.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/Properties/AssemblyInfo.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/Scripts/UpdateDB.bat 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.SqlServer/Scripts/UpdateMigrations.bat 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Apis/IHIAWmsExternalApi.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/CMS.Plugin.SycWmsDemo.csproj 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/CMSPluginEntry.cs 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/CMSPluginModule.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/CMSPluginRuntimeMigrator.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/LMesOperateController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsAreaController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerPlaceController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderDetailController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockRecordController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsInsStockController.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialContainerController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialInfoController.cs 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialStockController.cs 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialTypeController.cs 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsOutStockController.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsPlaceController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsStoreController.cs 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/EventHandlers/HIAWmsEventHandler.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/FlowProcessors/HIAWmsFlowProcessor.cs 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Flows/50001_1.pfd 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Flows/FlowInfo.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/FodyWeavers.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Jobs/HIAWmsArgs.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Jobs/HIAWmsJob.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/ProjectService/HIAWmsProjectService.cs 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Properties/launchSettings.json 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsArea导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainerPlace导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainer导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrderDetail导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrder导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialContainer导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialInfo导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialStock导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialType导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterial导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsPlace导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsStore导出模板.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Services/HIAWmsFlowService.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/Workers/HIAWmsWorker.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms/appsettings.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/stylecop.json 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Application.Tests/CMS.Plugin.SycWmsDemo.Application.Tests.csproj 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Application.Tests/HIAWmsApplicationTestBase.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Application.Tests/HIAWmsApplicationTestModule.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Domain.Tests/CMS.Plugin.SycWmsDemo.Domain.Tests.csproj 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Domain.Tests/HIAWmsDomainTestBase.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.Domain.Tests/HIAWmsDomainTestModule.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.EntityFrameworkCore.Tests/CMS.Plugin.SycWmsDemo.EntityFrameworkCore.Tests.csproj 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.EntityFrameworkCore.Tests/HIAWmsEntityFrameworkTestBase.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.EntityFrameworkCore.Tests/HIAWmsTestEntityFrameworkCoreModule.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.TestBase/CMS.Plugin.SycWmsDemo.TestBase.csproj 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.TestBase/HIAWmsDataSeedContributor.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.TestBase/HIAWmsTestBase.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.TestBase/HIAWmsTestBaseModule.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/server/test/CMS.Plugin.HIAWms.TestBase/HIAWmsTestData.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/.build.local 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/.env 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/.env.development 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/.env.production 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/.eslintrc.cjs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/.prettierrc.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/.vscode/extensions.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/.vscode/settings.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/README.md 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Controllers/File.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Controllers/MyEntityName.ts 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Controllers/MyEntityNameDrawer.ts 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Models/MyEntityName.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Models/MyEntityNameDrawer.ts 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Models/Service/MyEntityName.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Models/Service/MyEntityNameDrawer.ts 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/MyPluginName.module.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/MyPluginName.tsx 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/Pages/Dialog/MyEntityNameDrawer/MyEntityNameDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/Pages/Dialog/MyEntityNameDrawer/MyEntityNameDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/Pages/MyEntityName/Config.ts 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/Pages/MyEntityName/MyEntityName.module.scss 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/Pages/MyEntityName/MyEntityName.tsx 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/Views/config/MyEntityName.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/enum.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/index.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/app/template/MyPluginName/type/Type.d.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/components.d.ts 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/env.d.ts 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/index.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/main.ts 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/package-lock.json 38285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/package.json 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/config.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/defaulttheme.css 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/language/Common.en-US.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/language/language.en-US.json 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/language/language.zh-CN.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/svgpngbacktheme.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/svgpngwhitetheme.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/theme.css 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/widgets/mock.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/widgets/mock/index.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/public/对theme.css的说明 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/script/autoMenu.js 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/script/build.js 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/script/plugins/vite-plugin-cs-module-filter.ts 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/script/plugins/vite-plugin-widget-provider.ts 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/App.vue 290 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/api/file.ts 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/api/index.ts 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/api/project-api.ts 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/demo.css 539 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/demo_index.html 9598 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.css 1654 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.eot 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.json 2872 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.svg 837 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.woff 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/iconfont/iconfont.woff2 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/+.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/X.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/add-annex.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/add-p.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/banben.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/batch-b.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/batch-list.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/chart.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/close.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/closeDark.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/close_x.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/copy.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/d.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/del.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/delete.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/down.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/drawer_bg.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/edit.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/export.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/f.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/fb.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/fj.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/fnV.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/g.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/gongyiduan.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon-module.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_add.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_add2.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_del.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_exclamation.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_move.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_next.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_nodata.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_pre.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_process.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/icon_search.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/import.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/in.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/left-arrow.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/lightsetting.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/o.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/out.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/pdf.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/pre_icon.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/procedure-direction.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/process.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/processStep1.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/processStep2.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/processStep3.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/processStep4.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/refresh.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/right-arrow.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/s.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/s_input.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/scale-menu.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/scale.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/search.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/setting.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/settings.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/sop.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/sys.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/tag_close.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/tip.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/up.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/variable.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/view.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/images/white_search.png 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/styles/common.scss 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/styles/element.scss 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/styles/index.scss 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/add.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/add1.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/barcode.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/bianji.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/bom.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/del.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/del1.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/f.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/field.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/flow.svg 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/materialManagement.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/more.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/move.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/order.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/p.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/peifangguanli.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/processConfiguration.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/prod.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/q.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/system.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/t.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/tip.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/assets/svg/title.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/cms/index.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/cms/sdk.es.js 460215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/cms/sdk.es.ssr.js 1763 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseConfigSelect/BaseConfigSelect.module.scss 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseConfigSelect/BaseConfigSelect.tsx 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseContent/BaseContent.module.scss 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseContent/BaseContent.tsx 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseDialog/BaseDialog.scss 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseDialog/BaseDialog.tsx 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseDialog/index.vue 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseDrawer/BaseDrawer.module.scss 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseDrawer/BaseDrawer.tsx 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseInput/BaseInput.module.scss 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseInput/BaseInput.tsx 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseQueryDrawer/BaseQueryDrawer.module.scss 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/BaseQueryDrawer/BaseQueryDrawer.tsx 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/ConfirmBox/ConfirmBox.module.scss 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/ConfirmBox/ConfirmBox.tsx 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Container/Container.module.scss 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Container/Container.tsx 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Content/Content.module.scss 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Content/Content.tsx 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DatePicker/PrefixIcon.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DatePicker/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DateTimePickRange/DateTimePickRange.module.scss 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DateTimePickRange/DateTimePickRange.tsx 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Dialog/index.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DyForm/DyForm.d.ts 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DyForm/DyForm.module.scss 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DyForm/DyForm.tsx 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DyFormForHighQuery/DyFormForHighQuery.d.ts 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DyFormForHighQuery/DyFormForHighQuery.module.scss 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DyFormForHighQuery/DyFormForHighQuery.tsx 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/DyFormForHighQuery/DyFormForHighQueryOptions.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/ElSelect/ElOption.tsx 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/ElSelect/ElSelect.tsx 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/ElSelect/index.scss 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Empty/Empty.module.scss 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Empty/Empty.tsx 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Flow/Flow.module.scss 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Flow/Flow.tsx 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Icon/Icon.tsx 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/IconButton/IconButton.module.scss 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/IconButton/IconButton.tsx 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Menu/index.vue 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/MyPages/index.vue 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Pdf/index.vue 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/PreviewDialog/index.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/ProjectConfig/ProjectConfig.module.scss 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/ProjectConfig/ProjectConfig.tsx 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Radio/Radio.module.scss 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Radio/Radio.tsx 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Search/Search.module.scss 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Search/Search.tsx 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/SearchInput/SearchInput.module.scss 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/SearchInput/SearchInput.tsx 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Select/Option.tsx 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Select/Select.tsx 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/SelectInput/SelectInput.module.scss 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/SelectInput/SelectInput.tsx 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Setting/Setting.tsx 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/SettingItem/SettingItem.vue 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/SettingItem/state.ts 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Tab/Tab.module.scss 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Tab/Tab.tsx 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Tab/TabPane.tsx 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/Readme.md 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/Table.tsx 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/api.ts 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/components/custom-vxe-column.vue 555 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/components/pagination.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/index.d.ts 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/index.module.scss 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/index.scss 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/index.vue 680 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Table/state.ts 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/TableFilter/TableFilter.module.scss 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/TableFilter/TableFilter.tsx 337 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Tag/Tag.module.scss 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Tag/Tag.tsx 344 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/TdButton/TdButton.module.scss 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/TdButton/TdButton.tsx 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Text/Text.module.scss 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Text/Text.tsx 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Title/Title.module.scss 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Title/Title.tsx 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/TouchScale/index.vue 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Upload/index.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Variable/Variable.module.scss 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/Variable/Variable.tsx 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenu.scss 518 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenu.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuDefine.ts 401 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuGroup.vue 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuIconCheck.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuIconRight.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuInstance.ts 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuItem.vue 380 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuMutex.ts 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuSeparator.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextMenuUtils.ts 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextSubMenu.vue 555 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/ContextSubMenuWrapper.vue 326 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/MenuBar.scss 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/MenuBar.ts 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/MenuBar.vue 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/MenuBarIconMenu.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/env.d.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/index.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/shims-vue.d.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/tsconfig.json 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/components/vue3-context-menu/vite.config.ts 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/config/menu.ts 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/env.d.ts 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/home.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/hooks/hook.ts 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/index.d.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Base/Base.ts 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Create/Create.ts 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Hook/Hook.ts 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Language/Language.ts 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Language/i18n/langEN.ts 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Language/i18n/langTH.ts 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Language/i18n/langZH.ts 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Permission/Permission.d.ts 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Permission/Permission.ts 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Provider/Provider.ts 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Provider/app.ts 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Store/State.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Store/Store.d.ts 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/Store/Store.ts 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/libs/enum.ts 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/main.ts 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/plugins/vxe-table.ts 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/provider/index.ts 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/provider/index.vue 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/router.ts 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/utils/ElMessage.ts 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/utils/commonOptionConstants.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/utils/enum/index.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/utils/index.ts 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/utils/myHighQueryUtils.ts 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/utils/myformUtils.ts 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/utils/permission.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/utils/request.ts 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/utils/storage.ts 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/File.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterial.ts 273 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx 335 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx 582 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterialType.ts 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeQueryDrawer.tsx 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterial.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterialQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterialType.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeDrawer.ts 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterial.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterialDrawer.ts 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterialQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterialType.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterialTypeDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Models/WmsMaterialTypeQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/HIAWms.module.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/HIAWms.tsx 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.module.scss 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx 418 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/Config.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.module.scss 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.tsx 376 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/config/WmsMaterial.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/Views/config/WmsMaterialType.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/enum.ts 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/index.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/HIAWms/type/Type.d.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/Http/Http.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/Http/Settings/Http.settings.vue 356 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/Http/components/InputCode.vue 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/Http/components/OptionConfigDialog.vue 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/Http/index.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Controllers/File.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Controllers/WmsContainer.ts 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx 331 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Controllers/WmsContainerQueryDrawer.tsx 581 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/Service/WmsContainer.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/Service/WmsContainerDrawer.ts 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/Service/WmsContainerQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/WmsContainer.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/WmsContainerDrawer.ts 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Models/WmsContainerQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerQueryDrawer/WmsContainerQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerQueryDrawer/WmsContainerQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/WmsContainer/Config.ts 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.module.scss 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.tsx 408 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/WmsContainer.module.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/WmsContainer.tsx 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/Views/config/WmsContainer.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/enum.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/index.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsContainer/type/Type.d.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Controllers/File.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderDrawer.tsx 381 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderQueryDrawer.tsx 507 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Controllers/WmsOutOrderCallMaterialDialog.tsx 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer.ts 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/Config.ts 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.module.scss 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx 441 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.module.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.tsx 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/Views/config/WmsInOutStockOrder.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/enum.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/index.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrder/type/type.d.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Controllers/File.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetail.ts 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailDrawer.tsx 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx 376 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetail.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer.ts 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetail.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/Config.ts 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.module.scss 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx 412 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.module.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.tsx 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/Views/config/WmsInOutStockOrderDetail.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/enum.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/index.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockOrderDetail/type/type.d.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Controllers/File.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecord.ts 282 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx 307 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx 311 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecord.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordDrawer.ts 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/WmsInOutStockRecord.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/WmsInOutStockRecordDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Models/WmsInOutStockRecordQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.module.scss 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx 382 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/WmsInOutStockRecord.module.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/WmsInOutStockRecord.tsx 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/Views/config/WmsInOutStockRecord.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/enum.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/index.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsInOutStockRecord/type/type.d.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Controllers/File.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Controllers/WmsMaterialContainer.ts 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Controllers/WmsMaterialContainerDrawer.tsx 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Controllers/WmsMaterialContainerQueryDrawer.tsx 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer.ts 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainerDrawer.ts 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainerQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/WmsMaterialContainer.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/WmsMaterialContainerDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Models/WmsMaterialContainerQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/Dialog/WmsMaterialContainerDrawer/WmsMaterialContainerDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/Dialog/WmsMaterialContainerDrawer/WmsMaterialContainerDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/Dialog/WmsMaterialContainerQueryDrawer/WmsMaterialContainerQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/Dialog/WmsMaterialContainerQueryDrawer/WmsMaterialContainerQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/Config.ts 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.module.scss 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.module.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/Views/config/WmsMaterialContainer.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/enum.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/index.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialContainer/type/type.d.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Controllers/File.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStock.ts 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDetailQueryDrawer.tsx 657 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDrawer.tsx 341 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockQueryDrawer.tsx 568 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStock.ts 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockDetailQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockDrawer.ts 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/WmsMaterialStock.ts 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/WmsMaterialStockDetailQueryDrawer.ts 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/WmsMaterialStockDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Models/WmsMaterialStockQueryDrawer.tsx 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDetailQuery/WmsMaterialStockDetailQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDetailQuery/WmsMaterialStockDetailQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockQuery/WmsMaterialStockQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockQuery/WmsMaterialStockQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/Config.ts 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.module.scss 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx 455 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/Config.ts 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.module.scss 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx 422 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.module.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.tsx 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/config/WmsMaterialStock.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/Views/config/WmsMaterialStockDetail.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/enum.ts 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/index.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsMaterialStock/type/Type.d.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/File.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsArea.ts 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsAreaQueryDrawer.tsx 428 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsPlace.ts 277 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsPlaceDrawer.tsx 332 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsPlaceQueryDrawer.tsx 549 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsStore.ts 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsStoreDrawer.ts 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Controllers/WmsStoreQueryDrawer.tsx 314 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsArea.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsAreaDrawer.ts 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsAreaQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsPlace.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsPlaceDrawer.ts 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsPlaceQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsStore.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsStoreDrawer.ts 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/Service/WmsStoreQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsArea.ts 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsAreaDrawer.ts 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsAreaQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsPlace.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsPlaceDrawer.ts 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsPlaceQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsStore.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsStoreDrawer.ts 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Models/WmsStoreQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsAreaDrawer/WmsAreaDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsAreaDrawer/WmsAreaDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsAreaQueryDrawer/WmsAreaQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsAreaQueryDrawer/WmsAreaQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsPlaceDrawer/WmsPlaceDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsPlaceDrawer/WmsPlaceDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsPlaceQueryDrawer/WmsPlaceQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsPlaceQueryDrawer/WmsPlaceQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsStoreDrawer/WmsStoreDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsStoreDrawer/WmsStoreDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsStoreQueryDrawer/WmsStoreQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsStoreQueryDrawer/WmsStoreQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/Config.ts 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.tsx 349 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/Config.ts 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.module.scss 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx 375 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/Config.ts 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.module.scss 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.tsx 329 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/WmsStoreInfo.module.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/WmsStoreInfo.tsx 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/config/WmsArea.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/config/WmsPlace.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/Views/config/WmsStore.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/enum.ts 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/index.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsStoreInfo/type/Type.d.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Controllers/ChangeToPlace.tsx 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Controllers/File.ts 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Controllers/WmsTask.ts 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx 435 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx 611 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/Service/WmsTask.ts 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/Service/WmsTaskDrawer.ts 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/Service/WmsTaskQueryDrawer.ts 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/WmsTask.ts 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/WmsTaskDrawer.ts 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Models/WmsTaskQueryDrawer.ts 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/ChangeToPlaceDialog/ChangeToPlaceDialog.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/ChangeToPlaceDialog/ChangeToPlaceDialog.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskDrawer/WmsTaskDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskDrawer/WmsTaskDrawer.tsx 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer.module.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer.tsx 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/WmsTask/Config.ts 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.module.scss 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx 410 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/WmsTask.module.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/WmsTask.tsx 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/Views/config/WmsTask.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/enum.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/index.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/WmsTask/type/type.d.ts 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/hook.ts 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/src/widgets/index.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/tsconfig.json 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/vite.config.ts 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/vite.lib.config.ts 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/syc_wms_demo_web/yarn.lock 12361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/此项目是应用伟本立体库的demo.txt 补丁 | 查看 | 原始文档 | blame | 历史
SYC_WmsDemo/build-server.ps1
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
# 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
SYC_WmsDemo/build-web.ps1
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
# 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
SYC_WmsDemo/project/WCS_±äÁ¿.xlsx
Binary files differ
SYC_WmsDemo/project/WCS_Á÷³Ì_20250604170659.xlsx
Binary files differ
SYC_WmsDemo/project/WCSÑÝʾ¹¤³Ì-1.cmsproj
Binary files differ
SYC_WmsDemo/project/Wms.cmsproj
Binary files differ
SYC_WmsDemo/server/.idea/.idea.CMS.Plugin.HIAWms/.idea/encodings.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>
SYC_WmsDemo/server/.idea/.idea.CMS.Plugin.HIAWms/.idea/indexLayout.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="UserContentModel">
    <attachedFolders />
    <explicitIncludes />
    <explicitExcludes />
  </component>
</project>
SYC_WmsDemo/server/.idea/.idea.CMS.Plugin.HIAWms/.idea/vcs.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="VcsDirectoryMappings">
    <mapping directory="$PROJECT_DIR$/../../../../.." vcs="Git" />
  </component>
</project>
SYC_WmsDemo/server/CMS.Plugin.SycWmsDemo.sln
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,145 @@

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
SYC_WmsDemo/server/Directory.Build.props
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
<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>
SYC_WmsDemo/server/NuGet.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
<?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>
SYC_WmsDemo/server/README.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,2 @@
# HIAWms
SYC_WmsDemo/server/common.props
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
<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>
SYC_WmsDemo/server/common.test.props
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
<Project>
  <PropertyGroup>
    <LangVersion>latest</LangVersion>
    <NoWarn>$(NoWarn);CS1591</NoWarn>
    <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
  </PropertyGroup>
</Project>
SYC_WmsDemo/server/configureawait.props
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
<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>
SYC_WmsDemo/server/delete-bin-obj-folders.bat
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
@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
SYC_WmsDemo/server/doc/Domain-Drive-Design.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
# é¢†åŸŸæ¨¡åž‹è®¾è®¡
## ä¸€ã€æœ¯è¯­ä¸Žå®šä¹‰
| è‹±æ–‡ç¼©å†™ | è‹±æ–‡å…¨ç§° | ä¸­æ–‡ç¿»è¯‘ |
| -------- | -------- | -------- |
|          |          |          |
## äºŒã€ä¸šåŠ¡æµç¨‹
不涉及
## ä¸‰ã€æ•°æ®ç±»åž‹
数据类型采用的是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)
值对象是通过属性来识别的对象,它将多个相关属性组合为一个概念整体。值对象没有标识,不允许变化,判断两个值对象相等的标准是值对象内部所有属性值相等。
## å…­ã€é¢†åŸŸæœåŠ¡
不涉及
## ä¸ƒã€é¢†åŸŸäº‹ä»¶
不涉及
## å…«ã€å…¶ä»–
不涉及
## ä¹ã€å‚考引用
不涉及
SYC_WmsDemo/server/package.reference.props
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
<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>
SYC_WmsDemo/server/publish.ps1
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
# 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
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMS.Plugin.SycWmsDemo.Abstractions.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
<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>
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMSPluginHIAWmsAbstractionsModule.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
namespace CMS.Plugin.HIAWms.Abstractions;
/// <summary>
/// æµç¨‹ä¸šåŠ¡æ‰©å±•æ¨¡å—
/// </summary>
public class CMSPluginHIAWmsAbstractionsModule
{
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMSPluginHIAWmsExtensions.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
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;
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMSPluginHIAWmsFeatures.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
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";
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMSPluginHIAWmsOptions.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
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();
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/CMSPluginHIAWmsSettings.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
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";
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/FodyWeavers.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
   <ConfigureAwait ContinueOnCapturedContext="false" />
</Weavers>
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/HIAWmsActivity.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
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;
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/IHIAWmsFlowService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using SYC.Flow.Kernel;
namespace CMS.Plugin.HIAWms.Abstractions
{
    /// <summary>
    /// HIAWms æµç¨‹æœåŠ¡
    /// </summary>
    public interface IHIAWmsFlowService
    {
        /// <summary>
        /// å·¥è‰ºæµç¨‹å¤„理
        /// </summary>
        Task ProcessAsync(ProcessflowEventArgs args);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Abstractions/Properties/AssemblyInfo.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
using SYC.Flow.Kernel;
[assembly: ProcessflowExtention(true)]
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMS.Plugin.SycWmsDemo.Application.Contracts.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
<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>
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMSPluginApplicationContractsModule.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
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();
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMSPluginDtoExtensions.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
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
                 */
        });
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/CallMaterialOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
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;
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/LMesCallMaterialInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialTypeOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MoveStockInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/ReduceStockInput{.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/OutStockDto/CallMaterialInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/GetWmsAreaInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,239 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreaCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreaCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreaDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,119 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreaUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreasExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsArea/WmsAreasImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/GetWmsContainerInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,292 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainerCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainerCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,99 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainerDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,146 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainerUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainersExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainer/WmsContainersImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/GetWmsContainerPlaceInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,239 @@
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.模糊查询;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,95 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,141 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,103 @@
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;
        }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlacesImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsEnumDto/WmsEnumInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/GetWmsInOutStockOrderInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,279 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,191 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,127 @@
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;
        }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrdersImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/GetWmsInOutStockOrderDetailInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,221 @@
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.模糊查询;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,141 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
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;
        }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailsImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/GetWmsInOutStockRecordInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,261 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
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;
        }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordsImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,332 @@
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.模糊查询;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,146 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,206 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,155 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialImportModels.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialsImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/GetWmsMaterialContainerInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,151 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainerCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainerCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainerDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainerExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
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;
        }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainerUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialContainer/WmsMaterialContainersImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/GetWmsMaterialInfosInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/GetWmsMaterialStockInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,360 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,160 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,276 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,175 @@
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;
        }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStocksExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,141 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStocksImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/GetWmsMaterialTypeInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,232 @@
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.模糊查询;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,136 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
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;
        }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypesImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/GetWmsPlacesInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,278 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlaceCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlaceCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,112 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlaceDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlaceUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlacesExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,122 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlace/WmsPlacesImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/GetWmsStoreInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,188 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoreCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoreCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoreDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoreUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoresExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsStore/WmsStoresImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/ChangeTaskToPlaceInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
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; }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/GetWmsTaskInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,322 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
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;}
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskCreateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
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;
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskCreateOrUpdateDtoBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
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)
    {
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,239 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskExportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,151 @@
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;
        }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskUpdateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
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; }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTasksImportModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
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; }
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/FodyWeavers.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
   <ConfigureAwait ContinueOnCapturedContext="false" />
</Weavers>
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/ICMSPluginQueryAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
using Volo.Abp.Application.Services;
namespace CMS.Plugin.HIAWms.Application.Contracts;
/// <summary>
/// æŸ¥è¯¢åº”用服务
/// </summary>
public interface ICMSPluginQueryAppService : IApplicationService
{
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/ILMesOperateAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsAreaAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsBindInStockAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerPlaceAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
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();
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderDetailAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockRecordAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialContainerAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialInfoAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialStockAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialTypeAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsOutStockAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsPlaceAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsStoreAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
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);
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/CMS.Plugin.SycWmsDemo.Application.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
<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>
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/CMSPluginAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/CMSPluginApplicationModule.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
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);
        });
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/CMSPluginQueryAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/FodyWeavers.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
   <ConfigureAwait ContinueOnCapturedContext="false" />
</Weavers>
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/LMesOperateAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,153 @@
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();
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,383 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,208 @@
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();
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,372 @@
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;
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,376 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerPlaceAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,430 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,176 @@
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;
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,475 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderDetailAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,426 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,443 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,394 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialContainerAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,403 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialInfoAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,351 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,789 @@
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));
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialTypeAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,454 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOrderOperateAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
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()
        {
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,138 @@
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;
        }
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,373 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsStoreAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,350 @@
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;
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,825 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsAreaAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerPlaceAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderDetailAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockRecordAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialContainerAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialInfoAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialStockAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialTypeAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
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);
    }
}
SYC_WmsDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
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