From 7bf91c71dca50d1e67bf203822ed0d36054509fb Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 13 5月 2025 16:37:20 +0800
Subject: [PATCH] 使用 脚本

---
 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs |  400 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 233 insertions(+), 167 deletions(-)

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..3d9ab58 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,8 +1,7 @@
 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 CmsQueryExtensions;
 using CMS.Plugin.HIAWms.Domain.WmsMaterial;
 using CmsQueryExtensions.Extension;
 using System.Linq.Expressions;
@@ -11,40 +10,42 @@
 using Volo.Abp.Data;
 using Volo.Abp.ObjectExtending;
 using Volo.Abp.ObjectMapping;
+using CmsQueryExtensions.Entitys;
+
 
 namespace CMS.Plugin.HIAWms.Application.Implements;
 
-/// <summary>
-/// 鐗╂枡鍩虹淇℃伅搴旂敤鏈嶅姟
-/// </summary>
+/// <summary> 
+/// 鐗╂枡鍩虹淇℃伅琛ㄥ簲鐢ㄦ湇鍔� 
+/// </summary> 
 public class WmsMaterialAppService : CMSPluginAppService, IWmsMaterialAppService
 {
-    private readonly IWmsMaterialRepository _wmsmaterialRepository;
+    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)
+    /// <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;
+        wmsMaterialRepository = _WmsMaterialRepository;
     }
 
-    /// <summary>
-    /// 鑾峰彇鎸囧畾鐗╂枡鍩虹淇℃伅
-    /// </summary>
-    /// <param name="id"></param>
-    /// <returns></returns>
+    /// <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));
+        return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(await wmsMaterialRepository.GetAsync(id));
     }
 
-    /// <summary>
-    /// 鍒嗛〉鑾峰彇鐗╂枡鍩虹淇℃伅
-    /// </summary>
-    /// <param name="input"></param>
-    /// <returns></returns>
+    /// <summary> 
+    /// 鍒嗛〉鑾峰彇鐗╂枡鍩虹淇℃伅琛� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
     public virtual async Task<PagedResultDto<WmsMaterialDto>> GetListAsync(GetWmsMaterialInput input)
     {
         Check.NotNull(input, nameof(input));
@@ -54,169 +55,184 @@
             input.Sorting = nameof(WmsMaterial.Sort);
         }
 
-        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� 
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
 
-        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
         var whereConditions = DynamicGetQueryParams(input);
 
         #endregion
 
-        var count = await _wmsmaterialRepository.GetCountAsync(whereConditions);
-        var list = await _wmsmaterialRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount);
+        var count = await wmsMaterialRepository.GetCountAsync(whereConditions);
+        var list = await wmsMaterialRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount);
 
         return new PagedResultDto<WmsMaterialDto>(count, ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(list));
     }
 
-    /// <summary> 
-    /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� 
-    /// </summary> 
-    /// <param name="input">杈撳叆鍙傛暟</param> 
-    /// <returns></returns> 
+    /// <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
+        // 浣跨敤 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>
+
+
+    /// <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);
+        var exist = await wmsMaterialRepository.NameExistAsync(input.MaterialCode);
         if (exist)
         {
             throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]);
         }
 
-        var maxSort = await _wmsmaterialRepository.GetMaxSortAsync();
+        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);
+        var insertObj = ObjectMapper.Map<WmsMaterialCreateDto, WmsMaterial>(input);
+        insertObj.Sort = sort;
+        input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None);
 
-        await _wmsmaterialRepository.InsertAsync(wmsmaterial);
+        insertObj.CreatorName = input.CreatorName;//鍒涘缓浜�
+        await wmsMaterialRepository.InsertAsync(insertObj);
 
-        if (input.Sort.HasValue && wmsmaterial.Sort != maxSort)
-        {
-            await AdjustSortAsync(wmsmaterial.Id, wmsmaterial.Sort);
-        }
+        //if (input.Sort.HasValue && insertObj.Sort != maxSort) 
+        //{ 
+        //    await AdjustSortAsync(insertObj.Id, insertObj.Sort); 
+        //} 
 
-        return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(wmsmaterial);
+        return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(insertObj);
     }
 
-    /// <summary>
-    /// 鏇存柊鐗╂枡鍩虹淇℃伅
-    /// </summary>
-    /// <param name="id"></param>
-    /// <param name="input"></param>
-    /// <returns></returns>
-    /// <exception cref="UserFriendlyException"></exception>
+    /// <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);
+        var updateObj = await wmsMaterialRepository.GetAsync(id);
+        var exist = await wmsMaterialRepository.NameExistAsync(input.MaterialCode, updateObj.Id);
         if (exist)
         {
             throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]);
         }
 
-        wmsmaterial.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
-        input.MapExtraPropertiesTo(wmsmaterial, MappingPropertyDefinitionChecks.None);
+        updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
+        input.MapExtraPropertiesTo(updateObj, 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;
+        updateObj.MaterialCode = input.MaterialCode;
+        updateObj.IsValid = input.IsValid;
+        updateObj.IsSelfMade = input.IsSelfMade;
+        updateObj.Num = input.Num;
+        updateObj.SelfNum = input.SelfNum;
+        updateObj.MaterialName = input.MaterialName;
+        updateObj.NullLength = input.NullLength;
+        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;
 
-        await _wmsmaterialRepository.UpdateAsync(wmsmaterial);
+        updateObj.LastModifierName = input.LastModifierName;//淇敼浜�
 
-        return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(wmsmaterial);
+        await wmsMaterialRepository.UpdateAsync(updateObj);
+
+        return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(updateObj);
     }
 
-    /// <summary>
-    /// 鍏嬮殕鐗╂枡鍩虹淇℃伅
-    /// </summary>
-    /// <param name="ids"></param>
-    /// <returns></returns>
+    /// <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;
-        //                }
+        //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;
-        //            }
+        //                notExist = true; 
+        //            } 
 
-        //            //wmsmaterial = await _wmsmaterialRepository.InsertAsync(wmsmaterial.Clone(GuidGenerator.Create(), name, sort++));
-        //            wmsmaterials.Add(wmsmaterial);
-        //        }
-        //    }
-        //}
+        //            //WmsMaterial = await wmsMaterialRepository.InsertAsync(WmsMaterial.Clone(GuidGenerator.Create(), name, sort++)); 
+        //            wmsMaterials.Add(WmsMaterial); 
+        //        } 
+        //    } 
+        //} 
 
-        //return ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(wmsmaterials);
+        //return ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(wmsMaterials); 
         return new List<WmsMaterialDto>();
     }
 
-    /// <summary>
-    /// 鍒犻櫎鍗曚釜鐗╂枡鍩虹淇℃伅
-    /// </summary>
-    /// <param name="id"></param>
-    /// <returns></returns>
+    /// <summary> 
+    /// 鍒犻櫎鍗曚釜鐗╂枡鍩虹淇℃伅琛� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
     public virtual Task DeleteAsync(Guid id)
     {
-        return _wmsmaterialRepository.DeleteAsync(id);
+        return wmsMaterialRepository.DeleteAsync(id);
     }
 
-    /// <summary>
-    /// 鍒犻櫎澶氫釜鐗╂枡鍩虹淇℃伅
-    /// </summary>
-    /// <param name="ids"></param>
-    /// <returns></returns>
+    /// <summary> 
+    /// 鍒犻櫎澶氫釜鐗╂枡鍩虹淇℃伅琛� 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
     public async Task DeleteManyAsync(IEnumerable<Guid> ids)
     {
         foreach (var id in ids)
@@ -226,14 +242,36 @@
     }
 
     /// <summary>
-    /// 璋冩暣鎺掑簭鐗╂枡鍩虹淇℃伅
+    /// 鐗╃悊鍒犻櫎鐗╂枡鍩虹淇℃伅琛�
     /// </summary>
-    /// <param name="id"></param>
-    /// <param name="sort"></param>
+    /// <param name="id">鐗╂枡ID</param>
+    /// <param name="cancellationToken"></param>
     /// <returns></returns>
+    public virtual async Task DeletePermanentlyAsync(Guid id, CancellationToken cancellationToken = default)
+    {
+        wmsMaterialRepository.DeletePermanentlyAsync(id);
+    }
+
+    /// <summary>
+    /// 鎵归噺鐗╃悊鍒犻櫎鐗╂枡鍩虹淇℃伅琛紙鐩存帴鍒犻櫎锛屼笉杞垹闄わ級
+    /// </summary>
+    /// <param name="ids">瑕佸垹闄ょ殑鐗╂枡ID鍒楄〃</param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public virtual async Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default)
+    {
+        wmsMaterialRepository.BatchDeletePermanentlyAsync(ids);
+    }
+
+    /// <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));
+        var list = await wmsMaterialRepository.GetListAsync(null, nameof(WmsMaterial.Sort));
         if (list != null && list.Any())
         {
             var initSort = 1;
@@ -260,28 +298,28 @@
             }
         }
 
-        await _wmsmaterialRepository.UpdateManyAsync(list);
+        await wmsMaterialRepository.UpdateManyAsync(list);
     }
 
-    /// <summary>
-    /// 瀵煎叆鐗╂枡鍩虹淇℃伅
-    /// </summary>
-    /// <param name="input"></param>
-    /// <returns></returns>
-    /// <exception cref="UserFriendlyException"></exception>
-    public async Task ImportAsync(WmsMaterialsImportModel input)
+    /// <summary> 
+    /// 瀵煎叆鐗╂枡鍩虹淇℃伅琛� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public async Task ImportAsync(WmsMaterialsImportModel input, MyCurrentUser myCurrentUser)
     {
         Check.NotNull(input, nameof(input));
 
-        var wmsmaterialCreateDtos = new List<(int RowIndex, WmsMaterialCreateDto Item)>();
-        var wmsmaterialUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialUpdateDto Item)>();
+        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 瀵煎叆鏍¢獙
+            #region 瀵煎叆鏍¢獙 
 
-            // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶�
+            // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� 
             var duplicateWmsMaterials = importItems.GroupBy(x => x.MaterialCode).Where(x => x.Count() > 1).ToList();
             if (duplicateWmsMaterials?.Any() == true)
             {
@@ -294,7 +332,7 @@
 
             foreach (var impItem in importItems)
             {
-                if (impItem.MaterialCode.IsNullOrWhiteSpace() && impItem.MaterialName.IsNullOrWhiteSpace())
+                if (impItem.MaterialCode.IsNullOrWhiteSpace())
                 {
                     continue;
                 }
@@ -305,13 +343,18 @@
                     throw new UserFriendlyException(errorMsg);
                 }
 
-                var oldWmsMaterial = await _wmsmaterialRepository.FindByNameAsync(impItem.MaterialCode);
+                var oldWmsMaterial = await wmsMaterialRepository.FindByNameAsync(impItem.MaterialCode);
                 if (oldWmsMaterial != null)
                 {
-                    var wmsmaterialUpdateDto = new WmsMaterialUpdateDto
+                    var wmsMaterialUpdateDto = new WmsMaterialUpdateDto
                     {
                         MaterialCode = impItem.MaterialCode,
+                        IsValid = impItem.IsValid,
+                        IsSelfMade = impItem.IsSelfMade,
+                        Num = impItem.Num,
+                        SelfNum = impItem.SelfNum,
                         MaterialName = impItem.MaterialName,
+                        NullLength = impItem.NullLength,
                         PurchaseType = impItem.PurchaseType,
                         MaterialType = impItem.MaterialType,
                         PrimaryUnit = impItem.PrimaryUnit,
@@ -323,17 +366,26 @@
                         IsMainBranch = impItem.IsMainBranch,
                         Factory = impItem.Factory,
                         Certification = impItem.Certification,
+                        RedundantField1 = impItem.RedundantField1,
+                        RedundantField2 = impItem.RedundantField2,
+                        RedundantField3 = impItem.RedundantField3,
                         Remark = impItem.Remark,
+
                     };
 
-                    wmsmaterialUpdateDtos.Add((impItem.RowIndex, oldWmsMaterial.Id, wmsmaterialUpdateDto));
+                    wmsMaterialUpdateDtos.Add((impItem.RowIndex, oldWmsMaterial.Id, wmsMaterialUpdateDto));
                 }
                 else
                 {
-                    var wmsmaterialCreateDto = new WmsMaterialCreateDto
+                    var wmsMaterialCreateDto = new WmsMaterialCreateDto
                     {
                         MaterialCode = impItem.MaterialCode,
+                        IsValid = impItem.IsValid,
+                        IsSelfMade = impItem.IsSelfMade,
+                        Num = impItem.Num,
+                        SelfNum = impItem.SelfNum,
                         MaterialName = impItem.MaterialName,
+                        NullLength = impItem.NullLength,
                         PurchaseType = impItem.PurchaseType,
                         MaterialType = impItem.MaterialType,
                         PrimaryUnit = impItem.PrimaryUnit,
@@ -345,48 +397,54 @@
                         IsMainBranch = impItem.IsMainBranch,
                         Factory = impItem.Factory,
                         Certification = impItem.Certification,
+                        RedundantField1 = impItem.RedundantField1,
+                        RedundantField2 = impItem.RedundantField2,
+                        RedundantField3 = impItem.RedundantField3,
                         Remark = impItem.Remark,
+
                     };
 
-                    wmsmaterialCreateDtos.Add((impItem.RowIndex, wmsmaterialCreateDto));
+                    wmsMaterialCreateDtos.Add((impItem.RowIndex, wmsMaterialCreateDto));
                 }
             }
         }
 
-        // 鏂板
-        foreach (var wmsmaterialDto in wmsmaterialCreateDtos)
+        // 鏂板 
+        foreach (var wmsMaterialDto in wmsMaterialCreateDtos)
         {
             try
             {
-                await CreateAsync(wmsmaterialDto.Item);
+                wmsMaterialDto.Item.CreatorName = myCurrentUser.UserAccount;//鍒涘缓浜�
+                await CreateAsync(wmsMaterialDto.Item);
             }
             catch (Exception e)
             {
-                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterialDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsMaterialDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
                 throw new UserFriendlyException(errorMsg);
             }
         }
 
-        // 鏇存柊
-        foreach (var wmsmaterialDto in wmsmaterialUpdateDtos)
+        // 鏇存柊 
+        foreach (var wmsMaterialDto in wmsMaterialUpdateDtos)
         {
             try
             {
-                await UpdateAsync(wmsmaterialDto.Id, wmsmaterialDto.Item);
+                wmsMaterialDto.Item.LastModifierName = myCurrentUser.UserAccount;//淇敼浜�
+                await UpdateAsync(wmsMaterialDto.Id, wmsMaterialDto.Item);
             }
             catch (Exception e)
             {
-                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterialDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsMaterialDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
                 throw new UserFriendlyException(errorMsg);
             }
         }
     }
 
-    /// <summary>
-    /// 瀵煎嚭鐗╂枡鍩虹淇℃伅
-    /// </summary>
-    /// <param name="input"></param>
-    /// <returns></returns>
+    /// <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));
@@ -396,15 +454,15 @@
             input.Sorting = nameof(WmsMaterial.Sort);
         }
 
-        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� 
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
 
-        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
         var whereConditions = DynamicGetQueryParams(input);
 
         #endregion
 
 
-        var list = await _wmsmaterialRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true);
+        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>
@@ -412,21 +470,29 @@
             ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
         };
 
-        var fileName = result.Count > 1 ? "WmsMaterial鍒楄〃" : result.Count == 1 ? result[0]?.MaterialCode : "WmsMaterial妯$増";
+        var fileName = "鐗╂枡淇℃伅";
         return (sheets, fileName);
     }
 
-    /// <summary>
-    /// 鏍¢獙鐗╂枡鍩虹淇℃伅锛屽綋鏂板缓鎴栨洿鏂版椂
-    /// </summary>
-    /// <param name="input"></param>
-    /// <returns></returns>
+    /// <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);
+        Check.NotNullOrWhiteSpace(input.MaterialCode, "鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�", 64);
+        Check.NotNull(input.IsValid, "鏄惁鏈夋晥鐗╂枡");
+        Check.NotNull(input.Num, "鏁伴噺");
+        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;
     }
 }

--
Gitblit v1.9.3