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/Controller/WmsMaterialController.cs | 273 +++++++++++++++++++++++++++++------------------------- 1 files changed, 145 insertions(+), 128 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/Controller/WmsMaterialController.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/Controller/WmsMaterialController.cs" index 0002de3..ed341d4 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/Controller/WmsMaterialController.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/Controller/WmsMaterialController.cs" @@ -1,75 +1,80 @@ -锘縰sing 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 -{ +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; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using MiniExcelLibs; +using System.Reflection; +using Volo.Abp; +using Volo.Abp.Application.Dtos; +using CmsQueryExtensions.Entitys; + +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; - + [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; + private readonly ICurrentUser _currentUser; + /// <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; - } - + /// <param name="wmsMaterialAppService">The wmsMaterial application service.</param> + public WmsMaterialController(IWmsMaterialAppService wmsMaterialAppService, ICurrentUser currentUser) + { + _wmsMaterialAppService = wmsMaterialAppService; + _currentUser = currentUser; + } + /// <summary> /// 鑾峰彇鐗╂枡鍩虹淇℃伅琛� /// </summary> /// <param name="id">鏍囪瘑绗�.</param> /// <returns></returns> - [HttpGet] - [Route("{id}")] - public virtual Task<WmsMaterialDto> GetAsync(Guid id) - { - return _wmsmaterialsAppService.GetAsync(id); - } - + [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 _wmsmaterialsAppService.GetListAsync(input); - } - + [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 _wmsmaterialsAppService.CreateAsync(input); - } - + [HttpPost] + public virtual Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input) + { + input.CreatorName = _currentUser.UserAccount;//鍒涘缓浜� + return _wmsMaterialAppService.CreateAsync(input); + } + /// <summary> /// 鏇存柊鐗╂枡鍩虹淇℃伅琛� /// </summary> @@ -77,112 +82,124 @@ /// <param name="input">杈撳叆.</param> /// <returns></returns> //[Authorize] - [HttpPut] - [Route("{id}")] - public virtual Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input) - { - return _wmsmaterialsAppService.UpdateAsync(id, input); - } - + [HttpPut] + [Route("{id}")] + public virtual Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input) + { + input.LastModifierName = _currentUser.UserAccount;//淇敼浜� + 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 _wmsmaterialsAppService.CloneAsync(ids); - } - + [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 _wmsmaterialsAppService.DeleteAsync(id); - } - + [HttpDelete] + [Route("{id}")] + public virtual Task DeleteAsync(Guid id) + { + //return _wmsMaterialAppService.DeleteAsync(id);//閫昏緫鍒犻櫎 + return _wmsMaterialAppService.DeletePermanentlyAsync(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); - } - + [HttpDelete] + public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) + { + MyCurrentUser myCurrentUser = new MyCurrentUser() + { + UserAccount = _currentUser.UserAccount, + UserId = _currentUser.UserId + }; + // return _wmsMaterialAppService.DeleteManyAsync(ids);//閫昏緫鍒犻櫎 + return _wmsMaterialAppService.BatchDeletePermanentlyAsync(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); - } - + [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 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(); - } - + [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("璇锋鏌ュ鍏ョ殑琛ㄦ牸"); + } + MyCurrentUser myCurrentUser = new MyCurrentUser() + { + UserAccount = _currentUser.UserAccount, + UserId = _currentUser.UserId + }; + await _wmsMaterialAppService.ImportAsync(new WmsMaterialsImportModel + { + WmsMaterials = wmsMaterialRows, + }, myCurrentUser); + + 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" }; - } - } -} + [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" }; + } + } +} -- Gitblit v1.9.3