222
schangxiang@126.com
2025-05-14 f9bc97da02cdaf6ff9e05419b04b8e08c65c3eba
222
已修改2个文件
357 ■■■■ 文件已修改
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs 300 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
@@ -92,23 +92,52 @@
        var rawPipe_DataIdentifier = await materialProvider.FindByNameAsync("分拣原料管标识");
        var rawPipe_MaterialMode = await materialProvider.FindByNameAsync("分拣原料管型号");
        List<TraceMaterialModel> _MaterialParams = new List<TraceMaterialModel>();
        _MaterialParams.Add(new TraceMaterialModel()
        foreach (var item in workSection.MaterialParameters)
        {
            Key = "分拣原料管标识",
            Quantity = 1,
            MaterialId = rawPipe_DataIdentifier.MaterialId,
            MaterialDetailId = rawPipe_DataIdentifier.MaterialDetails.First().Id,
            Value = firstWorkPlan.DataIdentifier,
            if (item.Name == "分拣原料管型号")
            {
                _MaterialParams.Add(new TraceMaterialModel()
                {
                    Key = item.Key,
                    Quantity = 1,
                    MaterialId = rawPipe_MaterialMode.MaterialId,
                    MaterialDetailId = rawPipe_MaterialMode.MaterialDetails.First().Id,
                    Value = firstWorkPlan.MaterialMode
        });
        _MaterialParams.Add(new TraceMaterialModel()
                });
            }
            if (item.Name == "分拣原料管标识")
            {
                _MaterialParams.Add(new TraceMaterialModel()
                {
                    Key = item.Key,
                    Quantity = 1,
                    MaterialId = rawPipe_DataIdentifier.MaterialId,
                    MaterialDetailId = rawPipe_DataIdentifier.MaterialDetails.First().Id,
                    Value = firstWorkPlan.DataIdentifier,
                });
            }
        };
        //配置过程参数(采集参数、配方参数)
        traceModel.Params = new List<TraceParamModel>();
        foreach (var item in workSection.ProcessParameters)
        {
            Key = "分拣原料管型号",
            Quantity = 1,
            MaterialId = rawPipe_MaterialMode.MaterialId,
            MaterialDetailId = rawPipe_MaterialMode.MaterialDetails.First().Id,
            Value = firstWorkPlan.MaterialMode
        });
            string _value = "";
            if (item.Name == "分拣方向")
            {
                _value = "短管装配";
            }
            //item.Key
            TraceParamModel traceParamModel = new TraceParamModel()
            {
                Key = item.Key,
                Value = _value
            };
            traceModel.Params.Add(traceParamModel);
        };
        traceModel.MaterialParams = _MaterialParams;
        await traceProvider.CreateTraceAsync(traceModel);
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs
@@ -1,216 +1,216 @@
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
{
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 _wmsMaterialAppService;
        private readonly ICurrentUser _currentUser;
    [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="wmsMaterialAppService">The wmsMaterial application service.</param> 
        public WmsMaterialController(IWmsMaterialAppService wmsMaterialAppService, ICurrentUser currentUser)
        {
            _wmsMaterialAppService = wmsMaterialAppService;
            _currentUser = currentUser;
        }
        public WmsMaterialController(IWmsMaterialAppService wmsMaterialAppService, ICurrentUser currentUser)
        {
            _wmsMaterialAppService = wmsMaterialAppService;
            _currentUser = currentUser;
        }
        /// <summary> 
        /// èŽ·å–ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨ 
        /// </summary> 
        /// <param name="id">主键ID</param> 
        /// <returns></returns> 
        [HttpGet]
        [Route("{id}")]
        public virtual Task<WmsMaterialDto> GetAsync(Guid id)
        {
            return _wmsMaterialAppService.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 _wmsMaterialAppService.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)
        {
        [HttpPost]
        public virtual Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input)
        {
            input.CreatorName = _currentUser.UserAccount;//创建人 
            return _wmsMaterialAppService.CreateAsync(input);
        }
            return _wmsMaterialAppService.CreateAsync(input);
        }
        /// <summary> 
        /// æ›´æ–°ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨ 
        /// </summary> 
        /// <param name="id">主键ID</param> 
        /// <param name="input">更新参数</param> 
        /// <returns></returns> 
        //[Authorize]
        [HttpPut]
        [Route("{id}")]
        public virtual Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input)
        {
        [Authorize]
        [HttpPut]
        [Route("{id}")]
        public virtual Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input)
        {
            input.LastModifierName = _currentUser.UserAccount;//修改人 
            return _wmsMaterialAppService.UpdateAsync(id, input);
        }
            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)
        {
            MyCurrentUser myCurrentUser = new MyCurrentUser()
            {
                UserAccount = _currentUser.UserAccount,
                UserId = _currentUser.UserId
            };
            return _wmsMaterialAppService.CloneAsync(ids, myCurrentUser);
        }
        [HttpPost]
        [Route("Clone")]
        public virtual Task<List<WmsMaterialDto>> CloneAsync([FromBody] IEnumerable<Guid> ids)
        {
            MyCurrentUser myCurrentUser = new MyCurrentUser()
            {
                UserAccount = _currentUser.UserAccount,
                UserId = _currentUser.UserId
            };
            return _wmsMaterialAppService.CloneAsync(ids, myCurrentUser);
        }
        /// <summary> 
        /// åˆ é™¤ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨ 
        /// </summary> 
        /// <param name="id">主键ID</param> 
        /// <returns></returns> 
        //[Authorize] 
        [HttpDelete]
        [Route("{id}")]
        public virtual Task DeleteAsync(Guid id)
        {
            MyCurrentUser myCurrentUser = new MyCurrentUser()
            {
                UserAccount = _currentUser.UserAccount,
                UserId = _currentUser.UserId
            };
        [HttpDelete]
        [Route("{id}")]
        public virtual Task DeleteAsync(Guid id)
        {
            MyCurrentUser myCurrentUser = new MyCurrentUser()
            {
                UserAccount = _currentUser.UserAccount,
                UserId = _currentUser.UserId
            };
            //return _wmsMaterialAppService.DeleteAsync(id,myCurrentUser);//逻辑删除 
            return _wmsMaterialAppService.DeletePermanentlyAsync(id, myCurrentUser);//物理删除 
        }
        }
        /// <summary> 
        /// æ‰¹é‡åˆ é™¤ç‰©æ–™åŸºç¡€ä¿¡æ¯è¡¨ 
        /// </summary> 
        /// <param name="ids">主键ID集合</param> 
        /// <returns></returns> 
        //[Authorize] 
        [HttpDelete]
        public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids)
        {
            MyCurrentUser myCurrentUser = new MyCurrentUser()
            {
                UserAccount = _currentUser.UserAccount,
                UserId = _currentUser.UserId
            };
        [HttpDelete]
        public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> 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">主键ID</param> 
        /// <returns></returns> 
        [HttpPut]
        [Route("{id}/AdjustSort/{sort}")]
        public virtual Task AdjustSortAsync(Guid id, int sort)
        {
            return _wmsMaterialAppService.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 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();
        }
        [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 _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" };
        }
    }
}
        [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" };
        }
    }
}