3
schangxiang@126.com
2025-05-13 448177c5f07c2a63071fe3ebb5bb79894b0606ed
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
@@ -10,6 +10,7 @@
using Volo.Abp.Data; 
using Volo.Abp.ObjectExtending; 
using Volo.Abp.ObjectMapping; 
using CmsQueryExtensions.Entitys;
 
namespace CMS.Plugin.HIAWms.Application.Implements; 
 
@@ -18,15 +19,15 @@
/// </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)
    public WmsMaterialAppService(IWmsMaterialRepository wmsMaterialRepository)
    { 
        wmsMaterialRepository = _WmsMaterialRepository;
        _wmsMaterialRepository = wmsMaterialRepository;
    } 
 
    /// <summary> 
@@ -36,7 +37,7 @@
    /// <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> 
@@ -60,8 +61,8 @@
 
        #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)); 
    } 
@@ -99,20 +100,21 @@
    { 
        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 insertObj = ObjectMapper.Map<WmsMaterialCreateDto, WmsMaterial>(input); 
        insertObj.Sort = sort; 
        input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); 
 
        await wmsMaterialRepository.InsertAsync(insertObj);
        insertObj.CreatorName = input.CreatorName;//创建人
        await _wmsMaterialRepository.InsertAsync(insertObj);
 
        //if (input.Sort.HasValue && insertObj.Sort != maxSort) 
        //{ 
@@ -133,8 +135,8 @@
    { 
        await CheckCreateOrUpdateDtoAsync(input); 
 
        var updateObj = await wmsMaterialRepository.GetAsync(id);
        var exist = await wmsMaterialRepository.NameExistAsync(input.MaterialCode, updateObj.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]); 
@@ -165,10 +167,11 @@
        updateObj.RedundantField2 = input.RedundantField2;
        updateObj.RedundantField3 = input.RedundantField3;
        updateObj.Remark = input.Remark;
        updateObj.IsDisabled = input.IsDisabled;
 
 
        await wmsMaterialRepository.UpdateAsync(updateObj);
        updateObj.LastModifierName = input.LastModifierName;//修改人
        await _wmsMaterialRepository.UpdateAsync(updateObj);
 
        return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(updateObj); 
    } 
@@ -178,22 +181,22 @@
    /// </summary> 
    /// <param name="ids"></param> 
    /// <returns></returns> 
    public async Task<List<WmsMaterialDto>> CloneAsync(IEnumerable<Guid> ids)
    public async Task<List<WmsMaterialDto>> CloneAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser)
    { 
        //var wmsMaterials = new List<WmsMaterial>(); 
        //if (ids != null) 
        //{ 
        //    var sort = await wmsMaterialRepository.GetMaxSortAsync();
        //    var sort = await _wmsMaterialRepository.GetMaxSortAsync();
        //    foreach (var id in ids) 
        //    { 
        //        var WmsMaterial = await wmsMaterialRepository.FindAsync(id);
        //        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);
        //                var exist = await _wmsMaterialRepository.NameExistAsync(name);
        //                if (exist || wmsMaterials.Any(x => x.Name == name)) 
        //                { 
        //                    name += WmsMaterialConsts.CloneTag; 
@@ -203,7 +206,7 @@
        //                notExist = true; 
        //            } 
 
        //            //WmsMaterial = await wmsMaterialRepository.InsertAsync(WmsMaterial.Clone(GuidGenerator.Create(), name, sort++));
        //            //WmsMaterial = await _wmsMaterialRepository.InsertAsync(WmsMaterial.Clone(GuidGenerator.Create(), name, sort++));
        //            wmsMaterials.Add(WmsMaterial); 
        //        } 
        //    } 
@@ -220,7 +223,7 @@
    /// <returns></returns> 
    public virtual Task DeleteAsync(Guid id) 
    { 
        return wmsMaterialRepository.DeleteAsync(id);
        return _wmsMaterialRepository.DeleteAsync(id);
    } 
 
    /// <summary> 
@@ -228,12 +231,34 @@
    /// </summary> 
    /// <param name="ids"></param> 
    /// <returns></returns> 
    public async Task DeleteManyAsync(IEnumerable<Guid> ids)
    public async Task DeleteManyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser)
    { 
        foreach (var id in ids) 
        { 
            await DeleteAsync(id); 
        } 
    }
     /// <summary>
    /// ç‰©ç†åˆ é™¤ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨
    /// </summary>
    /// <param name="id">主键ID</param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    public virtual async Task DeletePermanentlyAsync(Guid id, MyCurrentUser myCurrentUser, 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, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default)
    {
        _wmsMaterialRepository.BatchDeletePermanentlyAsync(ids);
    } 
 
    /// <summary> 
@@ -244,7 +269,7 @@
    /// <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; 
@@ -271,7 +296,7 @@
            } 
        } 
 
        await wmsMaterialRepository.UpdateManyAsync(list);
        await _wmsMaterialRepository.UpdateManyAsync(list);
    } 
 
    /// <summary> 
@@ -280,7 +305,7 @@
    /// <param name="input"></param> 
    /// <returns></returns> 
    /// <exception cref="UserFriendlyException"></exception> 
    public async Task ImportAsync(WmsMaterialsImportModel input)
    public async Task ImportAsync(WmsMaterialsImportModel input, MyCurrentUser myCurrentUser)
    { 
        Check.NotNull(input, nameof(input)); 
 
@@ -316,7 +341,7 @@
                    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 
@@ -343,7 +368,6 @@
RedundantField2 = impItem.RedundantField2,
RedundantField3 = impItem.RedundantField3,
Remark = impItem.Remark,
IsDisabled = impItem.IsDisabled,
 
                    }; 
 
@@ -375,7 +399,6 @@
RedundantField2 = impItem.RedundantField2,
RedundantField3 = impItem.RedundantField3,
Remark = impItem.Remark,
IsDisabled = impItem.IsDisabled,
 
                    }; 
 
@@ -389,6 +412,7 @@
        { 
            try 
            { 
                wmsMaterialDto.Item.CreatorName = myCurrentUser.UserAccount;//创建人
                await CreateAsync(wmsMaterialDto.Item); 
            } 
            catch (Exception e) 
@@ -403,6 +427,7 @@
        { 
            try 
            { 
                wmsMaterialDto.Item.LastModifierName = myCurrentUser.UserAccount;//修改人
                await UpdateAsync(wmsMaterialDto.Id, wmsMaterialDto.Item); 
            } 
            catch (Exception e) 
@@ -435,7 +460,7 @@
        #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> 
@@ -468,4 +493,28 @@
 
        return Task.CompletedTask; 
    } 
     /// <summary>
    /// æ ¹æ®æ¡ä»¶èŽ·å–ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨åˆ—è¡¨
    /// </summary>
    /// <param name="whereConditions"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    public async Task<List<WmsMaterial>> GetListByFilterAsync(Expression<Func<WmsMaterial, bool>> whereConditions, CancellationToken cancellationToken = default)
    {
        return await _wmsMaterialRepository.GetListByFilterAsync(whereConditions);
    }
    /// <summary>
    ///  æ ¹æ®æ¡ä»¶èŽ·å–å•ä¸ªç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨
    /// </summary>
    /// <param name="whereConditions"></param>
    /// <param name="isMultipleThrowException">是否查询出多条就报错</param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    /// <exception cref="UserFriendlyException"></exception>
    public async Task<WmsMaterial> GetSingleByFilterAsync(Expression<Func<WmsMaterial, bool>> whereConditions, bool is​MultipleThrowException = false, CancellationToken cancellationToken = default)
    {
        return await _wmsMaterialRepository.GetSingleByFilterAsync(whereConditions, is​MultipleThrowException);
    }