From 379ae8a8a27bcd2b58b4de5e9affc6f977f9c684 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Wed, 27 Nov 2024 13:24:55 +0800 Subject: [PATCH] up --- .../BasedataApplicationAutoMapperProfile.cs | 1 + .../PostionLocationAppService.cs | 41 ++++++++++++++- .../PostionLocationAutoMapperProfile.cs | 50 ++++++++++++------- .../ProductionLineItemAppService.cs | 2 +- ...asedataDbContextModelCreatingExtensions.cs | 1 + ...ocationDbContextModelCreatingExtensions.cs | 2 +- 6 files changed, 74 insertions(+), 23 deletions(-) diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs index 03ec64de1..4be81bc5d 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs @@ -57,6 +57,7 @@ public partial class BasedataApplicationAutoMapperProfile : Profile EquipmentLocAutoMapperProfile(); EquipmentPartCodeAutoMapperProfile(); EquipmentLocCapAutoMapperProfile(); + PostionLocationAutoMapperProfile(); } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PostionLocations/PostionLocationAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PostionLocations/PostionLocationAppService.cs index 18f269f0a..0968064ee 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PostionLocations/PostionLocationAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PostionLocations/PostionLocationAppService.cs @@ -19,10 +19,12 @@ using Win_in.Sfs.Shared.Domain; using Volo.Abp.ObjectMapping; using Win_in.Sfs.Shared.Application.Contracts; using Volo.Abp; +using Microsoft.EntityFrameworkCore; +using System.Linq; namespace Win_in.Sfs.Basedata.Application; -[Authorize] +[AllowAnonymous] [Route($"{BasedataConsts.RootPath}PostionLocation")] public class PostionLocationAppService @@ -86,7 +88,41 @@ public class PostionLocationAppService return pageResult; } - + + protected override async Task ValidateImportModelAsync(PostionLocationImportInput importInput, + List validationRresult) + { + await base.ValidateImportModelAsync(importInput, validationRresult).ConfigureAwait(false); + await CheckLocationCodeAsync(importInput.LocationCode, validationRresult).ConfigureAwait(false); + await CheckSameItem(importInput.Code,importInput.LocationCode,validationRresult).ConfigureAwait(false); + //CheckProductionLineProdLineCodeJsonAsync(importInput.RawLocationCodeListJson, validationRresult); + //CheckProductionLineProdLineCodeJsonAsync(importInput.ProductLocationCodeListJson, validationRresult); + //CheckProductionLineProdLineCodeJsonAsync(importInput.WipLocationCodeListJson, validationRresult); + + } + + private async Task CheckLocationCodeAsync(string locationCode, List validationRresult) + { + var list = await _locationAppService.GetByCodeAsync(locationCode).ConfigureAwait(false); + if (list == null) + { + validationRresult.Add(new ValidationResult($"{locationCode}库位编码不存在,请查看库位信息!")); + } + } + + private async Task CheckSameItem(string code, string locationCode, List validationRresult) + { + var item = await _repository.FirstOrDefaultAsync(r => r.Code == code && r.LocationCode == locationCode).ConfigureAwait(false); + if (item != null) + { + validationRresult.Add(new ValidationResult($"工作站编码{code}库位编码{locationCode}已存在", new string[] { "工作站编码", "库位编码" })); + } + + } + + + + [HttpPost("get-or-add")] public virtual async Task GetOrAddAsync(PostionLocationEditInput input) { @@ -94,6 +130,7 @@ public class PostionLocationAppService var result = await _repository.FirstOrDefaultAsync(p => p.Code == input.Code).ConfigureAwait(false); if (result == null) { + var entity = ObjectMapper.Map(input); result = await _repository.InsertAsync(entity, true).ConfigureAwait(false); } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PostionLocations/PostionLocationAutoMapperProfile.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PostionLocations/PostionLocationAutoMapperProfile.cs index 702d7c9c9..2d732d18f 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PostionLocations/PostionLocationAutoMapperProfile.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PostionLocations/PostionLocationAutoMapperProfile.cs @@ -12,33 +12,45 @@ public partial class BasedataApplicationAutoMapperProfile : Profile CreateMap() .ReverseMap(); + CreateMap() .IgnoreAuditedObjectProperties() .Ignore(x => x.TenantId) .Ignore(x => x.ExtraProperties) .Ignore(x => x.ConcurrencyStamp) - //.Ignore(x => x.EnableMixItem) - //.Ignore(x => x.EnableMixLot) - //.Ignore(x => x.EnableMixStatus) - //.Ignore(x => x.EnableNegative) - //.Ignore(x => x.EnableKeepZero) - //.Ignore(x => x.EnableOpportunityCount) - //.Ignore(x => x.EnablePick) - //.Ignore(x => x.EnableOverPick) - //.Ignore(x => x.EnableWholeStore) - //.Ignore(x => x.EnableBreakStore) - //.Ignore(x => x.EnableShip) - //.Ignore(x => x.EnableReceive) - //.Ignore(x => x.EnableReturnToSupplier) - //.Ignore(x => x.EnableReturnFromCustomer) - //.Ignore(x => x.EnableSplitPallet) - //.Ignore(x => x.EnableSplitBox) - - ; + .Ignore(x => x.Id) + .Ignore(x => x.Remark); + //.Ignore(x => x.EnableMixItem) + //.Ignore(x => x.EnableMixLot) + //.Ignore(x => x.EnableMixStatus) + //.Ignore(x => x.EnableNegative) + //.Ignore(x => x.EnableKeepZero) + //.Ignore(x => x.EnableOpportunityCount) + //.Ignore(x => x.EnablePick) + //.Ignore(x => x.EnableOverPick) + //.Ignore(x => x.EnableWholeStore) + //.Ignore(x => x.EnableBreakStore) + //.Ignore(x => x.EnableShip) + //.Ignore(x => x.EnableReceive) + //.Ignore(x => x.EnableReturnToSupplier) + //.Ignore(x => x.EnableReturnFromCustomer) + //.Ignore(x => x.EnableSplitPallet) + //.Ignore(x => x.EnableSplitBox) + + ; CreateMap() - .Ignore(x => x.ReportStatus) + .Ignore(x => x.ReportStatus) .Ignore(x => x.ReportReason); + CreateMap() + .IgnoreAuditedObjectProperties() + .Ignore(x => x.TenantId) + .Ignore(x => x.ExtraProperties) + .Ignore(x => x.ConcurrencyStamp) + .Ignore(x => x.Id) + .Ignore(x => x.Remark); + + } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLineItems/ProductionLineItemAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLineItems/ProductionLineItemAppService.cs index 5bcc8eeda..927c12e56 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLineItems/ProductionLineItemAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLineItems/ProductionLineItemAppService.cs @@ -106,7 +106,7 @@ public class ProductionLineItemAppService : } private void CheckProductionLineProdLineCodeJsonAsync(string locationCodeList, List validationRresult) { - if (!string.IsNullOrEmpty(locationCodeList)) + if (string.IsNullOrEmpty(locationCodeList)) { validationRresult.Add(new ValidationResult($"请维护生产线和库位关系")); } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContextModelCreatingExtensions.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContextModelCreatingExtensions.cs index b3d8b50a5..54cb6b6ef 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContextModelCreatingExtensions.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContextModelCreatingExtensions.cs @@ -73,6 +73,7 @@ public static class BasedataDbContextModelCreatingExtensions builder.ConfigureKitting(options); builder.ConfigureEquipmentLoc(options); builder.ConfigureEquipmentPartCode(options); + builder.ConfigurePostionLocation(options); } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PostionLocations/PostionLocationDbContextModelCreatingExtensions.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PostionLocations/PostionLocationDbContextModelCreatingExtensions.cs index 7f66e95b5..d53b69eb3 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PostionLocations/PostionLocationDbContextModelCreatingExtensions.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PostionLocations/PostionLocationDbContextModelCreatingExtensions.cs @@ -13,7 +13,7 @@ public static class PostionLocationDbContextModelCreatingExtensions builder.Entity(b => { //Configure table & schema name - b.ToTable(options.TablePrefix + nameof(Location), options.Schema); + b.ToTable(options.TablePrefix + nameof(PostionLocation), options.Schema); //Configure ABP properties b.ConfigureByConvention(); //Configure Sfs base properties