Browse Source

新增物料和储位对应关系功能

dev_DY_CC
周红军 1 year ago
parent
commit
5effe41d00
  1. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp/ErpLocation/locmout.cs
  2. 25
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/DTOs/ErpLocationItemDTO.cs
  3. 21
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/ErpLocationItemPermissions.cs
  4. 10
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/IErpLocationItemAppService.cs
  5. 15
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/Inputs/ErpLocationItemEditInput.cs
  6. 27
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/Inputs/ErpLocationItemImportInput.cs
  7. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Permissions/BasedataPermissionDefinitionProvider.cs
  8. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/PositionCodePermissions.cs
  9. 4
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Win_in.Sfs.Basedata.Application.Contracts.csproj
  10. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs
  11. 62
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ErpLocationItems/ErpLocationItemAppService.cs
  12. 33
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ErpLocationItems/ErpLocationItemAutoMapperProfile.cs
  13. 0
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCodes/PositionCodeAppService.cs
  14. 0
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCodes/PositionCodeAutoMapperProfile.cs
  15. 21
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ErpLocationItems/ErpLocationItem.cs
  16. 31
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ErpLocationItems/ErpLocationItemManager.cs
  17. 9
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ErpLocationItems/IErpLocationItemManager.cs
  18. 9
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ErpLocationItems/IErpLocationItemRepository.cs
  19. 0
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCodes/IPositionCodeManager.cs
  20. 0
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCodes/IPositionCodeRepository.cs
  21. 0
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCodes/PositionCode.cs
  22. 0
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCodes/PositionCodeManager.cs
  23. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContext.cs
  24. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContextModelCreatingExtensions.cs
  25. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataEntityFrameworkCoreModule.cs
  26. 35
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/ErpLocationItems/ErpLocationItemDbContextModelCreatingExtensions.cs
  27. 31
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/ErpLocationItems/ErpLocationItemEfCoreRepository.cs
  28. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/IBasedataDbContext.cs
  29. 0
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PositionCodes/PositionCodeDbContextModelCreatingExtensions.cs
  30. 0
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PositionCodes/PositionCodeEfCoreRepository.cs

4
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp/ErpLocation/locmout.cs

@ -5,11 +5,11 @@ namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp;
public class locmout : Entity
{
/// <summary>
///
///
/// </summary>
public string locmout_loc { get; set; }
/// <summary>
/// 位类型
/// 位类型
/// </summary>
public string locmout_stat2 { get; set; }

25
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/DTOs/ErpLocationItemDTO.cs

@ -0,0 +1,25 @@
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Basedata.Application.Contracts;
[Display(Name = "物料和储位对应关系")]
public class ErpLocationItemDTO : SfsBaseDataDTOBase
{
/// <summary>
/// 物料代码
/// </summary>
[Display(Name = "物料代码")]
[Required(ErrorMessage = "{0}是必填项")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ItemCode { get; set; }
/// <summary>
/// 储位代码
/// </summary>
[Display(Name = "储位代码")]
[Required(ErrorMessage = "{0}是必填项")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ErpLoactionCode { get; set; }
}

21
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/ErpLocationItemPermissions.cs

@ -0,0 +1,21 @@
using Volo.Abp.Authorization.Permissions;
using Win_in.Sfs.Basedata.Domain;
namespace Win_in.Sfs.Basedata.Application.Contracts;
public static class ErpLocationItemPermissions
{
public const string Default = BasedataPermissions.GroupName + "." + nameof(ErpLocationItem);
public const string Create = Default + "." + BasedataPermissions.CreateStr;
public const string Update = Default + "." + BasedataPermissions.UpdateStr;
public const string Delete = Default + "." + BasedataPermissions.DeleteStr;
public static void AddErpLocationItemPermission(this PermissionGroupDefinition permissionGroup)
{
var erpLocationItemPermission = permissionGroup.AddPermission(Default, BasedataPermissionDefinitionProvider.L(nameof(ErpLocationItem)));
erpLocationItemPermission.AddChild(Create, BasedataPermissionDefinitionProvider.L(BasedataPermissions.CreateStr));
erpLocationItemPermission.AddChild(Update, BasedataPermissionDefinitionProvider.L(BasedataPermissions.UpdateStr));
erpLocationItemPermission.AddChild(Delete, BasedataPermissionDefinitionProvider.L(BasedataPermissions.DeleteStr));
}
}

10
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/IErpLocationItemAppService.cs

@ -0,0 +1,10 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Basedata.Application.Contracts;
public interface IErpLocationItemAppService : ISfsBaseDataAppServiceBase<ErpLocationItemDTO, SfsBaseDataRequestInputBase, ErpLocationItemEditInput>, ISfsUpsertAppService<ErpLocationItemEditInput>
{
Task<List<ErpLocationItemDTO>> GetListByItemCodeAsync(string itemCode);
}

15
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/Inputs/ErpLocationItemEditInput.cs

@ -6,18 +6,21 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
public class ErpLocationItemEditInput : SfsBaseDataCreateOrUpdateInputBase
{
/// <summary>
/// 储位代码
/// 物料代码
/// </summary>
[Display(Name = "储位代码")]
[Display(Name = "物料代码")]
[Required(ErrorMessage = "{0}是必填项")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ErpLoactionCode { get; set; }
public string ItemCode { get; set; }
/// <summary>
/// 物料代码
/// 储位代码
/// </summary>
[Display(Name = "物料代码")]
[Display(Name = "储位代码")]
[Required(ErrorMessage = "{0}是必填项")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ItemCode { get; set; }
public string ErpLoactionCode { get; set; }
}

27
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ErpLocationItems/Inputs/ErpLocationItemImportInput.cs

@ -0,0 +1,27 @@
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Basedata.Application.Contracts;
[Display(Name = "物料和储位对应关系")]
public class ErpLocationItemImportInput : SfsBaseDataImportInputBase
{
/// <summary>
/// 物料代码
/// </summary>
[Key]
[Display(Name = "物料代码")]
[Required(ErrorMessage = "{0}不能为空")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ItemCode { get; set; }
/// <summary>
/// 储位代码
/// </summary>
[Display(Name = "储位代码")]
[StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")]
public string ErpLoactionCode { get; set; }
}

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Permissions/BasedataPermissionDefinitionProvider.cs

@ -35,6 +35,7 @@ public class BasedataPermissionDefinitionProvider : PermissionDefinitionProvider
basedataGroup.AddItemBasicPermission();
basedataGroup.AddItemCategoryPermission();
basedataGroup.AddItemPackPermission();
basedataGroup.AddErpLocationItemPermission();
basedataGroup.AddItemContainerPermission();
basedataGroup.AddCategoryPermission();
basedataGroup.AddPositionCodePermission();

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/PositionCode/PositionCodePermissions.cs

@ -5,7 +5,6 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
public static class PositionCodePermissions
{
public const string Default = BasedataPermissions.GroupName + "." + nameof(PositionCode);
public const string Create = Default + "." + BasedataPermissions.CreateStr;
public const string Update = Default + "." + BasedataPermissions.UpdateStr;

4
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Win_in.Sfs.Basedata.Application.Contracts.csproj

@ -25,8 +25,4 @@
</PackageReference>
</ItemGroup>
<ItemGroup>
<Folder Include="ErpLocationItems\DTOs\" />
</ItemGroup>
</Project>

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs

@ -27,6 +27,7 @@ public partial class BasedataApplicationAutoMapperProfile : Profile
ItemBasicAutoMapperProfile();
ItemCategoryAutoMapperProfile();
ItemPackAutoMapperProfile();
ErpLocationItemAutoMapperProfile();
ItemContainerAutoMapperProfile();
ItemStoreRelationAutoMapperProfile();
ItemSafetyStockAutoMapperProfile();

62
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ErpLocationItems/ErpLocationItemAppService.cs

@ -0,0 +1,62 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Caching;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
namespace Win_in.Sfs.Basedata.Application;
[Authorize]
[Route($"{BasedataConsts.RootPath}erplocation-item")]
public class ErpLocationItemAppService
: SfsBaseDataAppServiceBase<ErpLocationItem, ErpLocationItemDTO, SfsBaseDataRequestInputBase, ErpLocationItemEditInput, ErpLocationItemImportInput>
, IErpLocationItemAppService
{
private readonly IErpLocationItemManager _manager;
private new readonly IErpLocationItemRepository _repository;
public ErpLocationItemAppService(
IErpLocationItemRepository repository
, IDistributedCache<ErpLocationItemDTO> cache
, IErpLocationItemManager manager
, IItemBasicAppService itemBasicAppService) : base(repository, cache)
{
base.CreatePolicyName = ErpLocationItemPermissions.Create;
base.UpdatePolicyName = ErpLocationItemPermissions.Update;
base.DeletePolicyName = ErpLocationItemPermissions.Delete;
_repository = repository;
_manager = manager;
}
[HttpPost("upsert")]
public virtual async Task UpsertAsync(ErpLocationItemEditInput input)
{
var entity = ObjectMapper.Map<ErpLocationItemEditInput, ErpLocationItem>(input);
await _repository.UpsertAsync(entity).ConfigureAwait(false);
}
[HttpGet("list/by-item")]
public virtual async Task<List<ErpLocationItemDTO>> GetListByItemCodeAsync(string itemCode)
{
var entities = await _repository.GetListAsync(c => c.ItemCode == itemCode).ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<ErpLocationItem>, List<ErpLocationItemDTO>>(entities);
return dtos;
}
protected override async Task ValidateImportModelAsync(ErpLocationItemImportInput importInput, List<ValidationResult> validationRresult)
{
await base.CheckItemBasicItemCodeAsync(importInput.ItemCode, validationRresult).ConfigureAwait(false);
}
}

33
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ErpLocationItems/ErpLocationItemAutoMapperProfile.cs

@ -0,0 +1,33 @@
using AutoMapper;
using Volo.Abp.AutoMapper;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
namespace Win_in.Sfs.Basedata.Application;
public partial class BasedataApplicationAutoMapperProfile : Profile
{
private void ErpLocationItemAutoMapperProfile()
{
CreateMap<ErpLocationItem, ErpLocationItemDTO>()
.ReverseMap();
CreateMap<ErpLocationItemImportInput, ErpLocationItem>()
.IgnoreAuditedObjectProperties()
.Ignore(x => x.TenantId)
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.ConcurrencyStamp)
;
CreateMap<ErpLocationItemEditInput, ErpLocationItem>()
.IgnoreAuditedObjectProperties()
.Ignore(x => x.TenantId)
.Ignore(x=>x.Id)
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.ConcurrencyStamp)
;
CreateMap<ErpLocationItemEditInput, ErpLocationItem>()
.IgnoreAuditedObjectProperties()
.Ignore(x => x.ConcurrencyStamp).Ignore(x => x.Id);
}
}

0
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCode/PositionCodeAppService.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCodes/PositionCodeAppService.cs

0
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCode/PositionCodeAutoMapperProfile.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCodes/PositionCodeAutoMapperProfile.cs

21
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ErpLocationItems/ErpLocationItem.cs

@ -0,0 +1,21 @@
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Entities;
namespace Win_in.Sfs.Basedata.Domain;
public class ErpLocationItem : SfsBaseDataAggregateRootBase
{
/// <summary>
/// 物料代码
/// </summary>
[IgnoreUpdate]
public string ItemCode { get; set; }
/// <summary>
/// 储位代码
/// </summary>
[IgnoreUpdate]
public string ErpLocationCode { get; set; }
}

31
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ErpLocationItems/ErpLocationItemManager.cs

@ -0,0 +1,31 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Domain.Services;
namespace Win_in.Sfs.Basedata.Domain;
public class ErpLocationItemManager : DomainService, IErpLocationItemManager
{
private readonly IErpLocationItemRepository _repository;
private readonly IItemBasicRepository _itemBasicRepository;
public ErpLocationItemManager(IErpLocationItemRepository repository, IItemBasicRepository itemBasicRepository)
{
_repository = repository;
_itemBasicRepository = itemBasicRepository;
}
/// <summary>
/// 执行导入
/// </summary>
public virtual async Task ImportDataAsync(List<ErpLocationItem> mergeEntities, List<ErpLocationItem> deleteEntities = null)
{
if (deleteEntities != null && deleteEntities.Count > 0)
{
await _repository.BulkDeleteAsync(deleteEntities).ConfigureAwait(false);
}
await _repository.BulkMergeAsync(mergeEntities).ConfigureAwait(false);
}
}

9
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ErpLocationItems/IErpLocationItemManager.cs

@ -0,0 +1,9 @@
using Volo.Abp.Domain.Services;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Basedata.Domain;
public interface IErpLocationItemManager : IDomainService, IBulkImportService<ErpLocationItem>
{
}

9
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ErpLocationItems/IErpLocationItemRepository.cs

@ -0,0 +1,9 @@
using System.Threading.Tasks;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Basedata.Domain;
public interface IErpLocationItemRepository : ISfsBaseDataRepositoryBase<ErpLocationItem>, ISfsBulkRepositoryBase<ErpLocationItem>
{
public Task UpsertAsync(ErpLocationItem entity);
}

0
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCode/IPositionCodeManager.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCodes/IPositionCodeManager.cs

0
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCode/IPositionCodeRepository.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCodes/IPositionCodeRepository.cs

0
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCode/PositionCode.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCodes/PositionCode.cs

0
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCode/PositionCodeManager.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/PositionCodes/PositionCodeManager.cs

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContext.cs

@ -36,6 +36,7 @@ public class BasedataDbContext : AbpDbContext<BasedataDbContext>, IBasedataDbCon
public DbSet<ItemBasic> ItemBasics { get; set; }
public DbSet<ItemCategory> ItemCategories { get; set; }
public DbSet<ItemPack> ItemPacks { get; set; }
public DbSet<ErpLocationItem> ErpLocationItems { get; set; }
public DbSet<ItemContainer> ItemContainers { get; set; }
public DbSet<ItemStoreRelation> ItemStoreRelations { get; set; }
public DbSet<ItemSafetyStock> ItemSafetyStocks { get; set; }

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataDbContextModelCreatingExtensions.cs

@ -47,6 +47,7 @@ public static class BasedataDbContextModelCreatingExtensions
builder.ConfigureItemBasic(options);
builder.ConfigureItemCategory(options);
builder.ConfigureItemPack(options);
builder.ConfigureErpLocationItem(options);
builder.ConfigureItemContainer(options);
builder.ConfigureItemStoreRelation(options);
builder.ConfigureItemSafetyStock(options);

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/BasedataEntityFrameworkCoreModule.cs

@ -51,6 +51,7 @@ public class BasedataEntityFrameworkCoreModule : AbpModule
context.Services.AddTransient<IItemBasicRepository, ItemBasicEfCoreRepository>();
context.Services.AddTransient<IItemCategoryRepository, ItemCategoryEfCoreRepository>();
context.Services.AddTransient<IItemPackRepository, ItemPackEfCoreRepository>();
context.Services.AddTransient<IErpLocationItemRepository, ErpLocationItemEfCoreRepository>();
context.Services.AddTransient<IItemContainerRepository, ItemContainerEfCoreRepository>();
context.Services.AddTransient<IItemStoreRelationRepository, ItemStoreRelationEfCoreRepository>();
context.Services.AddTransient<IItemSafetyStockRepository, ItemSafetyStockEfCoreRepository>();

35
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/ErpLocationItems/ErpLocationItemDbContextModelCreatingExtensions.cs

@ -0,0 +1,35 @@
using Microsoft.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.Modeling;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.EntityFrameworkCore;
namespace Win_in.Sfs.Basedata.EntityFrameworkCore;
public static class ErpLocationItemDbContextModelCreatingExtensions
{
public static void ConfigureErpLocationItem(this ModelBuilder builder, BasedataModelBuilderConfigurationOptions options)
{
builder.Entity<ErpLocationItem>(b =>
{
//Configure table & schema name
b.ToTable(options.TablePrefix + nameof(ErpLocationItem), options.Schema);
//Configure ABP properties
b.ConfigureByConvention();
//Configure Sfs base properties
b.ConfigureSfsBase();
//Properties
b.Property(q => q.ItemCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ErpLocationCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength);
//Relations
//None
//Indexes
b.HasIndex(q => new { q.ItemCode, q.ErpLocationCode }).IsUnique();
});
}
}

31
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/ErpLocationItems/ErpLocationItemEfCoreRepository.cs

@ -0,0 +1,31 @@
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Basedata.EntityFrameworkCore;
public class ErpLocationItemEfCoreRepository : SfsBaseDataEfCoreRepositoryBase<BasedataDbContext, ErpLocationItem>, IErpLocationItemRepository, ISfsBulkRepositoryBase<ErpLocationItem>
{
public ErpLocationItemEfCoreRepository(IDbContextProvider<BasedataDbContext> dbContextProvider) : base(dbContextProvider)
{
}
public virtual async Task UpsertAsync(ErpLocationItem entity)
{
var dbSet = await GetDbSetAsync().ConfigureAwait(false);
var exist = await dbSet.FirstOrDefaultAsync(p => p.ItemCode == entity.ItemCode).ConfigureAwait(false);
if (exist == null)
{
var insRet = await InsertAsync(entity).ConfigureAwait(false);
}
else
{
exist.ItemCode = entity.ItemCode;
exist.ErpLocationCode = entity.ErpLocationCode;
}
}
}

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/IBasedataDbContext.cs

@ -36,6 +36,7 @@ public interface IBasedataDbContext : IEfCoreDbContext
public DbSet<ItemBasic> ItemBasics { get; }
public DbSet<ItemCategory> ItemCategories { get; }
public DbSet<ItemPack> ItemPacks { get; }
public DbSet<ErpLocationItem> ErpLocationItems { get; }
public DbSet<ItemContainer> ItemContainers { get; }
public DbSet<PositionCode> PositionCodes { get; }
public DbSet<ItemStoreRelation> ItemStoreRelations { get; }

0
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PositionCode/PositionCodeDbContextModelCreatingExtensions.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PositionCodes/PositionCodeDbContextModelCreatingExtensions.cs

0
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PositionCode/PositionCodeEfCoreRepository.cs → be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/PositionCodes/PositionCodeEfCoreRepository.cs

Loading…
Cancel
Save