HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/GetWmsInOutStockRecordInput.cs
@@ -4,7 +4,7 @@ namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; /// <summary> /// åºå ¥åºè®°å½è¡¨æ¥è¯¢åæ° /// åºå ¥åºè®°å½æ¥è¯¢åæ° /// </summary> public class GetWmsInOutStockRecordInput : ExtensiblePagedAndSortedResultRequestDto { @@ -108,7 +108,7 @@ /// </summary> //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ [HighSearchRangeAttribute] public string OperateTime { get; set; } public List<string> OperateTime { get; set; } /// <summary> @@ -162,6 +162,26 @@ public SearchFilterModeEnum ToPlace_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; /// <summary> /// æåº /// </summary> public int? Sort { get; set; } /// <summary> /// æåº-æ¥è¯¢å ³ç³»è¿ç®ç¬¦ /// </summary> public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; /// <summary> /// æ¯å¦ç¦ç¨ /// </summary> public bool? IsDisabled { get; set; } /// <summary> /// æ¯å¦ç¦ç¨-æ¥è¯¢å ³ç³»è¿ç®ç¬¦ /// </summary> public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢; /// <summary> /// /// </summary> //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordCreateDto.cs
@@ -1,7 +1,7 @@ namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; /// <summary> /// åºå ¥åºè®°å½è¡¨åå»ºåæ°å¯¹è±¡ /// åºå ¥åºè®°å½åå»ºåæ°å¯¹è±¡ /// </summary> public class WmsInOutStockRecordCreateDto : WmsInOutStockRecordCreateOrUpdateDtoBase { HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordCreateOrUpdateDtoBase.cs
@@ -5,7 +5,7 @@ namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; /// <summary> /// åºå ¥åºè®°å½è¡¨åå»ºææ´æ°åºç±» /// åºå ¥åºè®°å½åå»ºææ´æ°åºç±» /// </summary> public abstract class WmsInOutStockRecordCreateOrUpdateDtoBase : ExtensibleEntityDto { @@ -70,6 +70,16 @@ public string? ToPlace { get; set; } /// <summary> /// æåº /// </summary> public int Sort { get; set; } /// <summary> /// æ¯å¦ç¦ç¨ /// </summary> public bool? IsDisabled { get; set; } /// <summary> /// /// </summary> public string? CreatorId { get; set; } HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordDto.cs
@@ -8,7 +8,7 @@ namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; /// <summary> /// åºå ¥åºè®°å½è¡¨æ°æ®åæ°å¯¹è±¡ /// åºå ¥åºè®°å½æ°æ®åæ°å¯¹è±¡ /// </summary> public class WmsInOutStockRecordDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp { @@ -83,6 +83,16 @@ public string? ToPlace { get; set; } /// <summary> /// æåº /// </summary> public int Sort { get; set; } /// <summary> /// æ¯å¦ç¦ç¨ /// </summary> public bool? IsDisabled { get; set; } /// <summary> /// /// </summary> public ExtraPropertyDictionary? ExtraProperties { get; set; } HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordExportModel.cs
@@ -1,11 +1,12 @@ using MiniExcelLibs.Attributes; using System.ComponentModel.DataAnnotations; using System; using System.ComponentModel; using CMS.Plugin.HIAWms.Domain.Shared.Enums; namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; /// <summary> /// åºå ¥åºè®°å½è¡¨å¯¼åºæ¨¡å /// åºå ¥åºè®°å½å¯¼åºæ¨¡å /// </summary> public class WmsInOutStockRecordExportModel { @@ -81,6 +82,18 @@ [ExcelColumn(Name = "ç®æ åºä½", Width = 25)] public string ToPlace { get; set; } /// <summary> /// æåº /// </summary> [ExcelColumn(Name = "æåº", Width = 25)] public int Sort { get; set; } /// <summary> /// æ¯å¦ç¦ç¨ /// </summary> [ExcelColumn(Name = "æ¯å¦ç¦ç¨", Width = 25)] public bool? IsDisabled { get; set; } public Dictionary<string, object> GetExportData() HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordUpdateDto.cs
@@ -2,7 +2,7 @@ namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; /// <summary> /// åºå ¥åºè®°å½è¡¨æ´æ°åæ°å¯¹è±¡ /// åºå ¥åºè®°å½æ´æ°åæ°å¯¹è±¡ /// </summary> public class WmsInOutStockRecordUpdateDto : WmsInOutStockRecordCreateOrUpdateDtoBase, IHasConcurrencyStamp { HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/WmsInOutStockRecordsImportModel.cs
@@ -2,7 +2,7 @@ namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord { /// <summary> /// åºå ¥åºè®°å½è¡¨å¯¼å ¥æ¨¡å /// åºå ¥åºè®°å½å¯¼å ¥æ¨¡å /// </summary> public class WmsInOutStockRecordsImportModel { @@ -20,7 +20,7 @@ } /// <summary> /// åºå ¥åºè®°å½è¡¨å¯¼å ¥æ¨¡å /// åºå ¥åºè®°å½å¯¼å ¥æ¨¡å /// </summary> public class WmsInOutStockRecordImportModel : WmsInOutStockRecordExportModel { HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockRecordAppService.cs
@@ -4,26 +4,26 @@ namespace CMS.Plugin.HIAWms.Application.Contracts.Services; /// <summary> /// åºå ¥åºè®°å½è¡¨åºç¨æå¡æ¥å£ /// åºå ¥åºè®°å½åºç¨æå¡æ¥å£ /// </summary> public interface IWmsInOutStockRecordAppService : ICrudAppService<WmsInOutStockRecordDto, Guid, GetWmsInOutStockRecordInput, WmsInOutStockRecordCreateDto, WmsInOutStockRecordUpdateDto> { /// <summary> /// å éåºå ¥åºè®°å½è¡¨ /// å éåºå ¥åºè®°å½ /// </summary> /// <param name="ids"></param> /// <returns></returns> Task<List<WmsInOutStockRecordDto>> CloneAsync(IEnumerable<Guid> ids); /// <summary> /// å é¤åºå ¥åºè®°å½è¡¨ /// å é¤åºå ¥åºè®°å½ /// </summary> /// <param name="ids"></param> /// <returns></returns> Task DeleteManyAsync(IEnumerable<Guid> ids); /// <summary> /// è°æ´æåºåºå ¥åºè®°å½è¡¨ /// è°æ´æåºåºå ¥åºè®°å½ /// </summary> /// <param name="id"></param> /// <param name="sort"></param> @@ -31,14 +31,14 @@ Task AdjustSortAsync(Guid id, int sort); /// <summary> /// å¯¼å ¥åºå ¥åºè®°å½è¡¨ /// å¯¼å ¥åºå ¥åºè®°å½ /// </summary> /// <param name="input"></param> /// <returns></returns> Task ImportAsync(WmsInOutStockRecordsImportModel input); /// <summary> /// 导åºåºå ¥åºè®°å½è¡¨ /// 导åºåºå ¥åºè®°å½ /// </summary> /// <param name="input"></param> /// <returns></returns> HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs
@@ -1,8 +1,8 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; using CMS.Plugin.HIAWms.Application.Contracts.Services; using CMS.Plugin.HIAWms.Domain.Shared; using CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; using CmsQueryExtensions; using CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; using CmsQueryExtensions.Extension; using System.Linq.Expressions; using Volo.Abp; @@ -14,33 +14,33 @@ namespace CMS.Plugin.HIAWms.Application.Implements; /// <summary> /// åºå ¥åºè®°å½è¡¨åºç¨æå¡ /// åºå ¥åºè®°å½åºç¨æå¡ /// </summary> public class WmsInOutStockRecordAppService : CMSPluginAppService, IWmsInOutStockRecordAppService { private readonly IWmsInOutStockRecordRepository _wmsInOutStockRecordRepository; 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) public WmsInOutStockRecordAppService(IWmsInOutStockRecordRepository _WmsInOutStockRecordRepository) { _wmsInOutStockRecordRepository = 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)); return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(await wmsInOutStockRecordRepository.GetAsync(id)); } /// <summary> /// å页è·ååºå ¥åºè®°å½è¡¨ /// å页è·ååºå ¥åºè®°å½ /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -60,8 +60,8 @@ #endregion var count = await _wmsInOutStockRecordRepository.GetCountAsync(whereConditions); var list = await _wmsInOutStockRecordRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); 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)); } @@ -90,7 +90,7 @@ } /// <summary> /// æ°å»ºåºå ¥åºè®°å½è¡¨ /// æ°å»ºåºå ¥åºè®°å½ /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -99,16 +99,20 @@ { 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 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); await wmsInOutStockRecordRepository.InsertAsync(insertObj); if (input.Sort.HasValue && insertObj.Sort != maxSort) { @@ -119,7 +123,7 @@ } /// <summary> /// æ´æ°åºå ¥åºè®°å½è¡¨ /// æ´æ°åºå ¥åºè®°å½ /// </summary> /// <param name="id"></param> /// <param name="input"></param> @@ -129,8 +133,12 @@ { await CheckCreateOrUpdateDtoAsync(input); var updateObj = await _wmsInOutStockRecordRepository.GetAsync(id); 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); @@ -147,15 +155,16 @@ updateObj.TaskNo = input.TaskNo; updateObj.SourcePlace = input.SourcePlace; updateObj.ToPlace = input.ToPlace; updateObj.IsDisabled = input.IsDisabled; await _wmsInOutStockRecordRepository.UpdateAsync(updateObj); await wmsInOutStockRecordRepository.UpdateAsync(updateObj); return ObjectMapper.Map<WmsInOutStockRecord, WmsInOutStockRecordDto>(updateObj); } /// <summary> /// å éåºå ¥åºè®°å½è¡¨ /// å éåºå ¥åºè®°å½ /// </summary> /// <param name="ids"></param> /// <returns></returns> @@ -195,17 +204,17 @@ } /// <summary> /// å é¤å个åºå ¥åºè®°å½è¡¨ /// å é¤å个åºå ¥åºè®°å½ /// </summary> /// <param name="id"></param> /// <returns></returns> public virtual Task DeleteAsync(Guid id) { return _wmsInOutStockRecordRepository.DeleteAsync(id); return wmsInOutStockRecordRepository.DeleteAsync(id); } /// <summary> /// å é¤å¤ä¸ªåºå ¥åºè®°å½è¡¨ /// å é¤å¤ä¸ªåºå ¥åºè®°å½ /// </summary> /// <param name="ids"></param> /// <returns></returns> @@ -218,14 +227,14 @@ } /// <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)); var list = await wmsInOutStockRecordRepository.GetListAsync(null, nameof(WmsInOutStockRecord.Sort)); if (list != null && list.Any()) { var initSort = 1; @@ -252,22 +261,130 @@ } } await _wmsInOutStockRecordRepository.UpdateManyAsync(list); 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()) { #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 { 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 { 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)); } } } // æ°å¢ 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); } } } /// <summary> /// 导åºåºå ¥åºè®°å½è¡¨ /// 导åºåºå ¥åºè®°å½ /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -288,7 +405,7 @@ #endregion var list = await _wmsInOutStockRecordRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); 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> @@ -296,12 +413,12 @@ ["é ç½®"] = ExportHelper.ConvertListToExportData(result), }; var fileName = result.Count > 1 ? "WmsInOutStockRecordå表" : result.Count == 1 ? result[0]?.MaterialName : "WmsInOutStockRecord模ç"; var fileName = result.Count > 1 ? "åºå ¥åºè®°å½å表" : result.Count == 1 ? result[0]?.Id : "WmsInOutStockRecord模ç"; return (sheets, fileName); } /// <summary> /// æ ¡éªåºå ¥åºè®°å½è¡¨ï¼å½æ°å»ºææ´æ°æ¶ /// æ ¡éªåºå ¥åºè®°å½ï¼å½æ°å»ºææ´æ°æ¶ /// </summary> /// <param name="input"></param> /// <returns></returns> HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockRecordAutoMapperProfile.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ using AutoMapper; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; using CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; using Volo.Abp.ObjectExtending; namespace CMS.Plugin.HIAWms.Application.MapperProfiles; /// <summary> /// åºå ¥åºè®°å½AutoMapperé ç½® /// </summary> /// <seealso cref="AutoMapper.Profile" /> public class WmsInOutStockRecordAutoMapperProfile : Profile { /// <summary> /// Initializes a new instance of the <see cref="WmsInOutStockRecordAutoMapperProfile"/> class. /// </summary> public WmsInOutStockRecordAutoMapperProfile() { /* You can configure your AutoMapper mapping configuration here. * Alternatively, you can split your mapping configurations * into multiple profile classes for a better organization. */ CreateMap<WmsInOutStockRecord, WmsInOutStockRecordDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); CreateMap<WmsInOutStockRecordCreateDto, WmsInOutStockRecord>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); CreateMap<GetWmsInOutStockRecordInput, WmsInOutStockRecord>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); } } HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockRecord/IWmsInOutStockRecordRepository.cs
@@ -5,34 +5,34 @@ namespace CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord; /// <summary> /// åºå ¥åºè®°å½è¡¨ä»å¨ /// åºå ¥åºè®°å½ä»å¨ /// </summary> public interface IWmsInOutStockRecordRepository : IBasicRepository<WmsInOutStockRecord, Guid> { /// <summary> /// æç §åç§°æ¥æ¾åºå ¥åºè®°å½è¡¨ /// æç §åç§°æ¥æ¾åºå ¥åºè®°å½ /// </summary> /// <param name="materialNo"></param> /// <param name="name"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<WmsInOutStockRecord> FindByNameAsync(string materialNo, CancellationToken cancellationToken = default); Task<WmsInOutStockRecord> FindByNameAsync(string name, CancellationToken cancellationToken = default); /// <summary> /// éªè¯åç§°æ¯å¦åå¨åºå ¥åºè®°å½è¡¨ /// éªè¯åç§°æ¯å¦åå¨åºå ¥åºè®°å½ /// </summary> /// <param name="materialNo"></param> /// <param name="name"></param> /// <param name="id"></param> /// <returns></returns> Task<bool> NameExistAsync(string materialNo, Guid? id = null); Task<bool> NameExistAsync(string name, Guid? id = null); /// <summary> /// è·åæå¤§æåºåºå ¥åºè®°å½è¡¨ /// è·åæå¤§æåºåºå ¥åºè®°å½ /// </summary> /// <returns></returns> Task<int> GetMaxSortAsync(); /// <summary> /// è·åå页å表åºå ¥åºè®°å½è¡¨ /// è·åå页å表åºå ¥åºè®°å½ /// </summary> /// <param name="whereConditions"></param> /// <param name="sorting"></param> @@ -44,7 +44,7 @@ Task<List<WmsInOutStockRecord>> GetListAsync(FunReturnResultModel<Expression<Func<WmsInOutStockRecord, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default); /// <summary> /// è·åæ»æ°åºå ¥åºè®°å½è¡¨ /// è·åæ»æ°åºå ¥åºè®°å½ /// </summary> /// <param name="whereConditions"></param> /// <param name="cancellationToken"></param> HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockRecordRepository.cs
@@ -11,7 +11,7 @@ namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; /// <summary> /// åºå ¥åºè®°å½è¡¨ä»å¨å®ç° /// åºå ¥åºè®°å½ä»å¨å®ç° /// </summary> public class EfCoreWmsInOutStockRecordRepository : EfCoreRepository<ICMSPluginDbContext, WmsInOutStockRecord, Guid>, IWmsInOutStockRecordRepository { @@ -25,33 +25,33 @@ } /// <summary> /// æç §åç§°æ¥æ¾åºå ¥åºè®°å½è¡¨ /// æç §åç§°æ¥æ¾åºå ¥åºè®°å½ /// </summary> /// <param name="materialNo"></param> /// <param name="name"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public virtual async Task<WmsInOutStockRecord> FindByNameAsync(string materialNo, CancellationToken cancellationToken = default) public virtual async Task<WmsInOutStockRecord> FindByNameAsync(string name, CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) .IncludeDetails() .Where(x => !x.IsDeleted) .OrderBy(t => t.Sort) .FirstOrDefaultAsync(t => t.MaterialNo == materialNo, GetCancellationToken(cancellationToken)); .FirstOrDefaultAsync(t => t.Id == name, GetCancellationToken(cancellationToken)); } /// <summary> /// éªè¯åç§°æ¯å¦åå¨åºå ¥åºè®°å½è¡¨ /// éªè¯åç§°æ¯å¦åå¨åºå ¥åºè®°å½ /// </summary> /// <param name="materialCode"></param> /// <param name="name">æ ¡éªå¼</param> /// <param name="id"></param> /// <returns></returns> public async Task<bool> NameExistAsync(string materialCode, Guid? id = null) 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.MaterialName == materialCode); return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.Id == name); } /// <summary> /// è·åæå¤§æåºåºå ¥åºè®°å½è¡¨ /// è·åæå¤§æåºåºå ¥åºè®°å½ /// </summary> /// <returns></returns> public async Task<int> GetMaxSortAsync() @@ -69,7 +69,7 @@ } /// <summary> /// è·åå页å表åºå ¥åºè®°å½è¡¨ /// è·åå页å表åºå ¥åºè®°å½ /// </summary> /// <param name="whereConditions"></param> /// <param name="sorting"></param> @@ -90,7 +90,7 @@ } /// <summary> /// è·åæ»æ°åºå ¥åºè®°å½è¡¨ /// è·åæ»æ°åºå ¥åºè®°å½ /// </summary> /// <param name="whereConditions"></param> /// <param name="cancellationToken"></param> HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockRecordController.cs
@@ -13,7 +13,7 @@ namespace CMS.Plugin.HIAWms.Controller { /// <summary> /// åºå ¥åºè®°å½è¡¨æå¡ /// åºå ¥åºè®°å½æå¡ /// </summary> [ApiController] [TypeFilter(typeof(CMSLanguageFilter))] @@ -35,7 +35,7 @@ } /// <summary> /// è·ååºå ¥åºè®°å½è¡¨ /// è·ååºå ¥åºè®°å½ /// </summary> /// <param name="id">æ è¯ç¬¦.</param> /// <returns></returns> @@ -47,7 +47,7 @@ } /// <summary> /// å页è·ååºå ¥åºè®°å½è¡¨çå表. /// å页è·ååºå ¥åºè®°å½çå表. /// </summary> /// <param name="input">è¾å ¥.</param> /// <returns></returns> @@ -59,7 +59,7 @@ } /// <summary> /// å建åºå ¥åºè®°å½è¡¨ /// å建åºå ¥åºè®°å½ /// </summary> /// <param name="input">è¾å ¥.</param> /// <returns></returns> @@ -71,7 +71,7 @@ } /// <summary> /// æ´æ°åºå ¥åºè®°å½è¡¨ /// æ´æ°åºå ¥åºè®°å½ /// </summary> /// <param name="id">æ è¯ç¬¦.</param> /// <param name="input">è¾å ¥.</param> @@ -85,7 +85,7 @@ } /// <summary> /// å éåºå ¥åºè®°å½è¡¨ /// å éåºå ¥åºè®°å½ /// </summary> /// <param name="ids">Idéå.</param> /// <returns></returns> @@ -98,7 +98,7 @@ } /// <summary> /// å é¤åºå ¥åºè®°å½è¡¨ /// å é¤åºå ¥åºè®°å½ /// </summary> /// <param name="id">æ è¯ç¬¦.</param> /// <returns></returns> @@ -111,7 +111,7 @@ } /// <summary> /// æ¹éå é¤åºå ¥åºè®°å½è¡¨ /// æ¹éå é¤åºå ¥åºè®°å½ /// </summary> /// <param name="ids">The ids.</param> /// <returns></returns> @@ -123,7 +123,7 @@ } /// <summary> /// è°æ´æåºåºå ¥åºè®°å½è¡¨ /// è°æ´æåºåºå ¥åºè®°å½ /// </summary> /// <param name="id">æ è¯ç¬¦.</param> /// <returns></returns> @@ -135,7 +135,7 @@ } /// <summary> /// å¯¼å ¥åºå ¥åºè®°å½è¡¨ /// å¯¼å ¥åºå ¥åºè®°å½ /// </summary> /// <returns></returns> [Authorize] @@ -164,7 +164,7 @@ } /// <summary> /// 导åºåºå ¥åºè®°å½è¡¨ /// 导åºåºå ¥åºè®°å½ /// </summary> /// <returns></returns> [HttpGet] HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecord.ts
@@ -128,9 +128,9 @@ { label: 'å é¤', fn: async (c: CurrentType) => { const names = selection.value.map((item: { name: string }) => item.name) const names = selection.value.map((item: { id: string }) => item.id) ConfirmBox( `æ¯å¦å é¤${names.length ? names.join(',') : c.row.name}` `æ¯å¦å é¤${names.length ? names.join(',') : c.row.id}` ).then(async () => { const ids = selection.value.map((item: { id: string }) => item.id) await wmsInOutStockRecord.deleteWmsInOutStockRecords(ids.length ? ids : [c.row.id]) @@ -187,7 +187,7 @@ */ const onExport = (data={}) => { //const params = tableRef.value?.getParams() exportFile('/api/v1/hIAWms/wmsInOutStockRecord/export', data, 'hIAWms') exportFile('/api/v1/HIAWms/wmsInOutStockRecord/export', data, 'wmsInOutStockRecord') } /** HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx
@@ -43,6 +43,27 @@ ></el-input-number> ) } const datePicker = (attrs) => { return ( <el-date-picker type="date" format="YYYY-MM-DD HH:mm:ss" formatValue="YYYY-MM-DD HH:mm:ss" {...attrs} ></el-date-picker> ) } const dateTimePicker = (attrs) => { return ( <el-date-picker type="datetime" format="YYYY-MM-DD HH:mm:ss" formatValue="YYYY-MM-DD HH:mm:ss" {...attrs} ></el-date-picker> ) } const visible = computed({ get() { @@ -104,8 +125,14 @@ { label: 'æä½æ¶é´', prop: 'operateTime', type: 'datetimerange', el: 'date-picker', el: (props: any, { attrs }: SetupContext) => { return h(datePicker, { ...props, clearable: true, ...attrs, }) }, width: '100%', //disabled: disabled, placeholder: '请è¾å ¥æä½æ¶é´', }, HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx
@@ -16,9 +16,7 @@ import { cloneDeep } from 'lodash' export const useWmsInOutStockRecordQueryDrawer = (props: any, ctx?: any) => { const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>( 'WmsInOutStockRecordDrawer' ) const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>('WmsInOutStockRecordDrawer') /** * ç¨æ¥å¯¹æ¯çåå§åæ°æ® */ @@ -41,6 +39,30 @@ 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> ) } @@ -101,8 +123,15 @@ { label: 'æä½æ¶é´', prop: 'operateTime', type: 'datetimerange', el: 'date-picker', el: (props: any, { attrs }: SetupContext) => { return h(dateTimePickerRange, { ...props, clearable: true, ...attrs, }) }, width: '100%', el: 'input', //disabled: disabled, placeholder: '请è¾å ¥æä½æ¶é´', }, @@ -141,6 +170,29 @@ //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: '请è¾å ¥', }, ]) /** * æ ¡éªæ¯å¦ææ°æ®åå @@ -154,39 +206,27 @@ } 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, materialCode: formData.value.materialCode, materialName: formData.value.materialName, purchaseType: formData.value.purchaseType, materialType: formData.value.materialType, primaryUnit: formData.value.primaryUnit, standard: formData.value.standard, outerDiameter: formData.value.outerDiameter, wallThickness: formData.value.wallThickness, materialQuality: formData.value.materialQuality, length: formData.value.length, isMainBranch: formData.value.isMainBranch, factory: formData.value.factory, certification: formData.value.certification, remark: formData.value.remark, 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 return data; } const onClose = (done: () => void) => { if (visible.value) { visible.value = false const data = commonGetFormData() const data =commonGetFormData(); ctx.emit('close', data) } } @@ -194,7 +234,7 @@ * 确认æ¥è¯¢ */ const onConfirmQuery = async () => { const data = commonGetFormData() const data =commonGetFormData(); ctx.emit('confirmQuery', data) } /** @@ -214,22 +254,8 @@ formData.value.TaskNo = '' formData.value.SourcePlace = '' formData.value.ToPlace = '' formData.value.materialCode = '' formData.value.materialName = '' formData.value.purchaseType = '' formData.value.materialType = '' formData.value.primaryUnit = '' formData.value.standard = '' formData.value.outerDiameter = '' formData.value.wallThickness = '' formData.value.materialQuality = '' formData.value.length = '' formData.value.isMainBranch = '' formData.value.factory = '' formData.value.certification = '' formData.value.remark = '' //åç¶ç»ä»¶åéèªå®ä¹äºä»¶ ctx.emit('restQuery') ctx.emit('restQuery'); } const updateCheckData = () => { @@ -256,6 +282,7 @@ EnumName: 'StockTypeEnum', }) updateFormItemOptions('stockType', stockTypeEnumEnum) } commonQueryEnumForFrom() /** HIAWms/web/src/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecord.ts
@@ -13,7 +13,7 @@ * æ¹éå é¤ * @returns */ export const deleteWmsInOutStockRecord = (ids: string[]) => { export const deleteWmsInOutStockRecords = (ids: string[]) => { return request({ data: ids, url: '/api/v1/HIAWms/wmsInOutStockRecord', HIAWms/web/src/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordDrawer.ts
HIAWms/web/src/widgets/WmsInOutStockRecord/Models/WmsInOutStockRecord.ts
@@ -1,6 +1,6 @@ import { Base } from '@/libs/Base/Base' import { deleteWmsInOutStockRecord, deleteWmsInOutStockRecords, addWmsInOutStockRecord, cloneData, } from './Service/WmsInOutStockRecord' @@ -18,7 +18,7 @@ * @returns */ async deleteWmsInOutStockRecords(ids: string[]) { return deleteWmsInOutStockRecord(ids) return deleteWmsInOutStockRecords(ids) } /** HIAWms/web/src/widgets/WmsInOutStockRecord/Models/WmsInOutStockRecordDrawer.ts
@@ -11,7 +11,7 @@ constructor() { super({ data: [], wmsMaterial: {}, wmsInOutStockRecord: {}, }) } HIAWms/web/src/widgets/WmsInOutStockRecord/Models/WmsInOutStockRecordQueryDrawer.ts
@@ -11,7 +11,7 @@ constructor() { super({ data: [], wmsMaterial: {}, wmsInOutStockRecord: {}, }) } HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts
@@ -52,8 +52,16 @@ field: 'toPlace', title: 'ç®æ åºä½', }, // { // field: 'deletionTime', // title: '', // }, { field: 'sort', title: 'æåº', }, { field: 'creationTime', title: '', }, { field: 'deletionTime', title: '', }, ] HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.module.scss
@@ -15,7 +15,7 @@ .header { margin-bottom: 12px; display: flex; justify-content: flex-start; justify-content: flex-end; align-items: center; } } HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx
@@ -71,9 +71,9 @@ }) //å®ä¹æ´ä½æ¨¡ç³æ¥è¯¢çåæ°ç»(注æï¼å¿ 须大å°åè·å端çå®ä½ç±»å±æ§åä¸è´ï¼å¦åä¼å¯¼è´å¹é ä¸å¯¹çé®é¢) const _searchFormInputAttrs = ref([ 'MaterialNo', 'MaterialName', 'Remark' 'MaterialNo', 'ContainerNo' ]); const searchFormInputAttrs_Placeholder = ref('请è¾å ¥ç©æç¼ç /ç©æåç§°/夿³¨'); const searchFormInputAttrs_Placeholder = ref('请è¾å ¥ç©æç¼ç /æç'); // 卿æä¸¾é项 HIAWms/web/src/widgets/WmsInOutStockRecord/Views/WmsInOutStockRecord.tsx
HIAWms/web/src/widgets/WmsInOutStockRecord/Views/config/WmsInOutStockRecord.json
HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/Config.ts
@@ -47,7 +47,6 @@ { field: 'isRead', title: 'WCSå¯è¯»å', formatter: ({ cellValue }) => 12222, }, { field: 'sonTaskTypeDesc', HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx
@@ -214,6 +214,13 @@ </div> ) }, isRead: ({ row }: any) => { return ( <div> {row.isRead != null ? (row.isRead ? 'æ¯' : 'å¦') : '-'} </div> ) }, name: ({ row }: any) => { return row?.name ? ( <TdButton Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Web/Controllers/EntityModeDrawerÄ£°å.txt
@@ -31,21 +31,24 @@ 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="date" format="YYYY-MM-DD HH:mm:ss" formatValue="YYYY-MM-DD HH:mm:ss" {...attrs} ></el-date-picker> ) } const dateTimePicker = (attrs) => { return ( <el-date-picker type="datetime" format="YYYY-MM-DD" format="YYYY-MM-DD HH:mm:ss" formatValue="YYYY-MM-DD HH:mm:ss" {...attrs} ></el-date-picker> ) Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/StructStrHelper.cs
@@ -1845,9 +1845,9 @@ var elment = "input"; switch (enumDT) { case DataTypeEnum.dt_datetime: elment = "date-picker"; break; //case DataTypeEnum.dt_datetime: // elment = "date-picker"; // break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: elment = "select";