zs
2025-04-29 ce2c65006af1430bbe77b46080fd5750473e5675
字段
已添加5个文件
已修改12个文件
11766 ■■■■■ 文件已修改
HIAWms/project/Wms.cmsproj 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainerCreateOrUpdateDtoBase.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainerDto.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainersExportModel.cs 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerAppService.cs 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/ContainerStatusEnum.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/ContainerTypeEnum.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainer.cs 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainerDataSeedContributor.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainerSpecification.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainer.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms/ProjectService/HIAWmsProjectService.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/web/.env 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/web/components.d.ts 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/web/package-lock.json 6675 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/web/src/config/menu.ts 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/web/yarn.lock 4372 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/project/Wms.cmsproj
Binary files differ
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainerCreateOrUpdateDtoBase.cs
@@ -1,3 +1,4 @@
using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using Volo.Abp.Application.Dtos;
namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers;
@@ -7,15 +8,82 @@
/// </summary>
public abstract class WmsContainerCreateOrUpdateDtoBase : ExtensibleEntityDto
{
    /// <summary>
    /// ç¼–号
    /// </summary>
    public virtual string Code { get; set; }
    /// <summary>
    /// åç§°
    /// æ‰˜ç›˜ç¼–号
    /// </summary>
    public virtual string Name { get; set; }
    public string ContainerNo { get; set; }
    /// <summary>
    /// æ‰˜ç›˜ç±»åž‹
    /// </summary>
    public ContainerTypeEnum ContainerType { get; set; }
    /// <summary>
    /// æ‰˜ç›˜çŠ¶æ€
    /// </summary>
    public ContainerStatusEnum ContainerStatus { get; set; }
    /// <summary>
    /// é•¿åº¦
    /// </summary>
    public decimal? SpecLength { get; set; }
    /// <summary>
    /// å®½åº¦
    /// </summary>
    public decimal? SpecWidth { get; set; }
    /// <summary>
    /// é«˜åº¦
    /// </summary>
    public decimal? SpecHeight { get; set; }
    /// <summary>
    /// é™é•¿
    /// </summary>
    public decimal? LimitLength { get; set; }
    /// <summary>
    /// é™å®½
    /// </summary>
    public decimal? LimitWidth { get; set; }
    /// <summary>
    /// é™é«˜
    /// </summary>
    public decimal? LimitHeight { get; set; }
    /// <summary>
    /// è½½é‡ä¸Šé™
    /// </summary>
    public decimal? MaxWeight { get; set; }
    /// <summary>
    /// å¼‚常数量
    /// </summary>
    public int? ExceptionNumber { get; set; }
    /// <summary>
    ///物料数量
    /// </summary>
    public int? MaterialNumber { get; set; }
    /// <summary>
    /// å†—余字段1 - é¢„留扩展用途
    /// </summary>
    public string RedundantField1 { get; set; }
    /// <summary>
    /// å†—余字段2 - é¢„留扩展用途
    /// </summary>
    public string RedundantField2 { get; set; }
    /// <summary>
    /// å†—余字段3 - é¢„留扩展用途
    /// </summary>
    public string RedundantField3 { get; set; }
    /// <summary>
    /// å¤‡æ³¨
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainerDto.cs
@@ -1,3 +1,4 @@
using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Domain.Entities;
@@ -8,15 +9,82 @@
/// </summary>
public class WmsContainerDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp
{
    /// <summary>
    /// ç¼–号
    /// </summary>
    public virtual string Code { get; set; }
    /// <summary>
    /// åç§°
    /// æ‰˜ç›˜ç¼–号
    /// </summary>
    public virtual string Name { get; set; }
    public string ContainerNo { get; set; }
    /// <summary>
    /// æ‰˜ç›˜ç±»åž‹
    /// </summary>
    public ContainerTypeEnum ContainerType { get; set; }
    /// <summary>
    /// æ‰˜ç›˜çŠ¶æ€
    /// </summary>
    public ContainerStatusEnum ContainerStatus { get; set; }
    /// <summary>
    /// é•¿åº¦
    /// </summary>
    public decimal? SpecLength { get; set; }
    /// <summary>
    /// å®½åº¦
    /// </summary>
    public decimal? SpecWidth { get; set; }
    /// <summary>
    /// é«˜åº¦
    /// </summary>
    public decimal? SpecHeight { get; set; }
    /// <summary>
    /// é™é•¿
    /// </summary>
    public decimal? LimitLength { get; set; }
    /// <summary>
    /// é™å®½
    /// </summary>
    public decimal? LimitWidth { get; set; }
    /// <summary>
    /// é™é«˜
    /// </summary>
    public decimal? LimitHeight { get; set; }
    /// <summary>
    /// è½½é‡ä¸Šé™
    /// </summary>
    public decimal? MaxWeight { get; set; }
    /// <summary>
    /// å¼‚常数量
    /// </summary>
    public int? ExceptionNumber { get; set; }
    /// <summary>
    ///物料数量
    /// </summary>
    public int? MaterialNumber { get; set; }
    /// <summary>
    /// å†—余字段1 - é¢„留扩展用途
    /// </summary>
    public string RedundantField1 { get; set; }
    /// <summary>
    /// å†—余字段2 - é¢„留扩展用途
    /// </summary>
    public string RedundantField2 { get; set; }
    /// <summary>
    /// å†—余字段3 - é¢„留扩展用途
    /// </summary>
    public string RedundantField3 { get; set; }
    /// <summary>
    /// æŽ’序
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainersExportModel.cs
@@ -1,3 +1,4 @@
using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using MiniExcelLibs.Attributes;
namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers
@@ -12,12 +13,99 @@
        /// </summary>
        public class WorkSectionExportModel
        {
            [ExcelColumn(Name = "名称", Width = 25)]
            public virtual string Name { get; set; }
            /// <summary>
            /// æ‰˜ç›˜ç¼–号
            /// </summary>
            [ExcelColumn(Name = "托盘编号", Width = 25)]
            public string ContainerNo { get; set; }
            [ExcelColumn(Name = "编号", Width = 25)]
            public virtual string Code { get; set; }
            /// <summary>
            /// æ‰˜ç›˜ç±»åž‹
            /// </summary>
            [ExcelColumn(Name = "托盘类型", Width = 25)]
            public ContainerTypeEnum ContainerType { get; set; }
            /// <summary>
            /// æ‰˜ç›˜çŠ¶æ€
            /// </summary>
            [ExcelColumn(Name = "托盘状态", Width = 25)]
            public ContainerStatusEnum ContainerStatus { get; set; }
            /// <summary>
            /// é•¿åº¦
            /// </summary>
            [ExcelColumn(Name = "长度", Width = 25)]
            public decimal? SpecLength { get; set; }
            /// <summary>
            /// å®½åº¦
            /// </summary>
            [ExcelColumn(Name = "宽度", Width = 25)]
            public decimal? SpecWidth { get; set; }
            /// <summary>
            /// é«˜åº¦
            /// </summary>
            [ExcelColumn(Name = "高度", Width = 25)]
            public decimal? SpecHeight { get; set; }
            /// <summary>
            /// é™é•¿
            /// </summary>
            [ExcelColumn(Name = "限长", Width = 25)]
            public decimal? LimitLength { get; set; }
            /// <summary>
            /// é™å®½
            /// </summary>
            [ExcelColumn(Name = "限宽", Width = 25)]
            public decimal? LimitWidth { get; set; }
            /// <summary>
            /// é™é«˜
            /// </summary>
            [ExcelColumn(Name = "限高", Width = 25)]
            public decimal? LimitHeight { get; set; }
            /// <summary>
            /// è½½é‡ä¸Šé™
            /// </summary>
            [ExcelColumn(Name = "载重上限", Width = 25)]
            public decimal? MaxWeight { get; set; }
            /// <summary>
            /// å¼‚常数量
            /// </summary>
            [ExcelColumn(Name = "异常数量", Width = 25)]
            public int? ExceptionNumber { get; set; }
            /// <summary>
            /// ç‰©æ–™æ•°é‡
            /// </summary>
            [ExcelColumn(Name = "物料数量", Width = 25)]
            public int? MaterialNumber { get; set; }
            /// <summary>
            /// å†—余字段1 - é¢„留扩展用途
            /// </summary>
            [ExcelColumn(Name = "冗余字段1", Width = 25)]
            public string RedundantField1 { get; set; }
            /// <summary>
            /// å†—余字段2 - é¢„留扩展用途
            /// </summary>
            [ExcelColumn(Name = "冗余字段2", Width = 25)]
            public string RedundantField2 { get; set; }
            /// <summary>
            /// å†—余字段3 - é¢„留扩展用途
            /// </summary>
            [ExcelColumn(Name = "冗余字段3", Width = 25)]
            public string RedundantField3 { get; set; }
            /// <summary>
            /// å¤‡æ³¨
            /// </summary>
            [ExcelColumn(Name = "备注", Width = 25)]
            public virtual string Remark { get; set; }
        }
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerAppService.cs
@@ -52,15 +52,15 @@
    {
        await CheckCreateOrUpdateDtoAsync(input);
        var exist = await _wmscontainerRepository.NameExistAsync(input.Name);
        var exist = await _wmscontainerRepository.NameExistAsync(input.ContainerNo);
        if (exist)
        {
            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Name]);
            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.ContainerNo]);
        }
        var maxSort = await _wmscontainerRepository.GetMaxSortAsync();
        var sort = input.Sort ?? maxSort;
        var wmscontainer = new WmsContainer(GuidGenerator.Create(), input.Code, input.Name, sort, input.Remark);
        var wmscontainer = new WmsContainer { Id = GuidGenerator.Create(), ContainerNo = input.ContainerNo, Remark = input.Remark };
        input.MapExtraPropertiesTo(wmscontainer, MappingPropertyDefinitionChecks.None);
        await _wmscontainerRepository.InsertAsync(wmscontainer);
@@ -79,16 +79,16 @@
        await CheckCreateOrUpdateDtoAsync(input);
        var wmscontainer = await _wmscontainerRepository.GetAsync(id);
        var exist = await _wmscontainerRepository.NameExistAsync(input.Name, wmscontainer.Id);
        var exist = await _wmscontainerRepository.NameExistAsync(input.ContainerNo, wmscontainer.Id);
        if (exist)
        {
            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Name]);
            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.ContainerNo]);
        }
        wmscontainer.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
        input.MapExtraPropertiesTo(wmscontainer, MappingPropertyDefinitionChecks.None);
        wmscontainer.Update(input.Code, input.Name, input.Remark);
        wmscontainer.ContainerStatus = input.ContainerStatus;
        await _wmscontainerRepository.UpdateAsync(wmscontainer);
@@ -107,21 +107,21 @@
                var wmscontainer = await _wmscontainerRepository.FindAsync(id);
                if (wmscontainer != null)
                {
                    var name = wmscontainer.Name + WmsContainerConsts.CloneTag;
                    var containerNo = wmscontainer.ContainerNo + WmsContainerConsts.CloneTag;
                    var notExist = false;
                    while (!notExist)
                    {
                        var exist = await _wmscontainerRepository.NameExistAsync(name);
                        if (exist || wmscontainers.Any(x => x.Name == name))
                        var exist = await _wmscontainerRepository.NameExistAsync(containerNo);
                        if (exist || wmscontainers.Any(x => x.ContainerNo == containerNo))
                        {
                            name += WmsContainerConsts.CloneTag;
                            containerNo += WmsContainerConsts.CloneTag;
                            continue;
                        }
                        notExist = true;
                    }
                    wmscontainer = await _wmscontainerRepository.InsertAsync(wmscontainer.Clone(GuidGenerator.Create(), name, sort++));
                    //wmscontainer = await _wmscontainerRepository.InsertAsync(wmscontainer.Clone(GuidGenerator.Create(), containerNo, sort++));
                    wmscontainers.Add(wmscontainer);
                }
            }
@@ -192,7 +192,7 @@
            #region å¯¼å…¥æ ¡éªŒ
            // åˆ¤æ–­åç§°æ˜¯å¦é‡å¤ï¼Œå¹¶è¾“出第几行重复
            var duplicateWmsContainers = wmscontainers.GroupBy(x => x.Name).Where(x => x.Count() > 1).ToList();
            var duplicateWmsContainers = wmscontainers.GroupBy(x => x.ContainerNo).Where(x => x.Count() > 1).ToList();
            if (duplicateWmsContainers?.Any() == true)
            {
                var duplicateWmsContainerMsgs = duplicateWmsContainers.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡Œï¼š{x.Key}  åç§°é‡å¤");
@@ -204,24 +204,24 @@
            foreach (var wmscontainer in wmscontainers)
            {
                if (wmscontainer.Code.IsNullOrWhiteSpace() && wmscontainer.Name.IsNullOrWhiteSpace())
                if (wmscontainer.ContainerNo.IsNullOrWhiteSpace() && wmscontainer.ContainerNo.IsNullOrWhiteSpace())
                {
                    continue;
                }
                if (wmscontainer.Name.IsNullOrWhiteSpace())
                if (wmscontainer.ContainerNo.IsNullOrWhiteSpace())
                {
                    var errorMsg = $"导入失败!配置,第{wmscontainer.RowIndex}行:WmsContainer名称不能为空";
                    throw new UserFriendlyException(errorMsg);
                }
                var oldWmsContainer = await _wmscontainerRepository.FindByNameAsync(wmscontainer.Name);
                var oldWmsContainer = await _wmscontainerRepository.FindByNameAsync(wmscontainer.ContainerNo);
                if (oldWmsContainer != null)
                {
                    var wmscontainerUpdateDto = new WmsContainerUpdateDto
                    {
                        Code = wmscontainer.Code,
                        Name = wmscontainer.Name,
                        ContainerNo = wmscontainer.ContainerNo,
                        ContainerStatus = wmscontainer.ContainerStatus,
                        Remark = wmscontainer.Remark,
                    };
@@ -231,8 +231,8 @@
                {
                    var wmscontainerCreateDto = new WmsContainerCreateDto
                    {
                        Code = wmscontainer.Code,
                        Name = wmscontainer.Name,
                        ContainerNo = wmscontainer.ContainerNo,
                        ContainerStatus = wmscontainer.ContainerStatus,
                        Remark = wmscontainer.Remark,
                    };
@@ -289,7 +289,7 @@
            ["配置"] = result.Select(x => x.GetExportData()).ToList(),
        };
        var fileName = result.Count > 1 ? "WmsContainer列表" : result.Count == 1 ? result.First()?.Name : "WmsContainer模版";
        var fileName = result.Count > 1 ? "WmsContainer列表" : result.Count == 1 ? result.First()?.ContainerNo : "WmsContainer模版";
        return (sheets, fileName);
    }
@@ -300,8 +300,7 @@
    protected Task CheckCreateOrUpdateDtoAsync(WmsContainerCreateOrUpdateDtoBase input)
    {
        Check.NotNull(input, nameof(input));
        Check.NotNullOrWhiteSpace(input.Code, "编号", WmsContainerConsts.MaxCodeLength);
        Check.NotNullOrWhiteSpace(input.Name, "名称", WmsContainerConsts.MaxNameLength);
        Check.NotNullOrWhiteSpace(input.ContainerNo, "编号", WmsContainerConsts.MaxCodeLength);
        Check.Length(input.Remark, "备注", WmsContainerConsts.MaxRemarkLength);
        return Task.CompletedTask;
    }
HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/ContainerStatusEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CMS.Plugin.HIAWms.Domain.Shared.Enums
{
    /// <summary>
    /// æ‰˜ç›˜çŠ¶æ€
    /// </summary>
    [Description("托盘状态")]
    public enum ContainerStatusEnum
    {
        /// <summary>
        /// ç©ºé—²
        /// </summary>
        [Description("空闲")]
        KOUXIAN = 1,
        /// <summary>
        /// ç»„盘
        /// </summary>
        [Description("组盘")]
        ZUPANG = 2,
        /// <summary>
        /// åº“位
        /// </summary>
        [Description("库位")]
        KUWEI = 3,
        /// <summary>
        /// è™šæ‹Ÿåº“位
        /// </summary>
        [Description("虚拟库位")]
        XUNIKUWEI = 4,
        /// <summary>
        /// ç»„托
        /// </summary>
        [Description("组托")]
        ZUTUO = 5,
        /// <summary>
        /// å¼‚常
        /// </summary>
        [Description("异常")]
        EXCEPTION = 9,
    }
}
HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/ContainerTypeEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CMS.Plugin.HIAWms.Domain.Shared.Enums
{
    /// <summary>
    /// æ‰˜ç›˜ç±»åž‹
    /// </summary>
    [Description("托盘类型")]
    public enum ContainerTypeEnum
    {
        /// <summary>
        /// è‡ªåˆ¶ä»¶æ‰˜ç›˜
        /// </summary>
        [Description("自制件托盘")]
        ZIZHIJIAN = 1,
        /// <summary>
        /// å¤–协件托盘
        /// </summary>
        [Description("外协件托盘")]
        WAIXIEJIAN = 2,
        /// <summary>
        /// è™šæ‹Ÿæ‰˜ç›˜
        /// </summary>
        [Description("虚拟托盘")]
        XUNI = 3,
    }
}
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainer.cs
@@ -1,3 +1,4 @@
using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using CMS.Plugin.HIAWms.Domain.Shared.WmsContainers;
using Volo.Abp;
using Volo.Abp.Domain.Entities.Auditing;
@@ -10,66 +11,98 @@
    public class WmsContainer : FullAuditedAggregateRoot<Guid>
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="WmsContainer"/> class.
        /// ID
        /// </summary>
        protected WmsContainer()
        {
        }
        public Guid Id { get; set; }
        /// <summary>
        /// æ‰˜ç›˜ç¼–号
        /// </summary>
        public string ContainerNo { get; set; }
        /// <summary>
        /// Initializes a new instance of the <see cref="WmsContainer"/> class.
        /// æ‰˜ç›˜ç±»åž‹
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <param name="code">The code.</param>
        /// <param name="name">The name.</param>
        /// <param name="sort">The sort.</param>
        /// <param name="remark">The remark.</param>
        public WmsContainer(Guid id, string code, string name, int sort = 0, string remark = null) : base(id)
        {
            Code = Check.NotNullOrWhiteSpace(code, "编号", WmsContainerConsts.MaxCodeLength);
            Name = Check.NotNullOrWhiteSpace(name, "名称", WmsContainerConsts.MaxNameLength);
            Sort = sort;
            Remark = Check.Length(remark, "备注", WmsContainerConsts.MaxRemarkLength);
        }
        public ContainerTypeEnum ContainerType { get; set; }
        /// <summary>
        /// ç¼–号
        /// æ‰˜ç›˜çŠ¶æ€
        /// </summary>
        public virtual string Code { get; protected set; }
        public ContainerStatusEnum ContainerStatus { get; set; }
        /// <summary>
        /// åç§°
        /// é•¿åº¦
        /// </summary>
        public virtual string Name { get; protected set; }
        public decimal? SpecLength { get; set; }
        /// <summary>
        /// å®½åº¦
        /// </summary>
        public decimal? SpecWidth { get; set; }
        /// <summary>
        /// é«˜åº¦
        /// </summary>
        public decimal? SpecHeight { get; set; }
        /// <summary>
        /// é™é•¿
        /// </summary>
        public decimal? LimitLength { get; set; }
        /// <summary>
        /// é™å®½
        /// </summary>
        public decimal? LimitWidth { get; set; }
        /// <summary>
        /// é™é«˜
        /// </summary>
        public decimal? LimitHeight { get; set; }
        /// <summary>
        /// è½½é‡ä¸Šé™
        /// </summary>
        public decimal? MaxWeight { get; set; }
        /// <summary>
        /// å¼‚常数量
        /// </summary>
        public int? ExceptionNumber { get; set; }
        /// <summary>
        ///物料数量
        /// </summary>
        public int? MaterialNumber { get; set; }
        /// <summary>
        /// å†—余字段1 - é¢„留扩展用途
        /// </summary>
        public string RedundantField1 { get; set; }
        /// <summary>
        /// å†—余字段2 - é¢„留扩展用途
        /// </summary>
        public string RedundantField2 { get; set; }
        /// <summary>
        /// å†—余字段3 - é¢„留扩展用途
        /// </summary>
        public string RedundantField3 { get; set; }
        /// <summary>
        /// æŽ’序
        /// </summary>
        public virtual int Sort { get; protected set; }
        public virtual int Sort { get;  set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public virtual string Remark { get; protected set; }
        public virtual string Remark { get;  set; }
        /// <summary>
        /// æ˜¯å¦ç¦ç”¨
        /// </summary>
        public virtual bool? IsDisabled { get; protected set; }
        /// <summary>
        /// Updates the specified code.
        /// </summary>
        /// <param name="code">The code.</param>
        /// <param name="name">The name.</param>
        /// <param name="remark">The remark.</param>
        public virtual void Update(string code, string name, string remark = null, bool? isDisabled = null)
        {
            Code = Check.NotNullOrWhiteSpace(code, "编号", WmsContainerConsts.MaxCodeLength);
            Name = Check.NotNullOrWhiteSpace(name, "名称", WmsContainerConsts.MaxNameLength);
            Remark = Check.Length(remark, "备注", WmsContainerConsts.MaxRemarkLength);
            IsDisabled = isDisabled ?? IsDisabled;
        }
        public virtual bool? IsDisabled { get;  set; }
        /// <summary>
        /// Adjusts the sort.
@@ -80,16 +113,5 @@
            Sort = sort;
        }
        /// <summary>
        /// Clones the specified create.
        /// </summary>
        /// <param name="create">The create.</param>
        /// <param name="name">The name.</param>
        /// <param name="i">The i.</param>
        /// <returns></returns>
        public WmsContainer Clone(Guid create, string name, int i)
        {
            return new WmsContainer(create, Code, name, i, Remark);
        }
    }
}
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainerDataSeedContributor.cs
@@ -61,19 +61,7 @@
        /// </summary>
        private async Task SeedWmsContainerDataAsync()
        {
            using var unitofWork = _unitOfWorkManager.Begin(requiresNew: true);
            if (await _wmscontainerRepository.GetCountAsync() == 0)
            {
                var WmsContainers = new List<WmsContainer>();
                for (int i = 1; i <= 80; i++)
                {
                    var wmscontainer = new WmsContainer(_guidGenerator.Create(), $"WmsContainer_Code{i}", $"WmsContainer_Name{i}", i, $"WmsContainer_Remark{i}");
                    WmsContainers.Add(wmscontainer);
                }
                await _wmscontainerRepository.InsertManyAsync(WmsContainers);
                await unitofWork.SaveChangesAsync();
            }
        }
    }
}
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/WmsContainerSpecification.cs
@@ -7,7 +7,7 @@
    /// </summary>
    public class WmsContainerSpecification : Volo.Abp.Specifications.Specification<WmsContainer>
    {
        private readonly string _name;
        private readonly string _containerNo;
        /// <summary>
        /// Initializes a new instance of the <see cref="WmsContainerSpecification"/> class.
@@ -19,10 +19,10 @@
        /// <summary>
        /// Initializes a new instance of the <see cref="WmsContainerSpecification"/> class.
        /// </summary>
        /// <param name="name">The name.</param>
        public WmsContainerSpecification(string name = null)
        /// <param name="containerNo">The name.</param>
        public WmsContainerSpecification(string containerNo = null)
        {
            _name = name;
            _containerNo = containerNo;
        }
        /// <inheritdoc />
@@ -30,9 +30,9 @@
        {
            Expression<Func<WmsContainer, bool>> expression = c => 1 == 1;
            if (_name != null)
            if (_containerNo != null)
            {
                expression = expression.And(c => c.Name == _name);
                expression = expression.And(c => c.ContainerNo == _containerNo);
            }
            return expression;
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainer.cs
@@ -38,19 +38,78 @@
        builder.Entity<WmsContainer>(b =>
        {
            //Configure table & schema name
            b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsContainers").ToLower(), CMSPluginDbProperties.DbSchema).HasComment("WmsContainer");
            b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsContainers").ToLower(), CMSPluginDbProperties.DbSchema)
            .HasComment("托盘信息表");
            b.ConfigureByConvention();
            //Properties
            b.Property(x => x.Code).HasMaxLength(WmsContainerConsts.MaxCodeLength).IsRequired().HasComment("编码");
            b.Property(x => x.Name).HasMaxLength(WmsContainerConsts.MaxNameLength).IsRequired().HasComment("名称");
            b.Property(x => x.ContainerNo)
                .HasMaxLength(50)
                .IsRequired()
                .HasComment("托盘编号");
            b.Property(x => x.ContainerType)
                .IsRequired()
                .HasComment("托盘类型");
            b.Property(x => x.ContainerStatus)
                .IsRequired()
                .HasComment("托盘状态");
            b.Property(x => x.SpecLength)
                .HasPrecision(18, 2)
                .HasComment("长度");
            b.Property(x => x.SpecWidth)
                .HasPrecision(18, 2)
                .HasComment("宽度");
            b.Property(x => x.SpecHeight)
                .HasPrecision(18, 2)
                .HasComment("高度");
            b.Property(x => x.LimitLength)
                .HasPrecision(18, 2)
                .HasComment("限长");
            b.Property(x => x.LimitWidth)
                .HasPrecision(18, 2)
                .HasComment("限宽");
            b.Property(x => x.LimitHeight)
                .HasPrecision(18, 2)
                .HasComment("限高");
            b.Property(x => x.MaxWeight)
                .HasPrecision(18, 2)
                .HasComment("载重上限");
            b.Property(x => x.ExceptionNumber)
                .HasComment("异常数量");
            b.Property(x => x.MaterialNumber)
                .HasComment("物料数量");
            b.Property(x => x.RedundantField1)
                .HasMaxLength(200)
                .HasComment("冗余字段1 - é¢„留扩展用途");
            b.Property(x => x.RedundantField2)
                .HasMaxLength(200)
                .HasComment("冗余字段2 - é¢„留扩展用途");
            b.Property(x => x.RedundantField3)
                .HasMaxLength(200)
                .HasComment("冗余字段3 - é¢„留扩展用途");
            b.Property(x => x.Sort).HasComment("排序");
            b.Property(x => x.IsDisabled).IsRequired(false).HasComment("是否禁用");
            b.Property(x => x.Remark).HasMaxLength(WmsContainerConsts.MaxRemarkLength).IsRequired(false).HasComment("备注");
            b.HasIndex(u => u.Name);
            b.HasIndex(u => u.ContainerNo).IsUnique();
            b.HasIndex(u => u.ContainerType);
            b.HasIndex(u => u.ContainerStatus);
            b.ApplyObjectExtensionMappings();
        });
HIAWms/server/src/CMS.Plugin.HIAWms/ProjectService/HIAWmsProjectService.cs
@@ -161,24 +161,5 @@
            _logger.LogInformation($"ProcessAsync,Count={count}");
        }
        /// <summary>
        /// Executes the external API.
        /// </summary>
        private async Task ExecuteExternalApiAsync()
        {
            try
            {
                await _serviceProvider.GetRequiredService<IHIAWmsExternalApi>().CreateAsync(new WmsContainerCreateDto
                {
                    Name = "WmsContainer_Name",
                    Code = "WmsContainer_Code",
                });
            }
            catch (Exception e)
            {
              _logger.LogException(e);
            }
        }
    }
}
HIAWms/web/.env
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
# port ç«¯å£å·
VITE_PORT = 8001
VITE_APP_TITLE= CMS
VITE_API_URL = 'http://192.168.5.94:18002' # å¼€å‘版-育航
HIAWms/web/components.d.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}
declare module 'vue' {
  export interface GlobalComponents {
    BaseDialog: typeof import('./src/components/BaseDialog/index.vue')['default']
    ContextMenu: typeof import('./src/components/vue3-context-menu/ContextMenu.vue')['default']
    ContextMenuGroup: typeof import('./src/components/vue3-context-menu/ContextMenuGroup.vue')['default']
    ContextMenuIconCheck: typeof import('./src/components/vue3-context-menu/ContextMenuIconCheck.vue')['default']
    ContextMenuIconRight: typeof import('./src/components/vue3-context-menu/ContextMenuIconRight.vue')['default']
    ContextMenuItem: typeof import('./src/components/vue3-context-menu/ContextMenuItem.vue')['default']
    ContextMenuSeparator: typeof import('./src/components/vue3-context-menu/ContextMenuSeparator.vue')['default']
    ContextSubMenu: typeof import('./src/components/vue3-context-menu/ContextSubMenu.vue')['default']
    ContextSubMenuWrapper: typeof import('./src/components/vue3-context-menu/ContextSubMenuWrapper.vue')['default']
    CustomVxeColumn: typeof import('./src/components/Table/components/custom-vxe-column.vue')['default']
    DatePicker: typeof import('./src/components/DatePicker/index.vue')['default']
    Dialog: typeof import('./src/components/Dialog/index.vue')['default']
    ElButton: typeof import('element-plus/es')['ElButton']
    ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
    ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
    ElDialog: typeof import('element-plus/es')['ElDialog']
    ElDivider: typeof import('element-plus/es')['ElDivider']
    ElDrawer: typeof import('element-plus/es')['ElDrawer']
    ElDropdown: typeof import('element-plus/es')['ElDropdown']
    ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
    ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
    ElEmpty: typeof import('element-plus/es')['ElEmpty']
    ElForm: typeof import('element-plus/es')['ElForm']
    ElFormItem: typeof import('element-plus/es')['ElFormItem']
    ElIcon: typeof import('element-plus/es')['ElIcon']
    ElInput: typeof import('element-plus/es')['ElInput']
    ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
    ElMenu: typeof import('element-plus/es')['ElMenu']
    ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
    ElOption: typeof import('element-plus/es')['ElOption']
    ElPagination: typeof import('element-plus/es')['ElPagination']
    ElPopover: typeof import('element-plus/es')['ElPopover']
    ElRadio: typeof import('element-plus/es')['ElRadio']
    ElSelect: typeof import('element-plus/es')['ElSelect']
    ElTabPane: typeof import('element-plus/es')['ElTabPane']
    ElTabs: typeof import('element-plus/es')['ElTabs']
    ElTag: typeof import('element-plus/es')['ElTag']
    ElTooltip: typeof import('element-plus/es')['ElTooltip']
    ElUpload: typeof import('element-plus/es')['ElUpload']
    Menu: typeof import('./src/components/Menu/index.vue')['default']
    MenuBar: typeof import('./src/components/vue3-context-menu/MenuBar.vue')['default']
    MenuBarIconMenu: typeof import('./src/components/vue3-context-menu/MenuBarIconMenu.vue')['default']
    MyPages: typeof import('./src/components/MyPages/index.vue')['default']
    Pagination: typeof import('./src/components/Table/components/pagination.vue')['default']
    Pdf: typeof import('./src/components/Pdf/index.vue')['default']
    PrefixIcon: typeof import('./src/components/DatePicker/PrefixIcon.vue')['default']
    PreviewDialog: typeof import('./src/components/PreviewDialog/index.vue')['default']
    RouterLink: typeof import('vue-router')['RouterLink']
    RouterView: typeof import('vue-router')['RouterView']
    SettingItem: typeof import('./src/components/SettingItem/SettingItem.vue')['default']
    Table: typeof import('./src/components/Table/index.vue')['default']
    TouchScale: typeof import('./src/components/TouchScale/index.vue')['default']
    Upload: typeof import('./src/components/Upload/index.vue')['default']
  }
}
HIAWms/web/package-lock.json
ÎļþÌ«´ó
HIAWms/web/src/config/menu.ts
@@ -1,45 +1,17 @@
export const menu: Record<string,any>[] = [
  {
    "name": "测试",
    "path": "/information-base/Ress",
    "patchName": "Ress",
    "icon": "p",
    "notPage": false
  },
  {
    "name": "HIAWms",
    "path": "/information-base/HIAWms",
    "patchName": "HIAWms",
    "icon": "p",
    "notPage": false
  },
  {
    "name": "API请求",
    "path": "/information-base/Http",
    "patchName": "Http",
    "icon": "p",
    "notPage": false
  }
];
export const menuMap: Record<string,any> = {
  "Ress": {
    "name": "测试",
    "path": "/information-base/Ress",
    "patchName": "Ress",
    "icon": "p",
    "notPage": false
  },
  "HIAWms": {
    "name": "HIAWms",
    "path": "/information-base/HIAWms",
    "patchName": "HIAWms",
    "icon": "p",
    "notPage": false
  },
  "Http": {
    "name": "API请求",
    "path": "/information-base/Http",
    "patchName": "Http",
    "icon": "p",
    "notPage": false
  }
HIAWms/web/yarn.lock
ÎļþÌ«´ó