Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateDto.cs
@@ -14,4 +14,9 @@ /// æ¯å¦ç¦ç¨ /// </summary> public bool? IsDisabled { get; set; } = false; /// <summary> /// å建人 /// </summary> public string CreatorName { get; set; } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialUpdateDto.cs
@@ -10,4 +10,9 @@ /// å¹¶åæ³ /// </summary> public string ConcurrencyStamp { get; set; } /// <summary> /// ä¿®æ¹äºº /// </summary> public string LastModifierName { get; set; } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs
@@ -1,5 +1,7 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; using Volo.Abp.Application.Services; using CmsQueryExtensions.Entitys; namespace CMS.Plugin.HIAWms.Application.Contracts.Services; @@ -23,6 +25,23 @@ Task DeleteManyAsync(IEnumerable<Guid> ids); /// <summary> /// ç©çå é¤ç©æåºç¡ä¿¡æ¯è¡¨ /// </summary> /// <param name="id">ç©æID</param> /// <param name="cancellationToken"></param> /// <returns></returns> Task DeletePermanentlyAsync(Guid id, CancellationToken cancellationToken = default); /// <summary> /// æ¹éç©çå é¤ç©æåºç¡ä¿¡æ¯è¡¨ï¼ç´æ¥å é¤ï¼ä¸è½¯å é¤ï¼ /// </summary> /// <param name="ids">è¦å é¤çç©æIDå表</param> /// <param name="cancellationToken"></param> /// <returns></returns> Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default); /// <summary> /// è°æ´æåºç©æåºç¡ä¿¡æ¯è¡¨ /// </summary> /// <param name="id"></param> @@ -35,7 +54,7 @@ /// </summary> /// <param name="input"></param> /// <returns></returns> Task ImportAsync(WmsMaterialsImportModel input); Task ImportAsync(WmsMaterialsImportModel input, MyCurrentUser myCurrentUser); /// <summary> /// 导åºç©æåºç¡ä¿¡æ¯è¡¨ Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
@@ -10,6 +10,8 @@ using Volo.Abp.Data; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectMapping; using CmsQueryExtensions.Entitys; namespace CMS.Plugin.HIAWms.Application.Implements; @@ -89,6 +91,8 @@ return whereConditions; } /// <summary> /// æ°å»ºç©æåºç¡ä¿¡æ¯è¡¨ /// </summary> @@ -112,6 +116,7 @@ insertObj.Sort = sort; input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); insertObj.CreatorName = input.CreatorName;//å建人 await wmsMaterialRepository.InsertAsync(insertObj); //if (input.Sort.HasValue && insertObj.Sort != maxSort) @@ -166,6 +171,7 @@ updateObj.RedundantField3 = input.RedundantField3; updateObj.Remark = input.Remark; updateObj.LastModifierName = input.LastModifierName;//ä¿®æ¹äºº await wmsMaterialRepository.UpdateAsync(updateObj); @@ -236,6 +242,28 @@ } /// <summary> /// ç©çå é¤ç©æåºç¡ä¿¡æ¯è¡¨ /// </summary> /// <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> @@ -279,7 +307,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)); @@ -386,6 +414,7 @@ { try { wmsMaterialDto.Item.CreatorName = myCurrentUser.UserAccount;//å建人 await CreateAsync(wmsMaterialDto.Item); } catch (Exception e) @@ -400,6 +429,7 @@ { try { wmsMaterialDto.Item.LastModifierName = myCurrentUser.UserAccount;//ä¿®æ¹äºº await UpdateAsync(wmsMaterialDto.Id, wmsMaterialDto.Item); } catch (Exception e) Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs
@@ -50,4 +50,22 @@ /// <param name="cancellationToken"></param> /// <returns></returns> Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, CancellationToken cancellationToken = default); /// <summary> /// ç©çå é¤ç©æåºç¡ä¿¡æ¯è¡¨ /// </summary> /// <param name="id">ç©æID</param> /// <param name="cancellationToken"></param> /// <returns></returns> Task DeletePermanentlyAsync(Guid id, CancellationToken cancellationToken = default); /// <summary> /// æ¹éç©çå é¤ç©æåºç¡ä¿¡æ¯è¡¨ï¼ç´æ¥å é¤ï¼ä¸è½¯å é¤ï¼ /// </summary> /// <param name="ids">è¦å é¤çç©æIDå表</param> /// <param name="cancellationToken"></param> /// <returns></returns> Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default); } Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs
@@ -2,6 +2,7 @@ using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; using CmsQueryExtensions.Extension; using Microsoft.EntityFrameworkCore; using RestSharp; using System.Linq.Dynamic.Core; using System.Linq.Expressions; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; @@ -110,4 +111,58 @@ return (await GetQueryableAsync()) .Where(x => !x.IsDeleted).IncludeDetails(); } /// <summary> /// ç©çå é¤ç©æåºç¡ä¿¡æ¯è¡¨ /// </summary> /// <param name="id">ç©æID</param> /// <param name="cancellationToken"></param> /// <returns></returns> public virtual async Task DeletePermanentlyAsync(Guid id, CancellationToken cancellationToken = default) { var entity = await (await GetDbSetAsync()) .FirstOrDefaultAsync(x => x.Id == id && !x.IsDeleted, GetCancellationToken(cancellationToken)); if (entity == null) { throw new Volo.Abp.Domain.Entities.EntityNotFoundException(typeof(WmsMaterial), id); } // 2. è·å DbContext å¹¶æ§è¡å é¤ var dbContext = await GetDbContextAsync(); // ç´æ¥æ§è¡ SQL å é¤ var sql = $"DELETE FROM scms_wmsmaterials WHERE Id ='{entity.Id.ToString()}'"; await dbContext.Database.ExecuteSqlRawAsync(sql, cancellationToken); } /// <summary> /// æ¹éç©çå é¤ç©æåºç¡ä¿¡æ¯è¡¨ï¼ç´æ¥å é¤ï¼ä¸è½¯å é¤ï¼ /// </summary> /// <param name="ids">è¦å é¤çç©æIDå表</param> /// <param name="cancellationToken"></param> /// <returns></returns> public virtual async Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default) { // 1. æ¥è¯¢ç¬¦åæ¡ä»¶çå®ä½ï¼æªè½¯å é¤çè®°å½ï¼ var entities = await (await GetDbSetAsync()) .Where(x => ids.Contains(x.Id) && !x.IsDeleted) .ToListAsync(GetCancellationToken(cancellationToken)); if (!entities.Any()) { // å¦ææ²¡æéè¦å é¤çè®°å½ï¼ç´æ¥è¿åï¼é¿å ä¸å¿ è¦çæ°æ®åºæä½ï¼ return; } // 2. è·å DbContext å¹¶æ§è¡æ¹éå é¤ var dbContext = await GetDbContextAsync(); var idsToDelete = entities.Select(e => e.Id).ToList(); // ç´æ¥æ§è¡ SQL å é¤ var sql = $"DELETE FROM scms_wmsmaterials WHERE Id IN ({string.Join(",", idsToDelete.Select(id => $"'{id}'"))})"; await dbContext.Database.ExecuteSqlRawAsync(sql, cancellationToken); } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj
@@ -40,7 +40,7 @@ </ItemGroup> <ItemGroup> <PackageReference Include="CMS.Framework.AspNetCore" Version="2.16.1" /> <PackageReference Include="CMS.Framework.AspNetCore" Version="2.28.0" /> <PackageReference Include="CMS.Extensions.Variable" Version="2.16.1" /> <PackageReference Include="CMS.Extensions.Data" Version="2.16.1" /> <PackageReference Include="CMS.Data.Stressing" Version="2.16.1" /> @@ -57,7 +57,7 @@ <ItemGroup> <Reference Include="CmsQueryExtensions"> <HintPath>..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath> <HintPath>..\..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath> </Reference> </ItemGroup> Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs
@@ -1,5 +1,6 @@ using Ao.Lang; using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; using CMS.Framework.AspNetCore.Users; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; using CMS.Plugin.HIAWms.Application.Contracts.Services; using Microsoft.AspNetCore.Authorization; @@ -9,6 +10,7 @@ using System.Reflection; using Volo.Abp; using Volo.Abp.Application.Dtos; using CmsQueryExtensions.Entitys; namespace CMS.Plugin.HIAWms.Controller { @@ -24,14 +26,16 @@ public class WmsMaterialController : ControllerBase { private readonly IWmsMaterialAppService _wmsMaterialAppService; private readonly ICurrentUser _currentUser; /// <summary> /// Initializes a new instance of the <see cref="WmsMaterialController"/> class. /// </summary> /// <param name="wmsMaterialAppService">The wmsMaterial application service.</param> public WmsMaterialController(IWmsMaterialAppService wmsMaterialAppService) public WmsMaterialController(IWmsMaterialAppService wmsMaterialAppService, ICurrentUser currentUser) { _wmsMaterialAppService = wmsMaterialAppService; _currentUser = currentUser; } /// <summary> @@ -67,6 +71,7 @@ [HttpPost] public virtual Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input) { input.CreatorName = _currentUser.UserAccount;//å建人 return _wmsMaterialAppService.CreateAsync(input); } @@ -81,6 +86,7 @@ [Route("{id}")] public virtual Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input) { input.LastModifierName = _currentUser.UserAccount;//ä¿®æ¹äºº return _wmsMaterialAppService.UpdateAsync(id, input); } @@ -107,7 +113,8 @@ [Route("{id}")] public virtual Task DeleteAsync(Guid id) { return _wmsMaterialAppService.DeleteAsync(id); //return _wmsMaterialAppService.DeleteAsync(id);//é»è¾å é¤ return _wmsMaterialAppService.DeletePermanentlyAsync(id);//ç©çå é¤ } /// <summary> @@ -119,7 +126,13 @@ [HttpDelete] public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) { return _wmsMaterialAppService.DeleteManyAsync(ids); MyCurrentUser myCurrentUser = new MyCurrentUser() { UserAccount = _currentUser.UserAccount, UserId = _currentUser.UserId }; // return _wmsMaterialAppService.DeleteManyAsync(ids);//é»è¾å é¤ return _wmsMaterialAppService.BatchDeletePermanentlyAsync(ids);//ç©çå é¤ } /// <summary> @@ -154,11 +167,15 @@ { throw new UserFriendlyException("è¯·æ£æ¥å¯¼å ¥çè¡¨æ ¼"); } MyCurrentUser myCurrentUser = new MyCurrentUser() { UserAccount = _currentUser.UserAccount, UserId = _currentUser.UserId }; await _wmsMaterialAppService.ImportAsync(new WmsMaterialsImportModel { WmsMaterials = wmsMaterialRows, }); }, myCurrentUser); return Ok(); }