From 086e8d457fb6480f126aedbd2677c7e97bdac193 Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周三, 07 5月 2025 15:49:09 +0800 Subject: [PATCH] 任务管理修改 --- HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx | 8 HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx | 633 ++++--- HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockRecordRepository.cs | 4 HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx | 2 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs | 666 ++++---- HIAWms/project/Wms.cmsproj | 0 HIAWms/web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer.tsx | 142 HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer.tsx | 2 HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx | 618 ++++---- HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer.tsx | 142 HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts | 132 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordDto.cs | 252 +- HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx | 837 +++++----- HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs | 12 HIAWms/web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskDrawer/WmsTaskDrawer.tsx | 122 HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/Config.ts | 13 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs | 362 ++-- HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs | 616 ++++---- HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs | 8 19 files changed, 2,327 insertions(+), 2,244 deletions(-) diff --git a/HIAWms/project/Wms.cmsproj b/HIAWms/project/Wms.cmsproj index f0c3434..ef5ad2d 100644 --- a/HIAWms/project/Wms.cmsproj +++ b/HIAWms/project/Wms.cmsproj Binary files differ diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordDto.cs index e0cb33a..afbb825 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordDto.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordDto.cs @@ -1,156 +1,156 @@ -using CMS.Plugin.HIAWms.Domain.Shared.Enums; -using CmsQueryExtensions; -using Volo.Abp.Application.Dtos; -using Volo.Abp.Data; -using Volo.Abp.Domain.Entities; - - -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; - +using CMS.Plugin.HIAWms.Domain.Shared.Enums; +using CmsQueryExtensions; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Data; +using Volo.Abp.Domain.Entities; + + +namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; + /// <summary> /// 鍑哄叆搴撹褰曟暟鎹弬鏁板璞� /// </summary> -public class WmsInOutStockRecordDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp -{ - /// <summary> - /// 鍗曟嵁缂栧彿 - /// </summary> - public string OrderNo { get; set; } +public class WmsInOutStockRecordDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp +{ + /// <summary> + /// 鍗曟嵁缂栧彿 + /// </summary> + public string OrderNo { get; set; } - /// <summary> - /// 鐗╂枡鍚嶇О - /// </summary> - public string? MaterialName { get; set; } + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string? MaterialName { get; set; } - /// <summary> - /// 鐗╂枡浠跺彿 - /// </summary> - public string MaterialNo { get; set; } + /// <summary> + /// 鐗╂枡浠跺彿 + /// </summary> + public string MaterialNo { get; set; } - /// <summary> - /// 鎿嶄綔绫诲瀷 - /// </summary> - public StockTypeEnum StockType { get; set; } + /// <summary> + /// 鎿嶄綔绫诲瀷 + /// </summary> + public StockTypeEnum StockType { get; set; } - /// <summary> - /// 鎿嶄綔绫诲瀷 - /// </summary> - public string StockTypeDesc - { - get - { - return GetEnumDescriptionUtil.GetEnumDescription(StockType); - } - } - /// <summary> - /// 瀹瑰櫒缂栧彿 - /// </summary> - public string? ContainerNo { get; set; } + /// <summary> + /// 鎿嶄綔绫诲瀷 + /// </summary> + public string StockTypeDesc + { + get + { + return GetEnumDescriptionUtil.GetEnumDescription(StockType); + } + } + /// <summary> + /// 瀹瑰櫒缂栧彿 + /// </summary> + public string? ContainerNo { get; set; } - /// <summary> - /// 鏈哄瀷 - /// </summary> - public string? MaterialModel { get; set; } + /// <summary> + /// 鏈哄瀷 + /// </summary> + public string? MaterialModel { get; set; } - /// <summary> - /// 鎿嶄綔鏃堕棿 - /// </summary> - public DateTime? OperateTime { get; set; } + /// <summary> + /// 鎿嶄綔鏃堕棿 + /// </summary> + public DateTime? OperateTime { get; set; } - /// <summary> - /// 澶囨敞 - /// </summary> - public string? Remark { get; set; } + /// <summary> + /// 澶囨敞 + /// </summary> + public string? Remark { get; set; } - /// <summary> - /// 鐗╂枡ID - /// </summary> - public string MaterialId { get; set; } + /// <summary> + /// 鐗╂枡ID + /// </summary> + public string MaterialId { get; set; } - /// <summary> - /// 浠诲姟鍙� - /// </summary> - public string TaskNo { get; set; } + /// <summary> + /// 浠诲姟鍙� + /// </summary> + public string TaskNo { get; set; } - /// <summary> - /// 璧峰搴撲綅 - /// </summary> - public string? SourcePlace { get; set; } + /// <summary> + /// 璧峰搴撲綅 + /// </summary> + public string? SourcePlace { get; set; } - /// <summary> - /// 鐩爣搴撲綅 - /// </summary> - public string? ToPlace { get; set; } + /// <summary> + /// 鐩爣搴撲綅 + /// </summary> + public string? ToPlace { get; set; } - /// <summary> - /// 鎺掑簭 - /// </summary> - public int Sort { get; set; } + /// <summary> + /// 鎺掑簭 + /// </summary> + public int Sort { get; set; } - /// <summary> - /// 鏄惁绂佺敤 - /// </summary> - public bool? IsDisabled { get; set; } + /// <summary> + /// 鏄惁绂佺敤 + /// </summary> + public bool? IsDisabled { get; set; } - /// <summary> - /// - /// </summary> - public ExtraPropertyDictionary? ExtraProperties { get; set; } + /// <summary> + /// + /// </summary> + public ExtraPropertyDictionary? ExtraProperties { get; set; } - /// <summary> - /// - /// </summary> - public string? ConcurrencyStamp { get; set; } + /// <summary> + /// + /// </summary> + public string? ConcurrencyStamp { get; set; } - /// <summary> - /// - /// </summary> - public DateTime CreationTime { get; set; } + /// <summary> + /// + /// </summary> + public DateTime CreationTime { get; set; } - /// <summary> - /// - /// </summary> - public string? CreatorId { get; set; } + /// <summary> + /// + /// </summary> + public string? CreatorId { get; set; } - /// <summary> - /// - /// </summary> - public DateTime? LastModificationTime { get; set; } + /// <summary> + /// + /// </summary> + public DateTime? LastModificationTime { get; set; } - /// <summary> - /// - /// </summary> - public string? LastModifierId { get; set; } + /// <summary> + /// + /// </summary> + public string? LastModifierId { get; set; } - /// <summary> - /// - /// </summary> - public bool IsDeleted { get; set; } + /// <summary> + /// + /// </summary> + public bool IsDeleted { get; set; } - /// <summary> - /// - /// </summary> - public string? DeleterId { get; set; } + /// <summary> + /// + /// </summary> + public string? DeleterId { get; set; } - /// <summary> - /// - /// </summary> - public DateTime? DeletionTime { get; set; } + /// <summary> + /// + /// </summary> + public DateTime? DeletionTime { get; set; } - - + + /// <summary> /// Gets the export data. /// </summary> /// <returns></returns> - public Dictionary<string, object> GetExportData() - { - var exportData = new Dictionary<string, object>(); - foreach (var property in this.GetType().GetProperties()) - { - exportData.Add(property.Name, property.GetValue(this)); - } - - return exportData; - } -} + public Dictionary<string, object> GetExportData() + { + var exportData = new Dictionary<string, object>(); + foreach (var property in this.GetType().GetProperties()) + { + exportData.Add(property.Name, property.GetValue(this)); + } + + return exportData; + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs index e532081..4e0f858 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs @@ -1,206 +1,228 @@ -using CMS.Plugin.HIAWms.Domain.Shared.Enums; -using CmsQueryExtensions; -using Volo.Abp.Application.Dtos; -using Volo.Abp.Data; -using Volo.Abp.Domain.Entities; - - -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; - +using CMS.Plugin.HIAWms.Domain.Shared.Enums; +using CmsQueryExtensions; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Data; +using Volo.Abp.Domain.Entities; + + +namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; + /// <summary> /// Wms浠诲姟绠$悊鏁版嵁鍙傛暟瀵硅薄 /// </summary> -public class WmsTaskDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp -{ - /// <summary> - /// 浠诲姟鍙� - /// </summary> - public string TaskNo { get; set; } +public class WmsTaskDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp +{ + /// <summary> + /// 浠诲姟鍙� + /// </summary> + public string TaskNo { get; set; } - /// <summary> - /// 浠诲姟绫诲瀷 - /// </summary> - public TaskTypeEnum TaskType { get; set; } + /// <summary> + /// 浠诲姟绫诲瀷 + /// </summary> + public TaskTypeEnum TaskType { get; set; } - /// <summary> - /// 浠诲姟绫诲瀷 - /// </summary> - public string TaskTypeDesc - { - get - { - return GetEnumDescriptionUtil.GetEnumDescription(TaskType); - } - } - /// <summary> - /// 浠诲姟绛夌骇 - /// </summary> - public int TaskLevel { get; set; } + /// <summary> + /// 浠诲姟绫诲瀷 + /// </summary> + public string TaskTypeDesc + { + get + { + return GetEnumDescriptionUtil.GetEnumDescription(TaskType); + } + } + /// <summary> + /// 浠诲姟绛夌骇 + /// </summary> + public int TaskLevel { get; set; } - /// <summary> - /// 浠诲姟鐘舵�� - /// </summary> - public WmsTaskStatus TaskStatus { get; set; } + /// <summary> + /// 浠诲姟鐘舵�� + /// </summary> + public WmsTaskStatus TaskStatus { get; set; } - /// <summary> - /// 浠诲姟鐘舵�� - /// </summary> - public string TaskStatusDesc - { - get - { - return GetEnumDescriptionUtil.GetEnumDescription(TaskStatus); - } - } - /// <summary> - /// 鎵樼洏缂栧彿 - /// </summary> - public string? ContainerNo { get; set; } + /// <summary> + /// 浠诲姟鐘舵�� + /// </summary> + public string TaskStatusDesc + { + get + { + return GetEnumDescriptionUtil.GetEnumDescription(TaskStatus); + } + } + /// <summary> + /// 鎵樼洏缂栧彿 + /// </summary> + public string? ContainerNo { get; set; } - /// <summary> - /// 璧峰搴撲綅 - /// </summary> - public string? SourcePlace { get; set; } + /// <summary> + /// 璧峰搴撲綅 + /// </summary> + public string? SourcePlace { get; set; } - /// <summary> - /// 鐩爣搴撲綅 - /// </summary> - public string? ToPlace { get; set; } + /// <summary> + /// 鐩爣搴撲綅 + /// </summary> + public string? ToPlace { get; set; } - /// <summary> - /// 宸烽亾 - /// </summary> - public int? Aisle { get; set; } + /// <summary> + /// 宸烽亾 + /// </summary> + public int? Aisle { get; set; } - /// <summary> - /// 鍫嗗灈鏈篒D - /// </summary> - public int? DodeviceId { get; set; } + /// <summary> + /// 鍫嗗灈鏈篒D + /// </summary> + public int? DodeviceId { get; set; } - /// <summary> - /// 璁惧绫诲瀷 - /// </summary> - public int Dodevicetype { get; set; } + /// <summary> + /// 璁惧绫诲瀷 + /// </summary> + public DodevicetypeEnum Dodevicetype { get; set; } - /// <summary> - /// 璁惧浠诲姟鐘舵�� - /// </summary> - public int TaskDodeviceStatus { get; set; } + /// <summary> + /// 璁惧绫诲瀷Desc + /// </summary> + public string DodevicetypeDesc + { + get + { + return GetEnumDescriptionUtil.GetEnumDescription(Dodevicetype); + } + } - /// <summary> - /// WCS鏄惁鍙互璇诲彇 - /// </summary> - public bool IsRead { get; set; } + /// <summary> + /// 璁惧浠诲姟鐘舵�� + /// </summary> + public TaskDodeviceStatus TaskDodeviceStatus { get; set; } - /// <summary> - /// 瀛愪换鍔$被鍨� - /// </summary> - public SonTaskTypeEnum? SonTaskType { get; set; } + /// <summary> + /// 璁惧绫诲瀷Desc + /// </summary> + public string TaskDodeviceStatusDesc + { + get + { + return GetEnumDescriptionUtil.GetEnumDescription(TaskDodeviceStatus); + } + } - /// <summary> - /// 瀛愪换鍔$被鍨� - /// </summary> - public string? SonTaskTypeDesc - { - get - { - return GetEnumDescriptionUtil.GetEnumDescription(SonTaskType); - } - } - /// <summary> - /// 鏉ユ簮鍗曟嵁鍙� - /// </summary> - public string? SourceOrderNo { get; set; } + /// <summary> + /// WCS鏄惁鍙互璇诲彇 + /// </summary> + public bool IsRead { get; set; } - /// <summary> - /// 涓嬩釜浠诲姟鏄惁鐢熸垚鎴愬姛 - /// </summary> - public int? IsNextTask { get; set; } + /// <summary> + /// 瀛愪换鍔$被鍨� + /// </summary> + public SonTaskTypeEnum? SonTaskType { get; set; } - /// <summary> - /// 鍙彉鍙橀噺1 - /// </summary> - public string? MutableParam1 { get; set; } + /// <summary> + /// 瀛愪换鍔$被鍨� + /// </summary> + public string? SonTaskTypeDesc + { + get + { + return GetEnumDescriptionUtil.GetEnumDescription(SonTaskType); + } + } + /// <summary> + /// 鏉ユ簮鍗曟嵁鍙� + /// </summary> + public string? SourceOrderNo { get; set; } - /// <summary> - /// 鍙彉鍙橀噺2 - /// </summary> - public string? MutableParam2 { get; set; } + /// <summary> + /// 涓嬩釜浠诲姟鏄惁鐢熸垚鎴愬姛 + /// </summary> + public int? IsNextTask { get; set; } - /// <summary> - /// 鍙彉鍙橀噺3 - /// </summary> - public string? MutableParam3 { get; set; } + /// <summary> + /// 鍙彉鍙橀噺1 + /// </summary> + public string? MutableParam1 { get; set; } - /// <summary> - /// 鎺掑簭 - /// </summary> - public int Sort { get; set; } + /// <summary> + /// 鍙彉鍙橀噺2 + /// </summary> + public string? MutableParam2 { get; set; } - /// <summary> - /// 鏄惁绂佺敤 - /// </summary> - public bool? IsDisabled { get; set; } + /// <summary> + /// 鍙彉鍙橀噺3 + /// </summary> + public string? MutableParam3 { get; set; } - /// <summary> - /// - /// </summary> - public ExtraPropertyDictionary? ExtraProperties { get; set; } + /// <summary> + /// 鎺掑簭 + /// </summary> + public int Sort { get; set; } - /// <summary> - /// - /// </summary> - public string? ConcurrencyStamp { get; set; } + /// <summary> + /// 鏄惁绂佺敤 + /// </summary> + public bool? IsDisabled { get; set; } - /// <summary> - /// - /// </summary> - public DateTime CreationTime { get; set; } + /// <summary> + /// + /// </summary> + public ExtraPropertyDictionary? ExtraProperties { get; set; } - /// <summary> - /// - /// </summary> - public string? CreatorId { get; set; } + /// <summary> + /// + /// </summary> + public string? ConcurrencyStamp { get; set; } - /// <summary> - /// - /// </summary> - public DateTime? LastModificationTime { get; set; } + /// <summary> + /// + /// </summary> + public DateTime CreationTime { get; set; } - /// <summary> - /// - /// </summary> - public string? LastModifierId { get; set; } + /// <summary> + /// + /// </summary> + public string? CreatorId { get; set; } - /// <summary> - /// - /// </summary> - public bool IsDeleted { get; set; } + /// <summary> + /// + /// </summary> + public DateTime? LastModificationTime { get; set; } - /// <summary> - /// - /// </summary> - public string? DeleterId { get; set; } + /// <summary> + /// + /// </summary> + public string? LastModifierId { get; set; } - /// <summary> - /// - /// </summary> - public DateTime? DeletionTime { get; set; } + /// <summary> + /// + /// </summary> + public bool IsDeleted { get; set; } - - + /// <summary> + /// + /// </summary> + public string? DeleterId { get; set; } + + /// <summary> + /// + /// </summary> + public DateTime? DeletionTime { get; set; } + + + /// <summary> /// Gets the export data. /// </summary> /// <returns></returns> - public Dictionary<string, object> GetExportData() - { - var exportData = new Dictionary<string, object>(); - foreach (var property in this.GetType().GetProperties()) - { - exportData.Add(property.Name, property.GetValue(this)); - } - - return exportData; - } -} + public Dictionary<string, object> GetExportData() + { + var exportData = new Dictionary<string, object>(); + foreach (var property in this.GetType().GetProperties()) + { + exportData.Add(property.Name, property.GetValue(this)); + } + + return exportData; + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs index cb54fa7..44af241 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs @@ -1,127 +1,127 @@ -using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; -using CMS.Plugin.HIAWms.Application.Contracts.Services; -using CMS.Plugin.HIAWms.Domain.Shared; -using CmsQueryExtensions; -using CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; -using CmsQueryExtensions.Extension; -using System.Linq.Expressions; -using Volo.Abp; -using Volo.Abp.Application.Dtos; -using Volo.Abp.Data; -using Volo.Abp.ObjectExtending; -using Volo.Abp.ObjectMapping; - -namespace CMS.Plugin.HIAWms.Application.Implements; - +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; +using CMS.Plugin.HIAWms.Application.Contracts.Services; +using CMS.Plugin.HIAWms.Domain.Shared; +using CmsQueryExtensions; +using CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; +using CmsQueryExtensions.Extension; +using System.Linq.Expressions; +using Volo.Abp; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Data; +using Volo.Abp.ObjectExtending; +using Volo.Abp.ObjectMapping; + +namespace CMS.Plugin.HIAWms.Application.Implements; + /// <summary> /// 鍑哄叆搴撹褰曞簲鐢ㄦ湇鍔� /// </summary> -public class WmsInOutStockRecordAppService : CMSPluginAppService, IWmsInOutStockRecordAppService -{ - private readonly IWmsInOutStockRecordRepository wmsInOutStockRecordRepository; - +public class WmsInOutStockRecordAppService : CMSPluginAppService, IWmsInOutStockRecordAppService +{ + private readonly IWmsInOutStockRecordRepository wmsInOutStockRecordRepository; + /// <summary> /// Initializes a new instance of the <see cref="WmsInOutStockRecordAppService"/> class. /// </summary> /// <param name="WmsInOutStockRecordRepository">The task job repository.</param> - public WmsInOutStockRecordAppService(IWmsInOutStockRecordRepository _WmsInOutStockRecordRepository) - { - wmsInOutStockRecordRepository = _WmsInOutStockRecordRepository; - } - + public WmsInOutStockRecordAppService(IWmsInOutStockRecordRepository _WmsInOutStockRecordRepository) + { + wmsInOutStockRecordRepository = _WmsInOutStockRecordRepository; + } + /// <summary> /// 鑾峰彇鎸囧畾鍑哄叆搴撹褰� /// </summary> /// <param name="id"></param> /// <returns></returns> - public virtual async Task<WmsInOutStockRecordDto> GetAsync(Guid id) - { - return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(await wmsInOutStockRecordRepository.GetAsync(id)); - } - + public virtual async Task<WmsInOutStockRecordDto> GetAsync(Guid id) + { + return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(await wmsInOutStockRecordRepository.GetAsync(id)); + } + /// <summary> /// 鍒嗛〉鑾峰彇鍑哄叆搴撹褰� /// </summary> /// <param name="input"></param> /// <returns></returns> - public virtual async Task<PagedResultDto<WmsInOutStockRecordDto>> GetListAsync(GetWmsInOutStockRecordInput input) - { - Check.NotNull(input, nameof(input)); - - if (input.Sorting.IsNullOrWhiteSpace()) - { - input.Sorting = nameof(WmsInOutStockRecord.Sort); - } - + public virtual async Task<PagedResultDto<WmsInOutStockRecordDto>> GetListAsync(GetWmsInOutStockRecordInput input) + { + Check.NotNull(input, nameof(input)); + + if (input.Sorting.IsNullOrWhiteSpace()) + { + input.Sorting = nameof(WmsInOutStockRecord.Sort); + } + #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� - + //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� - var whereConditions = DynamicGetQueryParams(input); - - #endregion - - var count = await wmsInOutStockRecordRepository.GetCountAsync(whereConditions); - var list = await wmsInOutStockRecordRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); - - return new PagedResultDto<WmsInOutStockRecordDto>(count, ObjectMapper.Map<List<WmsInOutStockRecord>, List<WmsInOutStockRecordDto>>(list)); - } - + var whereConditions = DynamicGetQueryParams(input); + + #endregion + + var count = await wmsInOutStockRecordRepository.GetCountAsync(whereConditions); + var list = await wmsInOutStockRecordRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); + + return new PagedResultDto<WmsInOutStockRecordDto>(count, ObjectMapper.Map<List<WmsInOutStockRecord>, List<WmsInOutStockRecordDto>>(list)); + } + /// <summary> /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� /// </summary> /// <param name="input">杈撳叆鍙傛暟</param> /// <returns></returns> - private FunReturnResultModel<Expression<Func<WmsInOutStockRecord, bool>>> DynamicGetQueryParams(GetWmsInOutStockRecordInput input) - { + private FunReturnResultModel<Expression<Func<WmsInOutStockRecord, bool>>> DynamicGetQueryParams(GetWmsInOutStockRecordInput input) + { //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� - var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsInOutStockRecord, GetWmsInOutStockRecordInput>(input); - if (!whereConditions.IsSuccess) - { - throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg); - } - + var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsInOutStockRecord, GetWmsInOutStockRecordInput>(input); + if (!whereConditions.IsSuccess) + { + throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg); + } + //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠� - Expression<Func<WmsInOutStockRecord, bool>> extendExpression = a => a.IsDeleted == false; + Expression<Func<WmsInOutStockRecord, bool>> extendExpression = a => a.IsDeleted == false; // 浣跨敤 System.Linq.PredicateBuilder 鐨� And - var pres = (System.Linq.Expressions.Expression<Func<WmsInOutStockRecord, bool>>)(whereConditions.data); - whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); - - return whereConditions; - } - + var pres = (System.Linq.Expressions.Expression<Func<WmsInOutStockRecord, bool>>)(whereConditions.data); + whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); + + return whereConditions; + } + /// <summary> /// 鏂板缓鍑哄叆搴撹褰� /// </summary> /// <param name="input"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> - public virtual async Task<WmsInOutStockRecordDto> CreateAsync(WmsInOutStockRecordCreateDto input) - { - await CheckCreateOrUpdateDtoAsync(input); - - var exist = await wmsInOutStockRecordRepository.NameExistAsync(input.Id); - if (exist) - { - throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Id]); - } - - var maxSort = await wmsInOutStockRecordRepository.GetMaxSortAsync(); - var sort = input.Sort ?? maxSort; - - var insertObj = ObjectMapper.Map<WmsInOutStockRecordCreateDto, WmsInOutStockRecord>(input); - insertObj.Sort = sort; - input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); - - await wmsInOutStockRecordRepository.InsertAsync(insertObj); - - if (input.Sort.HasValue && insertObj.Sort != maxSort) - { - await AdjustSortAsync(insertObj.Id, insertObj.Sort); - } - - return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(insertObj); - } - + public virtual async Task<WmsInOutStockRecordDto> CreateAsync(WmsInOutStockRecordCreateDto input) + { + await CheckCreateOrUpdateDtoAsync(input); + + //var exist = await wmsInOutStockRecordRepository.NameExistAsync(input.MaterialId); + //if (exist) + //{ + // throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]); + //} + + var maxSort = await wmsInOutStockRecordRepository.GetMaxSortAsync(); + var sort = input.Sort ?? maxSort; + + var insertObj = ObjectMapper.Map<WmsInOutStockRecordCreateDto, WmsInOutStockRecord>(input); + insertObj.Sort = sort; + input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); + + await wmsInOutStockRecordRepository.InsertAsync(insertObj); + + if (input.Sort.HasValue && insertObj.Sort != maxSort) + { + await AdjustSortAsync(insertObj.Id, insertObj.Sort); + } + + return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(insertObj); + } + /// <summary> /// 鏇存柊鍑哄叆搴撹褰� /// </summary> @@ -129,21 +129,21 @@ /// <param name="input"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> - public virtual async Task<WmsInOutStockRecordDto> UpdateAsync(Guid id, WmsInOutStockRecordUpdateDto input) - { - await CheckCreateOrUpdateDtoAsync(input); - - var updateObj = await wmsInOutStockRecordRepository.GetAsync(id); - var exist = await wmsInOutStockRecordRepository.NameExistAsync(input.Id, updateObj.Id); - if (exist) - { - throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Id]); - } - - updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); - input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); - - updateObj.OrderNo = input.OrderNo; + public virtual async Task<WmsInOutStockRecordDto> UpdateAsync(Guid id, WmsInOutStockRecordUpdateDto input) + { + await CheckCreateOrUpdateDtoAsync(input); + + var updateObj = await wmsInOutStockRecordRepository.GetAsync(id); + //var exist = await wmsInOutStockRecordRepository.NameExistAsync(input.Id, updateObj.Id); + //if (exist) + //{ + // throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Id]); + //} + + updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); + input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); + + updateObj.OrderNo = input.OrderNo; updateObj.MaterialName = input.MaterialName; updateObj.MaterialNo = input.MaterialNo; updateObj.StockType = input.StockType; @@ -156,20 +156,20 @@ updateObj.SourcePlace = input.SourcePlace; updateObj.ToPlace = input.ToPlace; updateObj.IsDisabled = input.IsDisabled; - - - await wmsInOutStockRecordRepository.UpdateAsync(updateObj); - - return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(updateObj); - } - + + + await wmsInOutStockRecordRepository.UpdateAsync(updateObj); + + return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(updateObj); + } + /// <summary> /// 鍏嬮殕鍑哄叆搴撹褰� /// </summary> /// <param name="ids"></param> /// <returns></returns> - public async Task<List<WmsInOutStockRecordDto>> CloneAsync(IEnumerable<Guid> ids) - { + public async Task<List<WmsInOutStockRecordDto>> CloneAsync(IEnumerable<Guid> ids) + { //var wmsInOutStockRecords = new List<WmsInOutStockRecord>(); //if (ids != null) //{ @@ -189,248 +189,248 @@ // name += WmsInOutStockRecordConsts.CloneTag; // continue; // } - + // notExist = true; // } - + // //WmsInOutStockRecord = await wmsInOutStockRecordRepository.InsertAsync(WmsInOutStockRecord.Clone(GuidGenerator.Create(), name, sort++)); // wmsInOutStockRecords.Add(WmsInOutStockRecord); // } // } //} - + //return ObjectMapper.Map<List<WmsInOutStockRecord>, List<WmsInOutStockRecordDto>>(wmsInOutStockRecords); - return new List<WmsInOutStockRecordDto>(); - } - + return new List<WmsInOutStockRecordDto>(); + } + /// <summary> /// 鍒犻櫎鍗曚釜鍑哄叆搴撹褰� /// </summary> /// <param name="id"></param> /// <returns></returns> - public virtual Task DeleteAsync(Guid id) - { - return wmsInOutStockRecordRepository.DeleteAsync(id); - } - + public virtual Task DeleteAsync(Guid id) + { + return wmsInOutStockRecordRepository.DeleteAsync(id); + } + /// <summary> /// 鍒犻櫎澶氫釜鍑哄叆搴撹褰� /// </summary> /// <param name="ids"></param> /// <returns></returns> - public async Task DeleteManyAsync(IEnumerable<Guid> ids) - { - foreach (var id in ids) - { - await DeleteAsync(id); - } - } - + public async Task DeleteManyAsync(IEnumerable<Guid> ids) + { + foreach (var id in ids) + { + await DeleteAsync(id); + } + } + /// <summary> /// 璋冩暣鎺掑簭鍑哄叆搴撹褰� /// </summary> /// <param name="id"></param> /// <param name="sort"></param> /// <returns></returns> - public virtual async Task AdjustSortAsync(Guid id, int sort) - { - var list = await wmsInOutStockRecordRepository.GetListAsync(null, nameof(WmsInOutStockRecord.Sort)); - if (list != null && list.Any()) - { - var initSort = 1; - list.ForEach(x => x.AdjustSort(initSort++)); - var entity = list.FirstOrDefault(x => x.Id == id); - if (entity != null) - { - if (sort == 1) - { - list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); - } - else if (entity.Sort > sort) - { - list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); - list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); - } - else if (entity.Sort < sort) - { - list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); - list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); - } - - entity.AdjustSort(sort); - } - } - - await wmsInOutStockRecordRepository.UpdateManyAsync(list); - } - + public virtual async Task AdjustSortAsync(Guid id, int sort) + { + var list = await wmsInOutStockRecordRepository.GetListAsync(null, nameof(WmsInOutStockRecord.Sort)); + if (list != null && list.Any()) + { + var initSort = 1; + list.ForEach(x => x.AdjustSort(initSort++)); + var entity = list.FirstOrDefault(x => x.Id == id); + if (entity != null) + { + if (sort == 1) + { + list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); + } + else if (entity.Sort > sort) + { + list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); + list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); + } + else if (entity.Sort < sort) + { + list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); + list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); + } + + entity.AdjustSort(sort); + } + } + + await wmsInOutStockRecordRepository.UpdateManyAsync(list); + } + /// <summary> /// 瀵煎叆鍑哄叆搴撹褰� /// </summary> /// <param name="input"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> - public async Task ImportAsync(WmsInOutStockRecordsImportModel input) - { - Check.NotNull(input, nameof(input)); - - var wmsInOutStockRecordCreateDtos = new List<(int RowIndex, WmsInOutStockRecordCreateDto Item)>(); - var wmsInOutStockRecordUpdateDtos = new List<(int RowIndex, Guid Id, WmsInOutStockRecordUpdateDto Item)>(); - var importItems = input.WmsInOutStockRecords; - - if (importItems != null && importItems.Any()) - { + public async Task ImportAsync(WmsInOutStockRecordsImportModel input) + { + Check.NotNull(input, nameof(input)); + + var wmsInOutStockRecordCreateDtos = new List<(int RowIndex, WmsInOutStockRecordCreateDto Item)>(); + var wmsInOutStockRecordUpdateDtos = new List<(int RowIndex, Guid Id, WmsInOutStockRecordUpdateDto Item)>(); + var importItems = input.WmsInOutStockRecords; + + if (importItems != null && importItems.Any()) + { #region 瀵煎叆鏍¢獙 - + // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� - var duplicateWmsInOutStockRecords = importItems.GroupBy(x => x.Id).Where(x => x.Count() > 1).ToList(); - if (duplicateWmsInOutStockRecords?.Any() == true) - { - var duplicateWmsInOutStockRecordMsgs = duplicateWmsInOutStockRecords.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key} 鍚嶇О閲嶅"); - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsInOutStockRecordMsgs)}锛岀粓姝㈠鍏�"; - throw new UserFriendlyException(errorMsg); - } - - #endregion - - foreach (var impItem in importItems) - { - if (impItem.Id.IsNullOrWhiteSpace()) - { - continue; - } - - if (impItem.Id.IsNullOrWhiteSpace()) - { - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsInOutStockRecord鍚嶇О涓嶈兘涓虹┖"; - throw new UserFriendlyException(errorMsg); - } - - var oldWmsInOutStockRecord = await wmsInOutStockRecordRepository.FindByNameAsync(impItem.Id); - if (oldWmsInOutStockRecord != null) - { - var wmsInOutStockRecordUpdateDto = new WmsInOutStockRecordUpdateDto - { + var duplicateWmsInOutStockRecords = importItems.GroupBy(x => x.MaterialNo).Where(x => x.Count() > 1).ToList(); + if (duplicateWmsInOutStockRecords?.Any() == true) + { + var duplicateWmsInOutStockRecordMsgs = duplicateWmsInOutStockRecords.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key} 鍚嶇О閲嶅"); + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsInOutStockRecordMsgs)}锛岀粓姝㈠鍏�"; + throw new UserFriendlyException(errorMsg); + } + + #endregion + + foreach (var impItem in importItems) + { + if (impItem.MaterialNo.IsNullOrWhiteSpace()) + { + continue; + } + + if (impItem.MaterialNo.IsNullOrWhiteSpace()) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsInOutStockRecord鍚嶇О涓嶈兘涓虹┖"; + throw new UserFriendlyException(errorMsg); + } + + var oldWmsInOutStockRecord = await wmsInOutStockRecordRepository.FindByNameAsync(impItem.MaterialNo); + if (oldWmsInOutStockRecord != null) + { + var wmsInOutStockRecordUpdateDto = new WmsInOutStockRecordUpdateDto + { OrderNo = impItem.OrderNo, -MaterialName = impItem.MaterialName, -MaterialNo = impItem.MaterialNo, -StockType = impItem.StockType, -ContainerNo = impItem.ContainerNo, -MaterialModel = impItem.MaterialModel, -OperateTime = impItem.OperateTime, -Remark = impItem.Remark, -MaterialId = impItem.MaterialId, -TaskNo = impItem.TaskNo, -SourcePlace = impItem.SourcePlace, -ToPlace = impItem.ToPlace, -IsDisabled = impItem.IsDisabled, - - }; - - wmsInOutStockRecordUpdateDtos.Add((impItem.RowIndex, oldWmsInOutStockRecord.Id, wmsInOutStockRecordUpdateDto)); - } - else - { - var wmsInOutStockRecordCreateDto = new WmsInOutStockRecordCreateDto - { + MaterialName = impItem.MaterialName, + MaterialNo = impItem.MaterialNo, + StockType = impItem.StockType, + ContainerNo = impItem.ContainerNo, + MaterialModel = impItem.MaterialModel, + OperateTime = impItem.OperateTime, + Remark = impItem.Remark, + MaterialId = impItem.MaterialId, + TaskNo = impItem.TaskNo, + SourcePlace = impItem.SourcePlace, + ToPlace = impItem.ToPlace, + IsDisabled = impItem.IsDisabled, + + }; + + wmsInOutStockRecordUpdateDtos.Add((impItem.RowIndex, oldWmsInOutStockRecord.Id, wmsInOutStockRecordUpdateDto)); + } + else + { + var wmsInOutStockRecordCreateDto = new WmsInOutStockRecordCreateDto + { OrderNo = impItem.OrderNo, -MaterialName = impItem.MaterialName, -MaterialNo = impItem.MaterialNo, -StockType = impItem.StockType, -ContainerNo = impItem.ContainerNo, -MaterialModel = impItem.MaterialModel, -OperateTime = impItem.OperateTime, -Remark = impItem.Remark, -MaterialId = impItem.MaterialId, -TaskNo = impItem.TaskNo, -SourcePlace = impItem.SourcePlace, -ToPlace = impItem.ToPlace, -IsDisabled = impItem.IsDisabled, - - }; - - wmsInOutStockRecordCreateDtos.Add((impItem.RowIndex, wmsInOutStockRecordCreateDto)); - } - } - } - + MaterialName = impItem.MaterialName, + MaterialNo = impItem.MaterialNo, + StockType = impItem.StockType, + ContainerNo = impItem.ContainerNo, + MaterialModel = impItem.MaterialModel, + OperateTime = impItem.OperateTime, + Remark = impItem.Remark, + MaterialId = impItem.MaterialId, + TaskNo = impItem.TaskNo, + SourcePlace = impItem.SourcePlace, + ToPlace = impItem.ToPlace, + IsDisabled = impItem.IsDisabled, + + }; + + wmsInOutStockRecordCreateDtos.Add((impItem.RowIndex, wmsInOutStockRecordCreateDto)); + } + } + } + // 鏂板 - foreach (var wmsInOutStockRecordDto in wmsInOutStockRecordCreateDtos) - { - try - { - await CreateAsync(wmsInOutStockRecordDto.Item); - } - catch (Exception e) - { - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockRecordDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; - throw new UserFriendlyException(errorMsg); - } - } - + foreach (var wmsInOutStockRecordDto in wmsInOutStockRecordCreateDtos) + { + try + { + await CreateAsync(wmsInOutStockRecordDto.Item); + } + catch (Exception e) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockRecordDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; + throw new UserFriendlyException(errorMsg); + } + } + // 鏇存柊 - foreach (var wmsInOutStockRecordDto in wmsInOutStockRecordUpdateDtos) - { - try - { - await UpdateAsync(wmsInOutStockRecordDto.Id, wmsInOutStockRecordDto.Item); - } - catch (Exception e) - { - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockRecordDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; - throw new UserFriendlyException(errorMsg); - } - } - } - + foreach (var wmsInOutStockRecordDto in wmsInOutStockRecordUpdateDtos) + { + try + { + await UpdateAsync(wmsInOutStockRecordDto.Id, wmsInOutStockRecordDto.Item); + } + catch (Exception e) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockRecordDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; + throw new UserFriendlyException(errorMsg); + } + } + } + /// <summary> /// 瀵煎嚭鍑哄叆搴撹褰� /// </summary> /// <param name="input"></param> /// <returns></returns> - public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockRecordInput input) - { - Check.NotNull(input, nameof(input)); - - if (input.Sorting.IsNullOrWhiteSpace()) - { - input.Sorting = nameof(WmsInOutStockRecord.Sort); - } - + public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockRecordInput input) + { + Check.NotNull(input, nameof(input)); + + if (input.Sorting.IsNullOrWhiteSpace()) + { + input.Sorting = nameof(WmsInOutStockRecord.Sort); + } + #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� - + //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� - var whereConditions = DynamicGetQueryParams(input); - - #endregion - - - var list = await wmsInOutStockRecordRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); - var result = ObjectMapper.Map<List<WmsInOutStockRecord>, List<WmsInOutStockRecordDto>>(list); - - var sheets = new Dictionary<string, object> - { - ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result), - }; - - var fileName = result.Count > 1 ? "鍑哄叆搴撹褰曞垪琛�" : result.Count == 1 ? result[0]?.Id : "WmsInOutStockRecord妯$増"; - return (sheets, fileName); - } - + var whereConditions = DynamicGetQueryParams(input); + + #endregion + + + var list = await wmsInOutStockRecordRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); + var result = ObjectMapper.Map<List<WmsInOutStockRecord>, List<WmsInOutStockRecordDto>>(list); + + var sheets = new Dictionary<string, object> + { + ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result), + }; + + var fileName = result.Count > 1 ? "鍑哄叆搴撹褰曞垪琛�" : result.Count == 1 ? result[0]?.MaterialNo : "WmsInOutStockRecord妯$増"; + return (sheets, fileName); + } + /// <summary> /// 鏍¢獙鍑哄叆搴撹褰曪紝褰撴柊寤烘垨鏇存柊鏃� /// </summary> /// <param name="input"></param> /// <returns></returns> - protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockRecordCreateOrUpdateDtoBase input) - { - Check.NotNull(input, nameof(input)); - Check.NotNullOrWhiteSpace(input.OrderNo, "鍗曟嵁缂栧彿", 50); + protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockRecordCreateOrUpdateDtoBase input) + { + Check.NotNull(input, nameof(input)); + Check.NotNullOrWhiteSpace(input.OrderNo, "鍗曟嵁缂栧彿", 50); Check.NotNullOrWhiteSpace(input.MaterialNo, "鐗╂枡浠跺彿", 50); Check.NotNull(input.StockType, "鎿嶄綔绫诲瀷"); Check.NotNullOrWhiteSpace(input.MaterialId, "鐗╂枡ID", 50); Check.NotNullOrWhiteSpace(input.TaskNo, "浠诲姟鍙�", 50); - - return Task.CompletedTask; - } -} + + return Task.CompletedTask; + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs index 60c2611..5faca56 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs @@ -1,127 +1,151 @@ -using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; -using CMS.Plugin.HIAWms.Application.Contracts.Services; -using CMS.Plugin.HIAWms.Domain.Shared; -using CmsQueryExtensions; -using CMS.Plugin.HIAWms.Domain.WmsTask; -using CmsQueryExtensions.Extension; -using System.Linq.Expressions; -using Volo.Abp; -using Volo.Abp.Application.Dtos; -using Volo.Abp.Data; -using Volo.Abp.ObjectExtending; -using Volo.Abp.ObjectMapping; - -namespace CMS.Plugin.HIAWms.Application.Implements; - +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask; +using CMS.Plugin.HIAWms.Application.Contracts.Services; +using CMS.Plugin.HIAWms.Domain.Shared; +using CmsQueryExtensions; +using CMS.Plugin.HIAWms.Domain.WmsTask; +using CmsQueryExtensions.Extension; +using System.Linq.Expressions; +using Volo.Abp; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Data; +using Volo.Abp.ObjectExtending; +using Volo.Abp.ObjectMapping; +using CMS.Plugin.HIAWms.Domain.WmsContainers; +using CMS.Plugin.HIAWms.Domain.WmsPlaces; + +namespace CMS.Plugin.HIAWms.Application.Implements; + /// <summary> /// Wms浠诲姟绠$悊搴旂敤鏈嶅姟 /// </summary> -public class WmsTaskAppService : CMSPluginAppService, IWmsTaskAppService -{ - private readonly IWmsTaskRepository wmsTaskRepository; - +public class WmsTaskAppService : CMSPluginAppService, IWmsTaskAppService +{ + private readonly IWmsTaskRepository wmsTaskRepository; + private readonly IWmsContainerRepository _wmsContainerRepository; + private readonly IWmsPlaceRepository _wmsPlaceRepository; + /// <summary> /// Initializes a new instance of the <see cref="WmsTaskAppService"/> class. /// </summary> /// <param name="WmsTaskRepository">The task job repository.</param> - public WmsTaskAppService(IWmsTaskRepository _WmsTaskRepository) - { - wmsTaskRepository = _WmsTaskRepository; - } - + public WmsTaskAppService(IWmsTaskRepository _WmsTaskRepository, IWmsContainerRepository wmsContainerRepository, IWmsPlaceRepository wmsPlaceRepository) + { + wmsTaskRepository = _WmsTaskRepository; + _wmsContainerRepository = wmsContainerRepository; + _wmsPlaceRepository = wmsPlaceRepository; + } + /// <summary> /// 鑾峰彇鎸囧畾Wms浠诲姟绠$悊 /// </summary> /// <param name="id"></param> /// <returns></returns> - public virtual async Task<WmsTaskDto> GetAsync(Guid id) - { - return ObjectMapper.Map<WmsTask, WmsTaskDto>(await wmsTaskRepository.GetAsync(id)); - } - + public virtual async Task<WmsTaskDto> GetAsync(Guid id) + { + return ObjectMapper.Map<WmsTask, WmsTaskDto>(await wmsTaskRepository.GetAsync(id)); + } + /// <summary> /// 鍒嗛〉鑾峰彇Wms浠诲姟绠$悊 /// </summary> /// <param name="input"></param> /// <returns></returns> - public virtual async Task<PagedResultDto<WmsTaskDto>> GetListAsync(GetWmsTaskInput input) - { - Check.NotNull(input, nameof(input)); - - if (input.Sorting.IsNullOrWhiteSpace()) - { - input.Sorting = nameof(WmsTask.Sort); - } - + public virtual async Task<PagedResultDto<WmsTaskDto>> GetListAsync(GetWmsTaskInput input) + { + Check.NotNull(input, nameof(input)); + + if (input.Sorting.IsNullOrWhiteSpace()) + { + input.Sorting = nameof(WmsTask.Sort); + } + #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� - + //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� - var whereConditions = DynamicGetQueryParams(input); - - #endregion - - var count = await wmsTaskRepository.GetCountAsync(whereConditions); - var list = await wmsTaskRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); - - return new PagedResultDto<WmsTaskDto>(count, ObjectMapper.Map<List<WmsTask>, List<WmsTaskDto>>(list)); - } - + var whereConditions = DynamicGetQueryParams(input); + + #endregion + + var count = await wmsTaskRepository.GetCountAsync(whereConditions); + var list = await wmsTaskRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); + + return new PagedResultDto<WmsTaskDto>(count, ObjectMapper.Map<List<WmsTask>, List<WmsTaskDto>>(list)); + } + /// <summary> /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� /// </summary> /// <param name="input">杈撳叆鍙傛暟</param> /// <returns></returns> - private FunReturnResultModel<Expression<Func<WmsTask, bool>>> DynamicGetQueryParams(GetWmsTaskInput input) - { + private FunReturnResultModel<Expression<Func<WmsTask, bool>>> DynamicGetQueryParams(GetWmsTaskInput input) + { //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� - var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsTask, GetWmsTaskInput>(input); - if (!whereConditions.IsSuccess) - { - throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg); - } - + var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsTask, GetWmsTaskInput>(input); + if (!whereConditions.IsSuccess) + { + throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg); + } + //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠� - Expression<Func<WmsTask, bool>> extendExpression = a => a.IsDeleted == false; + Expression<Func<WmsTask, bool>> extendExpression = a => a.IsDeleted == false; // 浣跨敤 System.Linq.PredicateBuilder 鐨� And - var pres = (System.Linq.Expressions.Expression<Func<WmsTask, bool>>)(whereConditions.data); - whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); - - return whereConditions; - } - + var pres = (System.Linq.Expressions.Expression<Func<WmsTask, bool>>)(whereConditions.data); + whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); + + return whereConditions; + } + /// <summary> /// 鏂板缓Wms浠诲姟绠$悊 /// </summary> /// <param name="input"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> - public virtual async Task<WmsTaskDto> CreateAsync(WmsTaskCreateDto input) - { - await CheckCreateOrUpdateDtoAsync(input); - - var exist = await wmsTaskRepository.NameExistAsync(input.TaskNo); - if (exist) - { - throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskNo]); - } - - var maxSort = await wmsTaskRepository.GetMaxSortAsync(); - var sort = input.Sort ?? maxSort; - - var insertObj = ObjectMapper.Map<WmsTaskCreateDto, WmsTask>(input); - insertObj.Sort = sort; - input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); - - await wmsTaskRepository.InsertAsync(insertObj); - - if (input.Sort.HasValue && insertObj.Sort != maxSort) - { - await AdjustSortAsync(insertObj.Id, insertObj.Sort); - } - - return ObjectMapper.Map<WmsTask, WmsTaskDto>(insertObj); - } - + public virtual async Task<WmsTaskDto> CreateAsync(WmsTaskCreateDto input) + { + await CheckCreateOrUpdateDtoAsync(input); + + var exist = await wmsTaskRepository.NameExistAsync(input.TaskNo); + if (exist) + { + throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskNo]); + } + // 鏍¢獙鎵樼洏鏄惁瀛樺湪 + var existContainer = await _wmsContainerRepository.NameExistAsync(input.ContainerNo); + if (existContainer) + { + throw new UserFriendlyException("鎵樼洏涓嶅瓨鍦紝璇峰厛娣诲姞鎵樼洏"); + } + // 鏍¢獙鐗╂枡鏄惁瀛樺湪 + var existSourcePlace = await _wmsPlaceRepository.NameExistAsync(input.SourcePlace); + if (existSourcePlace) + { + throw new UserFriendlyException("璧峰搴撲綅涓嶅瓨鍦紝璇峰厛娣诲姞搴撲綅"); + } + //鏍¢獙搴撲綅鏄惁瀛樺湪 + var existToPlace = await _wmsPlaceRepository.NameExistAsync(input.ToPlace); + if (existToPlace) + { + throw new UserFriendlyException("鐩爣搴撲綅涓嶅瓨鍦紝璇峰厛娣诲姞搴撲綅"); + } + + var maxSort = await wmsTaskRepository.GetMaxSortAsync(); + var sort = input.Sort ?? maxSort; + + var insertObj = ObjectMapper.Map<WmsTaskCreateDto, WmsTask>(input); + insertObj.Sort = sort; + input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); + + await wmsTaskRepository.InsertAsync(insertObj); + + if (input.Sort.HasValue && insertObj.Sort != maxSort) + { + await AdjustSortAsync(insertObj.Id, insertObj.Sort); + } + + return ObjectMapper.Map<WmsTask, WmsTaskDto>(insertObj); + } + /// <summary> /// 鏇存柊Wms浠诲姟绠$悊 /// </summary> @@ -129,21 +153,21 @@ /// <param name="input"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> - public virtual async Task<WmsTaskDto> UpdateAsync(Guid id, WmsTaskUpdateDto input) - { - await CheckCreateOrUpdateDtoAsync(input); - - var updateObj = await wmsTaskRepository.GetAsync(id); - var exist = await wmsTaskRepository.NameExistAsync(input.TaskNo, updateObj.Id); - if (exist) - { - throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskNo]); - } - - updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); - input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); - - updateObj.TaskNo = input.TaskNo; + public virtual async Task<WmsTaskDto> UpdateAsync(Guid id, WmsTaskUpdateDto input) + { + await CheckCreateOrUpdateDtoAsync(input); + + var updateObj = await wmsTaskRepository.GetAsync(id); + var exist = await wmsTaskRepository.NameExistAsync(input.TaskNo, updateObj.Id); + if (exist) + { + throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskNo]); + } + + updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); + input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); + + updateObj.TaskNo = input.TaskNo; updateObj.TaskType = input.TaskType; updateObj.TaskLevel = input.TaskLevel; updateObj.TaskStatus = input.TaskStatus; @@ -162,20 +186,19 @@ updateObj.MutableParam2 = input.MutableParam2; updateObj.MutableParam3 = input.MutableParam3; updateObj.IsDisabled = input.IsDisabled; - - - await wmsTaskRepository.UpdateAsync(updateObj); - - return ObjectMapper.Map<WmsTask, WmsTaskDto>(updateObj); - } - + + await wmsTaskRepository.UpdateAsync(updateObj); + + return ObjectMapper.Map<WmsTask, WmsTaskDto>(updateObj); + } + /// <summary> /// 鍏嬮殕Wms浠诲姟绠$悊 /// </summary> /// <param name="ids"></param> /// <returns></returns> - public async Task<List<WmsTaskDto>> CloneAsync(IEnumerable<Guid> ids) - { + public async Task<List<WmsTaskDto>> CloneAsync(IEnumerable<Guid> ids) + { //var wmsTasks = new List<WmsTask>(); //if (ids != null) //{ @@ -195,262 +218,265 @@ // name += WmsTaskConsts.CloneTag; // continue; // } - + // notExist = true; // } - + // //WmsTask = await wmsTaskRepository.InsertAsync(WmsTask.Clone(GuidGenerator.Create(), name, sort++)); // wmsTasks.Add(WmsTask); // } // } //} - + //return ObjectMapper.Map<List<WmsTask>, List<WmsTaskDto>>(wmsTasks); - return new List<WmsTaskDto>(); - } - + return new List<WmsTaskDto>(); + } + /// <summary> /// 鍒犻櫎鍗曚釜Wms浠诲姟绠$悊 /// </summary> /// <param name="id"></param> /// <returns></returns> - public virtual Task DeleteAsync(Guid id) - { - return wmsTaskRepository.DeleteAsync(id); - } - + public virtual Task DeleteAsync(Guid id) + { + return wmsTaskRepository.DeleteAsync(id); + } + /// <summary> /// 鍒犻櫎澶氫釜Wms浠诲姟绠$悊 /// </summary> /// <param name="ids"></param> /// <returns></returns> - public async Task DeleteManyAsync(IEnumerable<Guid> ids) - { - foreach (var id in ids) - { - await DeleteAsync(id); - } - } - + public async Task DeleteManyAsync(IEnumerable<Guid> ids) + { + foreach (var id in ids) + { + await DeleteAsync(id); + } + } + /// <summary> /// 璋冩暣鎺掑簭Wms浠诲姟绠$悊 /// </summary> /// <param name="id"></param> /// <param name="sort"></param> /// <returns></returns> - public virtual async Task AdjustSortAsync(Guid id, int sort) - { - var list = await wmsTaskRepository.GetListAsync(null, nameof(WmsTask.Sort)); - if (list != null && list.Any()) - { - var initSort = 1; - list.ForEach(x => x.AdjustSort(initSort++)); - var entity = list.FirstOrDefault(x => x.Id == id); - if (entity != null) - { - if (sort == 1) - { - list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); - } - else if (entity.Sort > sort) - { - list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); - list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); - } - else if (entity.Sort < sort) - { - list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); - list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); - } - - entity.AdjustSort(sort); - } - } - - await wmsTaskRepository.UpdateManyAsync(list); - } - + public virtual async Task AdjustSortAsync(Guid id, int sort) + { + var list = await wmsTaskRepository.GetListAsync(null, nameof(WmsTask.Sort)); + if (list != null && list.Any()) + { + var initSort = 1; + list.ForEach(x => x.AdjustSort(initSort++)); + var entity = list.FirstOrDefault(x => x.Id == id); + if (entity != null) + { + if (sort == 1) + { + list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); + } + else if (entity.Sort > sort) + { + list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); + list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); + } + else if (entity.Sort < sort) + { + list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); + list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); + } + + entity.AdjustSort(sort); + } + } + + await wmsTaskRepository.UpdateManyAsync(list); + } + /// <summary> /// 瀵煎叆Wms浠诲姟绠$悊 /// </summary> /// <param name="input"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> - public async Task ImportAsync(WmsTasksImportModel input) - { - Check.NotNull(input, nameof(input)); - - var wmsTaskCreateDtos = new List<(int RowIndex, WmsTaskCreateDto Item)>(); - var wmsTaskUpdateDtos = new List<(int RowIndex, Guid Id, WmsTaskUpdateDto Item)>(); - var importItems = input.WmsTasks; - - if (importItems != null && importItems.Any()) - { + public async Task ImportAsync(WmsTasksImportModel input) + { + Check.NotNull(input, nameof(input)); + + var wmsTaskCreateDtos = new List<(int RowIndex, WmsTaskCreateDto Item)>(); + var wmsTaskUpdateDtos = new List<(int RowIndex, Guid Id, WmsTaskUpdateDto Item)>(); + var importItems = input.WmsTasks; + + if (importItems != null && importItems.Any()) + { #region 瀵煎叆鏍¢獙 - + // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� - var duplicateWmsTasks = importItems.GroupBy(x => x.TaskNo).Where(x => x.Count() > 1).ToList(); - if (duplicateWmsTasks?.Any() == true) - { - var duplicateWmsTaskMsgs = duplicateWmsTasks.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key} 鍚嶇О閲嶅"); - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsTaskMsgs)}锛岀粓姝㈠鍏�"; - throw new UserFriendlyException(errorMsg); - } - - #endregion - - foreach (var impItem in importItems) - { - if (impItem.TaskNo.IsNullOrWhiteSpace()) - { - continue; - } - - if (impItem.TaskNo.IsNullOrWhiteSpace()) - { - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsTask鍚嶇О涓嶈兘涓虹┖"; - throw new UserFriendlyException(errorMsg); - } - - var oldWmsTask = await wmsTaskRepository.FindByNameAsync(impItem.TaskNo); - if (oldWmsTask != null) - { - var wmsTaskUpdateDto = new WmsTaskUpdateDto - { + var duplicateWmsTasks = importItems.GroupBy(x => x.TaskNo).Where(x => x.Count() > 1).ToList(); + if (duplicateWmsTasks?.Any() == true) + { + var duplicateWmsTaskMsgs = duplicateWmsTasks.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key} 鍚嶇О閲嶅"); + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsTaskMsgs)}锛岀粓姝㈠鍏�"; + throw new UserFriendlyException(errorMsg); + } + + #endregion + + foreach (var impItem in importItems) + { + if (impItem.TaskNo.IsNullOrWhiteSpace()) + { + continue; + } + + if (impItem.TaskNo.IsNullOrWhiteSpace()) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsTask鍚嶇О涓嶈兘涓虹┖"; + throw new UserFriendlyException(errorMsg); + } + + var oldWmsTask = await wmsTaskRepository.FindByNameAsync(impItem.TaskNo); + if (oldWmsTask != null) + { + var wmsTaskUpdateDto = new WmsTaskUpdateDto + { TaskNo = impItem.TaskNo, -TaskType = impItem.TaskType, -TaskLevel = impItem.TaskLevel, -TaskStatus = impItem.TaskStatus, -ContainerNo = impItem.ContainerNo, -SourcePlace = impItem.SourcePlace, -ToPlace = impItem.ToPlace, -Aisle = impItem.Aisle, -DodeviceId = impItem.DodeviceId, -Dodevicetype = impItem.Dodevicetype, -TaskDodeviceStatus = impItem.TaskDodeviceStatus, -IsRead = impItem.IsRead, -SonTaskType = impItem.SonTaskType, -SourceOrderNo = impItem.SourceOrderNo, -IsNextTask = impItem.IsNextTask, -MutableParam1 = impItem.MutableParam1, -MutableParam2 = impItem.MutableParam2, -MutableParam3 = impItem.MutableParam3, -IsDisabled = impItem.IsDisabled, - - }; - - wmsTaskUpdateDtos.Add((impItem.RowIndex, oldWmsTask.Id, wmsTaskUpdateDto)); - } - else - { - var wmsTaskCreateDto = new WmsTaskCreateDto - { + TaskType = impItem.TaskType, + TaskLevel = impItem.TaskLevel, + TaskStatus = impItem.TaskStatus, + ContainerNo = impItem.ContainerNo, + SourcePlace = impItem.SourcePlace, + ToPlace = impItem.ToPlace, + Aisle = impItem.Aisle, + DodeviceId = impItem.DodeviceId, + Dodevicetype = impItem.Dodevicetype, + TaskDodeviceStatus = impItem.TaskDodeviceStatus, + IsRead = impItem.IsRead, + SonTaskType = impItem.SonTaskType, + SourceOrderNo = impItem.SourceOrderNo, + IsNextTask = impItem.IsNextTask, + MutableParam1 = impItem.MutableParam1, + MutableParam2 = impItem.MutableParam2, + MutableParam3 = impItem.MutableParam3, + IsDisabled = impItem.IsDisabled, + + }; + + wmsTaskUpdateDtos.Add((impItem.RowIndex, oldWmsTask.Id, wmsTaskUpdateDto)); + } + else + { + var wmsTaskCreateDto = new WmsTaskCreateDto + { TaskNo = impItem.TaskNo, -TaskType = impItem.TaskType, -TaskLevel = impItem.TaskLevel, -TaskStatus = impItem.TaskStatus, -ContainerNo = impItem.ContainerNo, -SourcePlace = impItem.SourcePlace, -ToPlace = impItem.ToPlace, -Aisle = impItem.Aisle, -DodeviceId = impItem.DodeviceId, -Dodevicetype = impItem.Dodevicetype, -TaskDodeviceStatus = impItem.TaskDodeviceStatus, -IsRead = impItem.IsRead, -SonTaskType = impItem.SonTaskType, -SourceOrderNo = impItem.SourceOrderNo, -IsNextTask = impItem.IsNextTask, -MutableParam1 = impItem.MutableParam1, -MutableParam2 = impItem.MutableParam2, -MutableParam3 = impItem.MutableParam3, -IsDisabled = impItem.IsDisabled, - - }; - - wmsTaskCreateDtos.Add((impItem.RowIndex, wmsTaskCreateDto)); - } - } - } - + TaskType = impItem.TaskType, + TaskLevel = impItem.TaskLevel, + TaskStatus = impItem.TaskStatus, + ContainerNo = impItem.ContainerNo, + SourcePlace = impItem.SourcePlace, + ToPlace = impItem.ToPlace, + Aisle = impItem.Aisle, + DodeviceId = impItem.DodeviceId, + Dodevicetype = impItem.Dodevicetype, + TaskDodeviceStatus = impItem.TaskDodeviceStatus, + IsRead = impItem.IsRead, + SonTaskType = impItem.SonTaskType, + SourceOrderNo = impItem.SourceOrderNo, + IsNextTask = impItem.IsNextTask, + MutableParam1 = impItem.MutableParam1, + MutableParam2 = impItem.MutableParam2, + MutableParam3 = impItem.MutableParam3, + IsDisabled = impItem.IsDisabled, + + }; + + wmsTaskCreateDtos.Add((impItem.RowIndex, wmsTaskCreateDto)); + } + } + } + // 鏂板 - foreach (var wmsTaskDto in wmsTaskCreateDtos) - { - try - { - await CreateAsync(wmsTaskDto.Item); - } - catch (Exception e) - { - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsTaskDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; - throw new UserFriendlyException(errorMsg); - } - } - + foreach (var wmsTaskDto in wmsTaskCreateDtos) + { + try + { + await CreateAsync(wmsTaskDto.Item); + } + catch (Exception e) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsTaskDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; + throw new UserFriendlyException(errorMsg); + } + } + // 鏇存柊 - foreach (var wmsTaskDto in wmsTaskUpdateDtos) - { - try - { - await UpdateAsync(wmsTaskDto.Id, wmsTaskDto.Item); - } - catch (Exception e) - { - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsTaskDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; - throw new UserFriendlyException(errorMsg); - } - } - } - + foreach (var wmsTaskDto in wmsTaskUpdateDtos) + { + try + { + await UpdateAsync(wmsTaskDto.Id, wmsTaskDto.Item); + } + catch (Exception e) + { + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsTaskDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; + throw new UserFriendlyException(errorMsg); + } + } + } + /// <summary> /// 瀵煎嚭Wms浠诲姟绠$悊 /// </summary> /// <param name="input"></param> /// <returns></returns> - public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsTaskInput input) - { - Check.NotNull(input, nameof(input)); - - if (input.Sorting.IsNullOrWhiteSpace()) - { - input.Sorting = nameof(WmsTask.Sort); - } - + public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsTaskInput input) + { + Check.NotNull(input, nameof(input)); + + if (input.Sorting.IsNullOrWhiteSpace()) + { + input.Sorting = nameof(WmsTask.Sort); + } + #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� - + //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� - var whereConditions = DynamicGetQueryParams(input); - - #endregion - - - var list = await wmsTaskRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); - var result = ObjectMapper.Map<List<WmsTask>, List<WmsTaskDto>>(list); - - var sheets = new Dictionary<string, object> - { - ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result), - }; - - var fileName = result.Count > 1 ? "Wms浠诲姟绠$悊鍒楄〃" : result.Count == 1 ? result[0]?.TaskNo : "WmsTask妯$増"; - return (sheets, fileName); - } - + var whereConditions = DynamicGetQueryParams(input); + + #endregion + + + var list = await wmsTaskRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); + var result = ObjectMapper.Map<List<WmsTask>, List<WmsTaskDto>>(list); + + var sheets = new Dictionary<string, object> + { + ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result), + }; + + var fileName = result.Count > 1 ? "Wms浠诲姟绠$悊鍒楄〃" : result.Count == 1 ? result[0]?.TaskNo : "WmsTask妯$増"; + return (sheets, fileName); + } + /// <summary> /// 鏍¢獙Wms浠诲姟绠$悊锛屽綋鏂板缓鎴栨洿鏂版椂 /// </summary> /// <param name="input"></param> /// <returns></returns> - protected Task CheckCreateOrUpdateDtoAsync(WmsTaskCreateOrUpdateDtoBase input) - { - Check.NotNull(input, nameof(input)); - Check.NotNullOrWhiteSpace(input.TaskNo, "浠诲姟鍙�", 50); + protected Task CheckCreateOrUpdateDtoAsync(WmsTaskCreateOrUpdateDtoBase input) + { + Check.NotNull(input, nameof(input)); + Check.NotNullOrWhiteSpace(input.TaskNo, "浠诲姟鍙�", 50); Check.NotNull(input.TaskType, "浠诲姟绫诲瀷"); Check.NotNull(input.TaskLevel, "浠诲姟绛夌骇"); Check.NotNull(input.TaskStatus, "浠诲姟鐘舵��"); Check.NotNull(input.Dodevicetype, "璁惧绫诲瀷"); + Check.NotNull(input.ContainerNo, "鎵樼洏鍙�"); + Check.NotNull(input.SourcePlace, "璧峰浣嶇疆"); + Check.NotNull(input.ToPlace, "鐩爣鏈煡"); Check.NotNull(input.TaskDodeviceStatus, "璁惧浠诲姟鐘舵��"); Check.NotNull(input.IsRead, "WCS鏄惁鍙互璇诲彇"); - - return Task.CompletedTask; - } -} + + return Task.CompletedTask; + } +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs index ac8893c..a96271d 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs @@ -12,18 +12,18 @@ /// <summary> /// 鎸夌収鍚嶇О鏌ユ壘Wms浠诲姟绠$悊 /// </summary> - /// <param name="name"></param> + /// <param name="taskNo"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - Task<WmsTask> FindByNameAsync(string name, CancellationToken cancellationToken = default); + Task<WmsTask> FindByNameAsync(string taskNo, CancellationToken cancellationToken = default); /// <summary> /// 楠岃瘉鍚嶇О鏄惁瀛樺湪Wms浠诲姟绠$悊 /// </summary> - /// <param name="name"></param> + /// <param name="taskNo"></param> /// <param name="id"></param> /// <returns></returns> - Task<bool> NameExistAsync(string name, Guid? id = null); + Task<bool> NameExistAsync(string taskNo, Guid? id = null); /// <summary> /// 鑾峰彇鏈�澶ф帓搴廤ms浠诲姟绠$悊 diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockRecordRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockRecordRepository.cs index 1b8c984..ee93546 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockRecordRepository.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockRecordRepository.cs @@ -36,7 +36,7 @@ .IncludeDetails() .Where(x => !x.IsDeleted) .OrderBy(t => t.Sort) - .FirstOrDefaultAsync(t => t.Id == name, GetCancellationToken(cancellationToken)); + .FirstOrDefaultAsync(t => t.MaterialNo == name, GetCancellationToken(cancellationToken)); } /// <summary> @@ -47,7 +47,7 @@ /// <returns></returns> public async Task<bool> NameExistAsync(string name, Guid? id = null) { - return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.Id == name); + return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialNo == name); } /// <summary> diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs index 290f2ef..d4dee6d 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs @@ -27,27 +27,27 @@ /// <summary> /// 鎸夌収鍚嶇О鏌ユ壘Wms浠诲姟绠$悊 /// </summary> - /// <param name="name"></param> + /// <param name="taskNo"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public virtual async Task<WmsTask> FindByNameAsync(string name, CancellationToken cancellationToken = default) + public virtual async Task<WmsTask> FindByNameAsync(string taskNo, CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) .IncludeDetails() .Where(x => !x.IsDeleted) .OrderBy(t => t.Sort) - .FirstOrDefaultAsync(t => t.TaskNo == name, GetCancellationToken(cancellationToken)); + .FirstOrDefaultAsync(t => t.TaskNo == taskNo, GetCancellationToken(cancellationToken)); } /// <summary> /// 楠岃瘉鍚嶇О鏄惁瀛樺湪Wms浠诲姟绠$悊 /// </summary> - /// <param name="name">鏍¢獙鍊�</param> + /// <param name="taskNo">鏍¢獙鍊�</param> /// <param name="id"></param> /// <returns></returns> - public async Task<bool> NameExistAsync(string name, Guid? id = null) + public async Task<bool> NameExistAsync(string taskNo, Guid? id = null) { - return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.TaskNo == name); + return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.TaskNo == taskNo); } /// <summary> diff --git a/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx b/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx index 5c2295b..55bb4ef 100644 --- a/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx @@ -1,308 +1,310 @@ -import { - ref, - onMounted, - reactive, - computed, - Ref, - watch, - SetupContext, - h, -} from 'vue' -import { injectModel } from '@/libs/Provider/Provider' -import { WmsInOutStockRecordDrawer } from '../Models/WmsInOutStockRecordDrawer' -import { ElMessage } from 'element-plus' -import isEqual from 'lodash/isEqual' -import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' -import { cloneDeep } from 'lodash' - -export const useWmsInOutStockRecordQueryDrawer = (props: any, ctx?: any) => { - const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>('WmsInOutStockRecordDrawer') - /** - * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 - */ - const initiateData: Ref<Record<string, any>> = ref({}) - const formData = ref<Record<string, any>>({}) - // ref - const formRef = ref() - - const disabled = ref(false) - - const current = computed(() => { - return props.row || null - }) - - const inputNumber = (attrs) => { - return ( - <el-input-number - min="1" - step="1" - precision="0" - {...attrs} - ></el-input-number> - ) - } - - const datePickerRange = (attrs) => { - return ( - <el-date-picker - type="daterange" - value-format="YYYY-MM-DD HH:mm:ss" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - {...attrs} - ></el-date-picker> - ) - } - - const dateTimePickerRange = (attrs) => { - return ( - <el-date-picker - type="datetimerange" - value-format="YYYY-MM-DD HH:mm:ss" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - {...attrs} - ></el-date-picker> - ) - } - - const visible = computed({ - get() { - return props.modelValue - }, - set(val) { - ctx.emit('update:modelValue', val) - }, - }) - /** - * 娣诲姞鐨刦orm瀛楁 - */ - const formItems = reactive([ - { - label: '鍗曟嵁缂栧彿', - prop: 'orderNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ崟鎹紪鍙�', - }, - { - label: '鐗╂枡鍚嶇О', - prop: 'materialName', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�', - }, - { - label: '鐗╂枡浠跺彿', - prop: 'materialNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�', - }, - { - label: '鎿嶄綔绫诲瀷', - prop: 'stockType', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ搷浣滅被鍨�', - }, - { - label: '瀹瑰櫒缂栧彿', - prop: 'containerNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�', - }, - { - label: '鏈哄瀷', - prop: 'materialModel', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ満鍨�', - }, - { - label: '鎿嶄綔鏃堕棿', - prop: 'operateTime', - el: (props: any, { attrs }: SetupContext) => { - return h(dateTimePickerRange, { - ...props, - clearable: true, - ...attrs, - }) - }, - width: '100%', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ搷浣滄椂闂�', - }, - { - label: '澶囨敞', - prop: 'remark', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ娉�', - }, - { - label: '鐗╂枡ID', - prop: 'materialId', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ墿鏂橧D', - }, - { - label: '浠诲姟鍙�', - prop: 'taskNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔″彿', - }, - { - label: '璧峰搴撲綅', - prop: 'sourcePlace', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', - }, - { - label: '鐩爣搴撲綅', - prop: 'toPlace', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', - }, - { - label: '鏄惁绂佺敤', - prop: 'isDisabled', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ槸鍚︾鐢�', - options: [{label: '鏄�',value: 'true'}, {label: '鍚�',value: 'false'}] - }, - { - label: '', - prop: 'creationTime', - el: (props: any, { attrs }: SetupContext) => { - return h(dateTimePickerRange, { - ...props, - clearable: true, - ...attrs, - }) - }, - width: '100%', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏�', - }, - ]) - /** - * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� - */ - const checkIsEqualObject = () => { - const data = { - formData: formData.value, - } - const check = isEqual(initiateData.value, data) - return check - } - const commonGetFormData=()=>{ - const data = { - orderNo: formData.value.orderNo || '', -materialName: formData.value.materialName || '', -materialNo: formData.value.materialNo || '', -stockType: formData.value.stockType || '', -containerNo: formData.value.containerNo || '', -materialModel: formData.value.materialModel || '', -operateTime: formData.value.operateTime || '', -remark: formData.value.remark || '', -materialId: formData.value.materialId || '', -taskNo: formData.value.taskNo || '', -sourcePlace: formData.value.sourcePlace || '', -toPlace: formData.value.toPlace || '', -isDisabled: formData.value.isDisabled || '', -creationTime: formData.value.creationTime || '', - } - return data; - } - const onClose = (done: () => void) => { - if (visible.value) { - visible.value = false - const data =commonGetFormData(); - ctx.emit('close', data) - } - } - /** - * 纭鏌ヨ - */ - const onConfirmQuery = async () => { - const data =commonGetFormData(); - ctx.emit('confirmQuery', data) - } - /** - * 閲嶇疆鏌ヨ - */ - const onReset = async () => { - formData.value = {} - formData.value.OrderNo = '' -formData.value.MaterialName = '' -formData.value.MaterialNo = '' -formData.value.StockType = '' -formData.value.ContainerNo = '' -formData.value.MaterialModel = '' -formData.value.OperateTime = '' -formData.value.Remark = '' -formData.value.MaterialId = '' -formData.value.TaskNo = '' -formData.value.SourcePlace = '' -formData.value.ToPlace = '' - //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢 - ctx.emit('restQuery'); - } - - const updateCheckData = () => { - initiateData.value = { - formData: { - ...formData.value, - }, - } - } - const updateFormItemOptions = (propName: string, enumData: any[]) => { - const item = formItems.find((item) => item.prop === propName) - if (item && enumData) { - item.options = enumData.map((item) => ({ - label: item.description, - value: item.value, - })) - } - } - /** - * 閫氱敤鏌ヨ鏋氫妇 - */ - const commonQueryEnumForFrom = async () => { - const stockTypeEnumEnum = await wmsInOutStockRecordDrawer.getWmsEnumData({ - EnumName: 'StockTypeEnum', -}) -updateFormItemOptions('stockType', stockTypeEnumEnum) - - } - commonQueryEnumForFrom() - /** - * 寮圭獥鎵撳紑鑾峰彇璇︽儏 - */ - const onOpen = async () => { - disabled.value = false - updateCheckData() - } - - watch(() => current.value, onOpen) - - return { - formItems, - formData, - visible, - formRef, - onOpen, - onClose, - onConfirmQuery, - onReset, - } -} +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsInOutStockRecordDrawer } from '../Models/WmsInOutStockRecordDrawer' +import { ElMessage } from 'element-plus' +import isEqual from 'lodash/isEqual' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { cloneDeep } from 'lodash' + +export const useWmsInOutStockRecordQueryDrawer = (props: any, ctx?: any) => { + const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>( + 'WmsInOutStockRecordDrawer' + ) + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + const initiateData: Ref<Record<string, any>> = ref({}) + const formData = ref<Record<string, any>>({}) + // ref + const formRef = ref() + + const disabled = ref(false) + + const current = computed(() => { + return props.row || null + }) + + const inputNumber = (attrs) => { + return ( + <el-input-number + min="1" + step="1" + precision="0" + {...attrs} + ></el-input-number> + ) + } + + const datePickerRange = (attrs) => { + return ( + <el-date-picker + type="daterange" + value-format="YYYY-MM-DD HH:mm:ss" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + {...attrs} + ></el-date-picker> + ) + } + + const dateTimePickerRange = (attrs) => { + return ( + <el-date-picker + type="datetimerange" + value-format="YYYY-MM-DD HH:mm:ss" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + {...attrs} + ></el-date-picker> + ) + } + + const visible = computed({ + get() { + return props.modelValue + }, + set(val) { + ctx.emit('update:modelValue', val) + }, + }) + /** + * 娣诲姞鐨刦orm瀛楁 + */ + const formItems = reactive([ + { + label: '鍗曟嵁缂栧彿', + prop: 'orderNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ崟鎹紪鍙�', + }, + { + label: '鐗╂枡鍚嶇О', + prop: 'materialName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�', + }, + { + label: '鐗╂枡浠跺彿', + prop: 'materialNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�', + }, + { + label: '鎿嶄綔绫诲瀷', + prop: 'stockType', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ搷浣滅被鍨�', + }, + { + label: '瀹瑰櫒缂栧彿', + prop: 'containerNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�', + }, + { + label: '鏈哄瀷', + prop: 'materialModel', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ満鍨�', + }, + { + label: '鎿嶄綔鏃堕棿', + prop: 'operateTime', + el: (props: any, { attrs }: SetupContext) => { + return h(dateTimePickerRange, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ搷浣滄椂闂�', + }, + { + label: '澶囨敞', + prop: 'remark', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ娉�', + }, + { + label: '鐗╂枡ID', + prop: 'materialId', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂橧D', + }, + { + label: '浠诲姟鍙�', + prop: 'taskNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔″彿', + }, + { + label: '璧峰搴撲綅', + prop: 'sourcePlace', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', + }, + { + label: '鐩爣搴撲綅', + prop: 'toPlace', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', + }, + { + label: '鏄惁绂佺敤', + prop: 'isDisabled', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ槸鍚︾鐢�', + options: [ + { label: '鏄�', value: 'true' }, + { label: '鍚�', value: 'false' }, + ], + }, + { + label: '鍒涘缓鏃堕棿', + prop: 'creationTime', + el: (props: any, { attrs }: SetupContext) => { + return h(dateTimePickerRange, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏�', + }, + ]) + /** + * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� + */ + const checkIsEqualObject = () => { + const data = { + formData: formData.value, + } + const check = isEqual(initiateData.value, data) + return check + } + const commonGetFormData = () => { + const data = { + orderNo: formData.value.orderNo || '', + materialName: formData.value.materialName || '', + materialNo: formData.value.materialNo || '', + stockType: formData.value.stockType || '', + containerNo: formData.value.containerNo || '', + materialModel: formData.value.materialModel || '', + operateTime: formData.value.operateTime || '', + remark: formData.value.remark || '', + materialId: formData.value.materialId || '', + taskNo: formData.value.taskNo || '', + sourcePlace: formData.value.sourcePlace || '', + toPlace: formData.value.toPlace || '', + isDisabled: formData.value.isDisabled || '', + creationTime: formData.value.creationTime || '', + } + return data + } + const onClose = (done: () => void) => { + if (visible.value) { + visible.value = false + const data = commonGetFormData() + ctx.emit('close', data) + } + } + /** + * 纭鏌ヨ + */ + const onConfirmQuery = async () => { + const data = commonGetFormData() + ctx.emit('confirmQuery', data) + } + /** + * 閲嶇疆鏌ヨ + */ + const onReset = async () => { + formData.value = {} + formData.value.OrderNo = '' + formData.value.MaterialName = '' + formData.value.MaterialNo = '' + formData.value.StockType = '' + formData.value.ContainerNo = '' + formData.value.MaterialModel = '' + formData.value.OperateTime = '' + formData.value.Remark = '' + formData.value.MaterialId = '' + formData.value.TaskNo = '' + formData.value.SourcePlace = '' + formData.value.ToPlace = '' + //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢 + ctx.emit('restQuery') + } + + const updateCheckData = () => { + initiateData.value = { + formData: { + ...formData.value, + }, + } + } + const updateFormItemOptions = (propName: string, enumData: any[]) => { + const item = formItems.find((item) => item.prop === propName) + if (item && enumData) { + item.options = enumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } + } + /** + * 閫氱敤鏌ヨ鏋氫妇 + */ + const commonQueryEnumForFrom = async () => { + const stockTypeEnumEnum = await wmsInOutStockRecordDrawer.getWmsEnumData({ + EnumName: 'StockTypeEnum', + }) + updateFormItemOptions('stockType', stockTypeEnumEnum) + } + commonQueryEnumForFrom() + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + disabled.value = false + updateCheckData() + } + + watch(() => current.value, onOpen) + + return { + formItems, + formData, + visible, + formRef, + onOpen, + onClose, + onConfirmQuery, + onReset, + } +} diff --git a/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer.tsx b/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer.tsx index e0f65e2..b936409 100644 --- a/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer.tsx @@ -52,7 +52,7 @@ <DyForm ref={formRef} formData={formData.value} - labelWidth="106px" + labelWidth="150px" formItemProps={formItems} ></DyForm> </BaseDrawer> diff --git a/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer.tsx b/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer.tsx index 5c44328..db7c61e 100644 --- a/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer.tsx @@ -1,71 +1,71 @@ -/* - * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� -*/ -import { SetupContext, defineComponent } from 'vue' -import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' -import styles from './WmsInOutStockRecordQueryDrawer.module.scss' -import { useWmsInOutStockRecordQueryDrawer } from '../../../../Controllers/WmsInOutStockRecordQueryDrawer.tsx' -import DyForm from '@/components/DyForm/DyForm' - -// @ts-ignore -export default defineComponent<{ - [key: string]: any -}>({ - name: '寮圭獥', - props: { - //鏋氫妇绫诲瀷瀛楀吀 - enumListDict:{ - type: Array as () => Array<{ key: string; value: object }>, // 瀹氫箟鏁扮粍鍏冪礌绫诲瀷 - default: () => [] // 榛樿鍊� - }, - modelValue: { - type: Boolean, - default: false, - }, - title: { - type: String, - default: '', - }, - row: { - type: Object, - }, - sort: { - type: Number, - default: 0, - }, - }, - emits: ['update:modelValue', 'close', 'submit', 'confirmquery1'], - setup(props: Record<string, any>, ctx: SetupContext) { - const { - onClose, - onConfirmQuery, - onOpen, - onReset, - formRef, - visible, - formItems, - formData, - } = useWmsInOutStockRecordQueryDrawer(props, ctx) - return () => ( - <BaseQueryDrawer - class={styles.drawer} - size="800px" - title={props.title || '楂樼骇鏌ヨ'} - v-model={visible.value} - close-on-click-modal={true} - onReset={onReset} - onConfirmQueryForBase={onConfirmQuery} - onOpen={onOpen} - before-close={onClose} - onClose={onClose} - > - <DyForm - ref={formRef} - formData={formData.value} - labelWidth="106px" - formItemProps={formItems} - ></DyForm> - </BaseQueryDrawer> - ) - }, -}) +/* + * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� + */ +import { SetupContext, defineComponent } from 'vue' +import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' +import styles from './WmsInOutStockRecordQueryDrawer.module.scss' +import { useWmsInOutStockRecordQueryDrawer } from '../../../../Controllers/WmsInOutStockRecordQueryDrawer.tsx' +import DyForm from '@/components/DyForm/DyForm' + +// @ts-ignore +export default defineComponent<{ + [key: string]: any +}>({ + name: '寮圭獥', + props: { + //鏋氫妇绫诲瀷瀛楀吀 + enumListDict: { + type: Array as () => Array<{ key: string; value: object }>, // 瀹氫箟鏁扮粍鍏冪礌绫诲瀷 + default: () => [], // 榛樿鍊� + }, + modelValue: { + type: Boolean, + default: false, + }, + title: { + type: String, + default: '', + }, + row: { + type: Object, + }, + sort: { + type: Number, + default: 0, + }, + }, + emits: ['update:modelValue', 'close', 'submit', 'confirmquery1'], + setup(props: Record<string, any>, ctx: SetupContext) { + const { + onClose, + onConfirmQuery, + onOpen, + onReset, + formRef, + visible, + formItems, + formData, + } = useWmsInOutStockRecordQueryDrawer(props, ctx) + return () => ( + <BaseQueryDrawer + class={styles.drawer} + size="800px" + title={props.title || '楂樼骇鏌ヨ'} + v-model={visible.value} + close-on-click-modal={true} + onReset={onReset} + onConfirmQueryForBase={onConfirmQuery} + onOpen={onOpen} + before-close={onClose} + onClose={onClose} + > + <DyForm + ref={formRef} + formData={formData.value} + labelWidth="150px" + formItemProps={formItems} + ></DyForm> + </BaseQueryDrawer> + ) + }, +}) diff --git a/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts b/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts index 5fa7863..98c79fe 100644 --- a/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts +++ b/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts @@ -1,67 +1,65 @@ -export const columns = [ - { - type: 'seq', - width: 60, - title: '搴忓彿', - }, - { - field: 'orderNo', - title: '鍗曟嵁缂栧彿', -}, -{ - field: 'materialName', - title: '鐗╂枡鍚嶇О', -}, -{ - field: 'materialNo', - title: '鐗╂枡浠跺彿', -}, -{ - field: 'stockTypeDesc', - title: '鎿嶄綔绫诲瀷', -}, -{ - field: 'containerNo', - title: '瀹瑰櫒缂栧彿', -}, -{ - field: 'materialModel', - title: '鏈哄瀷', -}, -{ - field: 'operateTime', - title: '鎿嶄綔鏃堕棿', -}, -{ - field: 'remark', - title: '澶囨敞', -}, -{ - field: 'materialId', - title: '鐗╂枡ID', -}, -{ - field: 'taskNo', - title: '浠诲姟鍙�', -}, -{ - field: 'sourcePlace', - title: '璧峰搴撲綅', -}, -{ - field: 'toPlace', - title: '鐩爣搴撲綅', -}, -{ - field: 'sort', - title: '鎺掑簭', -}, -{ - field: 'creationTime', - title: '', -}, -{ - field: 'deletionTime', - title: '', -}, -] +export const columns = [ + { + type: 'seq', + width: 60, + title: '搴忓彿', + }, + { + field: 'orderNo', + title: '鍗曟嵁缂栧彿', + }, + { + field: 'materialName', + title: '鐗╂枡鍚嶇О', + }, + { + field: 'materialNo', + title: '鐗╂枡浠跺彿', + }, + { + field: 'materialId', + title: '鐗╂枡ID', + }, + { + field: 'taskNo', + title: '浠诲姟鍙�', + }, + { + field: 'sourcePlace', + title: '璧峰搴撲綅', + }, + { + field: 'toPlace', + title: '鐩爣搴撲綅', + }, + { + field: 'stockTypeDesc', + title: '鎿嶄綔绫诲瀷', + }, + { + field: 'containerNo', + title: '瀹瑰櫒缂栧彿', + }, + { + field: 'materialModel', + title: '鏈哄瀷', + }, + { + field: 'remark', + title: '澶囨敞', + }, + // { + // field: 'sort', + // title: '鎺掑簭', + // }, + { + field: 'operateTime', + title: '鎿嶄綔鏃堕棿', + width: 180, + }, + { + field: 'creationTime', + title: '鍒涘缓鏃堕棿', + width: 180, + }, +] diff --git a/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx b/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx index 0fa6e7b..45b6773 100644 --- a/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx +++ b/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx @@ -1,308 +1,329 @@ -import { computed, defineComponent, onMounted, reactive, ref } from 'vue' -import type { Ref } from 'vue' -import BaseTable from '@/components/Table/Table' -import styles from './WmsInOutStockRecord.module.scss' -import { useWmsInOutStockRecord } from '../../../Controllers/WmsInOutStockRecord' -import IconButton from '@/components/IconButton/IconButton' -import WmsInOutStockRecordDrawer from '../Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer' -import WmsInOutStockRecordQueryDrawer from '../Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer' -import Search from '@/components/Search/Search' -import { columns } from './Config' -import TdButton from '@/components/TdButton/TdButton' -import { vPermission } from '@/libs/Permission/Permission' -import { - getWmsEnumData -} from '@/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordDrawer' -import { - ElInput, - ElSelect, - ElOption, - ElDatePicker, - ElForm, - ElFormItem, -} from 'element-plus' -import { injectModel } from '@/libs/Provider/Provider' - -interface RenderTableType { - url?: string - dataSource: Ref<any[]> - isDrag?: boolean - isChecked?: boolean - isHidePagination?: boolean - params?: Record<string, any> - autoHeight?: boolean -} - -export default defineComponent({ - name: 'WmsInOutStockRecord', - directives: { - permission: vPermission, - }, - setup(props, ctx) { - const { - dataSource, - contextMenu, - dialogConfig, - dialogConfigForQuery, - tableRef, - current, - search, - sort, - headers, - onError, - onSearch, - onRowClick, - onConfirmWmsInOutStockRecord, - onCheck, - onAddWmsInOutStockRecord, - onAdvancedQuery, - onExport, - openDetail, - onSuccess, - onBeforeUpload, - } = useWmsInOutStockRecord(props, ctx) - - //瀹氫箟楂樼骇鏌ヨ寮曠敤 - const wmsInOutStockRecordQueryDrawerRef=ref(null); - // 鏂板鐨勬煡璇㈡潯浠� - const queryForm = ref({ - searchVal: '', - str_searchFormInputAttrs:[] - }) - //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) - const _searchFormInputAttrs = ref([ - 'MaterialNo', 'ContainerNo' - ]); - const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ョ墿鏂欑紪鐮�/鎵樼洏'); - - - // 鍔ㄦ�佹灇涓鹃�夐」 - const enumOptions = reactive({ - stockType: [] as Array<{label: string; value: any }>, - }) - - // 鑾峰彇鏋氫妇鏁版嵁 - const fetchEnumData = async () => { - try { - const stockTypeEnumData = await getWmsEnumData({ - EnumName: 'StockTypeEnum', -}) -enumOptions.stockType = stockTypeEnumData.map((item) => ({ - label: item.description, - value: item.value, -})) - - } catch (error) { - console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error) - } - } - - // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹� - onMounted(() => { - fetchEnumData() - }) - - // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹� - const _curHighQueryData = ref({ searchVal: '',str_searchFormInputAttrs:[] }); - // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級 - const handleQueryForMain = async () => { - _curHighQueryData.value.searchVal = queryForm.value.searchVal; - _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; - tableRef.value.getList(_curHighQueryData.value) - } - // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級 - const handleQuery = async (extraParams = {}) => { - let filteredData = commonGetHighQueryForm(extraParams); - commonSaveCurHighQueryData(filteredData); - tableRef.value.getList(filteredData) - } - // 鏂扮増鐨勬煡璇㈤噸缃� - const resetQuery = () => { - queryForm.value.searchVal = '' - queryForm.value.str_searchFormInputAttrs=_searchFormInputAttrs.value; - } - //鏂扮増鐨勫鍑烘柟娉� - const handleExport=()=>{ - onExport(_curHighQueryData.value); - } - // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶 - const closeQuery = (extraParams={}) => { - let filteredData = commonGetHighQueryForm(extraParams); - console.log("closeQuery鏂规硶"); - console.log(filteredData); - commonSaveCurHighQueryData(filteredData); - } - //淇濆瓨鏌ヨ鍊� - const commonSaveCurHighQueryData=(filteredData={})=>{ - _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }; - _curHighQueryData.value.searchVal = queryForm.value.searchVal - _curHighQueryData.value.str_searchFormInputAttrs =_searchFormInputAttrs.value; - } - //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊� - const commonGetHighQueryForm=(extraParams={})=>{ - // 杩囨护鎺� undefined 鐨勫�� - let filteredData = Object.assign( - {}, - ...Object.entries(extraParams).map(([key, value]) => - value !== undefined ? { [key]: value } : {} - ) - ) - //缁勫悎妯$硦鏌ヨ - filteredData.searchVal = queryForm.value.searchVal - filteredData.str_searchFormInputAttrs =_searchFormInputAttrs.value; - return filteredData; - } - - - /** - * @returns 琛ㄦ牸 - */ - const RenderBaseTable = (props: RenderTableType) => { - const { - url, - dataSource, - isDrag, - isChecked, - isHidePagination, - params, - autoHeight, - } = props - - return ( - <div - class={{ - [styles.wmsInOutStockRecordList]: true, - }} - > - <BaseTable - ref={tableRef} - url={url} - sortUrlTpl="/api/v1/HIAWms/wmsInOutStockRecord/{id}/adjustsort/{sort}" - v-model:dataSource={dataSource.value} - columns={columns} - contextMenu={contextMenu} - params={params} - isDrag={isDrag} - isChecked={isChecked} - autoHeight={autoHeight} - onCheck={onCheck} - onRowClick={onRowClick} - isHidePagination={isHidePagination} - pageSize={20} - v-slots={{ - name: ({ row }: any) => { - return row?.name ? ( - <TdButton - onClick={() => openDetail(row)} - text={<span style="color:#5a84ff">璇︽儏</span>} - icon="scale" - tip={row?.name} - hover - > - {row?.name} - </TdButton> - ) : ( - '-' - ) - }, - }} - ></BaseTable> - </div> - ) - } - - return () => { - return ( - <div class={styles.wmsInOutStockRecordContent}> - {/* 娣诲姞/缂栬緫 */} - <WmsInOutStockRecordDrawer - v-model={dialogConfig.visible} - title={dialogConfig.title} - row={current.value} - sort={sort.value} - onConfirm={onConfirmWmsInOutStockRecord} - /> - {/* 楂樼骇鏌ヨ */} - <WmsInOutStockRecordQueryDrawer - ref="wmsInOutStockRecordQueryDrawerRef" - v-model={dialogConfigForQuery.visible} - title={dialogConfigForQuery.title} - row={current.value} - sort={sort.value} - onConfirmQuery={handleQuery} - onRestQuery={resetQuery} - onClose={closeQuery} - /> - - <div class={styles.headerContent}> - <div class={styles.header}> - <IconButton - v-permission="wmsInOutStockRecord-add" - icon="add-p" - onClick={onAddWmsInOutStockRecord} - type="primary" - > - 娣诲姞 - </IconButton> - <el-divider direction="vertical" /> - - <el-divider direction="vertical" /> - <el-upload - v-permission="wmsInOutStockRecord-import" - name="file" - accept=".xlsx,.xls,.csv" - show-file-list={false} - onError={onError} - onSuccess={onSuccess} - before-upload={onBeforeUpload} - headers={headers.value} - action="/api/v1/HIAWms/wmsInOutStockRecord/import" - > - <IconButton icon="in">瀵煎叆</IconButton> - </el-upload> - - <IconButton - v-permission="wmsInOutStockRecord-output" - icon="out" - onClick={handleExport} - > - 瀵煎嚭 - </IconButton> - </div> - <ElFormItem style={{ marginTop: '15px' }}> - <ElFormItem label="鍏抽敭瀛�"> - <ElInput - v-model={queryForm.value.searchVal} - placeholder={searchFormInputAttrs_Placeholder.value} - clearable - class={styles.formItem} - /> - </ElFormItem> - <IconButton type="primary" icon="search" onClick={handleQueryForMain}> - 鏌ヨ - </IconButton> +import { computed, defineComponent, onMounted, reactive, ref } from 'vue' +import type { Ref } from 'vue' +import BaseTable from '@/components/Table/Table' +import styles from './WmsInOutStockRecord.module.scss' +import { useWmsInOutStockRecord } from '../../../Controllers/WmsInOutStockRecord' +import IconButton from '@/components/IconButton/IconButton' +import WmsInOutStockRecordDrawer from '../Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer' +import WmsInOutStockRecordQueryDrawer from '../Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer' +import Search from '@/components/Search/Search' +import { columns } from './Config' +import TdButton from '@/components/TdButton/TdButton' +import { vPermission } from '@/libs/Permission/Permission' +import { getWmsEnumData } from '@/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordDrawer' +import dayjs from 'dayjs' +import { + ElInput, + ElSelect, + ElOption, + ElDatePicker, + ElForm, + ElFormItem, +} from 'element-plus' +import { injectModel } from '@/libs/Provider/Provider' + +interface RenderTableType { + url?: string + dataSource: Ref<any[]> + isDrag?: boolean + isChecked?: boolean + isHidePagination?: boolean + params?: Record<string, any> + autoHeight?: boolean +} + +export default defineComponent({ + name: 'WmsInOutStockRecord', + directives: { + permission: vPermission, + }, + setup(props, ctx) { + const { + dataSource, + contextMenu, + dialogConfig, + dialogConfigForQuery, + tableRef, + current, + search, + sort, + headers, + onError, + onSearch, + onRowClick, + onConfirmWmsInOutStockRecord, + onCheck, + onAddWmsInOutStockRecord, + onAdvancedQuery, + onExport, + openDetail, + onSuccess, + onBeforeUpload, + } = useWmsInOutStockRecord(props, ctx) + + //瀹氫箟楂樼骇鏌ヨ寮曠敤 + const wmsInOutStockRecordQueryDrawerRef = ref(null) + // 鏂板鐨勬煡璇㈡潯浠� + const queryForm = ref({ + searchVal: '', + str_searchFormInputAttrs: [], + }) + //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) + const _searchFormInputAttrs = ref(['MaterialNo', 'ContainerNo']) + const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ョ墿鏂欑紪鐮�/鎵樼洏') + + // 鍔ㄦ�佹灇涓鹃�夐」 + const enumOptions = reactive({ + stockType: [] as Array<{ label: string; value: any }>, + }) + + // 鑾峰彇鏋氫妇鏁版嵁 + const fetchEnumData = async () => { + try { + const stockTypeEnumData = await getWmsEnumData({ + EnumName: 'StockTypeEnum', + }) + enumOptions.stockType = stockTypeEnumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } catch (error) { + console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error) + } + } + + // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹� + onMounted(() => { + fetchEnumData() + }) + + // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹� + const _curHighQueryData = ref({ + searchVal: '', + str_searchFormInputAttrs: [], + }) + // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級 + const handleQueryForMain = async () => { + _curHighQueryData.value.searchVal = queryForm.value.searchVal + _curHighQueryData.value.str_searchFormInputAttrs = + _searchFormInputAttrs.value + tableRef.value.getList(_curHighQueryData.value) + } + // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級 + const handleQuery = async (extraParams = {}) => { + let filteredData = commonGetHighQueryForm(extraParams) + commonSaveCurHighQueryData(filteredData) + tableRef.value.getList(filteredData) + } + // 鏂扮増鐨勬煡璇㈤噸缃� + const resetQuery = () => { + queryForm.value.searchVal = '' + queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value + } + //鏂扮増鐨勫鍑烘柟娉� + const handleExport = () => { + onExport(_curHighQueryData.value) + } + // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶 + const closeQuery = (extraParams = {}) => { + let filteredData = commonGetHighQueryForm(extraParams) + console.log('closeQuery鏂规硶') + console.log(filteredData) + commonSaveCurHighQueryData(filteredData) + } + //淇濆瓨鏌ヨ鍊� + const commonSaveCurHighQueryData = (filteredData = {}) => { + _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData } + _curHighQueryData.value.searchVal = queryForm.value.searchVal + _curHighQueryData.value.str_searchFormInputAttrs = + _searchFormInputAttrs.value + } + //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊� + const commonGetHighQueryForm = (extraParams = {}) => { + // 杩囨护鎺� undefined 鐨勫�� + let filteredData = Object.assign( + {}, + ...Object.entries(extraParams).map(([key, value]) => + value !== undefined ? { [key]: value } : {} + ) + ) + //缁勫悎妯$硦鏌ヨ + filteredData.searchVal = queryForm.value.searchVal + filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value + return filteredData + } + + /** + * @returns 琛ㄦ牸 + */ + const RenderBaseTable = (props: RenderTableType) => { + const { + url, + dataSource, + isDrag, + isChecked, + isHidePagination, + params, + autoHeight, + } = props + + return ( + <div + class={{ + [styles.wmsInOutStockRecordList]: true, + }} + > + <BaseTable + ref={tableRef} + url={url} + sortUrlTpl="/api/v1/HIAWms/wmsInOutStockRecord/{id}/adjustsort/{sort}" + v-model:dataSource={dataSource.value} + columns={columns} + contextMenu={contextMenu} + params={params} + isDrag={isDrag} + isChecked={isChecked} + autoHeight={autoHeight} + onCheck={onCheck} + onRowClick={onRowClick} + isHidePagination={isHidePagination} + pageSize={20} + v-slots={{ + creationTime: ({ row }: any) => { + return ( + <div> + {row.creationTime != null + ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) + }, + operateTime: ({ row }: any) => { + return ( + <div> + {row.operateTime != null + ? dayjs(row.operateTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) + }, + name: ({ row }: any) => { + return row?.name ? ( + <TdButton + onClick={() => openDetail(row)} + text={<span style="color:#5a84ff">璇︽儏</span>} + icon="scale" + tip={row?.name} + hover + > + {row?.name} + </TdButton> + ) : ( + '-' + ) + }, + }} + ></BaseTable> + </div> + ) + } + + return () => { + return ( + <div class={styles.wmsInOutStockRecordContent}> + {/* 娣诲姞/缂栬緫 */} + <WmsInOutStockRecordDrawer + v-model={dialogConfig.visible} + title={dialogConfig.title} + row={current.value} + sort={sort.value} + onConfirm={onConfirmWmsInOutStockRecord} + /> + {/* 楂樼骇鏌ヨ */} + <WmsInOutStockRecordQueryDrawer + ref="wmsInOutStockRecordQueryDrawerRef" + v-model={dialogConfigForQuery.visible} + title={dialogConfigForQuery.title} + row={current.value} + sort={sort.value} + onConfirmQuery={handleQuery} + onRestQuery={resetQuery} + onClose={closeQuery} + /> + + <div class={styles.headerContent}> + <div class={styles.header}> + <IconButton + v-permission="wmsInOutStockRecord-add" + icon="add-p" + onClick={onAddWmsInOutStockRecord} + type="primary" + > + 娣诲姞 + </IconButton> + <el-divider direction="vertical" /> + + <el-divider direction="vertical" /> + {/* <el-upload + v-permission="wmsInOutStockRecord-import" + name="file" + accept=".xlsx,.xls,.csv" + show-file-list={false} + onError={onError} + onSuccess={onSuccess} + before-upload={onBeforeUpload} + headers={headers.value} + action="/api/v1/HIAWms/wmsInOutStockRecord/import" + > + <IconButton icon="in">瀵煎叆</IconButton> + </el-upload> */} + + <IconButton + v-permission="wmsInOutStockRecord-output" + icon="out" + onClick={handleExport} + > + 瀵煎嚭 + </IconButton> + </div> + <ElFormItem style={{ marginTop: '15px' }}> + <ElFormItem label="鍏抽敭瀛�"> + <ElInput + v-model={queryForm.value.searchVal} + placeholder={searchFormInputAttrs_Placeholder.value} + clearable + class={styles.formItem} + /> + </ElFormItem> + <IconButton + type="primary" + icon="search" + onClick={handleQueryForMain} + > + 鏌ヨ + </IconButton> {/* <IconButton style="" icon="refresh" onClick={resetQuery}> 閲嶇疆 - </IconButton> */} - <IconButton - v-permission="wmsInOutStockRecord-add" - icon="search" - onClick={onAdvancedQuery} - type="primary" - > - 楂樼骇鏌ヨ - </IconButton> - </ElFormItem> - </div> - - <RenderBaseTable - url="/api/v1/HIAWms/wmsInOutStockRecord/page" - dataSource={dataSource} - isChecked={true} - isDrag={true} - /> - </div> - ) - } - }, -}) + </IconButton> */} + <IconButton + v-permission="wmsInOutStockRecord-add" + icon="search" + onClick={onAdvancedQuery} + type="primary" + > + 楂樼骇鏌ヨ + </IconButton> + </ElFormItem> + </div> + + <RenderBaseTable + url="/api/v1/HIAWms/wmsInOutStockRecord/page" + dataSource={dataSource} + isChecked={true} + isDrag={true} + /> + </div> + ) + } + }, +}) diff --git a/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx b/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx index 3a39278..0f6562d 100644 --- a/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx @@ -1,412 +1,425 @@ -import { - ref, - onMounted, - reactive, - computed, - Ref, - watch, - SetupContext, - h, -} from 'vue' -import { injectModel } from '@/libs/Provider/Provider' -import { WmsTaskDrawer } from '../Models/WmsTaskDrawer' -import { ElMessage } from 'element-plus' -import isEqual from 'lodash/isEqual' -import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' -import { cloneDeep } from 'lodash' - -export const useWmsTaskDrawer = (props: any, ctx?: any) => { - const wmsTaskDrawer = injectModel<WmsTaskDrawer>('wmsTaskDrawer') - /** - * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 - */ - const initiateData: Ref<Record<string, any>> = ref({}) - const formData = ref<Record<string, any>>({}) - // ref - const formRef = ref() - - const disabled = ref(false) - - const current = computed(() => { - return props.row || null - }) - - const inputNumber = (attrs) => { - return ( - <el-input-number - min="1" - step="1" - precision="0" - {...attrs} - ></el-input-number> - ) - } - const datePicker = (attrs) => { - return ( - <el-date-picker - type="datetime" - format="YYYY-MM-DD" - {...attrs} - ></el-date-picker> - ) - } - - const dateTimePicker = (attrs) => { - return ( - <el-date-picker - type="datetime" - format="YYYY-MM-DD HH:mm:ss" - {...attrs} - ></el-date-picker> - ) - } - - const visible = computed({ - get() { - return props.modelValue - }, - set(val) { - ctx.emit('update:modelValue', val) - }, - }) - /** - * 娣诲姞鐨刦orm瀛楁 - */ - const formItems = reactive([ - { - label: '浠诲姟鍙�', - prop: 'taskNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔″彿', - rules: [{required: true, message: '浠诲姟鍙蜂笉鑳戒负绌�', trigger: 'blur' }], - }, - { - label: '浠诲姟绫诲瀷', - prop: 'taskType', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔$被鍨�', - rules: [{required: true, message: '浠诲姟绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '浠诲姟绛夌骇', - prop: 'taskLevel', - el: (props: any, { attrs }: SetupContext) => { - return h(inputNumber, { - ...props, - clearable: true, - ...attrs, - }) - }, - width: '100%', - step: 1, - precision: 0, - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔$瓑绾�', - rules: [{required: true, message: '浠诲姟绛夌骇涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '浠诲姟鐘舵��', - prop: 'taskStatus', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔$姸鎬�', - rules: [{required: true, message: '浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], - }, - { - label: '鎵樼洏缂栧彿', - prop: 'containerNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ墭鐩樼紪鍙�', - }, - { - label: '璧峰搴撲綅', - prop: 'sourcePlace', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', - }, - { - label: '鐩爣搴撲綅', - prop: 'toPlace', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', - }, - { - label: '宸烽亾', - prop: 'aisle', - el: (props: any, { attrs }: SetupContext) => { - return h(inputNumber, { - ...props, - clearable: true, - ...attrs, - }) - }, - width: '100%', - step: 1, - precision: 0, - //disabled: disabled, - placeholder: '璇疯緭鍏ュ贩閬�', - }, - { - label: '鍫嗗灈鏈篒D', - prop: 'dodeviceId', - el: (props: any, { attrs }: SetupContext) => { - return h(inputNumber, { - ...props, - clearable: true, - ...attrs, - }) - }, - width: '100%', - step: 1, - precision: 0, - //disabled: disabled, - placeholder: '璇疯緭鍏ュ爢鍨涙満ID', - }, - { - label: '璁惧绫诲瀷', - prop: 'dodevicetype', - el: (props: any, { attrs }: SetupContext) => { - return h(inputNumber, { - ...props, - clearable: true, - ...attrs, - }) - }, - width: '100%', - step: 1, - precision: 0, - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ澶囩被鍨�', - rules: [{required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '璁惧浠诲姟鐘舵��', - prop: 'taskDodeviceStatus', - el: (props: any, { attrs }: SetupContext) => { - return h(inputNumber, { - ...props, - clearable: true, - ...attrs, - }) - }, - width: '100%', - step: 1, - precision: 0, - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ澶囦换鍔$姸鎬�', - rules: [{required: true, message: '璁惧浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], - }, - { - label: 'WCS鏄惁鍙互璇诲彇', - prop: 'isRead', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏CS鏄惁鍙互璇诲彇', - rules: [{required: true, message: 'WCS鏄惁鍙互璇诲彇涓嶈兘涓虹┖', trigger: 'blur' }], - options: [{label: '鏄�',value: 'true'}, {label: '鍚�',value: 'false'}] - }, - { - label: '瀛愪换鍔$被鍨�', - prop: 'sonTaskType', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ瓙浠诲姟绫诲瀷', - }, - { - label: '鏉ユ簮鍗曟嵁鍙�', - prop: 'sourceOrderNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ潵婧愬崟鎹彿', - }, - { - label: '涓嬩釜浠诲姟鏄惁鐢熸垚鎴愬姛', - prop: 'isNextTask', - el: (props: any, { attrs }: SetupContext) => { - return h(inputNumber, { - ...props, - clearable: true, - ...attrs, - }) - }, - width: '100%', - step: 1, - precision: 0, - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴愭垚鍔�', - }, - { - label: '鍙彉鍙橀噺1', - prop: 'mutableParam1', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�1', - }, - { - label: '鍙彉鍙橀噺2', - prop: 'mutableParam2', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�2', - }, - { - label: '鍙彉鍙橀噺3', - prop: 'mutableParam3', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�3', - }, - ]) - /** - * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� - */ - const checkIsEqualObject = () => { - const data = { - formData: formData.value, - } - const check = isEqual(initiateData.value, data) - return check - } - - const onClose = (done: () => void) => { - if (visible.value) { - if (checkIsEqualObject()) { - visible.value = false - done && done() - } else { - ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') - .then(() => { - onConfirm() - }) - .catch(() => { - visible.value = false - done && done() - }) - } - } - } - /** - * 淇濆瓨 - */ - const onConfirm = async () => { - await formRef.value?.validate() - const data = { - taskNo: formData.value.taskNo, -taskType: formData.value.taskType, -taskLevel: formData.value.taskLevel, -taskStatus: formData.value.taskStatus, -containerNo: formData.value.containerNo, -sourcePlace: formData.value.sourcePlace, -toPlace: formData.value.toPlace, -aisle: formData.value.aisle, -dodeviceId: formData.value.dodeviceId, -dodevicetype: formData.value.dodevicetype, -taskDodeviceStatus: formData.value.taskDodeviceStatus, -isRead: formData.value.isRead, -sonTaskType: formData.value.sonTaskType, -sourceOrderNo: formData.value.sourceOrderNo, -isNextTask: formData.value.isNextTask, -mutableParam1: formData.value.mutableParam1, -mutableParam2: formData.value.mutableParam2, -mutableParam3: formData.value.mutableParam3, - } - if (!current.value) { - await wmsTaskDrawer.addWmsTask(data) - } else { - const id = current.value.id - await wmsTaskDrawer.updateWmsTask(id, data) - } - ElMessage.success('淇濆瓨鎴愬姛') - ctx.emit('confirm') - } - - const updateCheckData = () => { - initiateData.value = { - formData: { - ...formData.value, - }, - } - } - const updateFormItemOptions = (propName: string, enumData: any[]) => { - const item = formItems.find((item) => item.prop === propName) - if (item && enumData) { - item.options = enumData.map((item) => ({ - label: item.description, - value: item.value, - })) - } - } - /** - * 閫氱敤鏌ヨ鏋氫妇 - */ - const commonQueryEnumForFrom = async () => { - const taskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ - EnumName: 'TaskTypeEnum', -}) -updateFormItemOptions('taskType', taskTypeEnumEnum) -const wmsTaskStatusEnum = await wmsTaskDrawer.getWmsEnumData({ - EnumName: 'WmsTaskStatus', -}) -updateFormItemOptions('taskStatus', wmsTaskStatusEnum) -const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ - EnumName: 'SonTaskTypeEnum', -}) -updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) - - } - commonQueryEnumForFrom() - /** - * 寮圭獥鎵撳紑鑾峰彇璇︽儏 - */ - const onOpen = async () => { - if (current.value) { - const res = await wmsTaskDrawer.getWmsTaskDetail(current.value) - - formData.value = { - taskNo: res.taskNo, -taskType: res.taskType, -taskLevel: res.taskLevel, -taskStatus: res.taskStatus, -containerNo: res.containerNo, -sourcePlace: res.sourcePlace, -toPlace: res.toPlace, -aisle: res.aisle, -dodeviceId: res.dodeviceId, -dodevicetype: res.dodevicetype, -taskDodeviceStatus: res.taskDodeviceStatus, -isRead: res.isRead, -sonTaskType: res.sonTaskType, -sourceOrderNo: res.sourceOrderNo, -isNextTask: res.isNextTask, -mutableParam1: res.mutableParam1, -mutableParam2: res.mutableParam2, -mutableParam3: res.mutableParam3, - id: res.id, - } - disabled.value = true - updateCheckData() - } else { - formData.value = {} - - disabled.value = false - updateCheckData() - } - } - - watch(() => current.value, onOpen) - - return { - formItems, - formData, - visible, - formRef, - onOpen, - onClose, - onConfirm, - } -} +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsTaskDrawer } from '../Models/WmsTaskDrawer' +import { ElMessage } from 'element-plus' +import isEqual from 'lodash/isEqual' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { cloneDeep } from 'lodash' + +export const useWmsTaskDrawer = (props: any, ctx?: any) => { + const wmsTaskDrawer = injectModel<WmsTaskDrawer>('wmsTaskDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + const initiateData: Ref<Record<string, any>> = ref({}) + const formData = ref<Record<string, any>>({}) + // ref + const formRef = ref() + + const disabled = ref(false) + + const current = computed(() => { + return props.row || null + }) + + const inputNumber = (attrs) => { + return ( + <el-input-number + min="1" + step="1" + precision="0" + {...attrs} + ></el-input-number> + ) + } + const datePicker = (attrs) => { + return ( + <el-date-picker + type="datetime" + format="YYYY-MM-DD" + {...attrs} + ></el-date-picker> + ) + } + + const dateTimePicker = (attrs) => { + return ( + <el-date-picker + type="datetime" + format="YYYY-MM-DD HH:mm:ss" + {...attrs} + ></el-date-picker> + ) + } + + const visible = computed({ + get() { + return props.modelValue + }, + set(val) { + ctx.emit('update:modelValue', val) + }, + }) + /** + * 娣诲姞鐨刦orm瀛楁 + */ + const formItems = reactive([ + { + label: '浠诲姟鍙�', + prop: 'taskNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔″彿', + rules: [{ required: true, message: '浠诲姟鍙蜂笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '浠诲姟绫诲瀷', + prop: 'taskType', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$被鍨�', + rules: [{ required: true, message: '浠诲姟绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '瀛愪换鍔$被鍨�', + prop: 'sonTaskType', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ瓙浠诲姟绫诲瀷', + }, + { + label: '浠诲姟绛夌骇', + prop: 'taskLevel', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 1, + precision: 0, + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$瓑绾�', + rules: [{ required: true, message: '浠诲姟绛夌骇涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '浠诲姟鐘舵��', + prop: 'taskStatus', + el: 'select', + options: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$姸鎬�', + rules: [{ required: true, message: '浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '鎵樼洏缂栧彿', + prop: 'containerNo', + el: 'input', + rules: [{ required: true, message: '鎵樼洏缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }], + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墭鐩樼紪鍙�', + }, + { + label: '璧峰搴撲綅', + prop: 'sourcePlace', + el: 'input', + //disabled: disabled, + rules: [{ required: true, message: '璧峰搴撲綅涓嶈兘涓虹┖', trigger: 'blur' }], + placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', + }, + { + label: '鐩爣搴撲綅', + prop: 'toPlace', + el: 'input', + //disabled: disabled, + rules: [{ required: true, message: '鐩爣搴撲綅涓嶈兘涓虹┖', trigger: 'blur' }], + placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', + }, + { + label: '宸烽亾', + prop: 'aisle', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 1, + precision: 0, + rules: [{ required: true, message: '宸烽亾涓嶈兘涓虹┖', trigger: 'blur' }], + //disabled: disabled, + placeholder: '璇疯緭鍏ュ贩閬�', + }, + { + label: '鍫嗗灈鏈篒D', + prop: 'dodeviceId', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 1, + precision: 0, + rules: [{ required: true, message: '鍫嗗灈鏈篒D涓嶈兘涓虹┖', trigger: 'blur' }], + //disabled: disabled, + placeholder: '璇疯緭鍏ュ爢鍨涙満ID', + }, + { + label: '璁惧绫诲瀷', + prop: 'dodevicetype', + el: 'select', + options: [], + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ澶囩被鍨�', + rules: [{ required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '璁惧浠诲姟鐘舵��', + prop: 'taskDodeviceStatus', + el: 'select', + options: [], + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ澶囦换鍔$姸鎬�', + rules: [ + { required: true, message: '璁惧浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }, + ], + }, + { + label: 'WCS鏄惁鍙互璇诲彇', + prop: 'isRead', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏CS鏄惁鍙互璇诲彇', + rules: [ + { required: true, message: 'WCS鏄惁鍙互璇诲彇涓嶈兘涓虹┖', trigger: 'blur' }, + ], + options: [ + { label: '鏄�', value: true }, + { label: '鍚�', value: false }, + ], + }, + { + label: '鏉ユ簮鍗曟嵁鍙�', + prop: 'sourceOrderNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ潵婧愬崟鎹彿', + }, + { + label: '涓嬩釜浠诲姟鏄惁鐢熸垚', + prop: 'isNextTask', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 1, + precision: 0, + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴愭垚鍔�', + }, + { + label: '鍙彉鍙橀噺1', + prop: 'mutableParam1', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�1', + }, + { + label: '鍙彉鍙橀噺2', + prop: 'mutableParam2', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�2', + }, + { + label: '鍙彉鍙橀噺3', + prop: 'mutableParam3', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�3', + }, + ]) + /** + * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� + */ + const checkIsEqualObject = () => { + const data = { + formData: formData.value, + } + const check = isEqual(initiateData.value, data) + return check + } + + const onClose = (done: () => void) => { + if (visible.value) { + if (checkIsEqualObject()) { + visible.value = false + done && done() + } else { + ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') + .then(() => { + onConfirm() + }) + .catch(() => { + visible.value = false + done && done() + }) + } + } + } + /** + * 淇濆瓨 + */ + const onConfirm = async () => { + await formRef.value?.validate() + const data = { + taskNo: formData.value.taskNo, + taskType: formData.value.taskType, + taskLevel: formData.value.taskLevel, + taskStatus: formData.value.taskStatus, + containerNo: formData.value.containerNo, + sourcePlace: formData.value.sourcePlace, + toPlace: formData.value.toPlace, + aisle: formData.value.aisle, + dodeviceId: formData.value.dodeviceId, + dodevicetype: formData.value.dodevicetype, + taskDodeviceStatus: formData.value.taskDodeviceStatus, + isRead: formData.value.isRead, + sonTaskType: formData.value.sonTaskType, + sourceOrderNo: formData.value.sourceOrderNo, + isNextTask: formData.value.isNextTask, + mutableParam1: formData.value.mutableParam1, + mutableParam2: formData.value.mutableParam2, + mutableParam3: formData.value.mutableParam3, + } + if (!current.value) { + await wmsTaskDrawer.addWmsTask(data) + } else { + const id = current.value.id + await wmsTaskDrawer.updateWmsTask(id, data) + } + ElMessage.success('淇濆瓨鎴愬姛') + ctx.emit('confirm') + } + + const updateCheckData = () => { + initiateData.value = { + formData: { + ...formData.value, + }, + } + } + const updateFormItemOptions = (propName: string, enumData: any[]) => { + const item = formItems.find((item) => item.prop === propName) + if (item && enumData) { + item.options = enumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } + } + /** + * 閫氱敤鏌ヨ鏋氫妇 + */ + const commonQueryEnumForFrom = async () => { + const taskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'TaskTypeEnum', + }) + updateFormItemOptions('taskType', taskTypeEnumEnum) + const wmsTaskStatusEnum = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'WmsTaskStatus', + }) + updateFormItemOptions('taskStatus', wmsTaskStatusEnum) + const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'SonTaskTypeEnum', + }) + updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) + + const dodevicetypeEnum = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'DodevicetypeEnum', + }) + updateFormItemOptions('dodevicetype', dodevicetypeEnum) + + const taskDodeviceStatus = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'TaskDodeviceStatus', + }) + updateFormItemOptions('taskDodeviceStatus', taskDodeviceStatus) + } + commonQueryEnumForFrom() + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + if (current.value) { + const res = await wmsTaskDrawer.getWmsTaskDetail(current.value) + + formData.value = { + taskNo: res.taskNo, + taskType: res.taskType, + taskLevel: res.taskLevel, + taskStatus: res.taskStatus, + containerNo: res.containerNo, + sourcePlace: res.sourcePlace, + toPlace: res.toPlace, + aisle: res.aisle, + dodeviceId: res.dodeviceId, + dodevicetype: res.dodevicetype, + taskDodeviceStatus: res.taskDodeviceStatus, + isRead: res.isRead, + sonTaskType: res.sonTaskType, + sourceOrderNo: res.sourceOrderNo, + isNextTask: res.isNextTask, + mutableParam1: res.mutableParam1, + mutableParam2: res.mutableParam2, + mutableParam3: res.mutableParam3, + id: res.id, + } + disabled.value = true + updateCheckData() + } else { + formData.value = { + taskDodeviceStatus: 1, + isRead: true, + isNextTask: 1, + taskStatus: 1, + } + + disabled.value = false + updateCheckData() + } + } + + watch(() => current.value, onOpen) + + return { + formItems, + formData, + visible, + formRef, + onOpen, + onClose, + onConfirm, + } +} diff --git a/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx b/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx index d9ee420..f4ed707 100644 --- a/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx @@ -239,7 +239,7 @@ step: 1, precision: 0, //disabled: disabled, - placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴愭垚鍔�', + placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴�', }, { label: '鍙彉鍙橀噺1', diff --git a/HIAWms/web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskDrawer/WmsTaskDrawer.tsx b/HIAWms/web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskDrawer/WmsTaskDrawer.tsx index 6c5e937..e841f76 100644 --- a/HIAWms/web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskDrawer/WmsTaskDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskDrawer/WmsTaskDrawer.tsx @@ -1,61 +1,61 @@ -import { SetupContext, defineComponent } from 'vue' -import BaseDrawer from '@/components/BaseDrawer/BaseDrawer' -import styles from './WmsTaskDrawer.module.scss' -import { useWmsTaskDrawer } from '../../../../Controllers/WmsTaskDrawer.tsx' -import DyForm from '@/components/DyForm/DyForm' - -// @ts-ignore -export default defineComponent<{ - [key: string]: any -}>({ - name: '寮圭獥', - props: { - modelValue: { - type: Boolean, - default: false, - }, - title: { - type: String, - default: '', - }, - row: { - type: Object, - }, - sort: { - type: Number, - default: 0, - }, - }, - emits: ['update:modelValue', 'close', 'submit', 'confirm'], - setup(props: Record<string, any>, ctx: SetupContext) { - const { - onClose, - onConfirm, - onOpen, - formRef, - visible, - formItems, - formData, - } = useWmsTaskDrawer(props, ctx) - return () => ( - <BaseDrawer - class={styles.drawer} - size="800px" - title={props.title || '娣诲姞'} - v-model={visible.value} - close-on-click-modal={true} - onConfirm={onConfirm} - onOpen={onOpen} - before-close={onClose} - onClose={onClose} - > - <DyForm - ref={formRef} - formData={formData.value} - labelWidth="106px" - formItemProps={formItems} - ></DyForm> - </BaseDrawer> - ) - }, -}) +import { SetupContext, defineComponent } from 'vue' +import BaseDrawer from '@/components/BaseDrawer/BaseDrawer' +import styles from './WmsTaskDrawer.module.scss' +import { useWmsTaskDrawer } from '../../../../Controllers/WmsTaskDrawer.tsx' +import DyForm from '@/components/DyForm/DyForm' + +// @ts-ignore +export default defineComponent<{ + [key: string]: any +}>({ + name: '寮圭獥', + props: { + modelValue: { + type: Boolean, + default: false, + }, + title: { + type: String, + default: '', + }, + row: { + type: Object, + }, + sort: { + type: Number, + default: 0, + }, + }, + emits: ['update:modelValue', 'close', 'submit', 'confirm'], + setup(props: Record<string, any>, ctx: SetupContext) { + const { + onClose, + onConfirm, + onOpen, + formRef, + visible, + formItems, + formData, + } = useWmsTaskDrawer(props, ctx) + return () => ( + <BaseDrawer + class={styles.drawer} + size="800px" + title={props.title || '娣诲姞'} + v-model={visible.value} + close-on-click-modal={true} + onConfirm={onConfirm} + onOpen={onOpen} + before-close={onClose} + onClose={onClose} + > + <DyForm + ref={formRef} + formData={formData.value} + labelWidth="150px" + formItemProps={formItems} + ></DyForm> + </BaseDrawer> + ) + }, +}) diff --git a/HIAWms/web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer.tsx b/HIAWms/web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer.tsx index 418bd82..c297537 100644 --- a/HIAWms/web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsTask/Views/Pages/Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer.tsx @@ -1,71 +1,71 @@ -/* - * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� -*/ -import { SetupContext, defineComponent } from 'vue' -import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' -import styles from './WmsTaskQueryDrawer.module.scss' -import { useWmsTaskQueryDrawer } from '../../../../Controllers/WmsTaskQueryDrawer.tsx' -import DyForm from '@/components/DyForm/DyForm' - -// @ts-ignore -export default defineComponent<{ - [key: string]: any -}>({ - name: '寮圭獥', - props: { - //鏋氫妇绫诲瀷瀛楀吀 - enumListDict:{ - type: Array as () => Array<{ key: string; value: object }>, // 瀹氫箟鏁扮粍鍏冪礌绫诲瀷 - default: () => [] // 榛樿鍊� - }, - modelValue: { - type: Boolean, - default: false, - }, - title: { - type: String, - default: '', - }, - row: { - type: Object, - }, - sort: { - type: Number, - default: 0, - }, - }, - emits: ['update:modelValue', 'close', 'submit', 'confirmquery1'], - setup(props: Record<string, any>, ctx: SetupContext) { - const { - onClose, - onConfirmQuery, - onOpen, - onReset, - formRef, - visible, - formItems, - formData, - } = useWmsTaskQueryDrawer(props, ctx) - return () => ( - <BaseQueryDrawer - class={styles.drawer} - size="800px" - title={props.title || '楂樼骇鏌ヨ'} - v-model={visible.value} - close-on-click-modal={true} - onReset={onReset} - onConfirmQueryForBase={onConfirmQuery} - onOpen={onOpen} - before-close={onClose} - onClose={onClose} - > - <DyForm - ref={formRef} - formData={formData.value} - labelWidth="106px" - formItemProps={formItems} - ></DyForm> - </BaseQueryDrawer> - ) - }, -}) +/* + * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� + */ +import { SetupContext, defineComponent } from 'vue' +import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' +import styles from './WmsTaskQueryDrawer.module.scss' +import { useWmsTaskQueryDrawer } from '../../../../Controllers/WmsTaskQueryDrawer.tsx' +import DyForm from '@/components/DyForm/DyForm' + +// @ts-ignore +export default defineComponent<{ + [key: string]: any +}>({ + name: '寮圭獥', + props: { + //鏋氫妇绫诲瀷瀛楀吀 + enumListDict: { + type: Array as () => Array<{ key: string; value: object }>, // 瀹氫箟鏁扮粍鍏冪礌绫诲瀷 + default: () => [], // 榛樿鍊� + }, + modelValue: { + type: Boolean, + default: false, + }, + title: { + type: String, + default: '', + }, + row: { + type: Object, + }, + sort: { + type: Number, + default: 0, + }, + }, + emits: ['update:modelValue', 'close', 'submit', 'confirmquery1'], + setup(props: Record<string, any>, ctx: SetupContext) { + const { + onClose, + onConfirmQuery, + onOpen, + onReset, + formRef, + visible, + formItems, + formData, + } = useWmsTaskQueryDrawer(props, ctx) + return () => ( + <BaseQueryDrawer + class={styles.drawer} + size="800px" + title={props.title || '楂樼骇鏌ヨ'} + v-model={visible.value} + close-on-click-modal={true} + onReset={onReset} + onConfirmQueryForBase={onConfirmQuery} + onOpen={onOpen} + before-close={onClose} + onClose={onClose} + > + <DyForm + ref={formRef} + formData={formData.value} + labelWidth="150px" + formItemProps={formItems} + ></DyForm> + </BaseQueryDrawer> + ) + }, +}) diff --git a/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/Config.ts b/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/Config.ts index 022db3d..1022664 100644 --- a/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/Config.ts +++ b/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/Config.ts @@ -13,6 +13,10 @@ title: '浠诲姟绫诲瀷', }, { + field: 'sonTaskTypeDesc', + title: '瀛愪换鍔$被鍨�', + }, + { field: 'taskStatusDesc', title: '浠诲姟鐘舵��', }, @@ -37,20 +41,16 @@ // title: '鍫嗗灈鏈篒D', // }, { - field: 'dodevicetype', + field: 'dodevicetypeDesc', title: '璁惧绫诲瀷', }, { - field: 'taskDodeviceStatus', + field: 'taskDodeviceStatusDesc', title: '璁惧鐘舵��', }, { field: 'isRead', title: 'WCS鍙鍙�', - }, - { - field: 'sonTaskTypeDesc', - title: '瀛愪换鍔$被鍨�', }, { field: 'sourceOrderNo', @@ -83,5 +83,6 @@ { field: 'creationTime', title: '鍒涘缓鏃堕棿', + width: 180, }, ] diff --git a/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx b/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx index 25db6be..9dab1a4 100644 --- a/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx +++ b/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx @@ -278,7 +278,7 @@ <el-divider direction="vertical" /> <el-divider direction="vertical" /> - <el-upload + {/* <el-upload v-permission="wmsTask-import" name="file" accept=".xlsx,.xls,.csv" @@ -290,15 +290,15 @@ action="/api/v1/HIAWms/wmsTask/import" > <IconButton icon="in">瀵煎叆</IconButton> - </el-upload> + </el-upload> */} - <IconButton + {/* <IconButton v-permission="wmsTask-output" icon="out" onClick={handleExport} > 瀵煎嚭 - </IconButton> + </IconButton> */} </div> <ElFormItem style={{ marginTop: '15px' }}> <ElFormItem label="鍏抽敭瀛�"> -- Gitblit v1.9.3