Browse Source

枚举空值处理

dev_DY_CC
周红军 1 year ago
parent
commit
afb14500c6
  1. 8
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs
  2. 9
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCode/PositionCodeAppService.cs
  3. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PositionCode/PositionCodeDbContextModelCreatingExtensions.cs
  4. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/Inputs/IssueJobDetailInput.cs
  5. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/DTOs/ProductRecycleJobDTO.cs
  6. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/DTOs/ProductRecycleJobDetailDTO.cs
  7. 10
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs
  8. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/ProductRecycleJobPermissions.cs
  9. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/Inputs/IssueNoteDetailInput.cs
  10. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Permissions/StorePermissionDefinitionProvider.cs
  11. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/Inputs/MaterialRequestDetailInput.cs
  12. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Win_in.Sfs.Wms.Store.Application.Contracts.csproj
  13. 8
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/MaterialRequestAppService.cs
  14. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/IssueJobDetail.cs
  15. 59
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/ProductRecycleJobs/ProductRecycleJobManager.cs
  16. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/IssueNoteDetail.cs
  17. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestDetail.cs
  18. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Jobs/IssueJobs/IssueJobDbContextModelCreatingExtensions.cs

8
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs

@ -41,19 +41,19 @@ public class IssueNoteController : AbpController
p.ToPackingCode = string.Empty;
if(p.PositionCode.Contains('W'))
{
p.RecommendType = EnumRecommendType.W;
p.RecommendType = "W";
}
else if(p.PositionCode.Contains('Q'))
{
p.RecommendType = EnumRecommendType.Q;
p.RecommendType = "Q";
}
else if (p.PositionCode.Contains('K'))
{
p.RecommendType = EnumRecommendType.K;
p.RecommendType = "K";
}
else
{
p.RecommendType = EnumRecommendType.None;
p.RecommendType = "None";
}
});

9
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCode/PositionCodeAppService.cs

@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using Volo.Abp.Caching;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Uow;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
@ -22,6 +23,7 @@ public class PositionCodeAppService
, IPositionCodeAppService
{
private readonly IPositionCodeManager _manager;
private new readonly IPositionCodeRepository _repository;
public PositionCodeAppService(IPositionCodeRepository repository, IDistributedCache<PositionCodeDTO> cache, IPositionCodeManager manager) : base(repository, cache)
{
@ -29,6 +31,7 @@ public class PositionCodeAppService
base.UpdatePolicyName = CategoryPermissions.Update;
base.DeletePolicyName = CategoryPermissions.Delete;
_manager = manager;
_repository = repository;
}
@ -42,6 +45,12 @@ public class PositionCodeAppService
throw new UserFriendlyException($"{input.Code} 已存在");
}
var itemEntity = await _repository.FirstOrDefaultAsync(p => p.PartCode == input.PartCode).ConfigureAwait(false);
if(itemEntity != null)
{
throw new UserFriendlyException($"{input.PartCode} 物品已存在");
}
var itemBasic = await ItemBasicAppService.GetByCodeAsync(input.PartCode).ConfigureAwait(false);
Check.NotNull(itemBasic, "物品代码", $"物品 {input.PartCode} 不存在");
input.PartName = itemBasic.Name;

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PositionCode/PositionCodeDbContextModelCreatingExtensions.cs

@ -33,6 +33,8 @@ public static class PositionCodeDbContextModelCreatingExtensions
//Indexes
b.HasIndex(q => new { q.Code,q.PartCode,q.LocationCode }).IsUnique();
b.HasIndex(q => new { q.Code }).IsUnique();
b.HasIndex(q => new { q.PartCode }).IsUnique();
});
}
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/Inputs/IssueJobDetailInput.cs

@ -130,5 +130,5 @@ public class IssueJobDetailInput : SfsJobRecommendFromDetailInputBase, IHasToLoc
/// <summary>
/// 推荐类型
/// </summary>
public EnumRecommendType RecommendType { get; set; }
public string RecommendType { get; set; }
}

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/DTOs/ProductRecycleJobDTO.cs

@ -0,0 +1,9 @@
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ProductRecycleJobDTO
{
}

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/DTOs/ProductRecycleJobDetailDTO.cs

@ -0,0 +1,9 @@
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ProductRecycleJobDetailDTO
{
}

10
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs

@ -0,0 +1,10 @@
using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface IProductRecycleJobAppService
: ISfsJobAppServiceBase<ProductReceiveJobDTO, SfsJobRequestInputBase, ProductReceiveJobCheckInput, ProductReceiveJobEditInput>
{
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/ProductRecyclePermissions.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/ProductRecycleJobPermissions.cs

@ -3,7 +3,7 @@ using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public static class ProductRecyclePermissions
public static class ProductRecycleJobPermissions
{
public const string Default = StorePermissions.GroupName + "." + nameof(ProductRecycleJob);
public const string Create = Default + "." + StorePermissions.CreateStr;

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/IssueNotes/Inputs/IssueNoteDetailInput.cs

@ -48,6 +48,6 @@ public class IssueNoteDetailInput : SfsStoreRecommendFromDetailWithFromToInputBa
/// <summary>
/// 推荐类型
/// </summary>
public EnumRecommendType RecommendType { get; set; }
public string RecommendType { get; set; }
}

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Permissions/StorePermissionDefinitionProvider.cs

@ -91,6 +91,7 @@ public class StorePermissionDefinitionProvider : PermissionDefinitionProvider
storeGroup.AddDeliverJobPermission();
storeGroup.AddPurchaseReturnJobPermission();
storeGroup.AddProductReceiveJobPermission();
storeGroup.AddProductRecycleJobPermission();
storeGroup.AddCheckJobPermission();
storeGroup.AddCountJobPermission();
storeGroup.AddJisDeliverJobPermission();

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/Inputs/MaterialRequestDetailInput.cs

@ -79,7 +79,7 @@ public class MaterialRequestDetailInput : SfsStoreDetailWithQtyInputBase
/// <summary>
/// 推荐类型
/// </summary>
public EnumRecommendType RecommendType { get; set; }
public string RecommendType { get; set; }
}

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Win_in.Sfs.Wms.Store.Application.Contracts.csproj

@ -42,7 +42,6 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Jobs\ProductRecycleJobs\DTOs\" />
<Folder Include="Jobs\ProductRecycleJobs\Inputs\" />
<Folder Include="Orders" />
<Folder Include="Plans" />

8
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/MaterialRequestAppService.cs

@ -216,19 +216,19 @@ public class MaterialRequestAppService : SfsStoreRequestAppServiceBase<MaterialR
detailInput.ItemDesc1 = itemBasicDto.Desc1;
if(detailInput.PositionCode.Contains('W'))
{
detailInput.RecommendType = EnumRecommendType.W;
detailInput.RecommendType = "W";
}
else if(detailInput.PositionCode.Contains('Q'))
{
detailInput.RecommendType = EnumRecommendType.Q;
detailInput.RecommendType = "Q";
}
else if(detailInput.PositionCode.Contains('K'))
{
detailInput.RecommendType = EnumRecommendType.K;
detailInput.RecommendType = "K";
}
else
{
detailInput.RecommendType = EnumRecommendType.None;
detailInput.RecommendType = "None";
}
var productionLineDto = await _productionLineAppService.GetByLocationGroupCodeAsync(toLocationDto.LocationGroupCode).ConfigureAwait(false);

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/IssueJobs/IssueJobDetail.cs

@ -99,6 +99,6 @@ public class IssueJobDetail : SfsJobRecommendFromDetailEntityBase, IHasToLocatio
/// <summary>
/// 推荐类型
/// </summary>
public EnumRecommendType RecommendType { get; set; }
public string RecommendType { get; set; }
}

59
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/ProductRecycleJobs/ProductRecycleJobManager.cs

@ -1,10 +1,61 @@
using System;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Users;
using Volo.Abp.Validation;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Jobs.ProductRecycleJobs;
internal class ProductRecycleJobManager
namespace Win_in.Sfs.Wms.Store.Domain;
public class ProductRecycleJobManager : SfsJobManagerBase<ProductRecycleJob, ProductRecycleJobDetail>, IProductRecycleJobManager
{
public ProductRecycleJobManager(
IProductRecycleJobRepository repository
) : base(repository)
{
}
public override void CheckDetails(ProductRecycleJob entity, AbpValidationResult result)
{
var details = entity.Details;
foreach (var detail in details)
{
if (detail.HandledToLocationCode == null)
{
result.Errors.Add(new ValidationResult($"{detail.HandledToLocationCode} 不能为空"));
}
}
}
public override async Task<List<ProductRecycleJob>> GetWorkingListByPackingAsync(string packingCode)
{
return await Repository.GetListAsync(
c => c.Details.Any(p => p.RecommendPackingCode == packingCode)
&& c.JobStatus != EnumJobStatus.Closed
&& c.JobStatus != EnumJobStatus.Cancelled
, true).ConfigureAwait(false);
}
public override async Task<List<ProductRecycleJob>> GetWorkingListByContainerAsync(string containerCode)
{
return await Repository.GetListAsync(
c => c.Details.Any(p => p.RecommendContainerCode == containerCode)
&& c.JobStatus != EnumJobStatus.Closed
&& c.JobStatus != EnumJobStatus.Cancelled
, true).ConfigureAwait(false);
}
public async Task<ProductRecycleJob> GetAsync(Expression<Func<ProductRecycleJob, bool>> expression)
{
return await Repository.FindAsync(expression).ConfigureAwait(false);
}
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/IssueNotes/IssueNoteDetail.cs

@ -39,5 +39,5 @@ public class IssueNoteDetail : SfsStoreRecommendFromDetailWithFromToEntityBase
/// <summary>
/// 推荐类型
/// </summary>
public EnumRecommendType RecommendType { get; set; }
public string RecommendType { get; set; }
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestDetail.cs

@ -99,6 +99,6 @@ public class MaterialRequestDetail : SfsStoreDetailWithQtyEntityBase, IHasToLoca
/// <summary>
/// 推荐类型
/// </summary>
public EnumRecommendType RecommendType { get; set; }
public string RecommendType { get; set; }
}

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Jobs/IssueJobs/IssueJobDbContextModelCreatingExtensions.cs

@ -56,7 +56,8 @@ public static class IssueJobDbContextModelCreatingExtensions
b.Property(q => q.TruncType).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.PlannedSplitRule).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.OnTheWayLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.RecommendType).HasMaxLength(SfsPropertyConst.NameLength).HasConversion<string>();
b.Property(q => q.PositionCode).HasMaxLength(SfsPropertyConst.CodeLength).IsRequired(false);
b.Property(q => q.RecommendType).HasMaxLength(SfsPropertyConst.CodeLength).IsRequired(false);
//Relations
//None

Loading…
Cancel
Save