public async Task AuditMaterialInfo(CreateOrUpdateMaterialInfoInput input)
        {
            Debug.Assert(input.MaterialInfo.Id != null, "input.MaterialInfo.Id should be set.");

            var materialInfo = input.MaterialInfo.MapTo<BaseMaterialInfo>();
            materialInfo.AuditUserId = AbpSession.UserId;
            materialInfo.AuditUserName = GetCurrentUser().RealName;
            materialInfo.AuditTime = Clock.Now;
            await _materialInfoRepository.UpdateAsync(materialInfo);
            cacheHandler.Remove(CacheCategoryMaterialInfo, "GetMaterialInfoList");
        }
        protected async virtual Task UpdateMaterialInfoAsync(CreateOrUpdateMaterialInfoInput input)
        {
            Debug.Assert(input.MaterialInfo.Id != null, "input.MaterialInfo.Id should be set.");

            var materialInfo = input.MaterialInfo.MapTo<BaseMaterialInfo>();
            materialInfo.LastModifierUserId = AbpSession.UserId;
            materialInfo.LastModifierUserName = GetCurrentUser().RealName;
            materialInfo.LastModificationTime = Clock.Now;
            await _materialInfoRepository.UpdateAsync(materialInfo);
            cacheHandler.Remove(CacheCategoryMaterialInfo, "GetMaterialInfoList");
        }
        protected async virtual Task CreateMaterialInfoAsync(CreateOrUpdateMaterialInfoInput input)
        {
            var materialInfo = input.MaterialInfo.MapTo<BaseMaterialInfo>();
            if (materialInfo.InfoCode.Length == 12)
            {
                materialInfo.Id = GuidHelper.NewGuid();
                materialInfo.OrgId = AbpSession.OrgId;
                materialInfo.SortCode = int.Parse(materialInfo.InfoCode.Substring(6));
                materialInfo.IsSubmit = 0;
                materialInfo.IsAudit = 0;
                //materialInfo.OrgFullName = "";
                materialInfo.CreatorUserId = AbpSession.UserId;
                materialInfo.CreatorUserName = GetCurrentUser().RealName;
                materialInfo.CreationTime = Clock.Now;
                await _materialInfoRepository.InsertAsync(materialInfo);
                cacheHandler.Remove(CacheCategoryMaterialInfo, "GetMaterialInfoList");
            }
            else
            {
                Debug.Assert(false, "材料编码不够12位.");
            }

        }
 /// <summary>
 /// 添加修改实体
 /// </summary>
 /// <param name="input"></param>
 /// <returns></returns>
 public async Task CreateOrUpdateMaterialInfo(CreateOrUpdateMaterialInfoInput input)
 {
     if (input.MaterialInfo.Id != null && input.MaterialInfo.Id != Guid.Empty)
     {
         await UpdateMaterialInfoAsync(input);
     }
     else
     {
         await CreateMaterialInfoAsync(input);
     }
 }