CommonDLL/CmsQueryExtensions.dllBinary files differ
Weben_CMSרÓôúÂëÉú³ÉÆ÷/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; using 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ãmãä¸ªï¼ /// </summary> public string PrimaryUnit { get; set; } /// <summary> /// ç©æç±»åï¼æä¸¾å¼ï¼-æ¥è¯¢å ³ç³»è¿ç®ç¬¦ /// </summary> public SearchFilterModeEnum MaterialType_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; /// <summary> /// 主åä½ï¼å¦ï¼kgãmã个ï¼-æ¥è¯¢å ³ç³»è¿ç®ç¬¦ /// </summary> public SearchFilterModeEnum PrimaryUnit_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; /// <summary> /// 主åä½ï¼å¦ï¼kgãmãä¸ªï¼ /// </summary> public string PrimaryUnit { get; set; } /// <summary> /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ /// </summary> public string Standard { get; set; } /// <summary> /// 主åä½ï¼å¦ï¼kgãmã个ï¼-æ¥è¯¢å ³ç³»è¿ç®ç¬¦ /// </summary> public SearchFilterModeEnum PrimaryUnit_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; /// <summary> /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼-æ¥è¯¢å ³ç³»è¿ç®ç¬¦ /// </summary> public SearchFilterModeEnum Standard_FilterMode { get; set; }= SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; /// <summary> /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ /// </summary> public string Standard { get; set; } /// <summary> /// å¤å¾ï¼åä½ï¼mmï¼ /// </summary> public decimal? OuterDiameter { get; set; } /// <summary> /// è§æ ¼/æ åï¼å¦ï¼GB/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; } } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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; } namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; /// <summary> /// ç©æåºç¡ä¿¡æ¯è¡¨åå»ºåæ°å¯¹è±¡ /// </summary> public class WmsMaterialCreateDto : WmsMaterialCreateOrUpdateDtoBase { /// <summary> /// æåº /// </summary> public virtual int? Sort { get; set; } /// <summary> /// æ¯å¦ç¦ç¨ /// </summary> public bool? IsDisabled { get; set; } = false; } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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; using 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ãmãä¸ªï¼ /// </summary> public string? PrimaryUnit { get; set; } /// <summary> /// ç©æç±»åï¼æä¸¾å¼ï¼ /// </summary> public MaterialTypeEnum MaterialType { get; set; } /// <summary> /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ /// </summary> public string? Standard { get; set; } /// <summary> /// 主åä½ï¼å¦ï¼kgãmãä¸ªï¼ /// </summary> public string PrimaryUnit { get; set; } /// <summary> /// å¤å¾ï¼åä½ï¼mmï¼ /// </summary> public decimal OuterDiameter { get; set; } /// <summary> /// è§æ ¼/æ åï¼å¦ï¼GB/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> /// æ¯å¦ä¸ºä¸»æ¯ç®¡ï¼true: 主æ¯ç®¡, 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) { } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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; using 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ãmãä¸ªï¼ /// </summary> public string? PrimaryUnit { get; set; } /// <summary> /// éè´ç±»åï¼æä¸¾å¼ï¼ /// </summary> public string PurchaseTypeDesc { get { return GetEnumDescriptionUtil.GetEnumDescription(PurchaseType); } } /// <summary> /// è§æ ¼/æ åï¼å¦ï¼GB/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ãmãä¸ªï¼ /// </summary> public string PrimaryUnit { get; set; } /// <summary> /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼ /// </summary> public string? MaterialQuality { get; set; } /// <summary> /// è§æ ¼/æ åï¼å¦ï¼GB/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; } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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> 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> /// ç©æåºç¡ä¿¡æ¯è¡¨å¯¼åºæ¨¡å /// </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ãmãä¸ªï¼ /// </summary> /// <example>kg</example> [ExcelColumn(Name = "主åä½", Width = 25)] [ExcelColumn(Name = "主åä½ï¼å¦ï¼kgãmã个ï¼", Width = 25)] public string PrimaryUnit { get; set; } /// <summary> /// è§æ ¼/ææ¯æ å /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ /// </summary> /// <example>GB/T 8163-2018</example> [ExcelColumn(Name = "è§æ ¼/æ å", Width = 25)] [ExcelColumn(Name = "è§æ ¼/æ åï¼å¦ï¼GB/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; } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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; } } using Volo.Abp.Domain.Entities; namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; /// <summary> /// ç©æåºç¡ä¿¡æ¯è¡¨æ´æ°åæ°å¯¹è±¡ /// </summary> public class WmsMaterialUpdateDto : WmsMaterialCreateOrUpdateDtoBase, IHasConcurrencyStamp { /// <summary> /// å¹¶åæ³ /// </summary> public string ConcurrencyStamp { get; set; } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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; } } } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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); } 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); } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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)); } 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 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; } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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); } 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); } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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(); } } 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(); } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/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" }; } } } 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 _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" }; } } }