From bbd8b2922a59500444f70f0c11b4c76f63bd07f9 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周二, 06 5月 2025 09:13:05 +0800 Subject: [PATCH] 222 --- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateDto.cs | 34 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs | 308 +++-- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialUpdateDto.cs | 27 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs | 376 +++--- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialsImportModel.cs | 66 CommonDLL/CmsQueryExtensions.dll | 0 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs | 92 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs | 226 ++-- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs | 147 +- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs | 871 +++++++++-------- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs | 106 +- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs | 189 ++- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs | 476 ++++---- 13 files changed, 1,483 insertions(+), 1,435 deletions(-) diff --git a/CommonDLL/CmsQueryExtensions.dll b/CommonDLL/CmsQueryExtensions.dll new file mode 100644 index 0000000..0bf4b5e --- /dev/null +++ b/CommonDLL/CmsQueryExtensions.dll Binary files differ diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs" index b1fb428..9581382 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs" @@ -1,311 +1,301 @@ -using CmsQueryExtensions.Extension; -using Volo.Abp.Application.Dtos; - -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; - +锘縰sing CmsQueryExtensions.Extension; +using Volo.Abp.Application.Dtos; + +namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; + /// <summary> /// 鐗╂枡鍩虹淇℃伅琛ㄦ煡璇㈠弬鏁� /// </summary> -public class GetWmsMaterialInput : ExtensiblePagedAndSortedResultRequestDto -{ - +public class GetWmsMaterialInput : ExtensiblePagedAndSortedResultRequestDto +{ + #region 鍏抽敭瀛楁煡璇� - + /// <summary> /// 鍏抽敭瀛楁ā绯婃煡璇紙娉ㄦ剰鏄皬鍐欙紒锛� /// </summary> - public string searchVal { get; set; } - + public string searchVal { get; set; } + /// <summary> /// 閫氱敤鏌ヨ閰嶇疆 (1:妯$硦鏌ヨ , 2:绮惧噯鏌ヨ)锛堟敞鎰忔槸灏忓啓锛侊級 /// </summary> - public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - + public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級 /// </summary> - [NoAutoQuery] - public string str_searchFormInputAttrs { get; set; } + [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>(); - } - } + 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; } - #endregion + /// <summary> + /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialCode_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛� - /// </summary> - public string MaterialCode { get; set; } + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string MaterialName { get; set; } - /// <summary> - /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum MaterialCode_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鐗╂枡鍚嶇О-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鐗╂枡鍚嶇О - /// </summary> - public string MaterialName { get; set; } + /// <summary> + /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級 + /// </summary> + public int? PurchaseType { get; set; } - /// <summary> - /// 鐗╂枡鍚嶇О-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum MaterialName_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum PurchaseType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級 - /// </summary> - public int? PurchaseType { get; set; } + /// <summary> + /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 + /// </summary> + public int? MaterialType { get; set; } - /// <summary> - /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum PurchaseType_FilterMode { get; set; } = SearchFilterModeEnum.绮惧噯鏌ヨ; + /// <summary> + /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 - /// </summary> - public int? MaterialType { get; set; } + /// <summary> + /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� + /// </summary> + public string PrimaryUnit { get; set; } - /// <summary> - /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum MaterialType_FilterMode { get; set; } = SearchFilterModeEnum.绮惧噯鏌ヨ; + /// <summary> + /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum PrimaryUnit_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� - /// </summary> - public string PrimaryUnit { get; set; } + /// <summary> + /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛� + /// </summary> + public string Standard { get; set; } - /// <summary> - /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum PrimaryUnit_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum Standard_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛� - /// </summary> - public string Standard { get; set; } + /// <summary> + /// 澶栧緞锛堝崟浣嶏細mm锛� + /// </summary> + public decimal? OuterDiameter { get; set; } - /// <summary> - /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum Standard_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 澶栧緞锛堝崟浣嶏細mm锛�-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum OuterDiameter_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// 澶栧緞锛堝崟浣嶏細mm锛� - /// </summary> - public string OuterDiameter { get; set; } + /// <summary> + /// 澹佸帤锛堝崟浣嶏細mm锛� + /// </summary> + public decimal? WallThickness { get; set; } - /// <summary> - /// 澶栧緞锛堝崟浣嶏細mm锛�-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum OuterDiameter_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 澹佸帤锛堝崟浣嶏細mm锛�-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum WallThickness_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// 澹佸帤锛堝崟浣嶏細mm锛� - /// </summary> - public string WallThickness { get; set; } + /// <summary> + /// 鏉愯川锛堝锛�304涓嶉攬閽級 + /// </summary> + public string MaterialQuality { get; set; } - /// <summary> - /// 澹佸帤锛堝崟浣嶏細mm锛�-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum WallThickness_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鏉愯川锛堝锛�304涓嶉攬閽級-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialQuality_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鏉愯川锛堝锛�304涓嶉攬閽級 - /// </summary> - public string MaterialQuality { get; set; } + /// <summary> + /// 闀垮害锛堝崟浣嶏細m锛� + /// </summary> + public decimal? Length { get; set; } - /// <summary> - /// 鏉愯川锛堝锛�304涓嶉攬閽級-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum MaterialQuality_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 闀垮害锛堝崟浣嶏細m锛�-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum Length_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// 闀垮害锛堝崟浣嶏細m锛� - /// </summary> - public string Length { get; set; } + /// <summary> + /// 鏄惁涓轰富鏀 + /// </summary> + public int? IsMainBranch { get; set; } - /// <summary> - /// 闀垮害锛堝崟浣嶏細m锛�-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum Length_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鏄惁涓轰富鏀-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum IsMainBranch_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// 鏄惁涓轰富鏀 - /// </summary> - public int? IsMainBranch { get; set; } + /// <summary> + /// 鐢熶骇宸ュ巶 + /// </summary> + public string Factory { get; set; } - /// <summary> - /// 鏄惁涓轰富鏀-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum IsMainBranch_FilterMode { get; set; } = SearchFilterModeEnum.绮惧噯鏌ヨ; + /// <summary> + /// 鐢熶骇宸ュ巶-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum Factory_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鐢熶骇宸ュ巶 - /// </summary> - public string Factory { get; set; } + /// <summary> + /// 璇佷功缂栧彿 + /// </summary> + public string Certification { get; set; } - /// <summary> - /// 鐢熶骇宸ュ巶-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum Factory_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 璇佷功缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum Certification_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 璇佷功缂栧彿 - /// </summary> - public string Certification { get; set; } + /// <summary> + /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ�� + /// </summary> + public string RedundantField1 { get; set; } - /// <summary> - /// 璇佷功缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum Certification_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum RedundantField1_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ�� - /// </summary> - public string RedundantField1 { get; set; } + /// <summary> + /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ�� + /// </summary> + public string RedundantField2 { get; set; } - /// <summary> - /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum RedundantField1_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum RedundantField2_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ�� - /// </summary> - public string RedundantField2 { get; set; } + /// <summary> + /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ�� + /// </summary> + public string RedundantField3 { get; set; } - /// <summary> - /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum RedundantField2_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum RedundantField3_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ�� - /// </summary> - public string RedundantField3 { get; set; } + /// <summary> + /// 鎺掑簭 + /// </summary> + public int? Sort { get; set; } - /// <summary> - /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum RedundantField3_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鎺掑簭-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// 鎺掑簭 - /// </summary> - public int? Sort { get; set; } + /// <summary> + /// 澶囨敞 + /// </summary> + public string Remark { get; set; } - /// <summary> - /// 鎺掑簭-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum Sort_FilterMode { get; set; } = SearchFilterModeEnum.绮惧噯鏌ヨ; + /// <summary> + /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 澶囨敞 - /// </summary> - public string Remark { get; set; } + /// <summary> + /// 鏄惁绂佺敤 + /// </summary> + public bool? IsDisabled { get; set; } - /// <summary> - /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鏄惁绂佺敤-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// 鏄惁绂佺敤 - /// </summary> - public bool? IsDisabled { get; set; } - - /// <summary> - /// 鏄惁绂佺敤-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum IsDisabled_FilterMode { get; set; } = SearchFilterModeEnum.绮惧噯鏌ヨ; - - /// <summary> - /// - /// </summary> - public string ConcurrencyStamp { get; set; } - - /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum ConcurrencyStamp_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - - /// <summary> - /// - /// </summary> - //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� - [HighSearchRangeAttribute] - public List<string> CreationTime { get; set; } + /// <summary> + /// + /// </summary> + //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� + [HighSearchRangeAttribute] + public List<string> CreationTime { get; set; } - /// <summary> - /// - /// </summary> - public string CreatorId { get; set; } + /// <summary> + /// + /// </summary> + public string CreatorId { get; set; } - /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// - /// </summary> - //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� - [HighSearchRangeAttribute] - public List<string> LastModificationTime { get; set; } + /// <summary> + /// + /// </summary> + //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� + [HighSearchRangeAttribute] + public List<string> LastModificationTime { get; set; } - /// <summary> - /// - /// </summary> - public string LastModifierId { get; set; } + /// <summary> + /// + /// </summary> + public string LastModifierId { get; set; } - /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// - /// </summary> - public bool? IsDeleted { get; set; } + /// <summary> + /// + /// </summary> + public bool? IsDeleted { get; set; } - /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.绮惧噯鏌ヨ; + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// - /// </summary> - public string DeleterId { get; set; } + /// <summary> + /// + /// </summary> + public string DeleterId { get; set; } - /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// - /// </summary> - //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� - [HighSearchRangeAttribute] - public List<string> DeletionTime { get; set; } + /// <summary> + /// + /// </summary> + //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� + [HighSearchRangeAttribute] + public List<string> DeletionTime { get; set; } - -} + +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateDto.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateDto.cs" index eb06985..edf0cb4 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateDto.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateDto.cs" @@ -1,17 +1,17 @@ -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; - -/// <summary> -/// WmsMaterial鍒涘缓鍙傛暟瀵硅薄 -/// </summary> -public class WmsMaterialCreateDto : WmsMaterialCreateOrUpdateDtoBase -{ - /// <summary> - /// 鎺掑簭 - /// </summary> - public virtual int? Sort { get; set; } - - /// <summary> - /// 鏄惁绂佺敤 - /// </summary> - public bool? IsDisabled { get; set; } = false; -} +锘縩amespace 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; +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs" index 0948290..9638fbd 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs" @@ -1,101 +1,124 @@ -using CMS.Plugin.HIAWms.Domain.Shared.Enums; -using Volo.Abp.Application.Dtos; +锘縰sing CMS.Plugin.HIAWms.Domain.Shared.Enums; +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; } -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string MaterialName { get; set; } -/// <summary> -/// 鐗╂枡鍩虹淇℃伅鍒涘缓鎴栨洿鏂板熀绫� -/// </summary> -public abstract class WmsMaterialCreateOrUpdateDtoBase : ExtensibleEntityDto -{ - /// <summary> - /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛� - /// </summary> - public string MaterialCode { get; set; } + /// <summary> + /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級 + /// </summary> + public PurchaseTypeEnum PurchaseType { get; set; } - /// <summary> - /// 鐗╂枡鍚嶇О - /// </summary> - public string MaterialName { get; set; } + /// <summary> + /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 + /// </summary> + public MaterialTypeEnum MaterialType { get; set; } - /// <summary> - /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級 - /// </summary> - public PurchaseTypeEnum PurchaseType { get; set; } + /// <summary> + /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� + /// </summary> + public string? PrimaryUnit { get; set; } - /// <summary> - /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 - /// </summary> - public MaterialTypeEnum MaterialType { get; set; } + /// <summary> + /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛� + /// </summary> + public string? Standard { get; set; } - /// <summary> - /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� - /// </summary> - public string PrimaryUnit { get; set; } + /// <summary> + /// 澶栧緞锛堝崟浣嶏細mm锛� + /// </summary> + public decimal OuterDiameter { get; set; } - /// <summary> - /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛� - /// </summary> - public string Standard { get; set; } + /// <summary> + /// 澹佸帤锛堝崟浣嶏細mm锛� + /// </summary> + public decimal WallThickness { get; set; } - /// <summary> - /// 澶栧緞锛堝崟浣嶏細mm锛� - /// </summary> - public decimal OuterDiameter { get; set; } + /// <summary> + /// 鏉愯川锛堝锛�304涓嶉攬閽級 + /// </summary> + public string? MaterialQuality { get; set; } - /// <summary> - /// 澹佸帤锛堝崟浣嶏細mm锛� - /// </summary> - public decimal WallThickness { get; set; } + /// <summary> + /// 闀垮害锛堝崟浣嶏細m锛� + /// </summary> + public decimal Length { get; set; } - /// <summary> - /// 鏉愯川锛堝锛�304涓嶉攬閽級 - /// </summary> - public string MaterialQuality { get; set; } + /// <summary> + /// 鏄惁涓轰富鏀 + /// </summary> + public YesNoEnum IsMainBranch { get; set; } - /// <summary> - /// 闀垮害锛堝崟浣嶏細m锛� - /// </summary> - public decimal Length { get; set; } + /// <summary> + /// 鐢熶骇宸ュ巶 + /// </summary> + public string? Factory { get; set; } - /// <summary> - /// 鏄惁涓轰富鏀锛坱rue: 涓绘敮绠�, false: 闈炰富鏀锛� - /// </summary> - public YesNoEnum IsMainBranch { get; set; } + /// <summary> + /// 璇佷功缂栧彿 + /// </summary> + public string? Certification { get; set; } - /// <summary> - /// 鐢熶骇宸ュ巶 - /// </summary> - public string Factory { get; set; } + /// <summary> + /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ�� + /// </summary> + public string? RedundantField1 { get; set; } - /// <summary> - /// 璇佷功缂栧彿锛堝锛氬帇鍔涘鍣ㄨ璇侊級 - /// </summary> - public string Certification { get; set; } + /// <summary> + /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ�� + /// </summary> + public string? RedundantField2 { get; set; } - /// <summary> - /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ�� - /// </summary> - public string RedundantField1 { get; set; } + /// <summary> + /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ�� + /// </summary> + public string? RedundantField3 { get; set; } - /// <summary> - /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ�� - /// </summary> - public string RedundantField2 { get; set; } + /// <summary> + /// 鎺掑簭 + /// </summary> + public int Sort { get; set; } - /// <summary> - /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ�� - /// </summary> - public string RedundantField3 { get; set; } - /// <summary> - /// 澶囨敞 - /// </summary> - public virtual string Remark { get; set; } + /// <summary> + /// 澶囨敞 + /// </summary> + public string? Remark { get; set; } - /// <summary> - /// Initializes a new instance of the <see cref="WmsMaterialCreateOrUpdateDtoBase"/> class. - /// </summary> - public WmsMaterialCreateOrUpdateDtoBase() : base(false) - { - } -} + /// <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="WmsMaterialCreateOrUpdateDtoBase"/> class. + /// </summary> + public WmsMaterialCreateOrUpdateDtoBase() : base(false) + { + } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs" index 3c965c9..82b2e91 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs" @@ -1,158 +1,200 @@ -using CMS.Plugin.HIAWms.Domain.Shared.Enums; -using Volo.Abp.Application.Dtos; -using Volo.Abp.Domain.Entities; +锘縰sing CMS.Plugin.HIAWms.Domain.Shared.Enums; +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; } -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string MaterialName { get; set; } -/// <summary> -/// WmsMaterial鏁版嵁鍙傛暟瀵硅薄 -/// </summary> -public class WmsMaterialDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp -{ - /// <summary> - /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛� - /// </summary> - public string MaterialCode { get; set; } + /// <summary> + /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級 + /// </summary> + public PurchaseTypeEnum PurchaseType { get; set; } - /// <summary> - /// 鐗╂枡鍚嶇О - /// </summary> - public string MaterialName { get; set; } + /// <summary> + /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級 + /// </summary> + public string PurchaseTypeDesc + { + get + { + return GetEnumDescriptionUtil.GetEnumDescription(PurchaseType); + } + } + /// <summary> + /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 + /// </summary> + public MaterialTypeEnum MaterialType { get; set; } - /// <summary> - /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級 - /// </summary> - public PurchaseTypeEnum PurchaseType { get; set; } + /// <summary> + /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 + /// </summary> + public string MaterialTypeDesc + { + get + { + return GetEnumDescriptionUtil.GetEnumDescription(MaterialType); + } + } + /// <summary> + /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� + /// </summary> + public string? PrimaryUnit { get; set; } - /// <summary> - /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級 - /// </summary> - public string PurchaseTypeDesc - { - get - { - return GetEnumDescriptionUtil.GetEnumDescription(PurchaseType); - } - } + /// <summary> + /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛� + /// </summary> + public string? Standard { get; set; } - /// <summary> - /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 - /// </summary> - public MaterialTypeEnum MaterialType { get; set; } + /// <summary> + /// 澶栧緞锛堝崟浣嶏細mm锛� + /// </summary> + public decimal OuterDiameter { get; set; } - /// <summary> - /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 - /// </summary> - public string MaterialTypeDesc - { - get - { - return GetEnumDescriptionUtil.GetEnumDescription(MaterialType); - } - } + /// <summary> + /// 澹佸帤锛堝崟浣嶏細mm锛� + /// </summary> + public decimal WallThickness { get; set; } - /// <summary> - /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� - /// </summary> - public string PrimaryUnit { get; set; } + /// <summary> + /// 鏉愯川锛堝锛�304涓嶉攬閽級 + /// </summary> + public string? MaterialQuality { get; set; } - /// <summary> - /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛� - /// </summary> - public string Standard { get; set; } + /// <summary> + /// 闀垮害锛堝崟浣嶏細m锛� + /// </summary> + public decimal Length { get; set; } - /// <summary> - /// 澶栧緞锛堝崟浣嶏細mm锛� - /// </summary> - public decimal OuterDiameter { get; set; } + /// <summary> + /// 鏄惁涓轰富鏀 + /// </summary> + public YesNoEnum IsMainBranch { get; set; } - /// <summary> - /// 澹佸帤锛堝崟浣嶏細mm锛� - /// </summary> - public decimal WallThickness { get; set; } + /// <summary> + /// 鏄惁涓轰富鏀 + /// </summary> + public string IsMainBranchDesc + { + get + { + return GetEnumDescriptionUtil.GetEnumDescription(IsMainBranch); + } + } + /// <summary> + /// 鐢熶骇宸ュ巶 + /// </summary> + public string? Factory { get; set; } - /// <summary> - /// 鏉愯川锛堝锛�304涓嶉攬閽級 - /// </summary> - public string MaterialQuality { get; set; } + /// <summary> + /// 璇佷功缂栧彿 + /// </summary> + public string? Certification { get; set; } - /// <summary> - /// 闀垮害锛堝崟浣嶏細m锛� - /// </summary> - public decimal Length { get; set; } + /// <summary> + /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ�� + /// </summary> + public string? RedundantField1 { get; set; } - /// <summary> - /// 鏄惁涓轰富鏀锛�1: 涓绘敮绠�, 2: 闈炰富鏀锛� - /// </summary> - public YesNoEnum IsMainBranch { get; set; } + /// <summary> + /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ�� + /// </summary> + public string? RedundantField2 { get; set; } - /// <summary> - /// 鏄惁涓轰富鏀 - /// </summary> - public string IsMainBranchDesc - { - get - { - return GetEnumDescriptionUtil.GetEnumDescription(IsMainBranch); - } - } + /// <summary> + /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ�� + /// </summary> + public string? RedundantField3 { get; set; } - /// <summary> - /// 鐢熶骇宸ュ巶 - /// </summary> - public string Factory { get; set; } + /// <summary> + /// 鎺掑簭 + /// </summary> + public int Sort { get; set; } - /// <summary> - /// 璇佷功缂栧彿锛堝锛氬帇鍔涘鍣ㄨ璇侊級 - /// </summary> - public string Certification { get; set; } + /// <summary> + /// 澶囨敞 + /// </summary> + public string? Remark { get; set; } - /// <summary> - /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ�� - /// </summary> - public string RedundantField1 { get; set; } + /// <summary> + /// 鏄惁绂佺敤 + /// </summary> + public bool? IsDisabled { get; set; } - /// <summary> - /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ�� - /// </summary> - public string RedundantField2 { get; set; } + /// <summary> + /// + /// </summary> + public ExtraPropertyDictionary? ExtraProperties { get; set; } - /// <summary> - /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ�� - /// </summary> - public string RedundantField3 { get; set; } - /// <summary> - /// 鎺掑簭 - /// </summary> - public virtual int Sort { get; set; } + /// <summary> + /// + /// </summary> + public string? ConcurrencyStamp { get; set; } - /// <summary> - /// 澶囨敞 - /// </summary> - public virtual string Remark { get; set; } + /// <summary> + /// + /// </summary> + public DateTime CreationTime { get; set; } - /// <summary> - /// 鏄惁绂佺敤 - /// </summary> - public virtual bool? IsDisabled { get; set; } + /// <summary> + /// + /// </summary> + public string? CreatorId { get; set; } - /// <summary> - /// 骞跺彂鎴� - /// </summary> - public string ConcurrencyStamp { get; set; } + /// <summary> + /// + /// </summary> + public DateTime? LastModificationTime { 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)); - } + /// <summary> + /// + /// </summary> + public string? LastModifierId { get; set; } - return exportData; - } -} + /// <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; + } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs" index 4f561db..c806e96 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs" @@ -1,157 +1,138 @@ -using MiniExcelLibs.Attributes; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel; -using CMS.Plugin.HIAWms.Domain.Shared.Enums; - -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial -{ - - /// <summary> - /// WmsMaterial瀵煎嚭妯″瀷 - /// </summary> - public class MaterialExportModel - { - /// <summary> +锘縰sing MiniExcelLibs.Attributes; +using System.ComponentModel.DataAnnotations; +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> - /// <example>MAT-2023-001</example> - [ExcelColumn(Name = "鐗╂枡缂栫爜", Width = 25)] + [ExcelColumn(Name = "鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�", Width = 25)] public string MaterialCode { get; set; } /// <summary> /// 鐗╂枡鍚嶇О /// </summary> - /// <example>304涓嶉攬閽㈢</example> [ExcelColumn(Name = "鐗╂枡鍚嶇О", Width = 25)] public string MaterialName { get; set; } /// <summary> - /// 閲囪喘绫诲瀷 + /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級 /// </summary> - /// <remarks> - /// 0:鏍囧噯閲囪喘 1:绱ф�ラ噰璐� 2:鍗忚閲囪喘 - /// </remarks> - /// <example>0</example> - [ExcelColumn(Name = "閲囪喘绫诲瀷", Width = 25)] + [ExcelColumn(Name = "閲囪喘绫诲瀷锛堟灇涓惧�硷級", Width = 25)] public PurchaseTypeEnum PurchaseType { get; set; } /// <summary> - /// 鐗╂枡绫诲瀷 + /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級 /// </summary> - /// <remarks> - /// 1:鍘熸潗鏂� 2:鍗婃垚鍝� 3:鎴愬搧 - /// </remarks> - /// <example>1</example> - [ExcelColumn(Name = "鐗╂枡绫诲瀷", Width = 25)] + [ExcelColumn(Name = "鐗╂枡绫诲瀷锛堟灇涓惧�硷級", Width = 25)] public MaterialTypeEnum MaterialType { get; set; } /// <summary> - /// 涓昏閲忓崟浣� + /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛� /// </summary> - /// <example>kg</example> - [ExcelColumn(Name = "涓诲崟浣�", Width = 25)] + [ExcelColumn(Name = "涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�", Width = 25)] public string PrimaryUnit { get; set; } /// <summary> - /// 瑙勬牸/鎶�鏈爣鍑� + /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛� /// </summary> - /// <example>GB/T 8163-2018</example> - [ExcelColumn(Name = "瑙勬牸/鏍囧噯", Width = 25)] + [ExcelColumn(Name = "瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�", Width = 25)] public string Standard { get; set; } /// <summary> - /// 澶栧緞锛堝崟浣嶏細姣背锛� + /// 澶栧緞锛堝崟浣嶏細mm锛� /// </summary> - /// <example>50.5</example> - [ExcelColumn(Name = "澶栧緞(mm)", Width = 25)] + [ExcelColumn(Name = "澶栧緞锛堝崟浣嶏細mm锛�", Width = 25)] public decimal OuterDiameter { get; set; } /// <summary> - /// 澹佸帤锛堝崟浣嶏細姣背锛� + /// 澹佸帤锛堝崟浣嶏細mm锛� /// </summary> - /// <example>2.5</example> - [ExcelColumn(Name = "澹佸帤(mm)", Width = 25)] + [ExcelColumn(Name = "澹佸帤锛堝崟浣嶏細mm锛�", Width = 25)] public decimal WallThickness { get; set; } /// <summary> - /// 鏉愯川璇存槑 + /// 鏉愯川锛堝锛�304涓嶉攬閽級 /// </summary> - /// <example>304涓嶉攬閽�</example> - [ExcelColumn(Name = "鏉愯川", Width = 25)] + [ExcelColumn(Name = "鏉愯川锛堝锛�304涓嶉攬閽級", Width = 25)] public string MaterialQuality { get; set; } /// <summary> - /// 闀垮害锛堝崟浣嶏細绫筹級 + /// 闀垮害锛堝崟浣嶏細m锛� /// </summary> - /// <example>6.0</example> - [ExcelColumn(Name = "闀垮害(m)", Width = 25)] + [ExcelColumn(Name = "闀垮害锛堝崟浣嶏細m锛�", Width = 25)] public decimal Length { get; set; } /// <summary> - /// 鏄惁涓绘敮绠℃爣璇� + /// 鏄惁涓轰富鏀 /// </summary> - /// <example>true</example> - [ExcelColumn(Name = "鏄惁涓绘敮绠�", Width = 25)] - [Description("鏄�/鍚�")] + [ExcelColumn(Name = "鏄惁涓轰富鏀", Width = 25)] public YesNoEnum IsMainBranch { get; set; } /// <summary> - /// 鐢熶骇宸ュ巶鍚嶇О + /// 鐢熶骇宸ュ巶 /// </summary> - /// <example>涓婃捣绗竴宸ュ巶</example> [ExcelColumn(Name = "鐢熶骇宸ュ巶", Width = 25)] public string Factory { get; set; } /// <summary> - /// 璁よ瘉璇佷功缂栧彿 + /// 璇佷功缂栧彿 /// </summary> - /// <example>CER-2023-001</example> [ExcelColumn(Name = "璇佷功缂栧彿", Width = 25)] public string Certification { get; set; } /// <summary> - /// 棰勭暀鎵╁睍瀛楁1 + /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ�� /// </summary> - /// <remarks> - /// 鍙敤浜庝复鏃跺瓨鍌ㄤ緵搴斿晢缂栫爜绛夋墿灞曚俊鎭� - /// </remarks> - [ExcelColumn(Name = "鎵╁睍瀛楁1", Width = 25)] + [ExcelColumn(Name = "鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��", Width = 25)] public string RedundantField1 { get; set; } /// <summary> - /// 棰勭暀鎵╁睍瀛楁2 + /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ�� /// </summary> - /// <remarks> - /// 鍙敤浜庝复鏃跺瓨鍌ㄦ壒娆″彿绛夋墿灞曚俊鎭� - /// </remarks> - [ExcelColumn(Name = "鎵╁睍瀛楁2", Width = 25)] + [ExcelColumn(Name = "鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��", Width = 25)] public string RedundantField2 { get; set; } /// <summary> - /// 棰勭暀鎵╁睍瀛楁3 + /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ�� /// </summary> - /// <remarks> - /// 鍙敤浜庝复鏃跺瓨鍌ㄨ嚜瀹氫箟鍒嗙被绛夋墿灞曚俊鎭� - /// </remarks> - [ExcelColumn(Name = "鎵╁睍瀛楁3", Width = 25)] + [ExcelColumn(Name = "鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��", Width = 25)] public string RedundantField3 { get; set; } + + /// <summary> + /// 鎺掑簭 + /// </summary> + [ExcelColumn(Name = "鎺掑簭", Width = 25)] + public int Sort { get; set; } /// <summary> /// 澶囨敞 /// </summary> - [ExcelColumn(Name = "澶囨敞",Width = 25)] + [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)); - } + /// <summary> + /// 鏄惁绂佺敤 + /// </summary> + [ExcelColumn(Name = "鏄惁绂佺敤", Width = 25)] + public bool? IsDisabled { get; set; } - return exportData; - } - } -} - + + + 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; + } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialUpdateDto.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialUpdateDto.cs" index da401a7..4c778ba 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialUpdateDto.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialUpdateDto.cs" @@ -1,14 +1,13 @@ -using Volo.Abp.Domain.Entities; - -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; - -/// <summary> -/// WmsMaterial鏇存柊鍙傛暟瀵硅薄 -/// </summary> -public class WmsMaterialUpdateDto : WmsMaterialCreateOrUpdateDtoBase, IHasConcurrencyStamp -{ - /// <summary> - /// 骞跺彂鎴� - /// </summary> - public string ConcurrencyStamp { get; set; } -} +锘縰sing 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; } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialsImportModel.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialsImportModel.cs" index dfd0fac..71b157f 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialsImportModel.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialsImportModel.cs" @@ -1,33 +1,33 @@ - -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial -{ - /// <summary> - /// WmsMaterials瀵煎叆妯″瀷 - /// </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> - /// WmsMaterial瀵煎叆妯″瀷 - /// </summary> - public class WmsMaterialImportModel : MaterialExportModel - { - /// <summary> - /// 琛屽彿 - /// </summary> - public int RowIndex { get; set; } - } - } -} +锘� +namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial +{ + /// <summary> + /// 鐗╂枡鍩虹淇℃伅琛ㄥ鍏ユā鍨� + /// </summary> + public class WmsMaterialsImportModel + { + private List<WmsMaterialImportModel> _WmsMaterials = new(); + + public List<WmsMaterialImportModel> WmsMaterials + { + get => _WmsMaterials; + set + { + _WmsMaterials = value; + var rowIndex = 2; + _WmsMaterials?.ForEach(x => x.RowIndex = rowIndex++); + } + } + + /// <summary> + /// 鐗╂枡鍩虹淇℃伅琛ㄥ鍏ユā鍨� + /// </summary> + public class WmsMaterialImportModel : WmsMaterialExportModel + { + /// <summary> + /// 琛屽彿 + /// </summary> + public int RowIndex { get; set; } + } + } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs" index b8f77a3..6589194 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs" @@ -1,46 +1,46 @@ -using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; -using Volo.Abp.Application.Services; - -namespace CMS.Plugin.HIAWms.Application.Contracts.Services; - -/// <summary> -/// 鐗╂枡鍩虹淇℃伅搴旂敤鏈嶅姟鎺ュ彛 -/// </summary> -public interface IWmsMaterialAppService : ICrudAppService<WmsMaterialDto, Guid, GetWmsMaterialInput, WmsMaterialCreateDto, WmsMaterialUpdateDto> -{ - /// <summary> - /// 鍏嬮殕鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="ids"></param> - /// <returns></returns> - Task<List<WmsMaterialDto>> 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(WmsMaterialsImportModel input); - - /// <summary> - /// 瀵煎嚭鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInput input); -} +锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; +using Volo.Abp.Application.Services; + +namespace CMS.Plugin.HIAWms.Application.Contracts.Services; + +/// <summary> +/// 鐗╂枡鍩虹淇℃伅琛ㄥ簲鐢ㄦ湇鍔℃帴鍙� +/// </summary> +public interface IWmsMaterialAppService : ICrudAppService<WmsMaterialDto, Guid, GetWmsMaterialInput, WmsMaterialCreateDto, WmsMaterialUpdateDto> +{ + /// <summary> + /// 鍏嬮殕鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="ids"></param> + /// <returns></returns> + Task<List<WmsMaterialDto>> 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(WmsMaterialsImportModel input); + + /// <summary> + /// 瀵煎嚭鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInput input); +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs" index 6e207c7..b0c23eb 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs" @@ -1,432 +1,445 @@ -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.Util; -using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterial; -using CMS.Plugin.HIAWms.Domain.WmsMaterial; -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 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; - } - - /// <summary> - /// 鑾峰彇鎸囧畾鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="id"></param> - /// <returns></returns> - public virtual async Task<WmsMaterialDto> GetAsync(Guid id) - { - return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(await _wmsmaterialRepository.GetAsync(id)); - } - - /// <summary> - /// 鍒嗛〉鑾峰彇鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - 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)); - } - +锘縰sing 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.Util; +using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterial; +using CMS.Plugin.HIAWms.Domain.WmsMaterial; +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 WmsMaterialAppService : CMSPluginAppService, IWmsMaterialAppService +{ + private readonly IWmsMaterialRepository wmsmaterialsRepository; + /// <summary> - /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� + /// Initializes a new instance of the <see cref="WmsMaterialAppService"/> class. /// </summary> - /// <param name="input">杈撳叆鍙傛暟</param> + /// <param name="WmsMaterialRepository">The task job repository.</param> + public WmsMaterialAppService(IWmsMaterialRepository WmsMaterialRepository) + { + wmsmaterialsRepository = WmsMaterialRepository; + } + + /// <summary> + /// 鑾峰彇鎸囧畾鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="id"></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; - } - - /// <summary> - /// 鏂板缓鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - /// <exception cref="UserFriendlyException"></exception> - public virtual async Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input) - { - await CheckCreateOrUpdateDtoAsync(input); - - var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialCode); - if (exist) - { - throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]); - } - - 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); - } - - /// <summary> - /// 鏇存柊鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="id"></param> - /// <param name="input"></param> - /// <returns></returns> - /// <exception cref="UserFriendlyException"></exception> - 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.MaterialCode, wmsmaterial.Id); - if (exist) - { - throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]); - } - - wmsmaterial.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); - input.MapExtraPropertiesTo(wmsmaterial, MappingPropertyDefinitionChecks.None); - - wmsmaterial.MaterialName = input.MaterialName; - wmsmaterial.PurchaseType = input.PurchaseType; - wmsmaterial.MaterialType = input.MaterialType; - 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.Certification = input.Certification; - - await _wmsmaterialRepository.UpdateAsync(wmsmaterial); - - return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(wmsmaterial); - } - - /// <summary> - /// 鍏嬮殕鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="ids"></param> - /// <returns></returns> - 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>(); - } - - /// <summary> - /// 鍒犻櫎鍗曚釜鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="id"></param> - /// <returns></returns> - public virtual Task DeleteAsync(Guid id) - { - return _wmsmaterialRepository.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 _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); - } - - /// <summary> - /// 瀵煎叆鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - /// <exception cref="UserFriendlyException"></exception> - public async Task ImportAsync(WmsMaterialsImportModel 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 importItems = input.WmsMaterials; - - if (importItems != null && importItems.Any()) - { - #region 瀵煎叆鏍¢獙 - - // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� - var duplicateWmsMaterials = importItems.GroupBy(x => x.MaterialCode).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 impItem in importItems) - { - if (impItem.MaterialCode.IsNullOrWhiteSpace() && impItem.MaterialName.IsNullOrWhiteSpace()) - { - continue; - } - - if (impItem.MaterialCode.IsNullOrWhiteSpace()) - { - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsMaterial鍚嶇О涓嶈兘涓虹┖"; - throw new UserFriendlyException(errorMsg); - } - - var oldWmsMaterial = await _wmsmaterialRepository.FindByNameAsync(impItem.MaterialCode); - if (oldWmsMaterial != null) - { - var wmsmaterialUpdateDto = new WmsMaterialUpdateDto - { - MaterialCode = impItem.MaterialCode, - MaterialName = impItem.MaterialName, - PurchaseType = impItem.PurchaseType, - MaterialType = impItem.MaterialType, - PrimaryUnit = impItem.PrimaryUnit, - Standard = impItem.Standard, - OuterDiameter = impItem.OuterDiameter, - WallThickness = impItem.WallThickness, - MaterialQuality = impItem.MaterialQuality, - Length = impItem.Length, - IsMainBranch = impItem.IsMainBranch, - Factory = impItem.Factory, - Certification = impItem.Certification, - Remark = impItem.Remark, - }; - - wmsmaterialUpdateDtos.Add((impItem.RowIndex, oldWmsMaterial.Id, wmsmaterialUpdateDto)); - } - else - { - var wmsmaterialCreateDto = new WmsMaterialCreateDto - { - MaterialCode = impItem.MaterialCode, - MaterialName = impItem.MaterialName, - PurchaseType = impItem.PurchaseType, - MaterialType = impItem.MaterialType, - PrimaryUnit = impItem.PrimaryUnit, - Standard = impItem.Standard, - OuterDiameter = impItem.OuterDiameter, - WallThickness = impItem.WallThickness, - MaterialQuality = impItem.MaterialQuality, - Length = impItem.Length, - IsMainBranch = impItem.IsMainBranch, - Factory = impItem.Factory, - Certification = impItem.Certification, - Remark = impItem.Remark, - }; - - wmsmaterialCreateDtos.Add((impItem.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 = result.Count > 1 ? "WmsMaterial鍒楄〃" : result.Count == 1 ? result[0]?.MaterialCode : "WmsMaterial妯$増"; - return (sheets, fileName); - } - - /// <summary> - /// 鏍¢獙鐗╂枡鍩虹淇℃伅锛屽綋鏂板缓鎴栨洿鏂版椂 - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialCreateOrUpdateDtoBase input) - { - Check.NotNull(input, nameof(input)); - Check.NotNullOrWhiteSpace(input.MaterialCode, "缂栧彿", WmsMaterialConsts.MaxCodeLength); - Check.NotNullOrWhiteSpace(input.MaterialName, "鍚嶇О", WmsMaterialConsts.MaxNameLength); - Check.Length(input.Remark, "澶囨敞", WmsMaterialConsts.MaxRemarkLength); - return Task.CompletedTask; - } -} + public virtual async Task<WmsMaterialDto> GetAsync(Guid id) + { + return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(await wmsmaterialsRepository.GetAsync(id)); + } + + /// <summary> + /// 鍒嗛〉鑾峰彇鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + 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 wmsmaterialsRepository.GetCountAsync(whereConditions); + var list = await wmsmaterialsRepository.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; + } + + /// <summary> + /// 鏂板缓鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public virtual async Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input) + { + await CheckCreateOrUpdateDtoAsync(input); + + var exist = await wmsmaterialsRepository.NameExistAsync(input.MaterialCode); + if (exist) + { + throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]); + } + + var maxSort = await wmsmaterialsRepository.GetMaxSortAsync(); + var sort = input.Sort ?? maxSort; + + var insertObj = ObjectMapper.Map<WmsMaterialCreateDto, WmsMaterial>(input); + insertObj.Sort = sort; + input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); + + await wmsmaterialsRepository.InsertAsync(insertObj); + + if (input.Sort.HasValue && insertObj.Sort != maxSort) + { + await AdjustSortAsync(insertObj.Id, insertObj.Sort); + } + + return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(insertObj); + } + + /// <summary> + /// 鏇存柊鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="id"></param> + /// <param name="input"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public virtual async Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input) + { + await CheckCreateOrUpdateDtoAsync(input); + + var updateObj = await wmsmaterialsRepository.GetAsync(id); + var exist = await wmsmaterialsRepository.NameExistAsync(input.MaterialCode, updateObj.Id); + if (exist) + { + throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]); + } + + updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); + input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); + + updateObj.MaterialCode = input.MaterialCode; + updateObj.MaterialName = input.MaterialName; + updateObj.PurchaseType = input.PurchaseType; + updateObj.MaterialType = input.MaterialType; + updateObj.PrimaryUnit = input.PrimaryUnit; + updateObj.Standard = input.Standard; + updateObj.OuterDiameter = input.OuterDiameter; + updateObj.WallThickness = input.WallThickness; + updateObj.MaterialQuality = input.MaterialQuality; + updateObj.Length = input.Length; + updateObj.IsMainBranch = input.IsMainBranch; + updateObj.Factory = input.Factory; + updateObj.Certification = input.Certification; + updateObj.RedundantField1 = input.RedundantField1; + updateObj.RedundantField2 = input.RedundantField2; + updateObj.RedundantField3 = input.RedundantField3; + updateObj.Remark = input.Remark; + updateObj.IsDisabled = input.IsDisabled; + + + await wmsmaterialsRepository.UpdateAsync(updateObj); + + return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(updateObj); + } + + /// <summary> + /// 鍏嬮殕鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="ids"></param> + /// <returns></returns> + public async Task<List<WmsMaterialDto>> CloneAsync(IEnumerable<Guid> ids) + { + //var wmsmaterialss = new List<WmsMaterial>(); + //if (ids != null) + //{ + // var sort = await wmsmaterialsRepository.GetMaxSortAsync(); + // foreach (var id in ids) + // { + // var WmsMaterial = await wmsmaterialsRepository.FindAsync(id); + // if (WmsMaterial != null) + // { + // var name = WmsMaterial.Name + WmsMaterialConsts.CloneTag; + // var notExist = false; + // while (!notExist) + // { + // var exist = await wmsmaterialsRepository.NameExistAsync(name); + // if (exist || wmsmaterialss.Any(x => x.Name == name)) + // { + // name += WmsMaterialConsts.CloneTag; + // continue; + // } + + // notExist = true; + // } + + // //WmsMaterial = await wmsmaterialsRepository.InsertAsync(WmsMaterial.Clone(GuidGenerator.Create(), name, sort++)); + // wmsmaterialss.Add(WmsMaterial); + // } + // } + //} + + //return ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(wmsmaterialss); + return new List<WmsMaterialDto>(); + } + + /// <summary> + /// 鍒犻櫎鍗曚釜鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + public virtual Task DeleteAsync(Guid id) + { + return wmsmaterialsRepository.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 wmsmaterialsRepository.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 wmsmaterialsRepository.UpdateManyAsync(list); + } + + /// <summary> + /// 瀵煎叆鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public async Task ImportAsync(WmsMaterialsImportModel input) + { + Check.NotNull(input, nameof(input)); + + var wmsmaterialsCreateDtos = new List<(int RowIndex, WmsMaterialCreateDto Item)>(); + var wmsmaterialsUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialUpdateDto Item)>(); + var importItems = input.WmsMaterials; + + if (importItems != null && importItems.Any()) + { + #region 瀵煎叆鏍¢獙 + + // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� + var duplicateWmsMaterials = importItems.GroupBy(x => x.MaterialCode).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 impItem in importItems) + { + if (impItem.MaterialCode.IsNullOrWhiteSpace() && impItem.MaterialName.IsNullOrWhiteSpace()) + { + continue; + } + + if (impItem.MaterialCode.IsNullOrWhiteSpace()) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsMaterial鍚嶇О涓嶈兘涓虹┖"; + throw new UserFriendlyException(errorMsg); + } + + var oldWmsMaterial = await wmsmaterialsRepository.FindByNameAsync(impItem.MaterialCode); + if (oldWmsMaterial != null) + { + var wmsmaterialsUpdateDto = new WmsMaterialUpdateDto + { + MaterialCode = impItem.MaterialCode, + MaterialName = impItem.MaterialName, + PurchaseType = impItem.PurchaseType, + MaterialType = impItem.MaterialType, + PrimaryUnit = impItem.PrimaryUnit, + Standard = impItem.Standard, + OuterDiameter = impItem.OuterDiameter, + WallThickness = impItem.WallThickness, + MaterialQuality = impItem.MaterialQuality, + Length = impItem.Length, + IsMainBranch = impItem.IsMainBranch, + Factory = impItem.Factory, + Certification = impItem.Certification, + Remark = impItem.Remark, + }; + + wmsmaterialsUpdateDtos.Add((impItem.RowIndex, oldWmsMaterial.Id, wmsmaterialsUpdateDto)); + } + else + { + var wmsmaterialsCreateDto = new WmsMaterialCreateDto + { + MaterialCode = impItem.MaterialCode, + MaterialName = impItem.MaterialName, + PurchaseType = impItem.PurchaseType, + MaterialType = impItem.MaterialType, + PrimaryUnit = impItem.PrimaryUnit, + Standard = impItem.Standard, + OuterDiameter = impItem.OuterDiameter, + WallThickness = impItem.WallThickness, + MaterialQuality = impItem.MaterialQuality, + Length = impItem.Length, + IsMainBranch = impItem.IsMainBranch, + Factory = impItem.Factory, + Certification = impItem.Certification, + Remark = impItem.Remark, + }; + + wmsmaterialsCreateDtos.Add((impItem.RowIndex, wmsmaterialsCreateDto)); + } + } + } + + // 鏂板 + foreach (var wmsmaterialsDto in wmsmaterialsCreateDtos) + { + try + { + await CreateAsync(wmsmaterialsDto.Item); + } + catch (Exception e) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterialsDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; + throw new UserFriendlyException(errorMsg); + } + } + + // 鏇存柊 + foreach (var wmsmaterialsDto in wmsmaterialsUpdateDtos) + { + try + { + await UpdateAsync(wmsmaterialsDto.Id, wmsmaterialsDto.Item); + } + catch (Exception e) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterialsDto.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 wmsmaterialsRepository.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 = result.Count > 1 ? "WmsMaterial鍒楄〃" : result.Count == 1 ? result[0]?.MaterialCode : "WmsMaterial妯$増"; + return (sheets, fileName); + } + + /// <summary> + /// 鏍¢獙鐗╂枡鍩虹淇℃伅琛紝褰撴柊寤烘垨鏇存柊鏃� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialCreateOrUpdateDtoBase input) + { + Check.NotNull(input, nameof(input)); + Check.NotNullOrWhiteSpace(input.MaterialCode, "鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�", 64); + Check.NotNullOrWhiteSpace(input.MaterialName, "鐗╂枡鍚嶇О", 128); + Check.NotNull(input.PurchaseType, "閲囪喘绫诲瀷锛堟灇涓惧�硷級"); + Check.NotNull(input.MaterialType, "鐗╂枡绫诲瀷锛堟灇涓惧�硷級"); + Check.NotNull(input.OuterDiameter, "澶栧緞锛堝崟浣嶏細mm锛�"); + Check.NotNull(input.WallThickness, "澹佸帤锛堝崟浣嶏細mm锛�"); + Check.NotNull(input.Length, "闀垮害锛堝崟浣嶏細m锛�"); + Check.NotNull(input.IsMainBranch, "鏄惁涓轰富鏀"); + + return Task.CompletedTask; + } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs" index b5fb167..7d1b279 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs" @@ -1,53 +1,53 @@ -using CmsQueryExtensions.Extension; -using System.Linq.Expressions; -using Volo.Abp.Domain.Repositories; - -namespace CMS.Plugin.HIAWms.Domain.WmsMaterial; - -/// <summary> -/// 鐗╂枡鍩虹鏁版嵁浠撳偍 -/// </summary> -public interface IWmsMaterialRepository : IBasicRepository<WmsMaterial, Guid> -{ - /// <summary> - /// 鎸夌収鍚嶇О鏌ユ壘鐗╂枡鍩虹鏁版嵁 - /// </summary> - /// <param name="name"></param> - /// <param name="cancellationToken"></param> - /// <returns></returns> - Task<WmsMaterial> FindByNameAsync(string name, CancellationToken cancellationToken = default); - - /// <summary> - /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鐗╂枡鍩虹鏁版嵁 - /// </summary> - /// <param name="name"></param> - /// <param name="id"></param> - /// <returns></returns> - Task<bool> NameExistAsync(string name, Guid? id = null); - - /// <summary> - /// 鑾峰彇鏈�澶ф帓搴忕墿鏂欏熀纭�鏁版嵁 - /// </summary> - /// <returns></returns> - Task<int> GetMaxSortAsync(); - - /// <summary> - /// 鑾峰彇鍒嗛〉鍒楄〃鐗╂枡鍩虹鏁版嵁 - /// </summary> - /// <param name="whereConditions"></param> - /// <param name="sorting"></param> - /// <param name="maxResultCount"></param> - /// <param name="skipCount"></param> - /// <param name="includeDetails"></param> - /// <param name="cancellationToken"></param> - /// <returns></returns> - Task<List<WmsMaterial>> GetListAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default); - - /// <summary> - /// 鑾峰彇鎬绘暟鐗╂枡鍩虹鏁版嵁 - /// </summary> - /// <param name="whereConditions"></param> - /// <param name="cancellationToken"></param> - /// <returns></returns> - Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, CancellationToken cancellationToken = default); -} +锘縰sing CmsQueryExtensions.Extension; +using System.Linq.Expressions; +using Volo.Abp.Domain.Repositories; + +namespace CMS.Plugin.HIAWms.Domain.WmsMaterial; + +/// <summary> +/// 鐗╂枡鍩虹淇℃伅琛ㄤ粨鍌� +/// </summary> +public interface IWmsMaterialRepository : IBasicRepository<WmsMaterial, Guid> +{ + /// <summary> + /// 鎸夌収鍚嶇О鏌ユ壘鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="name"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<WmsMaterial> FindByNameAsync(string name, CancellationToken cancellationToken = default); + + /// <summary> + /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="name"></param> + /// <param name="id"></param> + /// <returns></returns> + Task<bool> NameExistAsync(string name, Guid? id = null); + + /// <summary> + /// 鑾峰彇鏈�澶ф帓搴忕墿鏂欏熀纭�淇℃伅琛� + /// </summary> + /// <returns></returns> + Task<int> GetMaxSortAsync(); + + /// <summary> + /// 鑾峰彇鍒嗛〉鍒楄〃鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="sorting"></param> + /// <param name="maxResultCount"></param> + /// <param name="skipCount"></param> + /// <param name="includeDetails"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<List<WmsMaterial>> GetListAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default); + + /// <summary> + /// 鑾峰彇鎬绘暟鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, CancellationToken cancellationToken = default); +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs" index bd04e5c..ee47e68 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs" @@ -1,113 +1,113 @@ -using CMS.Plugin.HIAWms.Domain.WmsMaterial; -using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; -using CmsQueryExtensions.Extension; -using Microsoft.EntityFrameworkCore; -using System.Linq.Dynamic.Core; -using System.Linq.Expressions; -using Volo.Abp.Domain.Repositories.EntityFrameworkCore; -using Volo.Abp.EntityFrameworkCore; - - -namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; - -/// <summary> -/// 物料基础数据仓储实现 -/// </summary> -public class EfCoreWmsMaterialRepository : EfCoreRepository<ICMSPluginDbContext, WmsMaterial, Guid>, IWmsMaterialRepository -{ - /// <summary> - /// Initializes a new instance of the <see cref="EfCoreWmsMaterialRepository"/> class. - /// </summary> - /// <param name="dbContextProvider">The database context provider.</param> - public EfCoreWmsMaterialRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) - : base(dbContextProvider) - { - } - - /// <summary> - /// 按照名称查找物料基础数据 - /// </summary> - /// <param name="name"></param> - /// <param name="cancellationToken"></param> - /// <returns></returns> - public virtual async Task<WmsMaterial> FindByNameAsync(string name, CancellationToken cancellationToken = default) - { - return await (await GetDbSetAsync()) - .IncludeDetails() - .Where(x => !x.IsDeleted) - .OrderBy(t => t.Sort) - .FirstOrDefaultAsync(t => t.MaterialCode == name, GetCancellationToken(cancellationToken)); - } - - /// <summary> - /// 验证名称是否存在物料基础数据 - /// </summary> - /// <param name="materialCode"></param> - /// <param name="id"></param> - /// <returns></returns> - public async Task<bool> NameExistAsync(string materialCode, Guid? id = null) - { - return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialCode == materialCode); - } - - /// <summary> - /// 获取最大排序物料基础数据 - /// </summary> - /// <returns></returns> - public async Task<int> GetMaxSortAsync() - { - var hasAny = await (await GetQueryableAsync()) - .Where(x => !x.IsDeleted).AnyAsync(); - if (!hasAny) - { - return 1; - } - - var sort = await (await GetQueryableAsync()) - .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); - return sort + 1; - } - - /// <summary> - /// 获取分页列表物料基础数据 - /// </summary> - /// <param name="whereConditions"></param> - /// <param name="sorting"></param> - /// <param name="maxResultCount"></param> - /// <param name="skipCount"></param> - /// <param name="includeDetails"></param> - /// <param name="cancellationToken"></param> - /// <returns></returns> - public async Task<List<WmsMaterial>> GetListAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default) - { - return await (await GetDbSetAsync()) - .IncludeDetails(includeDetails) - .WhereIf(whereConditions != null, whereConditions.data) - .Where(x => !x.IsDeleted) - .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsMaterial.Sort) : sorting) - .PageBy(skipCount, maxResultCount) - .ToListAsync(GetCancellationToken(cancellationToken)); - } - - /// <summary> - /// 获取总数物料基础数据 - /// </summary> - /// <param name="whereConditions"></param> - /// <param name="cancellationToken"></param> - /// <returns></returns> - public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, CancellationToken cancellationToken = default) - { - return await (await GetQueryableAsync()) - .WhereIf(whereConditions != null, whereConditions.data) - .Where(x => !x.IsDeleted) - .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); - } - - - /// <inheritdoc /> - public override async Task<IQueryable<WmsMaterial>> WithDetailsAsync() - { - return (await GetQueryableAsync()) - .Where(x => !x.IsDeleted).IncludeDetails(); - } -} +锘縰sing CMS.Plugin.HIAWms.Domain.WmsMaterial; +using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; +using CmsQueryExtensions.Extension; +using Microsoft.EntityFrameworkCore; +using System.Linq.Dynamic.Core; +using System.Linq.Expressions; +using Volo.Abp.Domain.Repositories.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore; + + +namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; + +/// <summary> +/// 鐗╂枡鍩虹淇℃伅琛ㄤ粨鍌ㄥ疄鐜� +/// </summary> +public class EfCoreWmsMaterialRepository : EfCoreRepository<ICMSPluginDbContext, WmsMaterial, Guid>, IWmsMaterialRepository +{ + /// <summary> + /// Initializes a new instance of the <see cref="EfCoreWmsMaterialRepository"/> class. + /// </summary> + /// <param name="dbContextProvider">The database context provider.</param> + public EfCoreWmsMaterialRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) + : base(dbContextProvider) + { + } + + /// <summary> + /// 鎸夌収鍚嶇О鏌ユ壘鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="name"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public virtual async Task<WmsMaterial> FindByNameAsync(string name, CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .IncludeDetails() + .Where(x => !x.IsDeleted) + .OrderBy(t => t.Sort) + .FirstOrDefaultAsync(t => t.MaterialCode == name, GetCancellationToken(cancellationToken)); + } + + /// <summary> + /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="materialCode"></param> + /// <param name="id"></param> + /// <returns></returns> + public async Task<bool> NameExistAsync(string materialCode, Guid? id = null) + { + return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialCode == materialCode); + } + + /// <summary> + /// 鑾峰彇鏈�澶ф帓搴忕墿鏂欏熀纭�淇℃伅琛� + /// </summary> + /// <returns></returns> + public async Task<int> GetMaxSortAsync() + { + var hasAny = await (await GetQueryableAsync()) + .Where(x => !x.IsDeleted).AnyAsync(); + if (!hasAny) + { + return 1; + } + + var sort = await (await GetQueryableAsync()) + .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); + return sort + 1; + } + + /// <summary> + /// 鑾峰彇鍒嗛〉鍒楄〃鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="sorting"></param> + /// <param name="maxResultCount"></param> + /// <param name="skipCount"></param> + /// <param name="includeDetails"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<WmsMaterial>> GetListAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .IncludeDetails(includeDetails) + .WhereIf(whereConditions != null, whereConditions.data) + .Where(x => !x.IsDeleted) + .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsMaterial.Sort) : sorting) + .PageBy(skipCount, maxResultCount) + .ToListAsync(GetCancellationToken(cancellationToken)); + } + + /// <summary> + /// 鑾峰彇鎬绘暟鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, CancellationToken cancellationToken = default) + { + return await (await GetQueryableAsync()) + .WhereIf(whereConditions != null, whereConditions.data) + .Where(x => !x.IsDeleted) + .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); + } + + + /// <inheritdoc /> + public override async Task<IQueryable<WmsMaterial>> WithDetailsAsync() + { + return (await GetQueryableAsync()) + .Where(x => !x.IsDeleted).IncludeDetails(); + } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs" index 6a04eef..0002de3 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs" @@ -1,188 +1,188 @@ -using Ao.Lang; -using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; -using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; -using CMS.Plugin.HIAWms.Application.Contracts.Services; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using MiniExcelLibs; -using System.Reflection; -using Volo.Abp; -using Volo.Abp.Application.Dtos; - -namespace CMS.Plugin.HIAWms.Controller -{ - /// <summary> - /// 鐗╂枡鍩虹淇℃伅鏈嶅姟 - /// </summary> - [ApiController] - [TypeFilter(typeof(CMSLanguageFilter))] - [TypeFilter(typeof(CMSUowActionFilter))] - [TypeFilter(typeof(CMSAuditActionFilter))] - [TypeFilter(typeof(CMSExceptionFilter))] - [Route("api/v{version:apiVersion}/HIAWms/[controller]")] - public class WmsMaterialController : ControllerBase - { - private readonly IWmsMaterialAppService _wmsmaterialAppService; - - /// <summary> - /// Initializes a new instance of the <see cref="WmsMaterialController"/> class. - /// </summary> - /// <param name="wmsmaterialAppService">The wmsmaterial application service.</param> - public WmsMaterialController(IWmsMaterialAppService wmsmaterialAppService) - { - _wmsmaterialAppService = wmsmaterialAppService; - } - - /// <summary> - /// 鑾峰彇鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="id">鏍囪瘑绗�.</param> - /// <returns></returns> - [HttpGet] - [Route("{id}")] - public virtual Task<WmsMaterialDto> GetAsync(Guid id) - { - return _wmsmaterialAppService.GetAsync(id); - } - - /// <summary> - /// 鍒嗛〉鑾峰彇鐗╂枡鍩虹淇℃伅鐨勫垪琛�. - /// </summary> - /// <param name="input">杈撳叆.</param> - /// <returns></returns> - [HttpGet] - [Route("Page")] - public virtual Task<PagedResultDto<WmsMaterialDto>> GetListAsync([FromQuery] GetWmsMaterialInput input) - { - return _wmsmaterialAppService.GetListAsync(input); - } - - /// <summary> - /// 鍒涘缓鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="input">杈撳叆.</param> - /// <returns></returns> - //[Authorize] - [HttpPost] - public virtual Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input) - { - return _wmsmaterialAppService.CreateAsync(input); - } - - /// <summary> - /// 鏇存柊鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="id">鏍囪瘑绗�.</param> - /// <param name="input">杈撳叆.</param> - /// <returns></returns> - //[Authorize] - [HttpPut] - [Route("{id}")] - public virtual Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input) - { - return _wmsmaterialAppService.UpdateAsync(id, input); - } - - /// <summary> - /// 鍏嬮殕鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="ids">Id闆嗗悎.</param> - /// <returns></returns> - //[Authorize] - [HttpPost] - [Route("Clone")] - public virtual Task<List<WmsMaterialDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) - { - return _wmsmaterialAppService.CloneAsync(ids); - } - - /// <summary> - /// 鍒犻櫎鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="id">鏍囪瘑绗�.</param> - /// <returns></returns> - //[Authorize] - [HttpDelete] - [Route("{id}")] - public virtual Task DeleteAsync(Guid id) - { - return _wmsmaterialAppService.DeleteAsync(id); - } - - /// <summary> - /// 鎵归噺鍒犻櫎鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="ids">The ids.</param> - /// <returns></returns> - //[Authorize] - [HttpDelete] - public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) - { - return _wmsmaterialAppService.DeleteManyAsync(ids); - } - - /// <summary> - /// 璋冩暣鎺掑簭鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <param name="id">鏍囪瘑绗�.</param> - /// <returns></returns> - [HttpPut] - [Route("{id}/AdjustSort/{sort}")] - public virtual Task AdjustSortAsync(Guid id, int sort) - { - return _wmsmaterialAppService.AdjustSortAsync(id, sort); - } - - /// <summary> - /// 瀵煎叆鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <returns></returns> - [Authorize] - [HttpPost] - [Route("Import")] - public virtual async Task<IActionResult> ImportAsync(IFormFile file) - { - using var stream = new MemoryStream(); - await file.CopyToAsync(stream); - stream.Seek(0L, SeekOrigin.Begin); - - var sheetNames = stream.GetSheetNames(); - var wmsmaterialRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsMaterialsImportModel.WmsMaterialImportModel>(stream, sheetName: "閰嶇疆").ToList() : new(); - - if (!wmsmaterialRows.Any()) - { - throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸"); - } - - await _wmsmaterialAppService.ImportAsync(new WmsMaterialsImportModel - { - WmsMaterials = wmsmaterialRows, - }); - - return Ok(); - } - - /// <summary> - /// 瀵煎嚭鐗╂枡鍩虹淇℃伅 - /// </summary> - /// <returns></returns> - [HttpGet] - [Route("Export")] - public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsMaterialInput input) - { - input.MaxResultCount = int.MaxValue; - var exportData = await _wmsmaterialAppService.ExportAsync(input); - var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsMaterial瀵煎嚭妯℃澘.xlsx"); - if (!System.IO.File.Exists(templatePath)) - { - templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsMaterial瀵煎嚭妯℃澘.xlsx"); - } - - var memoryStream = new MemoryStream(); - await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); - memoryStream.Seek(0L, SeekOrigin.Begin); - return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; - } - } -} +锘縰sing Ao.Lang; +using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; +using CMS.Plugin.HIAWms.Application.Contracts.Services; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using MiniExcelLibs; +using System.Reflection; +using Volo.Abp; +using Volo.Abp.Application.Dtos; + +namespace CMS.Plugin.HIAWms.Controller +{ + /// <summary> + /// 鐗╂枡鍩虹淇℃伅琛ㄦ湇鍔� + /// </summary> + [ApiController] + [TypeFilter(typeof(CMSLanguageFilter))] + [TypeFilter(typeof(CMSUowActionFilter))] + [TypeFilter(typeof(CMSAuditActionFilter))] + [TypeFilter(typeof(CMSExceptionFilter))] + [Route("api/v{version:apiVersion}/HIAWms/[controller]")] + public class WmsMaterialController : ControllerBase + { + private readonly IWmsMaterialAppService _wmsmaterialsAppService; + + /// <summary> + /// Initializes a new instance of the <see cref="WmsMaterialController"/> class. + /// </summary> + /// <param name="wmsmaterialsAppService">The wmsmaterials application service.</param> + public WmsMaterialController(IWmsMaterialAppService wmsmaterialsAppService) + { + _wmsmaterialsAppService = wmsmaterialsAppService; + } + + /// <summary> + /// 鑾峰彇鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="id">鏍囪瘑绗�.</param> + /// <returns></returns> + [HttpGet] + [Route("{id}")] + public virtual Task<WmsMaterialDto> GetAsync(Guid id) + { + return _wmsmaterialsAppService.GetAsync(id); + } + + /// <summary> + /// 鍒嗛〉鑾峰彇鐗╂枡鍩虹淇℃伅琛ㄧ殑鍒楄〃. + /// </summary> + /// <param name="input">杈撳叆.</param> + /// <returns></returns> + [HttpGet] + [Route("Page")] + public virtual Task<PagedResultDto<WmsMaterialDto>> GetListAsync([FromQuery] GetWmsMaterialInput input) + { + return _wmsmaterialsAppService.GetListAsync(input); + } + + /// <summary> + /// 鍒涘缓鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="input">杈撳叆.</param> + /// <returns></returns> + //[Authorize] + [HttpPost] + public virtual Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input) + { + return _wmsmaterialsAppService.CreateAsync(input); + } + + /// <summary> + /// 鏇存柊鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="id">鏍囪瘑绗�.</param> + /// <param name="input">杈撳叆.</param> + /// <returns></returns> + //[Authorize] + [HttpPut] + [Route("{id}")] + public virtual Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input) + { + return _wmsmaterialsAppService.UpdateAsync(id, input); + } + + /// <summary> + /// 鍏嬮殕鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="ids">Id闆嗗悎.</param> + /// <returns></returns> + //[Authorize] + [HttpPost] + [Route("Clone")] + public virtual Task<List<WmsMaterialDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) + { + return _wmsmaterialsAppService.CloneAsync(ids); + } + + /// <summary> + /// 鍒犻櫎鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="id">鏍囪瘑绗�.</param> + /// <returns></returns> + //[Authorize] + [HttpDelete] + [Route("{id}")] + public virtual Task DeleteAsync(Guid id) + { + return _wmsmaterialsAppService.DeleteAsync(id); + } + + /// <summary> + /// 鎵归噺鍒犻櫎鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="ids">The ids.</param> + /// <returns></returns> + //[Authorize] + [HttpDelete] + public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) + { + return _wmsmaterialsAppService.DeleteManyAsync(ids); + } + + /// <summary> + /// 璋冩暣鎺掑簭鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="id">鏍囪瘑绗�.</param> + /// <returns></returns> + [HttpPut] + [Route("{id}/AdjustSort/{sort}")] + public virtual Task AdjustSortAsync(Guid id, int sort) + { + return _wmsmaterialsAppService.AdjustSortAsync(id, sort); + } + + /// <summary> + /// 瀵煎叆鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <returns></returns> + [Authorize] + [HttpPost] + [Route("Import")] + public virtual async Task<IActionResult> ImportAsync(IFormFile file) + { + using var stream = new MemoryStream(); + await file.CopyToAsync(stream); + stream.Seek(0L, SeekOrigin.Begin); + + var sheetNames = stream.GetSheetNames(); + var wmsmaterialsRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsMaterialsImportModel.WmsMaterialImportModel>(stream, sheetName: "閰嶇疆").ToList() : new(); + + if (!wmsmaterialsRows.Any()) + { + throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸"); + } + + await _wmsmaterialsAppService.ImportAsync(new WmsMaterialsImportModel + { + WmsMaterials = wmsmaterialsRows, + }); + + return Ok(); + } + + /// <summary> + /// 瀵煎嚭鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <returns></returns> + [HttpGet] + [Route("Export")] + public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsMaterialInput input) + { + input.MaxResultCount = int.MaxValue; + var exportData = await _wmsmaterialsAppService.ExportAsync(input); + var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsMaterial瀵煎嚭妯℃澘.xlsx"); + if (!System.IO.File.Exists(templatePath)) + { + templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsMaterial瀵煎嚭妯℃澘.xlsx"); + } + + var memoryStream = new MemoryStream(); + await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); + memoryStream.Seek(0L, SeekOrigin.Begin); + return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; + } + } +} -- Gitblit v1.9.3