222
schangxiang@126.com
2025-05-13 3c54ed0a7cb25274f6f21fba716c6f6b31fc0283
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs
@@ -1,6 +1,7 @@
using Ao.Lang;
using CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterials;
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;
@@ -9,12 +10,13 @@
using System.Reflection;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using CmsQueryExtensions.Entitys;
namespace CMS.Plugin.HIAWms.Controller
{
    /// <summary>
    /// WmsMaterial服务
    /// </summary>
    /// <summary>
    /// ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨æœåŠ¡
    /// </summary>
    [ApiController]
    [TypeFilter(typeof(CMSLanguageFilter))]
    [TypeFilter(typeof(CMSUowActionFilter))]
@@ -23,121 +25,142 @@
    [Route("api/v{version:apiVersion}/HIAWms/[controller]")]
    public class WmsMaterialController : ControllerBase
    {
        private readonly IWmsMaterialAppService _wmsmaterialAppService;
        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)
        /// <summary>
        /// Initializes a new instance of the <see cref="WmsMaterialController"/> class.
        /// </summary>
        /// <param name="wmsMaterialAppService">The wmsMaterial application service.</param>
        public WmsMaterialController(IWmsMaterialAppService wmsMaterialAppService, ICurrentUser currentUser)
        {
            _wmsmaterialAppService = wmsmaterialAppService;
            _wmsMaterialAppService = wmsMaterialAppService;
            _currentUser = currentUser;
        }
        /// <summary>
        /// èŽ·å–wmsmaterial.
        /// </summary>
        /// <param name="id">标识符.</param>
        /// <returns></returns>
        /// <summary>
        /// èŽ·å–ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨
        /// </summary>
        /// <param name="id">标识符.</param>
        /// <returns></returns>
        [HttpGet]
        [Route("{id}")]
        public virtual Task<WmsMaterialDto> GetAsync(Guid id)
        {
            return _wmsmaterialAppService.GetAsync(id);
            return _wmsMaterialAppService.GetAsync(id);
        }
        /// <summary>
        /// èŽ·å–wmsmaterial的列表.
        /// </summary>
        /// <param name="input">输入.</param>
        /// <returns></returns>
        /// <summary>
        /// åˆ†é¡µèŽ·å–ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨çš„åˆ—è¡¨.
        /// </summary>
        /// <param name="input">输入.</param>
        /// <returns></returns>
        [HttpGet]
        [Route("Page")]
        public virtual Task<PagedResultDto<WmsMaterialDto>> GetListAsync([FromQuery] GetWmsMaterialsInput input)
        public virtual Task<PagedResultDto<WmsMaterialDto>> GetListAsync([FromQuery] GetWmsMaterialInput input)
        {
            return _wmsmaterialAppService.GetListAsync(input);
            return _wmsMaterialAppService.GetListAsync(input);
        }
        /// <summary>
        /// åˆ›å»ºwmsmaterial.
        /// </summary>
        /// <param name="input">输入.</param>
        /// <returns></returns>
        //[Authorize]
        /// <summary>
        /// åˆ›å»ºç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨
        /// </summary>
        /// <param name="input">输入.</param>
        /// <returns></returns>
        //[Authorize]
        [HttpPost]
        public virtual Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input)
        {
            return _wmsmaterialAppService.CreateAsync(input);
            input.CreatorName = _currentUser.UserAccount;//创建人
            return _wmsMaterialAppService.CreateAsync(input);
        }
        /// <summary>
        /// æ›´æ–°wmsmaterial.
        /// </summary>
        /// <param name="id">标识符.</param>
        /// <param name="input">输入.</param>
        /// <returns></returns>
        //[Authorize]
        /// <summary>
        /// æ›´æ–°ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨
        /// </summary>
        /// <param name="id">标识符.</param>
        /// <param name="input">输入.</param>
        /// <returns></returns>
        //[Authorize]
        [HttpPut]
        [Route("{id}")]
        public virtual Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input)
        {
            return _wmsmaterialAppService.UpdateAsync(id, input);
            input.LastModifierName = _currentUser.UserAccount;//修改人
            return _wmsMaterialAppService.UpdateAsync(id, input);
        }
        /// <summary>
        /// å…‹éš†WmsMaterial.
        /// </summary>
        /// <param name="ids">Id集合.</param>
        /// <returns></returns>
        //[Authorize]
        /// <summary>
        /// å…‹éš†ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨
        /// </summary>
        /// <param name="ids">Id集合.</param>
        /// <returns></returns>
        //[Authorize]
        [HttpPost]
        [Route("Clone")]
        public virtual Task<List<WmsMaterialDto>> CloneAsync([FromBody] IEnumerable<Guid> ids)
        {
            return _wmsmaterialAppService.CloneAsync(ids);
            MyCurrentUser myCurrentUser = new MyCurrentUser()
            {
                UserAccount = _currentUser.UserAccount,
                UserId = _currentUser.UserId
            };
            return _wmsMaterialAppService.CloneAsync(ids, myCurrentUser);
        }
        /// <summary>
        /// åˆ é™¤wmsmaterial.
        /// </summary>
        /// <param name="id">标识符.</param>
        /// <returns></returns>
        //[Authorize]
        /// <summary>
        /// åˆ é™¤ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨
        /// </summary>
        /// <param name="id">标识符.</param>
        /// <returns></returns>
        //[Authorize]
        [HttpDelete]
        [Route("{id}")]
        public virtual Task DeleteAsync(Guid id)
        {
            return _wmsmaterialAppService.DeleteAsync(id);
            MyCurrentUser myCurrentUser = new MyCurrentUser()
            {
                UserAccount = _currentUser.UserAccount,
                UserId = _currentUser.UserId
            };
            //return _wmsMaterialAppService.DeleteAsync(id,myCurrentUser);//逻辑删除
            return _wmsMaterialAppService.DeletePermanentlyAsync(id, myCurrentUser);//物理删除
        }
        /// <summary>
        /// æ‰¹é‡åˆ é™¤wmsmaterial.
        /// </summary>
        /// <param name="ids">The ids.</param>
        /// <returns></returns>
        //[Authorize]
        /// <summary>
        /// æ‰¹é‡åˆ é™¤ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨
        /// </summary>
        /// <param name="ids">The ids.</param>
        /// <returns></returns>
        //[Authorize]
        [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,myCurrentUser);//逻辑删除
            return _wmsMaterialAppService.BatchDeletePermanentlyAsync(ids, myCurrentUser);//物理删除
        }
        /// <summary>
        /// è°ƒæ•´æŽ’序.
        /// </summary>
        /// <param name="id">标识符.</param>
        /// <returns></returns>
        /// <summary>
        /// è°ƒæ•´æŽ’序物料基础信息表
        /// </summary>
        /// <param name="id">标识符.</param>
        /// <returns></returns>
        [HttpPut]
        [Route("{id}/AdjustSort/{sort}")]
        public virtual Task AdjustSortAsync(Guid id, int sort)
        {
            return _wmsmaterialAppService.AdjustSortAsync(id, sort);
            return _wmsMaterialAppService.AdjustSortAsync(id, sort);
        }
        /// <summary>
        /// å¯¼å…¥wmsmaterial.
        /// </summary>
        /// <returns></returns>
        /// <summary>
        /// å¯¼å…¥ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨
        /// </summary>
        /// <returns></returns>
        [Authorize]
        [HttpPost]
        [Route("Import")]
@@ -148,31 +171,35 @@
            stream.Seek(0L, SeekOrigin.Begin);
            var sheetNames = stream.GetSheetNames();
            var wmsmaterialRows = sheetNames.Contains("配置") ? MiniExcel.Query<WmsMaterialsImportModel.WmsMaterialImportModel>(stream, sheetName: "配置").ToList() : new();
            var wmsMaterialRows = sheetNames.Contains("配置") ? MiniExcel.Query<WmsMaterialsImportModel.WmsMaterialImportModel>(stream, sheetName: "配置").ToList() : new();
            if (!wmsmaterialRows.Any())
            if (!wmsMaterialRows.Any())
            {
                throw new UserFriendlyException("请检查导入的表格");
            }
            await _wmsmaterialAppService.ImportAsync(new WmsMaterialsImportModel
            MyCurrentUser myCurrentUser = new MyCurrentUser()
            {
                WmsMaterials = wmsmaterialRows,
            });
                UserAccount = _currentUser.UserAccount,
                UserId = _currentUser.UserId
            };
            await _wmsMaterialAppService.ImportAsync(new WmsMaterialsImportModel
            {
                WmsMaterials = wmsMaterialRows,
            }, myCurrentUser);
            return Ok();
        }
        /// <summary>
        /// å¯¼å‡ºwmsmaterial.
        /// </summary>
        /// <returns></returns>
        /// <summary>
        /// å¯¼å‡ºç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("Export")]
        public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsMaterialsInput input)
        public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsMaterialInput input)
        {
            input.MaxResultCount = int.MaxValue;
            var exportData = await _wmsmaterialAppService.ExportAsync(input);
            var exportData = await _wmsMaterialAppService.ExportAsync(input);
            var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsMaterial导出模板.xlsx");
            if (!System.IO.File.Exists(templatePath))
            {