唐明亮 2 years ago
parent
commit
fd74e49e4a
  1. 6
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Eos/Plans/IPlanRepository.cs
  2. 5
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Eos/Plans/PlanManager.cs
  3. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Eos/Arrives/ArriveDbContextModelCreatingExtensions.cs
  4. 27
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Eos/Plans/PlanEfCoreRepository.cs
  5. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Eos/Returns/ReturnDbContextModelCreatingExtensions.cs
  6. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Tyrp/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Tyrp.csproj
  7. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/EosAgentModule.cs
  8. 8
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/FawtygAutoMapperProfile.cs
  9. 28
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/EosIncomingBackgroundWorker.cs
  10. 8
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/PlanConverter.cs
  11. 3
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/PlanReader.cs
  12. 9
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ProductConverter.cs
  13. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipConverter.cs
  14. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Outgoing/ArriveConverter.cs
  15. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Outgoing/ReturnConverter.cs
  16. 8
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/IssueConverter.cs
  17. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesOutConverter.cs
  18. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/PullTaskConverter.cs
  19. 9
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/ScrapConverter.cs
  20. 6
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/BackFluConverter.cs
  21. 8
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/BomConverter.cs
  22. 5
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/BomReader.cs
  23. 8
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/CustomerConverter.cs
  24. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/DepartmentConverter.cs
  25. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/DictConverter.cs
  26. 5
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/DictpjReader.cs
  27. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/InterfaceCalendarConverter.cs
  28. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/ItemBasicConverter.cs
  29. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/SupplierConverter.cs
  30. 98
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/TyrpIncomingBackgroundWorker.cs
  31. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/UserConverter.cs
  32. 6
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/ScontrolWriter.cs
  33. 8
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TyrpOutgoingBackgroundWorker.cs
  34. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/WmsoutmWriter.cs
  35. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/TyrpAgentModule.cs
  36. 6
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/appsettings.json
  37. 4
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/AgentModule.cs
  38. 1
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain.Shared/Enums/EnumSystemType.cs
  39. 3
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/ArchivedIncomingFromExternal/IArchivedIncomingFromExternalRepository.cs
  40. 1
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/IncomingFromExternal/IIncomingFromExternalManager.cs
  41. 8
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/IncomingFromExternal/IncomingFromExternalManager.cs
  42. 1
      be/Hosts/Core.Host/Win_in.Sfs.Core.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.LabelDbContext.sql
  43. 3
      be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql
  44. 57
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Inventories/BalanceController.cs
  45. 6
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs
  46. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/DeliverJobController.cs
  47. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/InspectJobController.cs
  48. 6
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobController.cs
  49. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/JisDeliverJobController.cs
  50. 2
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/JobController.cs
  51. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ProductReceiveJobController.cs
  52. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ProductionReturnJobController.cs
  53. 72
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/PurchaseReceiptJobController.cs
  54. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/PurchaseReturnJobController.cs
  55. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/PutawayJobController.cs
  56. 13
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/IssueNoteController.cs
  57. 13
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReceiptRequestController.cs
  58. 23
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs
  59. 1
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/ExpectOuts/IExpectOutAppService.cs
  60. 8
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/ExpectOuts/ExpectOutAppService.cs
  61. 7
      be/Modules/Label/src/Win_in.Sfs.Label.Application.Contracts/InventoryLabels/InventoryLabelDto.cs
  62. 7
      be/Modules/Label/src/Win_in.Sfs.Label.Application.Contracts/InventoryLabels/InventoryLabelEditInput.cs
  63. 7
      be/Modules/Label/src/Win_in.Sfs.Label.Application.Contracts/InventoryLabels/InventoryLabelImportInput.cs
  64. 7
      be/Modules/Label/src/Win_in.Sfs.Label.Application.Contracts/InventoryLabels/InventoryLabelWithoutCodeCreateInput.cs
  65. 39
      be/Modules/Label/src/Win_in.Sfs.Label.Application/Bases/SfsLabelAppServiceWithCodeBase.cs
  66. 7
      be/Modules/Label/src/Win_in.Sfs.Label.Domain/InventoryLabels/InventoryLabel.cs
  67. 8
      be/Modules/Message/src/Win_in.Sfs.Message.Application/MessageApplicationAutoMapperProfile.cs
  68. 12
      be/Modules/Message/src/Win_in.Sfs.Message.Application/MessageTypeSubscribes/MessageTypeSubscribeAutoMapperProfile.cs
  69. 4
      be/Modules/Message/src/Win_in.Sfs.Message.Application/MessageTypes/MessageTypeAutoMapperProfile.cs
  70. 3
      be/Modules/Message/src/Win_in.Sfs.Message.Application/NotifyMessages/NotifyMessageAutoMapperProfile.cs
  71. 4
      be/Modules/Message/src/Win_in.Sfs.Message.Application/UserNotifyMessages/UserNotifyMessageAutoMapperProfile.cs
  72. 1
      be/Modules/Shared/src/Win_in.Sfs.Shared.Application.Contracts/ISfsCrudWithDetailsAppService.cs
  73. 9
      be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs
  74. 6
      be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Inventory/EnumTransSubType.cs
  75. 3
      be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumMaterialRequestType.cs
  76. 4
      be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumProductReceiptType.cs
  77. 10
      be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumScrapType.cs
  78. 1
      be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/Repositories/ISfsBulkRepositoryBase.cs
  79. 18
      be/Modules/Shared/src/Win_in.Sfs.Shared.EntityFrameworkCore/SfsEfCoreRepositoryBase.cs
  80. 12
      be/Modules/Shared/src/Win_in.Sfs.Shared.Host/HostBuilderExtensions.cs
  81. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/DTOs/SfsJobRecommendFromDetailDTOBase.cs
  82. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/DTOs/SfsStoreRequestDTOBase.cs
  83. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreCreateOrUpdateInputBase.cs
  84. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreDetailWithFromToInputBase.cs
  85. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreImportInputBase.cs
  86. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreRecommendFromDetailWithFromToInputBase.cs
  87. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreRecommendToDetailWithFromToInputBase.cs
  88. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreRequestCreateOrUpdateInputBase.cs
  89. 8
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReceiptJobs/IPurchaseReceiptJobAppService.cs
  90. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/DeliverNotes/DTOs/DeliverNoteDTO.cs
  91. 8
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/DeliverNotes/Inputs/DeliverNoteEditInput.cs
  92. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ProductReceiptRequests/DTOs/ProductReceiptRequestDTO.cs
  93. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ProductReceiptRequests/Inputs/ProductReceiptRequestEditInput.cs
  94. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ProductionReturnRequests/Inputs/ProductionReturnRequestDetailInput.cs
  95. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ProductionReturnRequests/Inputs/ProductionReturnRequestEditInput.cs
  96. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReceiptRequests/IPurchaseReceiptRequestAppService.cs
  97. 15
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ScrapRequests/Inputs/ScrapRequestImportInput.cs
  98. 39
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsJobWithCodeAppServiceBase.cs
  99. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/DeliverJobs/DeliverJobAutoMapperProfile.cs
  100. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs

6
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Eos/Plans/IPlanRepository.cs

@ -1,7 +1,13 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using EFCore.BulkExtensions;
using Volo.Abp.Domain.Repositories;
namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.EOS;
public interface IPlanRepository : IRepository<Plan, decimal>
{
Task BulkUpdateAsync(IList<Plan> entities, BulkConfig bulkConfig = null, Action<decimal> progress = null, Type type = null, CancellationToken cancellationToken = default);
}

5
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Eos/Plans/PlanManager.cs

@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Domain.Services;
namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.EOS;
@ -16,6 +18,7 @@ public class PlanManager : DomainService, IPlanManager
public virtual async Task<List<Plan>> GetToBeProcessedListAsync()
{
var plans = await _repository.GetListAsync(p => p.WmsState == 0).ConfigureAwait(false);
return plans;
}
@ -29,6 +32,6 @@ public class PlanManager : DomainService, IPlanManager
p.WmsState = 1;
p.WmsDate = Clock.Now;
});
await _repository.UpdateManyAsync(plans).ConfigureAwait(false);
await _repository.BulkUpdateAsync(plans).ConfigureAwait(false);
}
}

4
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Eos/Arrives/ArriveDbContextModelCreatingExtensions.cs

@ -11,12 +11,12 @@ public static class ArriveDbContextModelCreatingExtensions
builder.Entity<ArriveNote>(b =>
{
//Configure table & schema Name
b.ToTable(options.TablePrefix + "Sync_arrive", options.Schema);
b.ToTable(options.TablePrefix + "Sync_arrrive", options.Schema);
//Configure ABP properties
b.ConfigureByConvention();
//Properties
b.Property(q => q.Id);
b.Property(q => q.Id).ValueGeneratedOnAdd();
b.Property(q => q.PlanBillNo).HasMaxLength(255);
b.Property(q => q.ShipBillNo).HasMaxLength(255);
b.Property(q => q.DocNo).HasMaxLength(255);

27
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Eos/Plans/PlanEfCoreRepository.cs

@ -1,5 +1,12 @@
using EFCore.BulkExtensions;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Threading;
using System;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.EOS;
namespace Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Eos.EOS;
@ -9,5 +16,25 @@ public class PlanEfCoreRepository : EfCoreRepository<EosDbContext, Plan, decimal
public PlanEfCoreRepository(IDbContextProvider<EosDbContext> dbContextProvider)
: base(dbContextProvider)
{
}
/// <summary>
/// 批量更新数据
/// </summary>
/// <param name="entities"></param>
/// <param name="bulkConfig"></param>
/// <param name="progress"></param>
/// <param name="type"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public virtual async Task BulkUpdateAsync(IList<Plan> entities, BulkConfig bulkConfig = null, Action<decimal> progress = null, Type type = null, CancellationToken cancellationToken = default(CancellationToken))
{
var context = (await GetDbContextAsync().ConfigureAwait(false)) as DbContext;
if (entities != null && entities.Count > 0)
{
await context.BulkUpdateAsync(entities, bulkConfig, progress, type, cancellationToken).ConfigureAwait(false);
}
}
}

2
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Eos/Returns/ReturnDbContextModelCreatingExtensions.cs

@ -16,7 +16,7 @@ public static class ReturnDbContextModelCreatingExtensions
b.ConfigureByConvention();
//Properties
b.Property(q => q.Id);
b.Property(q => q.Id).ValueGeneratedOnAdd();
b.Property(q => q.PlanBillNo).HasMaxLength(255);
b.Property(q => q.ShipBillNo).HasMaxLength(255);
b.Property(q => q.DocNo).HasMaxLength(255);

2
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Tyrp/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Tyrp.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>

4
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/EosAgentModule.cs

@ -41,7 +41,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent;
typeof(DataExchangeEntityFrameworkCoreModule),
typeof(DataExchangeDomainFawtygEosModule),
typeof(DataExchangeEntityFrameworkCoreFawtygModule),
typeof(AbpAccountApplicationContractsModule)
typeof(AbpAccountApplicationContractsModule)
)]
public class EosAgentModule : AbpModule
{
@ -166,7 +166,7 @@ public class EosAgentModule : AbpModule
{
context.AddBackgroundWorkerAsync<EosIncomingBackgroundWorker>();
// context.AddBackgroundWorker<TyrpOutgoingBackgroundWorker>();
// context.AddBackgroundWorkerAsync<EosOutgoingBackgroundWorker>();
}
}

8
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/FawtygAutoMapperProfile.cs

@ -1,6 +1,7 @@
using AutoMapper;
using Volo.Abp.AutoMapper;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Label.Application.Contracts;
using Win_in.Sfs.Label.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.Domain;
@ -102,5 +103,12 @@ public class FawtygAutoMapperProfile : Profile
.ForMember(x => x.Version, y => y.MapFrom(d => d.Remark))
.ForMember(x => x.SupplierPackQty, y => y.MapFrom(d => d.PackQty))
.ForMember(x => x.SupplierPackUom, y => y.MapFrom(d => d.PackUom));
CreateMap<SupplierItemEditInput, SupplierItem>()
.IgnoreAuditedObjectProperties()
//.ForMember(x => x.SupplierPackQty, y => y.MapFrom(d => new UomQty(d.SupplierPackUom, d.SupplierPackQty)))
.Ignore(x => x.ConcurrencyStamp)
.Ignore(x => x.Id);
}
}

28
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/EosIncomingBackgroundWorker.cs

@ -43,21 +43,21 @@ public class EosIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
//转换Plan
await planConverter.ConvertAsync(plansFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read Ship");
//var shipHandleService = workerContext.ServiceProvider.GetRequiredService<ShipReader>();
//var shipConverter = workerContext.ServiceProvider.GetRequiredService<ShipConverter>();
////读取并保持Ship
//var shipsFromExternalList = await shipHandleService.ReadAsync().ConfigureAwait(false);
////转换Ship
//await shipConverter.ConvertAsync(shipsFromExternalList).ConfigureAwait(false);
// Logger.LogInformation($"Read Ship");
// var shipHandleService = workerContext.ServiceProvider.GetRequiredService<ShipReader>();
// var shipConverter = workerContext.ServiceProvider.GetRequiredService<ShipConverter>();
// //读取并保持Ship
// var shipsFromExternalList = await shipHandleService.ReadAsync().ConfigureAwait(false);
// //转换Ship
// await shipConverter.ConvertAsync(shipsFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read Product");
//var productHandleService = workerContext.ServiceProvider.GetRequiredService<ProductReader>();
//var productConverter = workerContext.ServiceProvider.GetRequiredService<ProductConverter>();
////读取并保持Product
//var productsFromExternalList = await productHandleService.ReadAsync().ConfigureAwait(false);
////转换Product
//await productConverter.ConvertAsync(productsFromExternalList).ConfigureAwait(false);
// Logger.LogInformation($"Read Product");
// var productHandleService = workerContext.ServiceProvider.GetRequiredService<ProductReader>();
// var productConverter = workerContext.ServiceProvider.GetRequiredService<ProductConverter>();
// //读取并保持Product
// var productsFromExternalList = await productHandleService.ReadAsync().ConfigureAwait(false);
//// 转换Product
// await productConverter.ConvertAsync(productsFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"Completed: Handling {Incoming}");
}

8
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/PlanConverter.cs

@ -14,6 +14,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent;
public class PlanConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly IItemPackAppService _itemPackAppService;
@ -27,10 +28,12 @@ public class PlanConverter : IIncomingConverter
IItemPackAppService itemPackAppService,
IObjectMapper objectMapper,
ILogger<PlanConverter> logger,
IConfiguration configuration
IConfiguration configuration,
IIncomingFromExternalManager incomingFromExternalManager
)
{
_incomingFromExternalManager = incomingFromExternalManager;
_incomingToWmsManager = incomingToWmsManager;
_itemBasicAppService = itemBasicAppService;
_itemPackAppService = itemPackAppService;
@ -48,7 +51,8 @@ public class PlanConverter : IIncomingConverter
//按PlanBillNo合并PurchaseOrder
var incomingToWmsDataList = await BuildIncomingToWmsOfPurchaseOrderAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateManyAsync(incomingToWmsDataList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveManyAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfPurchaseOrderAsync(List<IncomingFromExternal> incomingDataList)

3
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/PlanReader.cs

@ -37,8 +37,7 @@ public class PlanReader : IReader
public virtual async Task<List<IncomingFromExternal>> ReadAsync()
{
//从EOS读取待处理Plan
var aa = await _planManager.GetToBeProcessedListAsync().ConfigureAwait(false);
var toBeProcessedPlans = aa.Take(100).ToList();
var toBeProcessedPlans = await _planManager.GetToBeProcessedListAsync().ConfigureAwait(false);
if (!toBeProcessedPlans.Any())
{
_logger.LogInformation("no plans");

9
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ProductConverter.cs

@ -7,6 +7,7 @@ using Microsoft.Extensions.Logging;
using Volo.Abp.Guids;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.WMS.ItemPack;
@ -15,6 +16,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent.Incoming;
public class ProductConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly ISupplierAppService _supplierAppService;
private readonly IObjectMapper _objectMapper;
@ -27,9 +29,11 @@ public class ProductConverter : IIncomingConverter
IObjectMapper objectMapper,
ILogger<ProductConverter> logger,
IGuidGenerator guidGenerator,
IConfiguration configuration
IConfiguration configuration,
IIncomingFromExternalManager incomingFromExternalManager
)
{
_incomingFromExternalManager = incomingFromExternalManager;
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
_supplierAppService = supplierAppService;
@ -53,7 +57,8 @@ public class ProductConverter : IIncomingConverter
incomingToWmsDataList.AddRange(supplierItemIncomingToWmsDataList);
//添加IncomingToWms
await _incomingToWmsManager.CreateBulkAsync(incomingToWmsDataList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveManyAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildItemPackIncomingToWmsOfProductAsync(List<IncomingFromExternal> incomingDataList)

7
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/ShipConverter.cs

@ -17,6 +17,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent;
public class ShipConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IObjectMapper _objectMapper;
private readonly IItemBasicAppService _itemBasicAppService;
@ -29,9 +30,11 @@ public class ShipConverter : IIncomingConverter
, IItemBasicAppService itemBasicAppService
, IItemPackAppService itemPackAppService
, ILogger<ShipConverter> logger,
IConfiguration configuration
IConfiguration configuration,
IIncomingFromExternalManager incomingFromExternalManager
)
{
_incomingFromExternalManager = incomingFromExternalManager;
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
_itemBasicAppService = itemBasicAppService;
@ -54,6 +57,8 @@ public class ShipConverter : IIncomingConverter
var purchaseLabelList = BuildIncomingToWmsOfPurchaseLabelAsync(incomingFromExternalList);
await _incomingToWmsManager.CreateManyAsync(purchaseLabelList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveManyAsync(incomingFromExternalList).ConfigureAwait(false);
}
private List<IncomingToWms> BuildIncomingToWmsOfPurchaseLabelAsync(List<IncomingFromExternal> incomingFromExternalList)

2
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Outgoing/ArriveConverter.cs

@ -35,7 +35,7 @@ public class ArriveConverter : IOutgoingConverter
{
var outgoingToExternalList = new List<OutgoingToExternal>();
var outgoingFromWmsList = await _outgoingFromWmsManager.GetToBeProcessedListAsync(EnumOutgoingDataType.PurchaseReceipt, EnumSystemType.SCP).ConfigureAwait(false);
var outgoingFromWmsList = await _outgoingFromWmsManager.GetToBeProcessedListAsync(EnumOutgoingDataType.PurchaseReceipt, EnumSystemType.EOS).ConfigureAwait(false);
foreach (var outgoingFromWms in outgoingFromWmsList)
{

2
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Outgoing/ReturnConverter.cs

@ -35,7 +35,7 @@ public class ReturnConverter : IOutgoingConverter
{
var outgoingToExternalList = new List<OutgoingToExternal>();
var outgoingFromWmsList = await _outgoingFromWmsManager.GetToBeProcessedListAsync(EnumOutgoingDataType.PurchaseReturn, EnumSystemType.SCP).ConfigureAwait(false);
var outgoingFromWmsList = await _outgoingFromWmsManager.GetToBeProcessedListAsync(EnumOutgoingDataType.PurchaseReturn, EnumSystemType.EOS).ConfigureAwait(false);
foreach (var outgoingFromWms in outgoingFromWmsList)
{

8
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/IssueConverter.cs

@ -14,6 +14,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming;
public class IssueConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly IObjectMapper _objectMapper;
@ -25,10 +26,12 @@ public class IssueConverter : IIncomingConverter
IItemBasicAppService itemBasicAppService,
IObjectMapper objectMapper,
ILogger<IssueConverter> logger,
IConfiguration configuration
IConfiguration configuration,
IIncomingFromExternalManager incomingFromExternalManager
)
{
_incomingFromExternalManager = incomingFromExternalManager;
_incomingToWmsManager = incomingToWmsManager;
_itemBasicAppService = itemBasicAppService;
_objectMapper = objectMapper;
@ -44,7 +47,8 @@ public class IssueConverter : IIncomingConverter
}
var incomingToWmsDataList = await BuildIncomingToWmsOfPurchaseOrderAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateManyAsync(incomingToWmsDataList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveManyAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfPurchaseOrderAsync(List<IncomingFromExternal> incomingDataList)

7
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesOutConverter.cs

@ -17,6 +17,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent;
public class MesOutConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IObjectMapper _objectMapper;
private readonly IItemBasicAppService _itemBasicAppService;
@ -30,7 +31,8 @@ public class MesOutConverter : IIncomingConverter
, IItemBasicAppService itemBasicAppService
, ILogger<MesOutConverter> logger,
IConfiguration configuration,
ILocationAppService locationAppService)
ILocationAppService locationAppService,
IIncomingFromExternalManager incomingFromExternalManager)
{
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
@ -38,6 +40,7 @@ public class MesOutConverter : IIncomingConverter
_logger = logger;
_configuration = configuration;
_locationAppService = locationAppService;
_incomingFromExternalManager = incomingFromExternalManager;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
@ -50,6 +53,8 @@ public class MesOutConverter : IIncomingConverter
var productReceiptNoteList = await BuildIncomingToWmsOfProductReceiptNoteAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateManyAsync(productReceiptNoteList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveManyAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfProductReceiptNoteAsync(List<IncomingFromExternal> incomingDataList)

7
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/PullTaskConverter.cs

@ -17,6 +17,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming;
public class PullTaskConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IObjectMapper _objectMapper;
private readonly IItemBasicAppService _itemBasicAppService;
@ -28,13 +29,15 @@ public class PullTaskConverter : IIncomingConverter
, IObjectMapper objectMapper
, IItemBasicAppService itemBasicAppService
, ILogger<PullTaskConverter> logger
, IConfiguration configuration)
, IConfiguration configuration,
IIncomingFromExternalManager incomingFromExternalManager)
{
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
_itemBasicAppService = itemBasicAppService;
_logger = logger;
_configuration = configuration;
_incomingFromExternalManager = incomingFromExternalManager;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
@ -48,6 +51,8 @@ public class PullTaskConverter : IIncomingConverter
//按Number合并MaterialRequest单据
var materialRequestList = await BuildIncomingToWmsOfMaterialRequestAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateManyAsync(materialRequestList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveManyAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfMaterialRequestAsync(List<IncomingFromExternal> incomingDataList)

9
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/ScrapConverter.cs

@ -16,6 +16,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming;
public class ScrapConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly IObjectMapper _objectMapper;
@ -27,6 +28,10 @@ public class ScrapConverter : IIncomingConverter
IObjectMapper objectMapper,
ILogger<ScrapConverter> logger,
IConfiguration configuration
,
IIncomingFromExternalManager incomingFromExternalManager
)
{
@ -35,6 +40,7 @@ public class ScrapConverter : IIncomingConverter
_objectMapper = objectMapper;
_logger = logger;
_configuration = configuration;
_incomingFromExternalManager = incomingFromExternalManager;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
{
@ -46,7 +52,8 @@ public class ScrapConverter : IIncomingConverter
//按PlanBillNo合并PurchaseOrder
var incomingToWmsDataList = await BuildIncomingToWmsOfPurchaseOrderAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateManyAsync(incomingToWmsDataList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveManyAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfPurchaseOrderAsync(List<IncomingFromExternal> incomingDataList)

6
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/BackFluConverter.cs

@ -13,6 +13,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent.Incoming;
public class BackFluConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly IObjectMapper _objectMapper;
@ -22,6 +23,8 @@ public class BackFluConverter : IIncomingConverter
IItemBasicAppService itemBasicAppService,
IObjectMapper objectMapper,
ILogger<BackFluConverter> logger
,
IIncomingFromExternalManager incomingFromExternalManager
)
{
@ -29,6 +32,7 @@ public class BackFluConverter : IIncomingConverter
_itemBasicAppService = itemBasicAppService;
_objectMapper = objectMapper;
_logger = logger;
_incomingFromExternalManager = incomingFromExternalManager;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
{
@ -39,6 +43,8 @@ public class BackFluConverter : IIncomingConverter
}
var incomingToWmsDataList = await BuildIncomingToWmsOfPurchaseOrderAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateManyAsync(incomingToWmsDataList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveBulkAsync(incomingFromExternalList).ConfigureAwait(false);
}

8
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/BomConverter.cs

@ -13,6 +13,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent.Incoming;
public class BomConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly IObjectMapper _objectMapper;
@ -25,7 +26,8 @@ public class BomConverter : IIncomingConverter
IObjectMapper objectMapper,
ILogger<BomConverter> logger,
IGuidGenerator guidGenerator,
IConfiguration configuration)
IConfiguration configuration,
IIncomingFromExternalManager incomingFromExternalManager)
{
_incomingToWmsManager = incomingToWmsManager;
@ -34,6 +36,7 @@ public class BomConverter : IIncomingConverter
_logger = logger;
_guidGenerator = guidGenerator;
_configuration = configuration;
_incomingFromExternalManager = incomingFromExternalManager;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
{
@ -44,7 +47,8 @@ public class BomConverter : IIncomingConverter
}
var incomingToWmsDataList = await BuildIncomingToWmsOfPurchaseOrderAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateBulkAsync(incomingToWmsDataList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveBulkAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfPurchaseOrderAsync(List<IncomingFromExternal> incomingDataList)
{

5
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/BomReader.cs

@ -99,6 +99,7 @@ public class BomReader : IReader
SourceSystem = EnumSystemType.ERP.ToString(),
SourceDataId = bom.mes_bom_assy.ToString(),
SourceDataDetailCode = bom.mes_bom_part.ToString(),
SourceDataGroupCode = bom.mes_bom_part.ToString(),
SourceDataContent = JsonSerializer.Serialize(bom),
WriteTime = DateTime.Now,
Writer = nameof(TyrpIncomingBackgroundWorker),
@ -114,8 +115,8 @@ public class BomReader : IReader
{
Product = bom.mes_bom_assy,
Component = bom.mes_bom_part,
BeginTime = DateTime.ParseExact(bom.mes_bom_chg_e, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture),
EndTime = DateTime.ParseExact(bom.mes_bom_chg_b, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture),
BeginTime = DateTime.ParseExact(bom.mes_bom_chg_b, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture),
EndTime = DateTime.ParseExact(bom.mes_bom_chg_e, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture),
ComponentQty = bom.mes_bom_qty
};

8
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/CustomerConverter.cs

@ -17,17 +17,23 @@ public class CustomerConverter : IIncomingConverter
private readonly IObjectMapper _objectMapper;
private readonly ILogger<CustomerConverter> _logger;
private readonly IGuidGenerator _guidGenerator;
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
public CustomerConverter(
IIncomingToWmsManager incomingToWmsManager,
IObjectMapper objectMapper,
ILogger<CustomerConverter> logger,
IGuidGenerator guidGenerator
,
IIncomingFromExternalManager incomingFromExternalManager
)
{
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
_logger = logger;
_guidGenerator = guidGenerator;
_incomingFromExternalManager = incomingFromExternalManager;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
{
@ -38,6 +44,8 @@ public class CustomerConverter : IIncomingConverter
}
var incomingToWmsDataList = await BuildIncomingToWmsOfPurchaseOrderAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateBulkAsync(incomingToWmsDataList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveBulkAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfPurchaseOrderAsync(List<IncomingFromExternal> incomingDataList)

7
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/DepartmentConverter.cs

@ -15,15 +15,18 @@ public class DepartmentConverter : IIncomingConverter
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IObjectMapper _objectMapper;
private readonly ILogger<DepartmentConverter> _logger;
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
public DepartmentConverter(
IIncomingToWmsManager incomingToWmsManager
, IObjectMapper objectMapper
, ILogger<DepartmentConverter> logger)
, ILogger<DepartmentConverter> logger,
IIncomingFromExternalManager incomingFromExternalManager)
{
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
_logger = logger;
_incomingFromExternalManager = incomingFromExternalManager;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
@ -37,6 +40,8 @@ public class DepartmentConverter : IIncomingConverter
//按流水号创建单据
var materialRequestList = await BuildIncomingToWmsOfDepartmentRequestAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateManyAsync(materialRequestList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveBulkAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfDepartmentRequestAsync(List<IncomingFromExternal> incomingDataList)

7
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/DictConverter.cs

@ -17,17 +17,20 @@ public class DictConverter : IIncomingConverter
private readonly IObjectMapper _objectMapper;
private readonly ILogger<DictConverter> _logger;
private readonly IGuidGenerator _guidGenerator;
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
public DictConverter(
IIncomingToWmsManager incomingToWmsManager
, IObjectMapper objectMapper
, ILogger<DictConverter> logger,
IGuidGenerator guidGenerator)
IGuidGenerator guidGenerator,
IIncomingFromExternalManager incomingFromExternalManager)
{
_guidGenerator = guidGenerator;
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
_objectMapper = objectMapper;
_logger = logger;
_incomingFromExternalManager = incomingFromExternalManager;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
@ -41,6 +44,8 @@ public class DictConverter : IIncomingConverter
//按流水号创建单据
var materialRequestList = await BuildIncomingToWmsOfDictRequestAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateBulkAsync(materialRequestList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveBulkAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfDictRequestAsync(List<IncomingFromExternal> incomingDataList)

5
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/DictpjReader.cs

@ -5,6 +5,7 @@ using System.Text.Json;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Volo.Abp.Guids;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp;
@ -20,13 +21,16 @@ public class DictpjReader : IReader
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly ILogger<DictpjReader> _logger;
private readonly IConfiguration _configuration;
private readonly IGuidGenerator _guidGenerator;
public DictpjReader(
IDictpjManager dictpjManager
, IIncomingFromExternalManager incomingFromExternalManager
, ILogger<DictpjReader> logger
, IConfiguration configuration
, IGuidGenerator guidGenerator
)
{
_guidGenerator = guidGenerator;
_configuration = configuration;
_dictpjManager = dictpjManager;
_incomingFromExternalManager = incomingFromExternalManager;
@ -55,6 +59,7 @@ public class DictpjReader : IReader
var incomingData = BuildIncomingFromExternal(dict);
incomingData.SetEffectiveDate(DateTime.Now);
incomingData.SetSuccess();
incomingData.SetId(_guidGenerator.Create());
try
{
var DictRequest = BuildDictRequestCreateInput(dict);

7
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/InterfaceCalendarConverter.cs

@ -15,15 +15,18 @@ public class InterfaceCalendarConverter : IIncomingConverter
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IObjectMapper _objectMapper;
private readonly ILogger<InterfaceCalendarConverter> _logger;
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
public InterfaceCalendarConverter(
IIncomingToWmsManager incomingToWmsManager
, IObjectMapper objectMapper
, ILogger<InterfaceCalendarConverter> logger)
, ILogger<InterfaceCalendarConverter> logger,
IIncomingFromExternalManager incomingFromExternalManager)
{
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
_logger = logger;
_incomingFromExternalManager = incomingFromExternalManager;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
@ -37,6 +40,8 @@ public class InterfaceCalendarConverter : IIncomingConverter
//按流水号创建单据
var materialRequestList = await BuildIncomingToWmsOfInterfaceCalendarRequestAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateManyAsync(materialRequestList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveBulkAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfInterfaceCalendarRequestAsync(List<IncomingFromExternal> incomingDataList)

7
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/ItemBasicConverter.cs

@ -14,6 +14,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent.Incoming;
public class ItemBasicConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IObjectMapper _objectMapper;
private readonly ILogger<ItemBasicConverter> _logger;
@ -25,8 +26,10 @@ public class ItemBasicConverter : IIncomingConverter
, IObjectMapper objectMapper
, ILogger<ItemBasicConverter> logger,
IGuidGenerator guidGenerator,
IConfiguration configuration)
IConfiguration configuration,
IIncomingFromExternalManager incomingFromExternalManager)
{
_incomingFromExternalManager = incomingFromExternalManager;
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
_logger = logger;
@ -45,6 +48,8 @@ public class ItemBasicConverter : IIncomingConverter
//按流水号创建单据
var materialRequestList = await BuildIncomingToWmsOfItemBasicRequestAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateBulkAsync(materialRequestList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveBulkAsync(incomingFromExternalList);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfItemBasicRequestAsync(List<IncomingFromExternal> incomingDataList)

7
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/SupplierConverter.cs

@ -17,11 +17,13 @@ public class SupplierConverter : IIncomingConverter
private readonly IObjectMapper _objectMapper;
private readonly ILogger<SupplierConverter> _logger;
private readonly IGuidGenerator _guidGenerator;
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
public SupplierConverter(
IIncomingToWmsManager incomingToWmsManager,
IObjectMapper objectMapper,
ILogger<SupplierConverter> logger,
IGuidGenerator guidGenerator
IGuidGenerator guidGenerator,
IIncomingFromExternalManager incomingFromExternalManage
)
{
@ -39,7 +41,8 @@ public class SupplierConverter : IIncomingConverter
}
var incomingToWmsDataList = await BuildIncomingToWmsOfPurchaseOrderAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateBulkAsync(incomingToWmsDataList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveBulkAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfPurchaseOrderAsync(List<IncomingFromExternal> incomingDataList)
{

98
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/TyrpIncomingBackgroundWorker.cs

@ -59,26 +59,26 @@ public class TyrpIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
common.updatedt = DateTime.Now;
common.isupdate = false;
Logger.LogInformation($"Read ItemBasic");//零件
var itemBasicReader = workerContext.ServiceProvider.GetRequiredService<ItemBasicReader>();
var itemBasicConverter = workerContext.ServiceProvider.GetRequiredService<ItemBasicConverter>();
//读取并保存itemBasic
var itemBasicOutsFromExternalList = await itemBasicReader.ReadAsync().ConfigureAwait(false);
//转换itemBasic
await itemBasicConverter.ConvertAsync(itemBasicOutsFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read User");//用户和部门
//var userReader = workerContext.ServiceProvider.GetRequiredService<UserReader>();
//var userConverter = workerContext.ServiceProvider.GetRequiredService<UserConverter>();
//var departmentConverter = workerContext.ServiceProvider.GetRequiredService<DepartmentConverter>();
////读取并保存user
//var outsFromExternalList = await userReader.ReadAsync().ConfigureAwait(false);
//var userOutsFromExternalList = outsFromExternalList.Where(r => r.DataType == EnumIncomingDataType.User.ToString()).ToList();
//var departmentOutsFromExternalList = outsFromExternalList.Where(r => r.DataType == EnumIncomingDataType.Department.ToString()).ToList();
////转换user
//await userConverter.ConvertAsync(userOutsFromExternalList).ConfigureAwait(false);
////转换department
//await departmentConverter.ConvertAsync(departmentOutsFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read ItemBasic");//零件
//var itemBasicReader = workerContext.ServiceProvider.GetRequiredService<ItemBasicReader>();
//var itemBasicConverter = workerContext.ServiceProvider.GetRequiredService<ItemBasicConverter>();
////读取并保存itemBasic
//var itemBasicOutsFromExternalList = await itemBasicReader.ReadAsync().ConfigureAwait(false);
////转换itemBasic
//await itemBasicConverter.ConvertAsync(itemBasicOutsFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"Read User");//用户和部门
var userReader = workerContext.ServiceProvider.GetRequiredService<UserReader>();
var userConverter = workerContext.ServiceProvider.GetRequiredService<UserConverter>();
var departmentConverter = workerContext.ServiceProvider.GetRequiredService<DepartmentConverter>();
//读取并保存user
var outsFromExternalList = await userReader.ReadAsync().ConfigureAwait(false);
var userOutsFromExternalList = outsFromExternalList.Where(r => r.DataType == EnumIncomingDataType.User.ToString()).ToList();
var departmentOutsFromExternalList = outsFromExternalList.Where(r => r.DataType == EnumIncomingDataType.Department.ToString()).ToList();
//转换user
await userConverter.ConvertAsync(userOutsFromExternalList).ConfigureAwait(false);
//转换department
await departmentConverter.ConvertAsync(departmentOutsFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"Read InterfaceCalendar");//账期
var interfaceCalendarReader = workerContext.ServiceProvider.GetRequiredService<InterfaceCalendarReader>();
@ -88,13 +88,13 @@ public class TyrpIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
//转换InterfaceCalendar
await interfaceCalendarConverter.ConvertAsync(interfaceCalendarOutsFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read Dict");//系统代码
//var dictReader = workerContext.ServiceProvider.GetRequiredService<DictReader>();
//var dictConverter = workerContext.ServiceProvider.GetRequiredService<DictConverter>();
////读取并保存Dict
//var dictOutsFromExternalList = await dictReader.ReadAsync().ConfigureAwait(false);
////转换Dict
//await dictConverter.ConvertAsync(dictOutsFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"Read Dict");//系统代码
var dictReader = workerContext.ServiceProvider.GetRequiredService<DictReader>();
var dictConverter = workerContext.ServiceProvider.GetRequiredService<DictConverter>();
//读取并保存Dict
var dictOutsFromExternalList = await dictReader.ReadAsync().ConfigureAwait(false);
//转换Dict
await dictConverter.ConvertAsync(dictOutsFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read Bom");
//var BomReader = workerContext.ServiceProvider.GetRequiredService<BomReader>();
@ -104,28 +104,28 @@ public class TyrpIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
////转换Bom
//await BomConverter.ConvertAsync(bomsFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read Supplier");//供应商
//var SupplierReader = workerContext.ServiceProvider.GetRequiredService<SupplierReader>();
//var SupplierConverter = workerContext.ServiceProvider.GetRequiredService<SupplierConverter>();
////读取并保存Supplier
//var suppliersFromExternalList = await SupplierReader.ReadAsync().ConfigureAwait(false);
////转换Supplier
//await SupplierConverter.ConvertAsync(suppliersFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read Dictpj");//专案代码
//var DictpjReader = workerContext.ServiceProvider.GetRequiredService<DictpjReader>();
////读取并保存Dictpj
//var dictpjOutsFromExternalList = await DictpjReader.ReadAsync().ConfigureAwait(false);
////转换Dictpj
//await dictConverter.ConvertAsync(dictOutsFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read Customer");//客户资料
//var CustomerReader = workerContext.ServiceProvider.GetRequiredService<CustomerReader>();
//var CustomerConverter = workerContext.ServiceProvider.GetRequiredService<CustomerConverter>();
////读取并保存Customer
//var customersFromExternalList = await CustomerReader.ReadAsync().ConfigureAwait(false);
////转换Customer
//await CustomerConverter.ConvertAsync(customersFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"Read Supplier");//供应商
var SupplierReader = workerContext.ServiceProvider.GetRequiredService<SupplierReader>();
var SupplierConverter = workerContext.ServiceProvider.GetRequiredService<SupplierConverter>();
//读取并保存Supplier
var suppliersFromExternalList = await SupplierReader.ReadAsync().ConfigureAwait(false);
//转换Supplier
await SupplierConverter.ConvertAsync(suppliersFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"Read Dictpj");//专案代码
var DictpjReader = workerContext.ServiceProvider.GetRequiredService<DictpjReader>();
//读取并保存Dictpj
var dictpjOutsFromExternalList = await DictpjReader.ReadAsync().ConfigureAwait(false);
//转换Dictpj
await dictConverter.ConvertAsync(dictOutsFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"Read Customer");//客户资料
var CustomerReader = workerContext.ServiceProvider.GetRequiredService<CustomerReader>();
var CustomerConverter = workerContext.ServiceProvider.GetRequiredService<CustomerConverter>();
//读取并保存Customer
var customersFromExternalList = await CustomerReader.ReadAsync().ConfigureAwait(false);
//转换Customer
await CustomerConverter.ConvertAsync(customersFromExternalList).ConfigureAwait(false);
}
else
{

7
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/UserConverter.cs

@ -15,12 +15,13 @@ public class UserConverter : IIncomingConverter
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IObjectMapper _objectMapper;
private readonly ILogger<UserConverter> _logger;
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
public UserConverter(
IIncomingToWmsManager incomingToWmsManager
, IObjectMapper objectMapper
, ILogger<UserConverter> logger)
, ILogger<UserConverter> logger, IIncomingFromExternalManager incomingFromExternalManager)
{
_incomingFromExternalManager = incomingFromExternalManager;
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
_logger = logger;
@ -37,6 +38,8 @@ public class UserConverter : IIncomingConverter
//按流水号创建单据
var materialRequestList = await BuildIncomingToWmsOfIdentityUserRequestAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateManyAsync(materialRequestList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveBulkAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfIdentityUserRequestAsync(List<IncomingFromExternal> incomingDataList)

6
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/ScontrolWriter.cs

@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
@ -25,11 +26,12 @@ public class ScontrolWriter : IWriter
/// <returns></returns>
public virtual async Task WriteAsync(List<OutgoingToExternal> outgoingDataList)
{
var dataInterfaceList = new List<Scontrol>();
var dataInterfaceDetailList = new List<Scmsend>();
var groups = outgoingDataList.GroupBy(r => r.SourceDataGroupCode);
foreach (var group in groups)
{
var dataInterfaceList = new List<Scontrol>();
var dataInterfaceDetailList = new List<Scmsend>();
var entitys = group.ToList();
foreach (var entity in entitys)

8
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TyrpOutgoingBackgroundWorker.cs

@ -94,10 +94,10 @@ public class TyrpOutgoingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
var unplannedIssueNoteNoteList = await unplannedIssueNoteConvert.ConvertAsync().ConfigureAwait(false);
await wmsoutmWriter.WriteAsync(unplannedIssueNoteNoteList).ConfigureAwait(false);
//Logger.LogInformation($"Write UnplannedReceiptNote");//非生产退料
//var unplannedReceiptNoteConvert = workerContext.ServiceProvider.GetRequiredService<UnplannedReceiptNoteConverter>();
//var unplannedReceiptNoteList = await unplannedReceiptNoteConvert.ConvertAsync();
//await wmsoutmWriter.WriteAsync(unplannedReceiptNoteList);
Logger.LogInformation($"Write UnplannedReceiptNote");//非生产退料
var unplannedReceiptNoteConvert = workerContext.ServiceProvider.GetRequiredService<UnplannedReceiptNoteConverter>();
var unplannedReceiptNoteList = await unplannedReceiptNoteConvert.ConvertAsync().ConfigureAwait(false);
await wmsoutmWriter.WriteAsync(unplannedReceiptNoteList).ConfigureAwait(false);
Logger.LogInformation($"Write RecycledMaterialReceiptNote");//回收料入库单
var recycledMaterialReceiptNoteConvert = workerContext.ServiceProvider.GetRequiredService<RecycledMaterialReceiptNoteConverter>();

4
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/WmsoutmWriter.cs

@ -27,11 +27,11 @@ public class WmsoutmWriter : IWriter
/// <returns></returns>
public virtual async Task WriteAsync(List<OutgoingToExternal> outgoingDataList)
{
var dataInterfaceList = new List<Wmsoutm>();
var dataInterfaceDetailList = new List<Wmsoutd>();
var groups = outgoingDataList.GroupBy(r => r.SourceDataGroupCode);
foreach (var group in groups)
{
var dataInterfaceList = new List<Wmsoutm>();
var dataInterfaceDetailList = new List<Wmsoutd>();
var entitys = group.ToList();
foreach (var entity in entitys)

2
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/TyrpAgentModule.cs

@ -173,7 +173,7 @@ public class TyrpAgentModule : AbpModule
{
context.AddBackgroundWorkerAsync<TyrpIncomingBackgroundWorker>();
// context.AddBackgroundWorker<TyrpOutgoingBackgroundWorker>();
// context.AddBackgroundWorkerAsync<TyrpOutgoingBackgroundWorker>();
}
}

6
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/appsettings.json

@ -26,13 +26,13 @@
"RemoteServices": {
"BaseData": {
"BaseUrl": "http://dev.ccwin-in.com:59094/"
"BaseUrl": "http://dev.ccwin-in.com:21294/"
},
"Store": {
"BaseUrl": "http://dev.ccwin-in.com:59095/"
"BaseUrl": "http://dev.ccwin-in.com:21295/"
},
"Label": {
"BaseUrl": "http://dev.ccwin-in.com:59092/"
"BaseUrl": "http://dev.ccwin-in.com:21292/"
},
"Auth": {
"BaseUrl": "http://dev.ccwin-in.com:21293/"

4
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/AgentModule.cs

@ -149,7 +149,7 @@ public class AgentModule : AbpModule
public override void OnApplicationInitialization(
ApplicationInitializationContext context)
{
context.AddBackgroundWorkerAsync<IncomingToWmsWorker>();
// context.AddBackgroundWorker<OutgoingFromWmsWorker>();
// context.AddBackgroundWorkerAsync<IncomingToWmsWorker>();
context.AddBackgroundWorkerAsync<OutgoingFromWmsWorker>();
}
}

1
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain.Shared/Enums/EnumSystemType.cs

@ -12,5 +12,6 @@ public enum EnumSystemType
MES = 3,
JIS = 4,
QMS = 5,
EOS= 6,
}

3
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/ArchivedIncomingFromExternal/IArchivedIncomingFromExternalRepository.cs

@ -1,7 +1,8 @@
using System;
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.DataExchange.Domain;
public interface IArchivedIncomingFromExternalRepository : ISfsRepositoryBase<ArchivedIncomingFromExternal>
public interface IArchivedIncomingFromExternalRepository : ISfsRepositoryBase<ArchivedIncomingFromExternal>, ISfsBulkRepositoryBase<ArchivedIncomingFromExternal>
{
}

1
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/IncomingFromExternal/IIncomingFromExternalManager.cs

@ -12,4 +12,5 @@ public interface IIncomingFromExternalManager : IDomainService
Task ArchiveManyAsync(List<IncomingFromExternal> entities);
Task<List<IncomingFromExternal>> CreateBulkAsync(List<IncomingFromExternal> entities);
Task<string> GetDataByMaxEffectiveDate(string dataType);
Task ArchiveBulkAsync(List<IncomingFromExternal> entities);
}

8
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/IncomingFromExternal/IncomingFromExternalManager.cs

@ -62,7 +62,15 @@ public class IncomingFromExternalManager : DomainService, IIncomingFromExternalM
await _historyRepository.InsertAsync(archivedEntity).ConfigureAwait(false);
}
[UnitOfWork]
public virtual async Task ArchiveBulkAsync(List<IncomingFromExternal> entities)
{
await _repository.BulkDeleteAsync(entities).ConfigureAwait(false);
var archivedEntities = _objectMapper.Map<List<IncomingFromExternal>, List<ArchivedIncomingFromExternal>>(entities);
await _historyRepository.BulkInsertAsync(archivedEntities).ConfigureAwait(false);
}
[UnitOfWork]
public virtual async Task ArchiveManyAsync(List<IncomingFromExternal> entities)
{

1
be/Hosts/Core.Host/Win_in.Sfs.Core.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.LabelDbContext.sql

@ -49,6 +49,7 @@ CREATE TABLE [Label_InventoryLabel] (
[SupplierSimpleName] nvarchar(max) NULL,
[SupplierItemCode] nvarchar(max) NULL,
[SupplierItemName] nvarchar(max) NULL,
[PlanArriveDate] datetime2 NOT NULL,
[ExtraProperties] nvarchar(max) NULL,
[ConcurrencyStamp] nvarchar(40) NULL,
[CreationTime] datetime2 NOT NULL,

3
be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql

@ -700,6 +700,7 @@ CREATE TABLE [Store_DeliverNote] (
[DeliverTime] datetime2 NOT NULL,
[DeliverRequestNumber] nvarchar(max) NULL,
[DeliverRequestType] nvarchar(64) NOT NULL,
[CountPrint] int NOT NULL,
[ExtraProperties] nvarchar(max) NULL,
[ConcurrencyStamp] nvarchar(40) NULL,
[CreationTime] datetime2 NOT NULL,
@ -1280,7 +1281,7 @@ CREATE TABLE [Store_ProductReceiptRequest] (
[Shift] nvarchar(64) NULL,
[Team] nvarchar(64) NULL,
[PlanDate] datetime2 NOT NULL,
[Type] nvarchar(64) NULL,
[Type] nvarchar(64) NOT NULL,
[ExtraProperties] nvarchar(max) NULL,
[ConcurrencyStamp] nvarchar(40) NULL,
[CreationTime] datetime2 NOT NULL,

57
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Inventories/BalanceController.cs

@ -5,6 +5,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc;
using Win_in.Sfs.Basedata.Application.Contracts;
@ -29,6 +31,8 @@ public class BalanceController : AbpController
private readonly ILocationAppService _locationAppService;
private readonly IExpectOutAppService _expectOutAppService;
/// <summary>
///
/// </summary>
@ -38,10 +42,11 @@ public class BalanceController : AbpController
public BalanceController(
IBalanceAppService balanceAppService,
IItemBasicAppService itemBasicAppService,
ILocationAppService locationAppService)
ILocationAppService locationAppService, IExpectOutAppService expectOutAppService)
{
this._balanceAppService = balanceAppService;
this._locationAppService = locationAppService;
_expectOutAppService = expectOutAppService;
this._itemBasicAppService = itemBasicAppService;
}
@ -426,6 +431,56 @@ public class BalanceController : AbpController
return balanceDTOs;
}
/// <summary>
/// 查询库存余额 根据 物品 库位 库位类型 库存状态 批次 并且没有被预计出 占用
/// </summary>
/// <param name="listInput"></param>
/// <returns></returns>
[HttpPost("by-balances-request-many-parameter-not-in-expect-out")]
public async Task<PagedResultDto<BalanceDTO>> GetListByLocationTypeAndInventoryStatusAndNotExpectOutAsync(
BalanceListByIssueInputByInventoryStatusAndLocationType listInput)
{
var expectOut = await _expectOutAppService.GetListByPackingCodeAsync(listInput.packingCode);
if (expectOut != null && expectOut.Any())
{
throw new UserFriendlyException($"箱码为 {listInput.packingCode} 已被任务{expectOut[0].JobNumber}使用");
}
var input = new SfsInventoryRequestInputBase()
{
MaxResultCount = listInput.pageSize,
SkipCount = (listInput.pageIndex - 1) * listInput.pageSize,
Sorting = listInput.sortBy,
Condition = new Condition { Filters = new List<Filter>() }
};
if (!string.IsNullOrWhiteSpace(listInput.itemCode))
input.Condition.Filters.Add(new Filter("ItemCode", listInput.itemCode));
if (!string.IsNullOrWhiteSpace(listInput.locationCode))
input.Condition.Filters.Add(new Filter("LocationCode", listInput.locationCode));
if (!string.IsNullOrWhiteSpace(listInput.lot)) input.Condition.Filters.Add(new Filter("Lot", listInput.lot));
if (!string.IsNullOrWhiteSpace(listInput.packingCode))
input.Condition.Filters.Add(new Filter("PackingCode", listInput.packingCode));
if (!string.IsNullOrWhiteSpace(listInput.containerCode))
input.Condition.Filters.Add(new Filter("ContainerCode", listInput.containerCode));
if (listInput.locationTypes != null && listInput.locationTypes.Any())
{
var locationCodes = (await this._locationAppService.GetListByTypesAsync(listInput.locationTypes).ConfigureAwait(false))
.Select(t => t.Code).ToList();
if (locationCodes.Any())
input.Condition.Filters.Add(
new Filter("LocationCode", JsonConvert.SerializeObject(locationCodes), "In"));
}
if (listInput.inventoryStatuses != null && listInput.inventoryStatuses.Any())
input.Condition.Filters.Add(
new Filter("Status", JsonConvert.SerializeObject(listInput.inventoryStatuses), "In"));
return await this._balanceAppService.GetPagedListByFilterAsync(input, false).ConfigureAwait(false);
}
/*
/// <summary>
/// 查询库余额

6
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs

@ -75,7 +75,7 @@ public class CountJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -133,7 +133,7 @@ public class CountJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonWlgCodes = JsonSerializer.Serialize(wlgCodes);
var status = new List<string>() {EnumJobStatus.Open.ToString(),EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var requestInput = new SfsJobRequestInputBase
@ -165,7 +165,7 @@ public class CountJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase

4
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/DeliverJobController.cs

@ -75,7 +75,7 @@ public class DeliverJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
_ = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -132,7 +132,7 @@ public class DeliverJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase

4
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/InspectJobController.cs

@ -64,7 +64,7 @@ public class InspectJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -108,7 +108,7 @@ public class InspectJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase

6
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobController.cs

@ -65,7 +65,7 @@ public class IssueJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonWlgCodes = JsonSerializer.Serialize(wlgCodes);
var status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -143,7 +143,7 @@ public class IssueJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonWlgCodes = JsonSerializer.Serialize(wlgCodes);
var status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var requestInput = new SfsJobRequestInputBase
@ -175,7 +175,7 @@ public class IssueJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase

4
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/JisDeliverJobController.cs

@ -74,7 +74,7 @@ public class JisDeliverJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -106,7 +106,7 @@ public class JisDeliverJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase

2
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/JobController.cs

@ -76,7 +76,7 @@ public class JobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var list = new List<JobCountDto>();

4
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ProductReceiveJobController.cs

@ -62,7 +62,7 @@ public class ProductReceiveJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -106,7 +106,7 @@ public class ProductReceiveJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase

4
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ProductionReturnJobController.cs

@ -69,7 +69,7 @@ public class ProductionReturnJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -113,7 +113,7 @@ public class ProductionReturnJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase

72
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/PurchaseReceiptJobController.cs

@ -21,14 +21,10 @@ namespace Win_in.Sfs.Wms.Pda.Controllers.Jobs;
/// </summary>
[ApiController]
[Route($"{PdaHostConst.ROOT_ROUTE}job/purchase-receipt")]
public class PurchaseReceiptJobController : AbpController
{
private readonly ISupplierAppService _supplierAppService;
private readonly IPurchaseReceiptRequestAppService _purchaseReceiptRequestAppService;
private readonly IPurchaseReceiptJobAppService _purchaseReceiptJobAppService;
private readonly IFileAppService _fileAppService;
private readonly IUserWorkGroupAppService _userWorkGroupAppService;
/// <summary>
@ -42,15 +38,11 @@ public class PurchaseReceiptJobController : AbpController
public PurchaseReceiptJobController(
IPurchaseReceiptJobAppService purchaseReceiptJobAppService
, IUserWorkGroupAppService userWorkGroupAppService
, IPurchaseReceiptRequestAppService purchaseReceiptRequestAppService
, ISupplierAppService supplierAppService
, IFileAppService fileAppService)
, ISupplierAppService supplierAppService)
{
_userWorkGroupAppService = userWorkGroupAppService;
_purchaseReceiptJobAppService = purchaseReceiptJobAppService;
_purchaseReceiptRequestAppService = purchaseReceiptRequestAppService;
_supplierAppService = supplierAppService;
_fileAppService = fileAppService;
}
/// <summary>
@ -59,10 +51,9 @@ public class PurchaseReceiptJobController : AbpController
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("{id}")]
public virtual async Task<ActionResult<PurchaseReceiptJobDTO>> GetAsync(Guid id)
{
var result = await _purchaseReceiptJobAppService.GetAsync(id).ConfigureAwait(false);
var result = await _purchaseReceiptJobAppService.GetNoCacheAsync(id).ConfigureAwait(false);
var supplier = await _supplierAppService.GetByCodeAsync(result.SupplierCode).ConfigureAwait(false);
result.SupplierName = supplier.Name;
@ -79,12 +70,13 @@ public class PurchaseReceiptJobController : AbpController
/// <param name="isToday">是否今天</param>
/// <returns></returns>
[HttpGet("list")]
public virtual async Task<PagedResultDto<PurchaseReceiptJobDTO>> GetListAsync(int pageSize, int pageIndex, bool isTimeWindowSorting, bool isToday)
public virtual async Task<PagedResultDto<PurchaseReceiptJobDTO>> GetListAsync(int pageSize, int pageIndex,
bool isTimeWindowSorting, bool isToday)
{
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -96,17 +88,19 @@ public class PurchaseReceiptJobController : AbpController
{
Filters = new List<Filter>
{
new(nameof(PurchaseReceiptJobDTO.WorkGroupCode),jsonCodes,"In"),
new(nameof(PurchaseReceiptJobDTO.JobStatus),jsonStatus,"In")
new(nameof(PurchaseReceiptJobDTO.WorkGroupCode), jsonCodes, "In"),
new(nameof(PurchaseReceiptJobDTO.JobStatus), jsonStatus, "In")
}
}
};
if (isToday)//只看当日
if (isToday) //只看当日
{
request.Condition.Filters.Add(new Filter(nameof(PurchaseReceiptJobDTO.PlanArriveDate), Clock.Now.ToString("yyyy-MM-dd"), ">=", "And"));
request.Condition.Filters.Add(new Filter(nameof(PurchaseReceiptJobDTO.PlanArriveDate),
Clock.Now.ToString("yyyy-MM-dd"), ">=", "And"));
}
if (isTimeWindowSorting)//窗口时间排序
if (isTimeWindowSorting) //窗口时间排序
{
request.Sorting = $"{nameof(PurchaseReceiptJobDTO.TimeWindow)} ASC";
}
@ -131,7 +125,8 @@ public class PurchaseReceiptJobController : AbpController
[HttpPost("list")]
public virtual async Task<PagedResultDto<PurchaseReceiptJobDTO>> GetListAsync(SfsJobRequestInputBase sfsRequestDTO)
{
var list = await _purchaseReceiptJobAppService.GetPagedListByFilterAsync(sfsRequestDTO, true).ConfigureAwait(false);
var list = await _purchaseReceiptJobAppService.GetPagedListByFilterAsync(sfsRequestDTO, true)
.ConfigureAwait(false);
return list;
}
@ -155,22 +150,27 @@ public class PurchaseReceiptJobController : AbpController
{
return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
}
if (!wlgCodes.Any(r => r == jobDto.WorkGroupCode))
{
return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
}
if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.AcceptUserId != CurrentUser.Id)
{
return new NotFoundObjectResult($"任务正在被 {jobDto.AcceptUserName} 处理");
}
if (isToday)//只看当日
if (isToday) //只看当日
{
if (jobDto.PlanArriveDate.ToString("yyyy-MM-dd") == Clock.Now.ToString("yyyy-MM-dd"))
{
return jobDto;
}
return new NotFoundObjectResult($"不是当天的收货任务");
}
return jobDto;
}
@ -181,12 +181,13 @@ public class PurchaseReceiptJobController : AbpController
/// <param name="isToday"></param>
/// <returns></returns>
[HttpGet("list/by-asn")]
public virtual async Task<PagedResultDto<PurchaseReceiptJobDTO>> GetListByAsnNumberAsync(string asnNumber, bool isToday)
public virtual async Task<PagedResultDto<PurchaseReceiptJobDTO>> GetListByAsnNumberAsync(string asnNumber,
bool isToday)
{
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonWlgCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var requestInput = new SfsJobRequestInputBase
@ -198,17 +199,20 @@ public class PurchaseReceiptJobController : AbpController
{
Filters = new List<Filter>
{
new(nameof(PurchaseReceiptJobDTO.AsnNumber),asnNumber),
new(nameof(IssueJobDTO.WorkGroupCode),jsonWlgCodes,"In"),
new(nameof(IssueJobDTO.JobStatus),jsonStatus,"In"),
new(nameof(PurchaseReceiptJobDTO.AsnNumber), asnNumber),
new(nameof(IssueJobDTO.WorkGroupCode), jsonWlgCodes, "In"),
new(nameof(IssueJobDTO.JobStatus), jsonStatus, "In"),
}
}
};
if (isToday)//只看当日
if (isToday) //只看当日
{
requestInput.Condition.Filters.Add(new Filter(nameof(PurchaseReceiptJobDTO.PlanArriveDate), Clock.Now.ToString("yyyy-MM-dd"), ">=", "And"));
requestInput.Condition.Filters.Add(new Filter(nameof(PurchaseReceiptJobDTO.PlanArriveDate),
Clock.Now.ToString("yyyy-MM-dd"), ">=", "And"));
}
var list = await _purchaseReceiptJobAppService.GetPagedListByFilterAsync(requestInput, true).ConfigureAwait(false);
var list = await _purchaseReceiptJobAppService.GetPagedListByFilterAsync(requestInput, true)
.ConfigureAwait(false);
return list;
}
@ -222,7 +226,7 @@ public class PurchaseReceiptJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -232,8 +236,8 @@ public class PurchaseReceiptJobController : AbpController
{
Filters = new List<Filter>
{
new(nameof(PurchaseReceiptJobDTO.WorkGroupCode),jsonCodes,"In"),
new(nameof(PurchaseReceiptJobDTO.JobStatus),jsonStatus,"In")
new(nameof(PurchaseReceiptJobDTO.WorkGroupCode), jsonCodes, "In"),
new(nameof(PurchaseReceiptJobDTO.JobStatus), jsonStatus, "In")
}
}
};
@ -292,9 +296,11 @@ public class PurchaseReceiptJobController : AbpController
/// </summary>
/// <returns></returns>
[HttpPost("save-detail-inspect/{id}")]
public virtual async Task<PurchaseReceiptJobDetailDTO> SaveDetailAsync(Guid id, PurchaseReceiptJobDetailSaveInput purchaseReceiptJobDetailSaveInput)
public virtual async Task<PurchaseReceiptJobDetailDTO> SaveDetailAsync(Guid id,
PurchaseReceiptJobDetailSaveInput purchaseReceiptJobDetailSaveInput)
{
return await _purchaseReceiptJobAppService.SaveDetailInspectAsync(id, purchaseReceiptJobDetailSaveInput).ConfigureAwait(false);
return await _purchaseReceiptJobAppService.SaveDetailInspectAsync(id, purchaseReceiptJobDetailSaveInput)
.ConfigureAwait(false);
}
/// <summary>

4
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/PurchaseReturnJobController.cs

@ -63,7 +63,7 @@ public class PurchaseReturnJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -132,7 +132,7 @@ public class PurchaseReturnJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase

4
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/PutawayJobController.cs

@ -62,7 +62,7 @@ public class PutawayJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase
@ -106,7 +106,7 @@ public class PutawayJobController : AbpController
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
var jsonCodes = JsonSerializer.Serialize(wlgCodes);
List<string> status = new List<string>() { EnumJobStatus.Open.ToString(), EnumJobStatus.Doing.ToString() };
var status = new List<int>() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing };
var jsonStatus = JsonSerializer.Serialize(status);
var request = new SfsJobRequestInputBase

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

@ -2,6 +2,7 @@ using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.Pda.Controllers.Stores;
@ -29,9 +30,17 @@ public class IssueNoteController : AbpController
/// 创建发料记录
/// </summary>
/// <returns></returns>
[HttpPost("{input}")]
public virtual async Task CreateAsync(IssueNoteEditInput input)
[HttpPost("")]
public virtual async Task CreateAsync([FromBody] IssueNoteEditInput input)
{
input.RequestType = EnumMaterialRequestType.Direct_Issue.ToString();
input.Details.ForEach(p =>
{
p.ToLot = string.Empty;
p.ToPackingCode = string.Empty;
});
await _issueNoteAppService.CreateAsync(input).ConfigureAwait(false);
}

13
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReceiptRequestController.cs

@ -35,4 +35,17 @@ public class PurchaseReceiptRequestController : AbpController
var result = await _purchaseReceiptRequestAppService.GetByNumberAsync(number).ConfigureAwait(false);
return Ok(result);
}
/// <summary>
/// 根据 物品 箱 获取收货记录
/// </summary>
/// <param name="itemCode"></param>
/// <param name="packingCode"></param>
/// <returns></returns>
[HttpGet("detail-by-item-and-packing")]
public virtual async Task<PurchaseReceiptRequestDetailDTO> GetDetailByItemAndPackingAsync(string itemCode,
string packingCode)
{
return await _purchaseReceiptRequestAppService.GetDetailByItemAndPackingAsync(itemCode, packingCode).ConfigureAwait(false);
}
}

23
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs

@ -6,6 +6,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Domain.Entities.Auditing;
using Win_in.Sfs.Label.Application.Contracts;
using Win_in.Sfs.Label.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
@ -109,33 +110,34 @@ public class PurchaseReturnNoteController : AbpController
{
var poNumber = poNumberItem.Key;
var createInput = new PurchaseReturnNoteEditInput() { Details = new List<PurchaseReturnNoteDetailInput>() };
var returnNoteEditInput = new PurchaseReturnNoteEditInput() { Details = new List<PurchaseReturnNoteDetailInput>() };
createInput.PoNumber = poNumber;
returnNoteEditInput.PoNumber = poNumber;
foreach (var poNumberDetail in poNumberItem)
{
var packingCode = poNumberDetail.PackingCode;
await SetFromInventoryLabelAsync(packingCode, createInput).ConfigureAwait(false);
await SetFromInventoryLabelAsync(packingCode, returnNoteEditInput).ConfigureAwait(false);
await SetFormPurchaseOrderAsync(poNumber, createInput).ConfigureAwait(false);
await SetFormPurchaseOrderAsync(poNumber, returnNoteEditInput).ConfigureAwait(false);
createInput.ReturnType = returnType;
createInput.ReturnTime = returnTime;
createInput.ReturnReason = returnReason;
returnNoteEditInput.ReturnType = returnType;
returnNoteEditInput.ReturnTime = returnTime;
returnNoteEditInput.ReturnReason = returnReason;
var createInputDetail = new PurchaseReturnNoteDetailInput();
createInputDetail.PoNumber = poNumber;
createInputDetail.Reason = returnReason;
//createInputDetail.WarehouseCode= poNumberItem.
await SetDetailByBalanceAsync(packingCode, createInputDetail).ConfigureAwait(false);
createInput.Details.Add(createInputDetail);
returnNoteEditInput.Details.Add(createInputDetail);
}
createInputs.Add(createInput);
createInputs.Add(returnNoteEditInput);
}
return createInputs;
@ -149,6 +151,9 @@ public class PurchaseReturnNoteController : AbpController
createInputDetail.LocationCode = balance.LocationCode;
createInputDetail.LocationErpCode = balance.LocationErpCode;
createInputDetail.LocationArea = balance.LocationArea;
createInputDetail.LocationGroup= balance.LocationGroup;
createInputDetail.WarehouseCode= balance.WarehouseCode;
createInputDetail.PackingCode = balance.PackingCode;
createInputDetail.ContainerCode = balance.ContainerCode;
createInputDetail.Uom = balance.Uom;

1
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/ExpectOuts/IExpectOutAppService.cs

@ -13,4 +13,5 @@ public interface IExpectOutAppService
Task<List<ExpectOutDTO>> GetListByJobAsync(string jobNumber);
Task<List<ExpectOutDTO>> GetListByItemAsync(string itemCode);
Task<List<ExpectOutDTO>> GetListByLocationAsync(string locationCode);
Task<List<ExpectOutDTO>> GetListByPackingCodeAsync(string packingCode);
}

8
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/ExpectOuts/ExpectOutAppService.cs

@ -146,4 +146,12 @@ public class ExpectOutAppService
//TODO
throw new UserFriendlyException("");
}
[HttpGet("list/by-packing/{packingCode}")]
public virtual async Task<List<ExpectOutDTO>> GetListByPackingCodeAsync(string packingCode)
{
var entitys = await _repository.GetListAsync(p => p.PackingCode == packingCode).ConfigureAwait(false);
return ObjectMapper.Map<List<ExpectOut>, List<ExpectOutDTO>>(entitys);
}
}

7
be/Modules/Label/src/Win_in.Sfs.Label.Application.Contracts/InventoryLabels/InventoryLabelDto.cs

@ -214,4 +214,11 @@ public class InventoryLabelDto : SfsBasicDTOBase
/// </summary>
[Display(Name = "供应商零件名")]
public string SupplierItemName { get; set; }
/// <summary>
/// 计划到货时间
/// </summary>
[Display(Name = "要求到货时间")]
[Required(ErrorMessage = "{0}是必填项")]
public DateTime PlanArriveDate { get; set; }
}

7
be/Modules/Label/src/Win_in.Sfs.Label.Application.Contracts/InventoryLabels/InventoryLabelEditInput.cs

@ -221,5 +221,12 @@ public class InventoryLabelEditInput : SfsLabelCreateOrUpdateInputBase
[Required(ErrorMessage = "{0}是必填项")]
public EnumLabelType LabelType { get; set; }
/// <summary>
/// 要求到货时间
/// </summary>
[Display(Name = "要求到货时间")]
[Required(ErrorMessage = "{0}是必填项")]
public DateTime PlanArriveDate { get; set; }
#endregion
}

7
be/Modules/Label/src/Win_in.Sfs.Label.Application.Contracts/InventoryLabels/InventoryLabelImportInput.cs

@ -74,6 +74,13 @@ public class InventoryLabelImportInput : SfsImportInputBase
[Display(Name = "规格")]
public string Specifications { get; set; }
/// <summary>
/// 要求到货时间
/// </summary>
[Display(Name = "要求到货时间")]
[Required(ErrorMessage = "{0}是必填项")]
public DateTime PlanArriveDate { get; set; }
#region PurchaseInfo
/// <summary>

7
be/Modules/Label/src/Win_in.Sfs.Label.Application.Contracts/InventoryLabels/InventoryLabelWithoutCodeCreateInput.cs

@ -200,4 +200,11 @@ public class InventoryLabelWithoutCodeCreateInput
[Display(Name = "标签类型")]
[Required(ErrorMessage = "{0}是必填项")]
public EnumLabelType LabelType { get; set; }
/// <summary>
/// 要求到货时间
/// </summary>
[Display(Name = "要求到货时间")]
[Required(ErrorMessage = "{0}是必填项")]
public DateTime PlanArriveDate { get; set; }
}

39
be/Modules/Label/src/Win_in.Sfs.Label.Application/Bases/SfsLabelAppServiceWithCodeBase.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
@ -38,10 +39,12 @@ public class SfsLabelAppServiceWithCodeBase<TEntity, TEntityDto, TRequestDTO, TC
[HttpGet("by-code/{code}")]
public virtual async Task<TEntityDto> GetByCodeAsync(string code)
{
var dto = await Cache.GetOrAddItemAsync(
$"{typeof(TEntityDto).Name}:{code}".ToString(),
async () => await GetFromRepositoryAsync(code).ConfigureAwait(false),
SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
// var dto = await Cache.GetOrAddItemAsync(
// $"{typeof(TEntityDto).Name}:{code}".ToString(),
// async () => await GetFromRepositoryAsync(code).ConfigureAwait(false),
// SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
var dto = await GetFromRepositoryAsync(code).ConfigureAwait(false);
return dto;
}
@ -50,18 +53,22 @@ public class SfsLabelAppServiceWithCodeBase<TEntity, TEntityDto, TRequestDTO, TC
[HttpPost("by-codes")]
public virtual async Task<List<TEntityDto>> GetByCodesAsync(IEnumerable<string> codes)
{
var dtoList = new List<TEntityDto>();
foreach (var code in codes)
{
var dto = await Cache.GetOrAddItemAsync(
$"{typeof(TEntityDto).Name}:{code}".ToString(),
async () => await GetFromRepositoryAsync(code).ConfigureAwait(false),
SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
if (dto != null)
{
dtoList.Add(dto);
}
}
// var dtoList = new List<TEntityDto>();
// foreach (var code in codes)
// {
// var dto = await Cache.GetOrAddItemAsync(
// $"{typeof(TEntityDto).Name}:{code}".ToString(),
// async () => await GetFromRepositoryAsync(code).ConfigureAwait(false),
// SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
// if (dto != null)
// {
// dtoList.Add(dto);
// }
// }
// return dtoList;
var entities = await _repository.GetListAsync(p => codes.Contains(p.Code)).ConfigureAwait(false);
var dtoList = ObjectMapper.Map<List<TEntity>, List<TEntityDto>>(entities);
return dtoList;
}

7
be/Modules/Label/src/Win_in.Sfs.Label.Domain/InventoryLabels/InventoryLabel.cs

@ -166,4 +166,11 @@ public class InventoryLabel : SfsAggregateRootBase
/// </summary>
[Display(Name = "供应商零件名")]
public string SupplierItemName { get; set; }
/// <summary>
/// 要求到货时间
/// </summary>
[Display(Name = "要求到货时间")]
[Required(ErrorMessage = "{0}是必填项")]
public DateTime PlanArriveDate { get; set; }
}

8
be/Modules/Message/src/Win_in.Sfs.Message.Application/MessageApplicationAutoMapperProfile.cs

@ -2,7 +2,7 @@ using AutoMapper;
namespace Win_in.Sfs.Message.Application;
public class MessageApplicationAutoMapperProfile : Profile
public partial class MessageApplicationAutoMapperProfile : Profile
{
public MessageApplicationAutoMapperProfile()
{
@ -10,7 +10,9 @@ public class MessageApplicationAutoMapperProfile : Profile
* Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */
new MessageTypeAutoMapperProfile().MessageTypeAutoMapperProfileConfig();
new NotifyMessageAutoMapperProfile().NotifyMessageAutoMapperProfileConfig();
UserNotifyAutoMapperProfile();
MessageTypeAutoMapperProfile();
MessageTypeSubscribesAutoMapperProfile();
NotifyMessageAutoMapperProfileConfig();
}
}

12
be/Modules/Message/src/Win_in.Sfs.Message.Application/MessageTypeSubscribes/MessageTypeSubscribeAutoMapperProfile.cs

@ -5,12 +5,20 @@ using Win_in.Sfs.Message.Domain;
namespace Win_in.Sfs.Message.Application;
public class MessageTypeSubscribeAutoMapperProfile : Profile
public partial class MessageApplicationAutoMapperProfile : Profile
{
public MessageTypeSubscribeAutoMapperProfile()
public void MessageTypeSubscribesAutoMapperProfile()
{
CreateMap<MessageTypeSubscribe, MessageTypeSubscribeDto>()
.IgnoreAuditedObjectProperties()
.ReverseMap();
CreateMap<MessageTypeSubscribeEditInput, MessageTypeSubscribe>()
.IgnoreAuditedObjectProperties()
.Ignore(x=>x.Id)
.Ignore(x => x.ConcurrencyStamp)
.Ignore(x => x.TenantId)
.Ignore(x => x.ExtraProperties)
;
}
}

4
be/Modules/Message/src/Win_in.Sfs.Message.Application/MessageTypes/MessageTypeAutoMapperProfile.cs

@ -5,9 +5,9 @@ using Win_in.Sfs.Message.Domain;
namespace Win_in.Sfs.Message.Application;
public class MessageTypeAutoMapperProfile : Profile
public partial class MessageApplicationAutoMapperProfile : Profile
{
public void MessageTypeAutoMapperProfileConfig()
public void MessageTypeAutoMapperProfile()
{
CreateMap<MessageType, MessageTypeDto>()
.IgnoreAuditedObjectProperties()

3
be/Modules/Message/src/Win_in.Sfs.Message.Application/NotifyMessages/NotifyMessageAutoMapperProfile.cs

@ -6,7 +6,7 @@ using Win_in.Sfs.Shared.Event;
namespace Win_in.Sfs.Message.Application;
public class NotifyMessageAutoMapperProfile : Profile
public partial class MessageApplicationAutoMapperProfile : Profile
{
public void NotifyMessageAutoMapperProfileConfig()
{
@ -30,6 +30,7 @@ public class NotifyMessageAutoMapperProfile : Profile
.Ignore(x => x.LastModifierId)
.Ignore(x => x.CreationTime)
.Ignore(x => x.CreatorId)
.Ignore(x=>x.Id)
;
}
}

4
be/Modules/Message/src/Win_in.Sfs.Message.Application/UserNotifyMessages/UserNotifyMessageAutoMapperProfile.cs

@ -6,9 +6,9 @@ using Win_in.Sfs.Message.Domain;
namespace Win_in.Sfs.Message.Application;
public class UserNotifyMessageAutoMapperProfile : Profile
public partial class MessageApplicationAutoMapperProfile : Profile
{
public UserNotifyMessageAutoMapperProfile()
public void UserNotifyAutoMapperProfile()
{
CreateMap<UserNotifyMessage, UserNotifyMessageDto>()
.IgnoreAuditedObjectProperties()

1
be/Modules/Shared/src/Win_in.Sfs.Shared.Application.Contracts/ISfsCrudWithDetailsAppService.cs

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Application.Services;
namespace Win_in.Sfs.Shared.Application.Contracts;

9
be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs

@ -188,10 +188,11 @@ public abstract class SfsCrudWithDetailsAppServiceBase<TEntity, TEntityDto, TReq
[HttpGet("{id}")]
public override async Task<TEntityDto> GetAsync(Guid id)
{
var dto = await Cache.GetOrAddItemAsync(
id.ToString(),
async () => await base.GetAsync(id).ConfigureAwait(false),
SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
//var dto = await Cache.GetOrAddItemAsync(
// id.ToString(),
// async () => await base.GetAsync(id).ConfigureAwait(false),
// SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
var dto=await base.GetAsync(id).ConfigureAwait(false);
return dto;
}

6
be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Inventory/EnumTransSubType.cs

@ -85,6 +85,12 @@ public enum EnumTransSubType
[Display(Name = "人工报废")]
Scrap_Manual = 3601,
/// <summary>
/// 完工报废
/// </summary>
[Display(Name = "完工报废")]
Scrap_Product = 3604,
/// <summary>
/// 线边调整
/// </summary>

3
be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumMaterialRequestType.cs

@ -26,4 +26,7 @@ public enum EnumMaterialRequestType
///// </summary>
//[Display(Name = "安全库存拉动")]
//Issue_SfaetyStock = 1504,
[Display(Name = "直接发料")]
Direct_Issue = 1505
}

4
be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumProductReceiptType.cs

@ -5,9 +5,9 @@ namespace Win_in.Sfs.Shared.Domain.Shared;
public enum EnumProductReceiptType
{
/// <summary>
/// 人工缴库
/// 人工缴库(完工缴库)
/// </summary>
[Display(Name = "人工缴库")]
[Display(Name = "人工缴库(完工缴库)")]
ProductReceipt_Manual = 2101,
/// <summary>

10
be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumScrapType.cs

@ -5,9 +5,9 @@ namespace Win_in.Sfs.Shared.Domain.Shared;
public enum EnumScrapType
{
/// <summary>
/// 人工报废
/// 人工报废(原料报废)
/// </summary>
[Display(Name = "人工报废")]
[Display(Name = "人工报废(原料报废)")]
Scrap_Manual = 3601,
/// <summary>
@ -15,4 +15,10 @@ public enum EnumScrapType
/// </summary>
[Display(Name = "线边报废")]
Scrap_WIP = 3603,
/// <summary>
/// 完工报废
/// </summary>
[Display(Name = "完工报废")]
Scrap_Product = 3604,
}

1
be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/Repositories/ISfsBulkRepositoryBase.cs

@ -43,4 +43,5 @@ public interface ISfsBulkRepositoryBase<TEntity>
/// <returns></returns>
Task BulkInsertAsync<TDetail>(IList<TDetail> details, BulkConfig bulkConfig = null, Action<decimal> progress = null, Type type = null, CancellationToken cancellationToken = default(CancellationToken))
where TDetail : class, new();
Task BulkUpdateAsync(IList<TEntity> entities, BulkConfig bulkConfig = null, Action<decimal> progress = null, Type type = null, CancellationToken cancellationToken = default);
}

18
be/Modules/Shared/src/Win_in.Sfs.Shared.EntityFrameworkCore/SfsEfCoreRepositoryBase.cs

@ -76,4 +76,22 @@ public abstract class SfsEfCoreRepositoryBase<TDbContext, TEntity>
await context.BulkDeleteAsync(entities, bulkConfig, progress, type, cancellationToken).ConfigureAwait(false);
}
}
/// <summary>
/// 批量更新数据
/// </summary>
/// <param name="entities"></param>
/// <param name="bulkConfig"></param>
/// <param name="progress"></param>
/// <param name="type"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public virtual async Task BulkUpdateAsync(IList<TEntity> entities, BulkConfig bulkConfig = null, Action<decimal> progress = null, Type type = null, CancellationToken cancellationToken = default(CancellationToken))
{
var context = (await GetDbContextAsync().ConfigureAwait(false)) as DbContext;
if (entities != null && entities.Count > 0)
{
await context.BulkUpdateAsync(entities, bulkConfig, progress, type, cancellationToken).ConfigureAwait(false);
}
}
}

12
be/Modules/Shared/src/Win_in.Sfs.Shared.Host/HostBuilderExtensions.cs

@ -45,6 +45,7 @@ public static class HostBuilderExtensions
AddJsonByUrl(cb, $"{configUrl}appsettings.{builder.Environment.EnvironmentName}.json");
if (builder.Environment.IsDevelopment())
{
cb.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json"));
cb.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), $"appsettings.{builder.Environment.EnvironmentName}.json"));
}
});
@ -79,7 +80,14 @@ public static class HostBuilderExtensions
private static void AddJsonByUrl(IConfigurationBuilder configurationBuilder, string url)
{
Console.WriteLine($"load config form:{url}");
var stream = new HttpClient().GetStreamAsync(url).Result;
configurationBuilder.AddJsonStream(stream);
try
{
var stream = new HttpClient().GetStreamAsync(url).Result;
configurationBuilder.AddJsonStream(stream);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/DTOs/SfsJobRecommendFromDetailDTOBase.cs

@ -220,10 +220,13 @@ public abstract class SfsJobRecommendFromDetailDTOBase
HandledProduceDate = RecommendProduceDate;
HandledExpireDate = RecommendExpireDate;
HandledLot = RecommendLot;
HandledQty = RecommendQty;
HandledFromLocationCode = RecommendFromLocationCode;
HandledFromLocationErpCode = RecommendFromLocationErpCode;
HandledQty = RecommendQty;
HandledFromLocationArea= RecommendFromLocationArea;
HandledFromWarehouseCode= RecommendFromWarehouseCode;
HandledFromLocationGroup = RecommendFromLocationGroup;
}
}

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/DTOs/SfsStoreRequestDTOBase.cs

@ -3,7 +3,7 @@ using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class SfsStoreRequestDTOBase<TDetailDTO> : SfsStoreDTOBase<TDetailDTO>
public abstract class SfsStoreRequestDTOBase<TDetailDTO> : SfsStoreDTOBase<TDetailDTO>
{
/// <summary>
/// 自动提交审批
@ -18,7 +18,7 @@ public class SfsStoreRequestDTOBase<TDetailDTO> : SfsStoreDTOBase<TDetailDTO>
public bool AutoAgree { get; set; }
/// <summary>
/// 自动执行
/// 自动执行
/// </summary>
[Display(Name = "自动执行")]
public bool AutoHandle { get; set; }

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreCreateOrUpdateInputBase.cs

@ -5,7 +5,7 @@ using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class SfsStoreCreateOrUpdateInputBase : SfsCreateOrUpdateInputBase
public abstract class SfsStoreCreateOrUpdateInputBase : SfsCreateOrUpdateInputBase
{
/// <summary>
/// 操作员

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreDetailWithFromToInputBase.cs

@ -5,7 +5,7 @@ using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class SfsStoreDetailWithFromToInputBase
public abstract class SfsStoreDetailWithFromToInputBase
: SfsStoreDetailWithQtyInputBase
, IHasFromToPacking
, IHasFromToLot

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreImportInputBase.cs

@ -3,7 +3,7 @@ using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class SfsStoreImportInputBase : SfsImportInputBase
public abstract class SfsStoreImportInputBase : SfsImportInputBase
{
//[Display(Name = "单号")]
@ -35,7 +35,7 @@ public class SfsStoreImportInputBase : SfsImportInputBase
public bool AutoAgree { get; set; } = true;
/// <summary>
/// 自动执行
/// 自动执行
/// </summary>
[Display(Name = "自动执行")]
[ImporterHeader(IsIgnore = true)]

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreRecommendFromDetailWithFromToInputBase.cs

@ -4,7 +4,7 @@ using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class SfsStoreRecommendFromDetailWithFromToInputBase : SfsStoreDetailWithFromToInputBase, IHasRecommendAndHandledFrom
public abstract class SfsStoreRecommendFromDetailWithFromToInputBase : SfsStoreDetailWithFromToInputBase, IHasRecommendAndHandledFrom
{
#region IHasRecommendFrom
/// <summary>

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreRecommendToDetailWithFromToInputBase.cs

@ -4,7 +4,7 @@ using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class SfsStoreRecommendToDetailWithFromToInputBase : SfsStoreDetailWithFromToInputBase, IHasRecommendAndHandledTo
public abstract class SfsStoreRecommendToDetailWithFromToInputBase : SfsStoreDetailWithFromToInputBase, IHasRecommendAndHandledTo
{
#region IHasRecommendTo
/// <summary>

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Bases/Inputs/SfsStoreRequestCreateOrUpdateInputBase.cs

@ -2,7 +2,7 @@ using System.ComponentModel.DataAnnotations;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class SfsStoreRequestCreateOrUpdateInputBase : SfsStoreCreateOrUpdateInputBase
public abstract class SfsStoreRequestCreateOrUpdateInputBase : SfsStoreCreateOrUpdateInputBase
{
/// <summary>
/// 自动提交审批
@ -17,7 +17,7 @@ public class SfsStoreRequestCreateOrUpdateInputBase : SfsStoreCreateOrUpdateInpu
public bool AutoAgree { get; set; } = true;
/// <summary>
/// 自动执行
/// 自动执行
/// </summary>
[Display(Name = "自动执行")]
public bool AutoHandle { get; set; } = true;

8
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReceiptJobs/IPurchaseReceiptJobAppService.cs

@ -40,4 +40,12 @@ public interface IPurchaseReceiptJobAppService
/// </summary>
/// <returns></returns>
Task<List<PurchaseReceiptJobDetailDTO>> SetInspectWithNotInspectAsync(Guid id);
/// <summary>
/// 按Id获取实体 不走缓存
/// </summary>
/// <param name="id">实体Id</param>
/// <param name="noCache"></param>
/// <returns></returns>
Task<PurchaseReceiptJobDTO> GetNoCacheAsync(Guid id);
}

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/DeliverNotes/DTOs/DeliverNoteDTO.cs

@ -48,6 +48,13 @@ public class DeliverNoteDTO : SfsStoreDTOBase<DeliverNoteDetailDTO>
[Display(Name = "发货申请单号")]
public string DeliverRequestNumber { get; set; }
/// <summary>
/// 打印次数
/// </summary>
/// <returns></returns>
[Display(Name = "打印次数")]
public int CountPrint { get; set; }
/// <summary>
/// 发货类型
/// </summary>

8
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/DeliverNotes/Inputs/DeliverNoteEditInput.cs

@ -63,5 +63,13 @@ public class DeliverNoteEditInput : SfsStoreCreateOrUpdateInputBase
/// </summary>
[Display(Name = "明细列表")]
public List<DeliverNoteDetailInput> Details { get; set; }
/// <summary>
/// 打印次数
/// </summary>
/// <returns></returns>
[Display(Name = "打印次数")]
public int CountPrint { get; set; }
#endregion
}

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ProductReceiptRequests/DTOs/ProductReceiptRequestDTO.cs

@ -1,6 +1,7 @@
using System;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@ -54,6 +55,6 @@ public class ProductReceiptRequestDTO : SfsStoreRequestDTOBase<ProductReceiptReq
/// 类型
/// </summary>
[Display(Name = "类型")]
public string Type { get; set; }
public EnumProductReceiptType Type { get; set; }
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ProductReceiptRequests/Inputs/ProductReceiptRequestEditInput.cs

@ -70,7 +70,7 @@ public class ProductReceiptRequestEditInput : SfsStoreRequestCreateOrUpdateInput
/// 类型
/// </summary>
[Display(Name = "类型")]
public string Type { get; set; }
public string EnumProductReceiptType { get; set; }
/// <summary>
/// 明细列表

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ProductionReturnRequests/Inputs/ProductionReturnRequestDetailInput.cs

@ -0,0 +1,6 @@
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ProductionReturnRequestDetailInput : SfsStoreDetailWithFromToInputBase
{
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ProductionReturnRequests/Inputs/ProductionReturnRequestEditInput.cs

@ -24,6 +24,6 @@ public class ProductionReturnRequestEditInput : SfsStoreRequestCreateOrUpdateInp
/// 明细列表
/// </summary>
[Display(Name = "明细列表")]
public List<SfsStoreDetailWithFromToInputBase> Details { get; set; } = new List<SfsStoreDetailWithFromToInputBase>();
public List<ProductionReturnRequestDetailInput> Details { get; set; } = new List<ProductionReturnRequestDetailInput>();
#endregion
}

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReceiptRequests/IPurchaseReceiptRequestAppService.cs

@ -20,4 +20,13 @@ public interface IPurchaseReceiptRequestAppService
/// <param name="inputs"></param>
/// <returns></returns>
Task<List<PurchaseReceiptRequestDTO>> CreateManyAsync(List<PurchaseReceiptRequestEditInput> inputs);
/// <summary>
/// 【获取】【收货记录详情】根据 物品 箱码
/// </summary>
/// <param name="itemCode"></param>
/// <param name="packingCode"></param>
/// <returns></returns>
Task<PurchaseReceiptRequestDetailDTO> GetDetailByItemAndPackingAsync(string itemCode,
string packingCode);
}

15
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/ScrapRequests/Inputs/ScrapRequestImportInput.cs

@ -1,4 +1,6 @@
using System.ComponentModel.DataAnnotations;
using DocumentFormat.OpenXml.Wordprocessing;
using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
@ -7,11 +9,16 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class ScrapRequestImportInput : SfsStoreImportInputBase
{
/// <summary>
/// 类型
/// 报废类型
/// </summary>
[Display(Name = "类型")]
[Required]
public EnumScrapType Type { get; set; }
[Display(Name = "报废类型")]
[Required(ErrorMessage = "{0}是必填项")]
[ImporterHeader(Name = "报废类型")]
[ExporterHeader(DisplayName = "报废类型")]
[ValueMapping("线边报废", EnumTransSubType.Scrap_WIP)]
[ValueMapping("原料报废", EnumTransSubType.Scrap_Manual)]
[ValueMapping("完工报废", EnumTransSubType.Scrap_Product)]
public string Type { get; set; }
/// <summary>
/// 物料代码

39
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsJobWithCodeAppServiceBase.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Threading;
using System.Threading.Tasks;
@ -37,10 +38,12 @@ public abstract class SfsJobWithCodeAppServiceBase<TEntity, TEntityDto, TRequest
[HttpGet("by-code/{code}")]
public virtual async Task<TEntityDto> GetByCodeAsync(string code)
{
var dto = await Cache.GetOrAddItemAsync(
$"{typeof(TEntityDto).Name}:{code}".ToString(),
async () => await GetFromRepositoryAsync(code).ConfigureAwait(false),
SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
// var dto = await Cache.GetOrAddItemAsync(
// $"{typeof(TEntityDto).Name}:{code}".ToString(),
// async () => await GetFromRepositoryAsync(code).ConfigureAwait(false),
// SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
var dto = await GetFromRepositoryAsync(code).ConfigureAwait(false);
return dto;
@ -51,18 +54,22 @@ public abstract class SfsJobWithCodeAppServiceBase<TEntity, TEntityDto, TRequest
public virtual async Task<List<TEntityDto>> GetByCodesAsync(IEnumerable<string> codes)
{
var dtoList = new List<TEntityDto>();
foreach (var code in codes)
{
var dto = await Cache.GetOrAddItemAsync(
$"{typeof(TEntityDto).Name}:{code}".ToString(),
async () => await GetFromRepositoryAsync(code).ConfigureAwait(false),
SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
if (dto != null)
{
dtoList.Add(dto);
}
}
// var dtoList = new List<TEntityDto>();
// foreach (var code in codes)
// {
// var dto = await Cache.GetOrAddItemAsync(
// $"{typeof(TEntityDto).Name}:{code}".ToString(),
// async () => await GetFromRepositoryAsync(code).ConfigureAwait(false),
// SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
// if (dto != null)
// {
// dtoList.Add(dto);
// }
// }
// return dtoList;
var entities = await _repository.GetListAsync(p => codes.Contains(p.Code)).ConfigureAwait(false);
var dtoList = ObjectMapper.Map<List<TEntity>, List<TEntityDto>>(entities);
return dtoList;
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/DeliverJobs/DeliverJobAutoMapperProfile.cs

@ -18,6 +18,8 @@ public partial class StoreApplicationAutoMapperProfile : Profile
CreateMap<DeliverJobDetailDTO, DeliverJobDetail>()
.IgnoreAuditedObjectProperties();
CreateMap<DeliverJobEditInput, DeliverJob>();
CreateMap<DeliverJobDetailInput, DeliverJobDetail>()
.IgnoreAuditedObjectProperties()
.Ignore(x => x.MasterID)

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs

@ -4,6 +4,7 @@ using System.Text.Json;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.FileStorage.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save