Browse Source

Merge branch 'dev_DY_CC' of http://dev.ccwin-in.com:3000/BoXu.Zheng/WZC2 into dev_DY_CC

dev_DY_CC
赵新宇 10 months ago
parent
commit
96c11972c9
  1. BIN
      .vs/WZC2/v17/.wsuo
  2. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/CallMtl/CallMtl.cs
  3. 8
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/CallMtl/CallMtlManager.cs
  4. 10
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/IMesChassisManager.cs
  5. 8
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/IMesChassisRepository.cs
  6. 49
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/MesChassis.cs
  7. 47
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/MesChassisManager.cs
  8. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Frozen/Frozen.cs
  9. 3
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/CallMtl/CallMtlDbContextModelCreatingExtensions.cs
  10. 27
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Chassis/MesChassisDbContextModelCreatingExtensions.cs
  11. 13
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Chassis/MesChassisEfCoreRepository.cs
  12. 1
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeDbContextModelCreatingExtensions.cs
  13. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeEntityFrameworkCoreFawtygModule.cs
  14. 3
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/MesDbContext.cs
  15. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/EosAgentModule.cs
  16. 20
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Incoming/EosIncomingBackgroundWorker.cs
  17. 21
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Outgoing/EosOutgoingBackgroundWorker.cs
  18. 58
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Client/WebApi.cs
  19. 12
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs
  20. 31
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingTaskIncomingBackgroundWorker.cs
  21. 20
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/appsettings.json
  22. 5
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/FawtygAutoMapperProfile.cs
  23. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/CallMtlReader.cs
  24. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/FrozenReader.cs
  25. 92
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesChassisConverter.cs
  26. 116
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesChassisReader.cs
  27. 58
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesIncomingBackgroundWorker.cs
  28. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesOutConverter.cs
  29. 21
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Outgoing/MesOutgoingBackgroundWorker.cs
  30. 3
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/FawtygAutoMapperProfile.cs
  31. 21
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/TyrpIncomingBackgroundWorker.cs
  32. 21
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TyrpOutgoingBackgroundWorker.cs
  33. 2
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/AgentModule.cs
  34. 36
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsExtensions.cs
  35. 26
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsWorker.cs
  36. 21
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/OutgoingFromWmsWorker.cs
  37. 16
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/appsettings.json
  38. 50
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/Chassis/ChassisExchangeDto.cs
  39. 35
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml
  40. 4
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.DbMigrator/appsettings.json
  41. 4
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain.Shared/Enums/EnumIncomingDataType.cs
  42. 7
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/InterfaceConfig/IInterfaceConfigManager.cs
  43. 8
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/InterfaceConfig/IInterfaceConfigRepository.cs
  44. 23
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/InterfaceConfig/InterfaceConfig.cs
  45. 25
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/InterfaceConfig/InterfaceConfigManager.cs
  46. 2
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore/EntityFrameworkCore/DataExchangeDbContext.cs
  47. 2
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore/EntityFrameworkCore/DataExchangeDbContextModelCreatingExtensions.cs
  48. 1
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore/EntityFrameworkCore/DataExchangeEntityFrameworkCoreModule.cs
  49. 25
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore/InterfaceConfig/InterfaceConfigDbContextModelCreatingExtensions.cs
  50. 25
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore/InterfaceConfig/InterfaceConfigEfCoreRepository.cs
  51. 1
      be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application.Contracts/Departments/IDepartmentAppService.cs
  52. 21
      be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application/Departments/DepartmentAppService.cs
  53. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/AssembleIssueJobsController.cs
  54. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/CoatingIssueJobsController.cs
  55. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/InjectionIssueJobsController.cs
  56. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/KittingIssueJobsController.cs
  57. 12
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/SparePartIssueJobsController.cs
  58. 22
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/tests/Class1.cs
  59. 17
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ItemContainers/ItemContainerAppService.cs
  60. 4
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs
  61. 5
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCodes/PositionCodeAppService.cs
  62. 6
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLineItems/ProductionLineItemAppService.cs
  63. 32
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs
  64. 38
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs
  65. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ItemGuideBooks/ItemGuideBook.cs
  66. 127
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs
  67. 2
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/TransferLogs/ITransferLogAppService.cs
  68. 21
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/TransferLogs/TransferLogAppService.cs
  69. 2
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/TransferLogs/ITransferLogManager.cs
  70. 54
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/TransferLogs/TransferLogManager.cs
  71. 7
      be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Inventory/EnumTransSubType.cs
  72. 4
      be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumIssueRequestType.cs
  73. 18
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs
  74. 19
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs
  75. 18
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/ScrapNoteEventHandler.cs
  76. 46
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/ScrapNoteEventHandler.cs
  77. 191
      build/src/docker/publish/conf/settings/appsettings.Development - 副本.json
  78. 11
      build/src/docker/publish/conf/settings/appsettings.Development..json
  79. 191
      build/src/docker/publish/conf/settings/appsettings.Development_dev用的.json
  80. 191
      build/src/docker/publish/conf/settings/appsettings.Development_vpn现场调用的.json

BIN
.vs/WZC2/v17/.wsuo

Binary file not shown.

4
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/CallMtl/CallMtl.cs

@ -8,7 +8,7 @@ public class CallMtl : Entity
/// 序号 /// 序号
/// </summary> /// </summary>
[Key] [Key]
public string mesout_callmtl_id { get; set; } public long ID { get; set; }
/// <summary> /// <summary>
/// 物料 /// 物料
/// </summary> /// </summary>
@ -33,7 +33,7 @@ public class CallMtl : Entity
public override object[] GetKeys() public override object[] GetKeys()
{ {
return new object[] { mesout_callmtl_id }; return new object[] { ID };
} }
} }

8
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/CallMtl/CallMtlManager.cs

@ -20,8 +20,8 @@ public class CallMtlManager : DomainService, ICallMtlManager
} }
public virtual async Task UpdateProcesseErrordListAsync(List<CallMtl> entities) public virtual async Task UpdateProcesseErrordListAsync(List<CallMtl> entities)
{ {
var ids = entities.Select(p => p.mesout_callmtl_id); var ids = entities.Select(p => p.ID);
var plans = await _repository.GetListAsync(p => ids.Contains(p.mesout_callmtl_id)).ConfigureAwait(false); var plans = await _repository.GetListAsync(p => ids.Contains(p.ID)).ConfigureAwait(false);
plans.ForEach(p => plans.ForEach(p =>
{ {
p.Yl1 = 2; p.Yl1 = 2;
@ -31,8 +31,8 @@ public class CallMtlManager : DomainService, ICallMtlManager
} }
public virtual async Task UpdateProcessedListAsync(List<CallMtl> entities) public virtual async Task UpdateProcessedListAsync(List<CallMtl> entities)
{ {
var ids = entities.Select(p => p.mesout_callmtl_id); var ids = entities.Select(p => p.ID);
var plans = await _repository.GetListAsync(p => ids.Contains(p.mesout_callmtl_id)).ConfigureAwait(false); var plans = await _repository.GetListAsync(p => ids.Contains(p.ID)).ConfigureAwait(false);
plans.ForEach(p => plans.ForEach(p =>
{ {
p.Yl1 = 1; p.Yl1 = 1;

10
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/IMesChassisManager.cs

@ -0,0 +1,10 @@
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Chassis;
public interface IMesChassisManager
{
Task<List<MesChassis>> GetToBeProcessedListAsync();
Task UpdateProcessedListAsync(List<MesChassis> entities);
Task UpdateProcesseErrordListAsync(List<MesChassis> entities);
}

8
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/IMesChassisRepository.cs

@ -0,0 +1,8 @@
using Volo.Abp.Domain.Repositories;
namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Chassis;
public interface IMesChassisRepository : IRepository<MesChassis>
{
}

49
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/MesChassis.cs

@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities;
namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Chassis;
public class MesChassis : Entity
{ /// <summary>
/// 序号
/// </summary>
[Key]
public int mesout_fis_id { get; set; }
/// <summary>
/// erp号
/// </summary>
public string mesout_fis_erpno { get; set; }
/// <summary>
/// 底盘号
/// </summary>
public string mesout_fis_vin { get; set; }
/// <summary>
/// 产品类型
/// </summary>
public string mesout_fis_productType { get; set; }
/// <summary>
/// 颜色
/// </summary>
public string mesout_fis_productColor { get; set; }
/// <summary>
/// 添加时间
/// </summary>
public DateTime? addtime { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? updatetime { get; set; }
/// <summary>
/// 是否读取(0,1)
/// </summary>
public int mesout_fis_status { get; set; }
public override object[] GetKeys()
{
return new object[] { mesout_fis_id };
}
}

47
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/MesChassisManager.cs

@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Services;
namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Chassis;
public class MesChassisManager : DomainService, IMesChassisManager
{
private readonly IMesChassisRepository _repository;
public MesChassisManager(IMesChassisRepository repository)
{
_repository = repository;
}
public virtual async Task<List<MesChassis>> GetToBeProcessedListAsync()
{
var plans = await _repository.GetListAsync(p => p.mesout_fis_status == 0).ConfigureAwait(false);
return plans;
}
public virtual async Task UpdateProcesseErrordListAsync(List<MesChassis> entities)
{
var ids = entities.Select(p => p.mesout_fis_id);
var plans = await _repository.GetListAsync(p => ids.Contains(p.mesout_fis_id)).ConfigureAwait(false);
plans.ForEach(p =>
{
p.mesout_fis_status = 2;
// p.WmsDate = Clock.Now;
});
await _repository.UpdateManyAsync(plans).ConfigureAwait(false);
}
public virtual async Task UpdateProcessedListAsync(List<MesChassis> entities)
{
var ids = entities.Select(p => p.mesout_fis_id);
var plans = await _repository.GetListAsync(p => ids.Contains(p.mesout_fis_id)).ConfigureAwait(false);
plans.ForEach(p =>
{
p.mesout_fis_status = 1;
// p.WmsDate = Clock.Now;
});
await _repository.UpdateManyAsync(plans).ConfigureAwait(false);
}
}

2
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Frozen/Frozen.cs

@ -8,7 +8,7 @@ public class Frozen : Entity
/// 序号 /// 序号
/// </summary> /// </summary>
[Key] [Key]
public string mesout_frozen_id { get; set; } public long mesout_frozen_id { get; set; }
/// <summary> /// <summary>
/// 类型 /// 类型
/// </summary> /// </summary>

3
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/CallMtl/CallMtlDbContextModelCreatingExtensions.cs

@ -15,7 +15,8 @@ public static class CallMtlDbContextModelCreatingExtensions
b.ConfigureByConvention(); b.ConfigureByConvention();
//Properties //Properties
b.Property(q => q.mesout_callmtl_id).HasMaxLength(20); // b.Property(q => q.ID).HasMaxLength(20);
b.Property(q => q.ID);
b.Property(q => q.mesout_callmtl_erpno).HasMaxLength(20); b.Property(q => q.mesout_callmtl_erpno).HasMaxLength(20);
b.Property(q => q.mesout_callmtl_loc).HasMaxLength(10); b.Property(q => q.mesout_callmtl_loc).HasMaxLength(10);
b.Property(q => q.mesout_callmtl_num).HasPrecision(10, 2); b.Property(q => q.mesout_callmtl_num).HasPrecision(10, 2);

27
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Chassis/MesChassisDbContextModelCreatingExtensions.cs

@ -0,0 +1,27 @@
using Microsoft.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.Modeling;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Chassis;
namespace Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes;
public static class MesChassisDbContextModelCreatingExtensions
{
public static void ConfigureMesChassis(this ModelBuilder builder, MesModelBuilderConfigurationOptions options)
{
builder.Entity<MesChassis>(b =>
{
//Configure table & schema Name
b.ToTable(options.TablePrefix + "mesout_fis", options.Schema);
//Configure ABP properties
b.ConfigureByConvention();
//Properties
b.Property(q => q.mesout_fis_id).HasMaxLength(20);
b.Property(q => q.mesout_fis_erpno).HasMaxLength(50);
b.Property(q => q.mesout_fis_vin).HasMaxLength(50);
b.Property(q => q.mesout_fis_productType).HasMaxLength(50);
b.Property(q => q.mesout_fis_productColor).HasMaxLength(50);
b.Property(q => q.mesout_fis_status);
});
}
}

13
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Chassis/MesChassisEfCoreRepository.cs

@ -0,0 +1,13 @@
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Chassis;
namespace Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes;
public class MesChassisEfCoreRepository : EfCoreRepository<MesDbContext, MesChassis>, IMesChassisRepository
{
public MesChassisEfCoreRepository(IDbContextProvider<MesDbContext> dbContextProvider)
: base(dbContextProvider)
{
}
}

1
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeDbContextModelCreatingExtensions.cs

@ -31,5 +31,6 @@ public static class DataExchangeDbContextModelCreatingExtensions
builder.ConfigureFrozen(options); builder.ConfigureFrozen(options);
builder.ConfigureDelivery(options); builder.ConfigureDelivery(options);
builder.ConfigureCallMtl(options); builder.ConfigureCallMtl(options);
builder.ConfigureMesChassis(options);
} }
} }

2
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeEntityFrameworkCoreFawtygModule.cs

@ -4,6 +4,7 @@ using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.MySQL; using Volo.Abp.EntityFrameworkCore.MySQL;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.CallMtl; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.CallMtl;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Chassis;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Delivery; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Delivery;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Frozen; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Frozen;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes;
@ -40,5 +41,6 @@ public class DataExchangeEntityFrameworkCoreFawtygModule : AbpModule
context.Services.AddTransient<IFrozenRepository, FrozenEfCoreRepository>(); context.Services.AddTransient<IFrozenRepository, FrozenEfCoreRepository>();
context.Services.AddTransient<IDeliveryRepository, DeliveryEfCoreRepository>(); context.Services.AddTransient<IDeliveryRepository, DeliveryEfCoreRepository>();
context.Services.AddTransient<ICallMtlRepository, CallMtlEfCoreRepository>(); context.Services.AddTransient<ICallMtlRepository, CallMtlEfCoreRepository>();
context.Services.AddTransient<IMesChassisRepository, MesChassisEfCoreRepository>();
} }
} }

3
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/MesDbContext.cs

@ -2,6 +2,7 @@ using Microsoft.EntityFrameworkCore;
using Volo.Abp.Data; using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.CallMtl; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.CallMtl;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Chassis;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Delivery; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Delivery;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Frozen; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Frozen;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes;
@ -33,6 +34,8 @@ public class MesDbContext :
public virtual DbSet<Delivery> Delivery { get; } public virtual DbSet<Delivery> Delivery { get; }
public virtual DbSet<CallMtl> CallMtl { get; } public virtual DbSet<CallMtl> CallMtl { get; }
public virtual DbSet<MesChassis> MesChassis { get; }
public MesDbContext(DbContextOptions<MesDbContext> options) public MesDbContext(DbContextOptions<MesDbContext> options)
: base(options) : base(options)
{ {

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

@ -165,8 +165,8 @@ public class EosAgentModule : AbpModule
ApplicationInitializationContext context) ApplicationInitializationContext context)
{ {
//context.AddBackgroundWorkerAsync<EosIncomingBackgroundWorker>(); context.AddBackgroundWorkerAsync<EosIncomingBackgroundWorker>();
context.AddBackgroundWorkerAsync<EosOutgoingBackgroundWorker>(); context.AddBackgroundWorkerAsync<EosOutgoingBackgroundWorker>();
} }
} }

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

@ -5,6 +5,7 @@ using Microsoft.Extensions.Options;
using Volo.Abp.BackgroundWorkers; using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Threading; using Volo.Abp.Threading;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent.Incoming; using Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent.Incoming;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent; namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent;
@ -29,10 +30,23 @@ public class EosIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{ {
Logger.LogInformation($"开始: 执行 {Incoming}"); Logger.LogInformation($"开始: 执行 {Incoming}");
if (!_options.Value.IncomingOptions.Active) var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
var confitem = await configManager.GetInterfaceConfig("EOS-IN").ConfigureAwait(false);
if (confitem == null)
{ {
Logger.LogInformation($"{Incoming} 已关闭没有执行!"); if (!_options.Value.IncomingOptions.Active)
return; {
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
}
else
{
if (!confitem.Active)
{
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
} }
Logger.LogInformation($"读取 采购订单"); Logger.LogInformation($"读取 采购订单");

21
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/Outgoing/EosOutgoingBackgroundWorker.cs

@ -5,6 +5,7 @@ using Microsoft.Extensions.Options;
using Volo.Abp.BackgroundWorkers; using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Threading; using Volo.Abp.Threading;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent; namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent;
@ -29,10 +30,24 @@ public class EosOutgoingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{ {
Logger.LogInformation($"开始: 执行 {Outgoing}"); Logger.LogInformation($"开始: 执行 {Outgoing}");
if (!_options.Value.IncomingOptions.Active)
var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
var confitem = await configManager.GetInterfaceConfig("EOS-OUT").ConfigureAwait(false);
if (confitem == null)
{
if (!_options.Value.OutgoingOptions.Active)
{
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
}
}
else
{ {
Logger.LogInformation($"{Outgoing} 已关闭没有执行!"); if (!confitem.Active)
return; {
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
}
} }
Logger.LogInformation($"传出 采购上架单"); Logger.LogInformation($"传出 采购上架单");

58
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Client/WebApi.cs

@ -1,5 +1,3 @@
//---------------------- //----------------------
// <auto-generated> // <auto-generated>
// Generated using the NSwag toolchain v14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org) // Generated using the NSwag toolchain v14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)
@ -72,7 +70,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
/// </summary> /// </summary>
/// <returns>Success</returns> /// <returns>Success</returns>
/// <exception cref="ApiException">A server side error occurred.</exception> /// <exception cref="ApiException">A server side error occurred.</exception>
public virtual System.Threading.Tasks.Task<int> GetMacStaticAsync() public virtual System.Threading.Tasks.Task<ResultJson> GetMacStaticAsync()
{ {
return GetMacStaticAsync(System.Threading.CancellationToken.None); return GetMacStaticAsync(System.Threading.CancellationToken.None);
} }
@ -83,7 +81,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
/// </summary> /// </summary>
/// <returns>Success</returns> /// <returns>Success</returns>
/// <exception cref="ApiException">A server side error occurred.</exception> /// <exception cref="ApiException">A server side error occurred.</exception>
public virtual async System.Threading.Tasks.Task<int> GetMacStaticAsync(System.Threading.CancellationToken cancellationToken) public virtual async System.Threading.Tasks.Task<ResultJson> GetMacStaticAsync(System.Threading.CancellationToken cancellationToken)
{ {
var client_ = _httpClient; var client_ = _httpClient;
var disposeClient_ = false; var disposeClient_ = false;
@ -98,8 +96,8 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
var urlBuilder_ = new System.Text.StringBuilder(); var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl); if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
// Operation Path: "CargoState/GetMacStatic" // Operation Path: "CargoState/GetMacStatic"
urlBuilder_.Append("CargoState/GetMacStatic"); urlBuilder_.Append("api/CargoState/GetMacStatic");
//urlBuilder_.Append("CargoState/GetMacStatic");
PrepareRequest(client_, request_, urlBuilder_); PrepareRequest(client_, request_, urlBuilder_);
var url_ = urlBuilder_.ToString(); var url_ = urlBuilder_.ToString();
@ -125,7 +123,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
var status_ = (int)response_.StatusCode; var status_ = (int)response_.StatusCode;
if (status_ == 200) if (status_ == 200)
{ {
var objectResponse_ = await ReadObjectResponseAsync<int>(response_, headers_, cancellationToken).ConfigureAwait(false); var objectResponse_ = await ReadObjectResponseAsync<ResultJson>(response_, headers_, cancellationToken).ConfigureAwait(false);
if (objectResponse_.Object == null) if (objectResponse_.Object == null)
{ {
throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
@ -214,7 +212,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
/// <returns>Success</returns> /// <returns>Success</returns>
/// <exception cref="ApiException">A server side error occurred.</exception> /// <exception cref="ApiException">A server side error occurred.</exception>
public virtual System.Threading.Tasks.Task<System.Collections.Generic.ICollection<ResponCargoItem>> GetCargoStaticAsync(string areaID) public virtual System.Threading.Tasks.Task<ResponCargos> GetCargoStaticAsync(string areaID)
{ {
return GetCargoStaticAsync(areaID, System.Threading.CancellationToken.None); return GetCargoStaticAsync(areaID, System.Threading.CancellationToken.None);
} }
@ -222,7 +220,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
/// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param> /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
/// <returns>Success</returns> /// <returns>Success</returns>
/// <exception cref="ApiException">A server side error occurred.</exception> /// <exception cref="ApiException">A server side error occurred.</exception>
public virtual async System.Threading.Tasks.Task<System.Collections.Generic.ICollection<ResponCargoItem>> GetCargoStaticAsync(string areaID, System.Threading.CancellationToken cancellationToken) public virtual async System.Threading.Tasks.Task<ResponCargos> GetCargoStaticAsync(string areaID, System.Threading.CancellationToken cancellationToken)
{ {
var client_ = _httpClient; var client_ = _httpClient;
var disposeClient_ = false; var disposeClient_ = false;
@ -269,7 +267,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
var status_ = (int)response_.StatusCode; var status_ = (int)response_.StatusCode;
if (status_ == 200) if (status_ == 200)
{ {
var objectResponse_ = await ReadObjectResponseAsync<System.Collections.Generic.ICollection<ResponCargoItem>>(response_, headers_, cancellationToken).ConfigureAwait(false); var objectResponse_ = await ReadObjectResponseAsync<ResponCargos>(response_, headers_, cancellationToken).ConfigureAwait(false);
if (objectResponse_.Object == null) if (objectResponse_.Object == null)
{ {
throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
@ -536,6 +534,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
} }
public partial class ResponCargoItem1 public partial class ResponCargoItem1
{ {
/// <summary> /// <summary>
@ -572,6 +571,45 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")]
public partial class ResponCargos
{
[Newtonsoft.Json.JsonProperty("code", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public int Code { get; set; }
[Newtonsoft.Json.JsonProperty("value", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public int Value { get; set; }
[Newtonsoft.Json.JsonProperty("msg", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string Msg { get; set; }
[Newtonsoft.Json.JsonProperty("datalist", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public System.Collections.Generic.ICollection<ResponCargoItem> Datalist { get; set; }
}
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")]
public partial class ResultJson
{
[Newtonsoft.Json.JsonProperty("code", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public int Code { get; set; }
[Newtonsoft.Json.JsonProperty("value", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public int Value { get; set; }
[Newtonsoft.Json.JsonProperty("result", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string Result { get; set; }
[Newtonsoft.Json.JsonProperty("msg", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string Msg { get; set; }
[Newtonsoft.Json.JsonProperty("valuestr", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string Valuestr { get; set; }
}
[System.CodeDom.Compiler.GeneratedCode("NSwag", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")] [System.CodeDom.Compiler.GeneratedCode("NSwag", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")]
public partial class ApiException : System.Exception public partial class ApiException : System.Exception
{ {

12
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs

@ -76,7 +76,7 @@ public class InjectionMoldingRequestReader : IReader
Stopwatch sw = Stopwatch.StartNew(); Stopwatch sw = Stopwatch.StartNew();
Client client = new Client(_options.Value.AutoRemote.IpAddress, _httpClientFactory.CreateClient());//调用客户记录 Client client = new Client(_options.Value.AutoRemote.IpAddress, _httpClientFactory.CreateClient());//调用客户记录
var flag = await client.GetMacStaticAsync().ConfigureAwait(false); var flag = await client.GetMacStaticAsync().ConfigureAwait(false);
if (flag != 1) if (flag.Code != 200)
{ {
// 记录错误日志并返回空列表 // 记录错误日志并返回空列表
_logger.LogInformation($"读取到摄像头信息为不可用{DateTime.Now},请检查摄像头"); _logger.LogInformation($"读取到摄像头信息为不可用{DateTime.Now},请检查摄像头");
@ -94,7 +94,15 @@ public class InjectionMoldingRequestReader : IReader
{ {
foreach (var itm in ids)//遍历区域查找所有货物 foreach (var itm in ids)//遍历区域查找所有货物
{ {
var idsList = await client.GetCargoStaticAsync(itm).ConfigureAwait(false);
var obj= await client.GetCargoStaticAsync(itm).ConfigureAwait(false);
var idsList = obj.Datalist;
if (idsList == null)
{
_logger.LogInformation($"没有设置指定区域无数据");
return new List<IncomingFromExternal>();
}

31
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingTaskIncomingBackgroundWorker.cs

@ -6,6 +6,7 @@ using Microsoft.Extensions.Options;
using Volo.Abp.BackgroundWorkers; using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Threading; using Volo.Abp.Threading;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming; using Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming;
using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts;
@ -13,7 +14,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent;
public class InjectionMoldingTaskIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase public class InjectionMoldingTaskIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
{ {
private readonly string Incoming = "InjectionMoldingTask Incoming"; private readonly string Incoming = "视觉接收";
private readonly IOptions<InjectionMoldingTaskOptions> _options; private readonly IOptions<InjectionMoldingTaskOptions> _options;
@ -32,30 +33,36 @@ public class InjectionMoldingTaskIncomingBackgroundWorker : AsyncPeriodicBackgro
_options.Value.AutoRemote.Interval = 2; _options.Value.AutoRemote.Interval = 2;
#endif #endif
Timer.Period = options.Value.AutoRemote.TimeCycle * 60 * 1000; //default 10 minutes Timer.Period = options.Value.AutoRemote.TimeCycle * 60 * 1000; //default 10 minutes
} }
[UnitOfWork] [UnitOfWork]
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{ {
Logger.LogInformation($"Starting: Handling {Incoming}"); Logger.LogInformation($"开始: 执行 {Incoming}");
if (!_options.Value.IncomingOptions.Active) var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
var confitem = await configManager.GetInterfaceConfig("SJ-IN").ConfigureAwait(false);
if (confitem == null)
{ {
Logger.LogInformation($"{Incoming} is not active!"); if (!_options.Value.IncomingOptions.Active)
return; {
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
} }
int min = DateTime.Now.Hour*60+ DateTime.Now.Minute;//第二天00:05:00与当天23:55:00不执行避免tyrpnumber重复 else
if ( (24*60-5)<= min || min <= 5)
{ {
Logger.LogInformation($"{Incoming} 时间小于第二天00:05:00大于当天23:55:00"); if (!confitem.Active)
return; {
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
} }
Logger.LogInformation($"注塑任务");//缴库 Logger.LogInformation($"注塑任务");//缴库
var reader = workerContext.ServiceProvider.GetService<InjectionMoldingRequestReader>(); var reader = workerContext.ServiceProvider.GetService<InjectionMoldingRequestReader>();
await reader.ReadAsync().ConfigureAwait(false); await reader.ReadAsync().ConfigureAwait(false);
Logger.LogInformation($"Completed: Handling {Incoming}"); Logger.LogInformation($"提交: 执行 {Incoming}");
} }
} }

20
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/appsettings.json

@ -1,8 +1,8 @@
{ {
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Server=10.164.113.32,1818\\SHDB;Database=Wms_Dy_ShangHai;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;TrustServerCertificate=True;Encrypt=false", "Default": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false",
"DataExchange": "Server=10.164.113.32,1818\\SHDB;Database=Wms_DataExchange_Main_Dy_ShangHai;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;TrustServerCertificate=True;Encrypt=false", "DataExchange": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false",
"MES": "Server=10.164.113.32,1818\\SHDB;Database=MES_SH;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;TrustServerCertificate=True;Encrypt=false" "MES": "Server=10.164.233.7;Database=MES_JY;uid=sa;pwd=Asdf1234$;TrustServerCertificate=True;Encrypt=false"
}, },
"AuthServer": { "AuthServer": {
@ -27,10 +27,10 @@
"Inventory": { "Inventory": {
"BaseUrl": "http://localhost:59095/" "BaseUrl": "http://dev.ccwin-in.com:60082/"
}, },
"Job": { "Job": {
"BaseUrl": "http://localhost:59095/" "BaseUrl": "http://dev.ccwin-in.com:60085/"
}, },
"Label": { "Label": {
"BaseUrl": "http://dev.ccwin-in.com:60082/" "BaseUrl": "http://dev.ccwin-in.com:60082/"
@ -39,10 +39,10 @@
"BaseUrl": "http://dev.ccwin-in.com:60082/" "BaseUrl": "http://dev.ccwin-in.com:60082/"
}, },
"Store": { "Store": {
"BaseUrl": "http://localhost:59095/" "BaseUrl": "http://dev.ccwin-in.com:60085/"
}, },
"BaseData": { "BaseData": {
"BaseUrl": "http://localhost:59094/" "BaseUrl": "http://dev.ccwin-in.com:60084/"
} }
@ -67,7 +67,7 @@
"InjectionMoldingTaskOptions": { "InjectionMoldingTaskOptions": {
"AutoRemote": { "AutoRemote": {
"IpAddress": "http://10.164.227.103:30000/", "IpAddress": "http://dev.ccwin-in.com:60084/",
"UserName": "", "UserName": "",
"Password": "", "Password": "",
"Token": "", "Token": "",
@ -78,14 +78,14 @@
"IncomingOptions": { "IncomingOptions": {
"Active": true, "Active": true,
"PeriodSeconds": 10, "PeriodSeconds": 5,
"BatchSize": 10, "BatchSize": 10,
"MaxCount": 100, "MaxCount": 100,
"RetryTimes": 3 "RetryTimes": 3
}, },
"OutgoingOptions": { "OutgoingOptions": {
"Active": true, "Active": true,
"PeriodSeconds": 10, "PeriodSeconds": 5,
"BatchSize": 10, "BatchSize": 10,
"MaxCount": 100, "MaxCount": 100,
"RetryTimes": 3 "RetryTimes": 3

5
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/FawtygAutoMapperProfile.cs

@ -3,6 +3,7 @@ using Volo.Abp.AutoMapper;
using Win_in.Sfs.Shared.Application; using Win_in.Sfs.Shared.Application;
using Win_in.Sfs.Wms.DataExchange.Domain; using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.WMS.BackFlushNote; using Win_in.Sfs.Wms.DataExchange.WMS.BackFlushNote;
using Win_in.Sfs.Wms.DataExchange.WMS.Chassis;
using Win_in.Sfs.Wms.DataExchange.WMS.DeliverNote; using Win_in.Sfs.Wms.DataExchange.WMS.DeliverNote;
using Win_in.Sfs.Wms.DataExchange.WMS.DeliverRequest; using Win_in.Sfs.Wms.DataExchange.WMS.DeliverRequest;
using Win_in.Sfs.Wms.DataExchange.WMS.InjectionIssueRequest; using Win_in.Sfs.Wms.DataExchange.WMS.InjectionIssueRequest;
@ -293,5 +294,9 @@ public class FawtygAutoMapperProfile : Profile
.Ignore(x => x.ReceivedQty) .Ignore(x => x.ReceivedQty)
.Ignore(x => x.Status) .Ignore(x => x.Status)
.Ignore(x => x.PositionCode); .Ignore(x => x.PositionCode);
CreateMap<ChassisExchangeDto, ChassisEditInput>()
.Ignore(x => x.ItemName)
.Ignore(x => x.ItemDesc1)
.Ignore(x => x.ItemDesc2);
} }
} }

4
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/CallMtlReader.cs

@ -86,8 +86,8 @@ public class CallMtlReader : IReader
DataType = EnumIncomingDataType.CallMtl.ToString(), DataType = EnumIncomingDataType.CallMtl.ToString(),
DataAction = EnumExchangeDataAction.Add, DataAction = EnumExchangeDataAction.Add,
SourceSystem = EnumSystemType.MES.ToString(), SourceSystem = EnumSystemType.MES.ToString(),
SourceDataId = CallMtl.mesout_callmtl_id.ToString(), SourceDataId = CallMtl.ID.ToString(),
SourceDataGroupCode = CallMtl.mesout_callmtl_id, SourceDataGroupCode = CallMtl.ID.ToString(),
SourceDataDetailCode = CallMtl.mesout_callmtl_erpno, SourceDataDetailCode = CallMtl.mesout_callmtl_erpno,
SourceDataContent = JsonSerializer.Serialize(CallMtl), SourceDataContent = JsonSerializer.Serialize(CallMtl),
WriteTime = DateTime.Now, WriteTime = DateTime.Now,

4
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/FrozenReader.cs

@ -86,7 +86,7 @@ public class FrozenReader : IReader
DataAction = EnumExchangeDataAction.Add, DataAction = EnumExchangeDataAction.Add,
SourceSystem = EnumSystemType.MES.ToString(), SourceSystem = EnumSystemType.MES.ToString(),
SourceDataId = Frozen.mesout_frozen_id.ToString(), SourceDataId = Frozen.mesout_frozen_id.ToString(),
SourceDataGroupCode = Frozen.mesout_frozen_id, SourceDataGroupCode = Frozen.mesout_frozen_id.ToString(),
SourceDataDetailCode = Frozen.mesout_frozen_part, SourceDataDetailCode = Frozen.mesout_frozen_part,
SourceDataContent = JsonSerializer.Serialize(Frozen), SourceDataContent = JsonSerializer.Serialize(Frozen),
WriteTime = DateTime.Now, WriteTime = DateTime.Now,
@ -101,7 +101,7 @@ public class FrozenReader : IReader
{ {
var mesNote = new MesNoteExchangeDto() var mesNote = new MesNoteExchangeDto()
{ {
MesRequestNumber=Frozen.mesout_frozen_id, MesRequestNumber=Frozen.mesout_frozen_id.ToString(),
Worker = Frozen.mesout_frozen_user, Worker = Frozen.mesout_frozen_user,
Remark = Frozen.mesout_frozen_reason, Remark = Frozen.mesout_frozen_reason,
Type = Frozen.mesout_frozen_type == "0" ? EnumTransType.MesFreezed.ToString() : EnumTransType.MesUnFreezed.ToString(), Type = Frozen.mesout_frozen_type == "0" ? EnumTransType.MesFreezed.ToString() : EnumTransType.MesUnFreezed.ToString(),

92
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesChassisConverter.cs

@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.WMS.Chassis;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Volo.Abp.ObjectMapping;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming;
public class MesChassisConverter : IIncomingConverter
{
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly IIncomingToWmsManager _incomingToWmsManager;
private readonly IObjectMapper _objectMapper;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly ILocationAppService _locationAppService;
private readonly ILogger<MesChassisConverter> _logger;
public MesChassisConverter(
IIncomingToWmsManager incomingToWmsManager
, IObjectMapper objectMapper
, IItemBasicAppService itemBasicAppService
, ILogger<MesChassisConverter> logger,
ILocationAppService locationAppService,
IIncomingFromExternalManager incomingFromExternalManager)
{
_incomingToWmsManager = incomingToWmsManager;
_objectMapper = objectMapper;
_itemBasicAppService = itemBasicAppService;
_logger = logger;
_locationAppService = locationAppService;
_incomingFromExternalManager = incomingFromExternalManager;
}
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList)
{
if (!incomingFromExternalList.Any())
{
_logger.LogInformation("无底盘数据【转换】");
return;
}
//按Number合并Chassis单据
var transferNoteList = await BuildIncomingToWmsOfChassisAsync(incomingFromExternalList).ConfigureAwait(false);
await _incomingToWmsManager.CreateManyAsync(transferNoteList).ConfigureAwait(false);
//归档
await _incomingFromExternalManager.ArchiveManyAsync(incomingFromExternalList).ConfigureAwait(false);
}
private async Task<List<IncomingToWms>> BuildIncomingToWmsOfChassisAsync(List<IncomingFromExternal> incomingDataList)
{
var incomingToWmsList = new List<IncomingToWms>();
foreach (var incomingData in incomingDataList)
{
var incomingToWms = new IncomingToWms()
{
DataType = incomingData.DataType,
DataAction = incomingData.DataAction,
SourceSystem = incomingData.SourceSystem,
DataIdentityCode = incomingData.SourceDataGroupCode,
};
incomingToWms.SetEffectiveDate(incomingData.EffectiveDate);
var exchangeChassis = JsonSerializer.Deserialize<ChassisExchangeDto>(incomingData.DestinationDataContent);
var wmsChassis = _objectMapper.Map<ChassisExchangeDto, ChassisEditInput>(exchangeChassis);
try
{
var item = await _itemBasicAppService.GetByCodeAsync(exchangeChassis.ItemCode).ConfigureAwait(false);
if (item != null)
{
wmsChassis.ItemName = item.Name;
wmsChassis.ItemDesc1 = !string.IsNullOrEmpty(item.Desc1) ? item.Desc1 : "";
wmsChassis.ItemDesc2 = !string.IsNullOrEmpty(item.Desc2) ? item.Desc2 : "";
}
}
catch (Exception)
{
wmsChassis.ItemName = "";
wmsChassis.ItemDesc1 = "";
wmsChassis.ItemDesc2 = "";
}
incomingToWms.DataContent = JsonSerializer.Serialize(wmsChassis);
incomingToWmsList.Add(incomingToWms);
}
return incomingToWmsList;
}
}

116
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesChassisReader.cs

@ -0,0 +1,116 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.Domain;
using System.Text.Json;
using Win_in.Sfs.Wms.DataExchange.WMS.MesNote;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Chassis;
using Win_in.Sfs.Wms.DataExchange.WMS.Chassis;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming;
public class MesChassisReader : IReader
{
private readonly IMesChassisManager _mesChassisManager;
private readonly IIncomingFromExternalManager _incomingFromExternalManager;
private readonly ILogger<MesChassisReader> _logger;
private readonly ILocationAppService _locationAppService;
public MesChassisReader(
IMesChassisManager mesChassisManager
, IIncomingFromExternalManager incomingFromExternalManager
, ILogger<MesChassisReader> logger
, ILocationAppService locationAppService
)
{
_mesChassisManager = mesChassisManager;
_incomingFromExternalManager = incomingFromExternalManager;
_logger = logger;
_locationAppService = locationAppService;
}
public virtual async Task<List<IncomingFromExternal>> ReadAsync()
{
//从MES读取待处理MesChassis
var toBeProcessedPillTasks = await _mesChassisManager.GetToBeProcessedListAsync().ConfigureAwait(false);
if (!toBeProcessedPillTasks.Any())
{
_logger.LogInformation("无底盘数据【读取】");
return new List<IncomingFromExternal>();
}
//MesChassis逐一转换为MaterialRequest
var incomingDataList = BuildIncomingFromExternalFromPillTaskAsync(toBeProcessedPillTasks);
await _incomingFromExternalManager.CreateManyAsync(incomingDataList).ConfigureAwait(false);
//更新MES数据状态
await _mesChassisManager.UpdateProcessedListAsync(toBeProcessedPillTasks).ConfigureAwait(false);
return incomingDataList;
}
private static List<IncomingFromExternal> BuildIncomingFromExternalFromPillTaskAsync(List<MesChassis> toBeProcessedMesChassiss)
{
var incomingDataList = new List<IncomingFromExternal>();
foreach (var MesChassis in toBeProcessedMesChassiss)
{
var incomingData = BuildIncomingFromExternal(MesChassis);
incomingData.SetEffectiveDate(DateTime.Now);
incomingData.SetSuccess();
try
{
var MaterialRequest = BuildChassisCreateInput(MesChassis);
incomingData.DestinationDataContent = JsonSerializer.Serialize(MaterialRequest);
}
catch (Exception ex)
{
incomingData.SetError(EnumExchangeDataErrorCode.Exception, ex.Message, ex.ToString());
}
incomingDataList.Add(incomingData);
}
return incomingDataList;
}
private static IncomingFromExternal BuildIncomingFromExternal(MesChassis MesChassis)
{
var incomingData = new IncomingFromExternal()
{
DataType = EnumIncomingDataType.MesChassis.ToString(),
DataAction = EnumExchangeDataAction.Add,
SourceSystem = EnumSystemType.MES.ToString(),
SourceDataId = MesChassis.mesout_fis_id.ToString(),
SourceDataGroupCode = MesChassis.mesout_fis_vin.ToString(),
SourceDataDetailCode = MesChassis.mesout_fis_erpno,
SourceDataContent = JsonSerializer.Serialize(MesChassis),
WriteTime = DateTime.Now,
Writer = nameof(MesIncomingBackgroundWorker),
DestinationSystem = EnumSystemType.WMS.ToString(),
};
return incomingData;
}
private static ChassisExchangeDto BuildChassisCreateInput(MesChassis MesChassis)
{
var chassis = new ChassisExchangeDto()
{
Number = MesChassis.mesout_fis_id.ToString(),
ChassisNumber= MesChassis.mesout_fis_vin,
Description= MesChassis.mesout_fis_productType,
ProduceDateTime= DateTime.Now,
ReceiveInterfaceDateTime= DateTime.Now,
SortNumber = MesChassis.mesout_fis_id,
ItemCode = MesChassis.mesout_fis_erpno,
Configuration= MesChassis.mesout_fis_productColor,
};
return chassis;
}
}

58
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesIncomingBackgroundWorker.cs

@ -7,6 +7,7 @@ using Microsoft.Extensions.Options;
using Volo.Abp.BackgroundWorkers; using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Threading; using Volo.Abp.Threading;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared; using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming; using Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming;
@ -32,12 +33,27 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{ {
Logger.LogInformation($"开始: 执行 {Incoming}"); Logger.LogInformation($"开始: 执行 {Incoming}");
if (!_options.Value.IncomingOptions.Active)
var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
var confitem = await configManager.GetInterfaceConfig("MES-IN").ConfigureAwait(false);
if (confitem == null)
{ {
Logger.LogInformation($"{Incoming} 已关闭没有执行!"); if (!_options.Value.IncomingOptions.Active)
return; {
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
}
else
{
if (!confitem.Active)
{
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
} }
int min = DateTime.Now.Hour*60+ DateTime.Now.Minute;//第二天00:05:00与当天23:55:00不执行避免tyrpnumber重复 int min = DateTime.Now.Hour*60+ DateTime.Now.Minute;//第二天00:05:00与当天23:55:00不执行避免tyrpnumber重复
if ( (24*60-5)<= min || min <= 5) if ( (24*60-5)<= min || min <= 5)
{ {
@ -64,6 +80,18 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
Logger.LogInformation($"处理储位调拨【{mesOutsFromExternalList_TransferNote.Count}】条数据"); Logger.LogInformation($"处理储位调拨【{mesOutsFromExternalList_TransferNote.Count}】条数据");
#endregion #endregion
#region 冻结解冻 Frozen
Logger.LogInformation($"读取冻结解冻 (Frozen)");//冻结解冻
var FrozenReader = workerContext.ServiceProvider.GetRequiredService<FrozenReader>();
var FrozenConverter = workerContext.ServiceProvider.GetRequiredService<FrozenConverter>();
//读取并保存Frozen
var mesNoteFromExternalList = await FrozenReader.ReadAsync().ConfigureAwait(false);
//转换Frozen
await FrozenConverter.ConvertAsync(mesNoteFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"处理冻结解冻【{mesNoteFromExternalList.Count}】条数据");
#endregion
#region 报废 Scrap #region 报废 Scrap
Logger.LogInformation($"读取报废(Scrap)");//报废 Logger.LogInformation($"读取报废(Scrap)");//报废
var scrapReader = workerContext.ServiceProvider.GetRequiredService<ScrapReader>(); var scrapReader = workerContext.ServiceProvider.GetRequiredService<ScrapReader>();
@ -89,7 +117,6 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
#region 储位调拨 TransferNote #region 储位调拨 TransferNote
Logger.LogInformation($"读取储位调拨 (TransferNote)");//储位调拨 Logger.LogInformation($"读取储位调拨 (TransferNote)");//储位调拨
var TransferNoteReader = workerContext.ServiceProvider.GetRequiredService<QtyrfeReader>(); var TransferNoteReader = workerContext.ServiceProvider.GetRequiredService<QtyrfeReader>();
// var TransferNoteConverter = workerContext.ServiceProvider.GetRequiredService<QtyrfeConverter>();
//读取并保存TransferNote //读取并保存TransferNote
var transferNoteFromExternalList = await TransferNoteReader.ReadAsync().ConfigureAwait(false); var transferNoteFromExternalList = await TransferNoteReader.ReadAsync().ConfigureAwait(false);
//转换TransferNote //转换TransferNote
@ -97,16 +124,7 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
Logger.LogInformation($"处理储位调拨【{transferNoteFromExternalList.Count}】条数据"); Logger.LogInformation($"处理储位调拨【{transferNoteFromExternalList.Count}】条数据");
#endregion #endregion
#region 冻结解冻 Frozen
Logger.LogInformation($"读取冻结解冻 (Frozen)");//冻结解冻
var FrozenReader = workerContext.ServiceProvider.GetRequiredService<FrozenReader>();
var FrozenConverter = workerContext.ServiceProvider.GetRequiredService<FrozenConverter>();
//读取并保存Frozen
var mesNoteFromExternalList = await FrozenReader.ReadAsync().ConfigureAwait(false);
//转换Frozen
await FrozenConverter.ConvertAsync(mesNoteFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"处理冻结解冻【{mesNoteFromExternalList.Count}】条数据");
#endregion
#region 成品发运 Delivery #region 成品发运 Delivery
Logger.LogInformation($"读取成品发运 (Delivery)");//成品发运 Logger.LogInformation($"读取成品发运 (Delivery)");//成品发运
@ -131,6 +149,18 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
Logger.LogInformation($"处理自动叫料【{callMtlFromExternalList.Count}】条数据"); Logger.LogInformation($"处理自动叫料【{callMtlFromExternalList.Count}】条数据");
#endregion #endregion
#region 底盘 Chassis
Logger.LogInformation($"读取底盘(Chassis)");//底盘
var mesChassisReader = workerContext.ServiceProvider.GetRequiredService<MesChassisReader>();
var mesChassisConverter = workerContext.ServiceProvider.GetRequiredService<MesChassisConverter>();
//读取并保存Chassis
var mesChassisFromExternalList = await mesChassisReader.ReadAsync().ConfigureAwait(false);
//转换Chassis
await mesChassisConverter.ConvertAsync(mesChassisFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"处理底盘【{mesChassisFromExternalList.Count}】条数据");
#endregion
Logger.LogInformation($"提交: 执行 {Incoming}"); Logger.LogInformation($"提交: 执行 {Incoming}");
#region 未启用接口启用时需要看逻辑修改 #region 未启用接口启用时需要看逻辑修改

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

@ -105,7 +105,7 @@ public class MesOutConverter : IIncomingConverter
//} //}
//else //else
//{ //{
wmsProductReceiptNoteDetail.Lot = ""; //排序批次 wmsProductReceiptNoteDetail.Lot = ""; //排序批次
wmsProductReceiptNoteDetail.PackingCode = "";//箱标签 wmsProductReceiptNoteDetail.PackingCode = "";//箱标签
wmsProductReceiptNoteDetail.Status = EnumInventoryStatus.OK; wmsProductReceiptNoteDetail.Status = EnumInventoryStatus.OK;
wmsProductReceiptNoteDetail.WarehouseCode = "T9"; wmsProductReceiptNoteDetail.WarehouseCode = "T9";

21
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Outgoing/MesOutgoingBackgroundWorker.cs

@ -5,6 +5,7 @@ using Microsoft.Extensions.Options;
using Volo.Abp.BackgroundWorkers; using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Threading; using Volo.Abp.Threading;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Outgoing; using Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Outgoing;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent; namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent;
@ -30,10 +31,24 @@ public class MesOutgoingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{ {
Logger.LogInformation($"Starting: Handling {Outgoing}"); Logger.LogInformation($"Starting: Handling {Outgoing}");
if (!_options.Value.IncomingOptions.Active)
var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
var confitem = await configManager.GetInterfaceConfig("MES-OUT").ConfigureAwait(false);
if (confitem == null)
{
if (!_options.Value.OutgoingOptions.Active)
{
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
}
}
else
{ {
Logger.LogInformation($"{Outgoing} is not active!"); if (!confitem.Active)
return; {
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
}
} }
Logger.LogInformation($"Write Issue"); Logger.LogInformation($"Write Issue");

3
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/FawtygAutoMapperProfile.cs

@ -113,8 +113,11 @@ public class FawtygAutoMapperProfile : Profile
CreateMap<SupplierExchangeDto, SupplierEditInput>(); CreateMap<SupplierExchangeDto, SupplierEditInput>();
CreateMap<CustomerExchangeDto, CustomerEditInput>(); CreateMap<CustomerExchangeDto, CustomerEditInput>();
CreateMap<PurchasePriceExchangeDto, PurchasePriceSheetEditInput>(); CreateMap<PurchasePriceExchangeDto, PurchasePriceSheetEditInput>();
CreateMap<PurchasePriceSheetDTO, PurchasePriceExchangeDto>();
CreateMap<SalePriceExchangeDto, SalePriceSheetEditInput>(); CreateMap<SalePriceExchangeDto, SalePriceSheetEditInput>();
CreateMap<SalePriceSheetDTO,SalePriceExchangeDto> ();
CreateMap<StdCostPriceExchangeDto, StdCostPriceSheetEditInput>(); CreateMap<StdCostPriceExchangeDto, StdCostPriceSheetEditInput>();
CreateMap<StdCostPriceSheetDTO, StdCostPriceExchangeDto>();
CreateMap<ProductRecycleNoteDTO, ProductRecycleNoteEditInput>(); CreateMap<ProductRecycleNoteDTO, ProductRecycleNoteEditInput>();
CreateMap<ProductRecycleNoteDetailDTO, ProductRecycleNoteDetailInput>(); CreateMap<ProductRecycleNoteDetailDTO, ProductRecycleNoteDetailInput>();

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

@ -7,6 +7,7 @@ using Microsoft.Extensions.Options;
using Volo.Abp.BackgroundWorkers; using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Threading; using Volo.Abp.Threading;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared; using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent.Incoming; using Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent.Incoming;
@ -34,10 +35,24 @@ public class TyrpIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{ {
Logger.LogInformation($"开始: 执行 {Incoming}"); Logger.LogInformation($"开始: 执行 {Incoming}");
if (!_options.Value.IncomingOptions.Active)
var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
var confitem = await configManager.GetInterfaceConfig("TYRP-IN").ConfigureAwait(false);
if (confitem == null)
{ {
Logger.LogInformation($"{Incoming} 已关闭没有执行!"); if (!_options.Value.IncomingOptions.Active)
return; {
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
}
else
{
if (!confitem.Active)
{
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
} }
//var repository = workerContext.ServiceProvider.GetRequiredService<IPartLinq2DbRepository>(); //var repository = workerContext.ServiceProvider.GetRequiredService<IPartLinq2DbRepository>();

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

@ -7,6 +7,7 @@ using Microsoft.Extensions.Options;
using Volo.Abp.BackgroundWorkers; using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Threading; using Volo.Abp.Threading;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared; using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent.Outgoing; using Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent.Outgoing;
@ -33,11 +34,23 @@ public class TyrpOutgoingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{ {
Logger.LogInformation($"开始: 执行 {Outgoing}"); Logger.LogInformation($"开始: 执行 {Outgoing}");
var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
if (!_options.Value.OutgoingOptions.Active) var confitem = await configManager.GetInterfaceConfig("TYRP-OUT").ConfigureAwait(false);
if (confitem == null)
{ {
Logger.LogInformation($"{Outgoing} 已关闭没有执行!"); if (!_options.Value.OutgoingOptions.Active)
return; {
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
}
}
else
{
if (!confitem.Active)
{
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
}
} }
var scontrolWriter = workerContext.ServiceProvider.GetRequiredService<ScontrolWriter>();//scontrol中间表服务 var scontrolWriter = workerContext.ServiceProvider.GetRequiredService<ScontrolWriter>();//scontrol中间表服务
var wmsoutmWriter = workerContext.ServiceProvider.GetRequiredService<WmsoutmWriter>();//wmsoutm中间表的服务 var wmsoutmWriter = workerContext.ServiceProvider.GetRequiredService<WmsoutmWriter>();//wmsoutm中间表的服务

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

@ -150,6 +150,6 @@ public class AgentModule : AbpModule
ApplicationInitializationContext context) ApplicationInitializationContext context)
{ {
context.AddBackgroundWorkerAsync<IncomingToWmsWorker>(); context.AddBackgroundWorkerAsync<IncomingToWmsWorker>();
context.AddBackgroundWorkerAsync<OutgoingFromWmsWorker>(); // context.AddBackgroundWorkerAsync<OutgoingFromWmsWorker>();
} }
} }

36
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsExtensions.cs

@ -49,39 +49,17 @@ public static class IncomingToWmsExtensions
await DepartmentBasicAppService.UpdateAsync(Department).ConfigureAwait(false); await DepartmentBasicAppService.UpdateAsync(Department).ConfigureAwait(false);
} }
public static async Task HandleChassisAsync(this IncomingToWms incomingConverted, PeriodicBackgroundWorkerContext workerContext)
{
var chassis = JsonSerializer.Deserialize<ChassisEditInput>(incomingConverted.DataContent);
var chassisAppService = workerContext.ServiceProvider.GetRequiredService<IChassisAppService>();
await chassisAppService.CreateAsync(chassis).ConfigureAwait(false);
}
public static async Task HandleItemsAsync(this IncomingToWms incomingConverted, PeriodicBackgroundWorkerContext workerContext) public static async Task HandleItemsAsync(this IncomingToWms incomingConverted, PeriodicBackgroundWorkerContext workerContext)
{ {
var item = JsonSerializer.Deserialize<ItemBasicEditInput>(incomingConverted.DataContent); var item = JsonSerializer.Deserialize<ItemBasicEditInput>(incomingConverted.DataContent);
var itemBasicAppService = workerContext.ServiceProvider.GetRequiredService<IItemBasicAppService>(); var itemBasicAppService = workerContext.ServiceProvider.GetRequiredService<IItemBasicAppService>();
await itemBasicAppService.UpsertAsyncByInterface(item).ConfigureAwait(false); await itemBasicAppService.UpsertAsyncByInterface(item).ConfigureAwait(false);
//try
//{
// Thread thread = new Thread(thead);
// thread.Start();
// var BalanceAppService = workerContext.ServiceProvider.GetRequiredService<IBalanceAppService>();
// BalanceUpdateItemBasicInfoDto balan = new BalanceUpdateItemBasicInfoDto();
// List<BalanceUpdateItemBasicInfo> bala = new List<BalanceUpdateItemBasicInfo>();
// BalanceUpdateItemBasicInfo ba = new BalanceUpdateItemBasicInfo();
// ba.ItemCode = item.Code;
// ba.ItemDesc1 = item.Desc1;
// ba.ItemDesc2 = item.Desc2;
// ba.ItemName = item.Name;
// bala.Add(ba);
// balan.BalanceUpdateItemBasicInfos = bala;
// await BalanceAppService.UpdateItemBasicInfoAsync(balan).ConfigureAwait(false);
//}
//catch (Exception ex)
//{
//}
}
public static void thead()
{
} }
public static async Task HandleErpLocationItemsAsync(this IncomingToWms incomingConverted, PeriodicBackgroundWorkerContext workerContext) public static async Task HandleErpLocationItemsAsync(this IncomingToWms incomingConverted, PeriodicBackgroundWorkerContext workerContext)
{ {

26
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsWorker.cs

@ -49,16 +49,29 @@ public class IncomingToWmsWorker : AsyncPeriodicBackgroundWorkerBase
[UnitOfWork] [UnitOfWork]
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{ {
Logger.LogInformation("Starting: Handling Incoming Exchange data..."); Logger.LogInformation("开始接收数据...");
if (!_options.Value.IncomingOptions.Active) var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
var confitem = await configManager.GetInterfaceConfig("WMS-IN").ConfigureAwait(false);
if (confitem == null)
{ {
Logger.LogInformation("Incoming Exchange is not active!"); if (!_options.Value.IncomingOptions.Active)
return; {
Logger.LogInformation("Wms接收接口已关闭!");
return;
}
}
else
{
if (!confitem.Active)
{
Logger.LogInformation("Wms接收接口已关闭!");
return;
}
} }
await HandleIncomingDataAsync(workerContext).ConfigureAwait(false); await HandleIncomingDataAsync(workerContext).ConfigureAwait(false);
Logger.LogInformation("Completed: Handling Incoming Exchange data..."); Logger.LogInformation("提交接收数据...");
} }
private async Task HandleIncomingDataAsync(PeriodicBackgroundWorkerContext workerContext) private async Task HandleIncomingDataAsync(PeriodicBackgroundWorkerContext workerContext)
@ -199,6 +212,9 @@ public class IncomingToWmsWorker : AsyncPeriodicBackgroundWorkerBase
case EnumIncomingDataType.CallMtl: case EnumIncomingDataType.CallMtl:
await incomingToWms.HandleInjectionIssueRequestAsync(workerContext).ConfigureAwait(false); await incomingToWms.HandleInjectionIssueRequestAsync(workerContext).ConfigureAwait(false);
break; break;
case EnumIncomingDataType.MesChassis:
await incomingToWms.HandleChassisAsync(workerContext).ConfigureAwait(false);
break;
case EnumIncomingDataType.None: case EnumIncomingDataType.None:
default: default:
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();

21
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/OutgoingFromWmsWorker.cs

@ -29,6 +29,26 @@ public class OutgoingFromWmsWorker : AsyncPeriodicBackgroundWorkerBase
[UnitOfWork] [UnitOfWork]
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{ {
Logger.LogInformation("开始传出数据...");
var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
var confitem = await configManager.GetInterfaceConfig("WMS-OUT").ConfigureAwait(false);
if (confitem == null)
{
if (!_options.Active)
{
Logger.LogInformation("Wms传出接口已关闭!");
return;
}
}
else
{
if (!confitem.Active)
{
Logger.LogInformation("Wms传出接口已关闭!");
return;
}
}
//Resolve dependencies //Resolve dependencies
var exchangeDataAppService = workerContext.ServiceProvider.GetRequiredService<IExchangeDataAppService>(); var exchangeDataAppService = workerContext.ServiceProvider.GetRequiredService<IExchangeDataAppService>();
var objectMapper = workerContext.ServiceProvider.GetRequiredService<IObjectMapper>(); var objectMapper = workerContext.ServiceProvider.GetRequiredService<IObjectMapper>();
@ -60,5 +80,6 @@ public class OutgoingFromWmsWorker : AsyncPeriodicBackgroundWorkerBase
{ {
Logger.LogInformation(ex.Message+ex?.InnerException.Message); Logger.LogInformation(ex.Message+ex?.InnerException.Message);
} }
Logger.LogInformation("提交传出数据...");
} }
} }

16
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/appsettings.json

@ -1,13 +1,13 @@
{ {
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True", "Default": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True",
"DataExchange": "Server=10.164.233.6;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True" "DataExchange": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True"
}, },
"AuthServer": { "AuthServer": {
"Authority": "http://10.164.233.5:60083/", "Authority": "http://dev.ccwin-in.com:60083/",
"RequireHttpsMetadata": "false", "RequireHttpsMetadata": "false",
"SwaggerClientId": "admin", "SwaggerClientId": "admin",
"SwaggerClientSecret": "1q2w3E*", "SwaggerClientSecret": "1q2w3E*",
@ -26,16 +26,16 @@
"RemoteServices": { "RemoteServices": {
"BaseData": { "BaseData": {
"BaseUrl": "http://10.164.233.5:60084/" "BaseUrl": "http://dev.ccwin-in.com:60084/"
}, },
"Store": { "Store": {
"BaseUrl": "http://10.164.233.5:60085/" "BaseUrl": "http://dev.ccwin-in.com:60085/"
}, },
"Label": { "Label": {
"BaseUrl": "http://10.164.233.5:60082/" "BaseUrl": "http://dev.ccwin-in.com:60082/"
}, },
"Auth": { "Auth": {
"BaseUrl": "http://10.164.233.5:60083/" "BaseUrl": "http://dev.ccwin-in.com:60083/"
} }
}, },
"DataExchangeOptions": { "DataExchangeOptions": {
@ -44,7 +44,7 @@
"PeriodSeconds": 10, "PeriodSeconds": 10,
"RetryTimes": 1, "RetryTimes": 1,
"BatchSize": 100, "BatchSize": 100,
"apiUrl": "http://10.164.233.5:60085/" "apiUrl": "http://dev.ccwin-in.com:60085/"
}, },
"OutgoingOptions": { "OutgoingOptions": {
"Active": false, "Active": false,

50
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/Chassis/ChassisExchangeDto.cs

@ -0,0 +1,50 @@
using System;
using System.ComponentModel.DataAnnotations;
namespace Win_in.Sfs.Wms.DataExchange.WMS.Chassis;
public class ChassisExchangeDto
{
/// <summary>
/// Wms编号
/// </summary>
[Display(Name = "Wms编号")]
public string Number { get; set; }
/// <summary>
/// 底盘号
/// </summary>
[Display(Name = "底盘号")]
public string ChassisNumber { get; set; }
/// <summary>
/// 描述
/// </summary>
[Display(Name = "描述")]
public string Description { get; set; }
/// <summary>
/// 底盘生产时间
/// </summary>
[Display(Name = "底盘生产时间")]
public DateTime ProduceDateTime { get; set; }
/// <summary>
/// 接收接口时间
/// </summary>
[Display(Name = "接收接口时间")]
public DateTime ReceiveInterfaceDateTime { get; set; }
/// <summary>
/// 执行位置排序列
/// </summary>
[Display(Name = "执行位置排序列")]
public long SortNumber { get; set; }
public string ItemCode { get; set; }
/// <summary>
/// 配置号
/// </summary>
[Display(Name = "配置号")]
public string Configuration { get; set; }
}

35
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml

@ -396,6 +396,41 @@
结束时间 结束时间
</summary> </summary>
</member> </member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.Chassis.ChassisExchangeDto.Number">
<summary>
Wms编号
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.Chassis.ChassisExchangeDto.ChassisNumber">
<summary>
底盘号
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.Chassis.ChassisExchangeDto.Description">
<summary>
描述
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.Chassis.ChassisExchangeDto.ProduceDateTime">
<summary>
底盘生产时间
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.Chassis.ChassisExchangeDto.ReceiveInterfaceDateTime">
<summary>
接收接口时间
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.Chassis.ChassisExchangeDto.SortNumber">
<summary>
执行位置排序列
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.Chassis.ChassisExchangeDto.Configuration">
<summary>
配置号
</summary>
</member>
<member name="P:Win_in.Sfs.Wms.DataExchange.WMS.CountAdjustNote.CountAdjustNoteDetailExchangeDto.ItemCode"> <member name="P:Win_in.Sfs.Wms.DataExchange.WMS.CountAdjustNote.CountAdjustNoteDetailExchangeDto.ItemCode">
<summary> <summary>
ERP料号 ERP料号

4
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.DbMigrator/appsettings.json

@ -1,7 +1,7 @@
{ {
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Server=dev.ccwin-in.com,21195;Database=DataExchange_Main;uid=sa;pwd=aA123456!;", "Default": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;",
"DataExchange": "Server=dev.ccwin-in.com,21195;Database=DataExchange_Main;uid=sa;pwd=aA123456!;" "DataExchange": "Server=dev.ccwin-in.com,21195;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;"
}, },
"IdentityServer": { "IdentityServer": {
"Clients": { "Clients": {

4
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain.Shared/Enums/EnumIncomingDataType.cs

@ -130,4 +130,8 @@ public enum EnumIncomingDataType
/// 自动叫料 /// 自动叫料
/// </summary> /// </summary>
CallMtl=31, CallMtl=31,
/// <summary>
/// 底盘
/// </summary>
MesChassis=32,
} }

7
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/InterfaceConfig/IInterfaceConfigManager.cs

@ -0,0 +1,7 @@
using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.DataExchange.Domain;
public interface IInterfaceConfigManager
{
Task<InterfaceConfig> GetInterfaceConfig(string code);
}

8
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/InterfaceConfig/IInterfaceConfigRepository.cs

@ -0,0 +1,8 @@
using System.Threading.Tasks;
using Win_in.Sfs.Wms.DataExchange.Domain;
namespace Win_in.Sfs.Wms.DataExchange.Domain;
public interface IInterfaceConfigRepository
{
Task<InterfaceConfig> GetInterfaceConfig(string code);
}

23
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/InterfaceConfig/InterfaceConfig.cs

@ -0,0 +1,23 @@
using Win_in.Sfs.Shared.Domain;
namespace Win_in.Sfs.Wms.DataExchange.Domain;
public class InterfaceConfig : SfsAggregateRootBase
{
/// <summary>
/// 接口名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public bool Active { get; set; }
/// <summary>
/// 等级
/// </summary>
public int Level { get; set; }
}

25
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain/InterfaceConfig/InterfaceConfigManager.cs

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Services;
using Volo.Abp.Uow;
namespace Win_in.Sfs.Wms.DataExchange.Domain;
public class InterfaceConfigManager : DomainService, IInterfaceConfigManager
{
private readonly IInterfaceConfigRepository _repository;
public InterfaceConfigManager(
IInterfaceConfigRepository repository
)
{
_repository = repository;
}
public virtual async Task<InterfaceConfig> GetInterfaceConfig(string code)
{
return await _repository.GetInterfaceConfig(code).ConfigureAwait(false);
}
}

2
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore/EntityFrameworkCore/DataExchangeDbContext.cs

@ -40,6 +40,8 @@ public class DataExchangeDbContext :
public DbSet<OutgoingFromWms> OutgoingFromWms { get; set; } public DbSet<OutgoingFromWms> OutgoingFromWms { get; set; }
public DbSet<ArchivedOutgoingFromWms> ArchivedOutgoingFromWms { get; set; } public DbSet<ArchivedOutgoingFromWms> ArchivedOutgoingFromWms { get; set; }
public DbSet<InterfaceConfig> InterfaceConfig { get; set; }
#region Entities from the modules #region Entities from the modules
/* Notice: We only implemented IIdentityDbContext and ITenantManagementDbContext /* Notice: We only implemented IIdentityDbContext and ITenantManagementDbContext

2
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore/EntityFrameworkCore/DataExchangeDbContextModelCreatingExtensions.cs

@ -27,7 +27,7 @@ public static class DataExchangeDbContextModelCreatingExtensions
builder.ConfigureArchivedIncomingFromExternal(options); builder.ConfigureArchivedIncomingFromExternal(options);
builder.ConfigureOutgoingFromWms(options); builder.ConfigureOutgoingFromWms(options);
builder.ConfigureArchivedOutgoingFromWms(options); builder.ConfigureArchivedOutgoingFromWms(options);
builder.ConfigureInterfaceConfig(options);
builder.ConfigureMessageReceive(options); builder.ConfigureMessageReceive(options);
/* Configure all entities here. Example: /* Configure all entities here. Example:

1
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore/EntityFrameworkCore/DataExchangeEntityFrameworkCoreModule.cs

@ -51,6 +51,7 @@ public class DataExchangeEntityFrameworkCoreModule : AbpModule
context.Services.AddTransient<IArchivedIncomingToWmsRepository, ArchivedIncomingToWmsEfCoreRepository>(); context.Services.AddTransient<IArchivedIncomingToWmsRepository, ArchivedIncomingToWmsEfCoreRepository>();
context.Services.AddTransient<IOutgoingToExternalRepository, OutgoingToExternalEfCoreRepository>(); context.Services.AddTransient<IOutgoingToExternalRepository, OutgoingToExternalEfCoreRepository>();
context.Services.AddTransient<IArchivedOutgoingToExternalRepository, ArchivedOutgoingToExternalEfCoreRepository>(); context.Services.AddTransient<IArchivedOutgoingToExternalRepository, ArchivedOutgoingToExternalEfCoreRepository>();
context.Services.AddTransient<IInterfaceConfigRepository, InterfaceConfigEfCoreRepository>();
Configure<AbpDbContextOptions>(options => Configure<AbpDbContextOptions>(options =>
{ {

25
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore/InterfaceConfig/InterfaceConfigDbContextModelCreatingExtensions.cs

@ -0,0 +1,25 @@
using Microsoft.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.Modeling;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.EntityFrameworkCore;
using Win_in.Sfs.Wms.DataExchange.Domain;
namespace Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore;
public static class InterfaceConfigDbContextModelCreatingExtensions
{
public static void ConfigureInterfaceConfig(this ModelBuilder builder, DataExchangeModelBuilderConfigurationOptions options)
{
builder.Entity<InterfaceConfig>(b =>
{
//Configure table & schema name
b.ToTable(options.TablePrefix + nameof(InterfaceConfig), options.Schema);
//Configure ABP properties
b.ConfigureByConvention();
//Configure Sfs base properties
b.ConfigureSfsBase();
b.Property(q => q.Name).HasMaxLength(SfsPropertyConst.CodeLength);
b.HasIndex(q => new { q.Code }).IsUnique();
});
}
}

25
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore/InterfaceConfig/InterfaceConfigEfCoreRepository.cs

@ -0,0 +1,25 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
using Win_in.Sfs.Shared.EntityFrameworkCore;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
namespace Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore;
public class InterfaceConfigEfCoreRepository : SfsEfCoreRepositoryBase<DataExchangeDbContext, InterfaceConfig>, IInterfaceConfigRepository
{
public InterfaceConfigEfCoreRepository(IDbContextProvider<DataExchangeDbContext> dbContextProvider) : base(dbContextProvider)
{
}
public virtual async Task<InterfaceConfig> GetInterfaceConfig(string code)
{
var dbSet = await GetDbSetAsync().ConfigureAwait(false);
var entitie = await dbSet.FirstOrDefaultAsync(p => p.Code == code).ConfigureAwait(false);
return entitie;
}
}

1
be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application.Contracts/Departments/IDepartmentAppService.cs

@ -9,4 +9,5 @@ public interface IDepartmentAppService
{ {
Task<DepartmentDTO> GetByUsernameAsync(string username); Task<DepartmentDTO> GetByUsernameAsync(string username);
Task UpdateAsync(DepartmentCreateInput input); Task UpdateAsync(DepartmentCreateInput input);
Task<DepartmentDTO> GetByUserIdAsync(string userId);
} }

21
be/Hosts/Auth.Host/src/Win_in.Sfs.Auth.Application/Departments/DepartmentAppService.cs

@ -49,6 +49,27 @@ public class DepartmentAppService
var deptDto = await GetByCodeAsync(departmentCode).ConfigureAwait(false); var deptDto = await GetByCodeAsync(departmentCode).ConfigureAwait(false);
return deptDto; return deptDto;
} }
[AllowAnonymous]
[HttpGet("by-userid")]
public virtual async Task<DepartmentDTO> GetByUserIdAsync(string userId)
{
var user = await _identityUserManager.FindByIdAsync(userId).ConfigureAwait(false);
if (user == null)
{
return null;
}
var departmentCode = user.GetDepartmentCode();
if (string.IsNullOrEmpty(departmentCode))
{
return null;
}
var deptDto = await GetByCodeAsync(departmentCode).ConfigureAwait(false);
return deptDto;
}
[AllowAnonymous] [AllowAnonymous]
[HttpPost("update")] [HttpPost("update")]
public virtual async Task UpdateAsync(DepartmentCreateInput input) public virtual async Task UpdateAsync(DepartmentCreateInput input)

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

@ -175,9 +175,9 @@ public class AssembleIssueJobsController : AbpController
// return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}"); // return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
//} //}
if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.AcceptUserId != CurrentUser.Id) if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.ClaimsUserId != CurrentUser.Id.ToString())
{ {
return new NotFoundObjectResult($"任务正在被 {jobDto.AcceptUserName} 处理"); return new NotFoundObjectResult($"任务正在被 {jobDto.ClaimsUserName} 处理");
} }
return jobDto; return jobDto;

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

@ -175,9 +175,9 @@ public class CoatingIssueJobsController : AbpController
// return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}"); // return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
//} //}
if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.AcceptUserId != CurrentUser.Id) if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.ClaimsUserId != CurrentUser.Id.ToString())
{ {
return new NotFoundObjectResult($"任务正在被 {jobDto.AcceptUserName} 处理"); return new NotFoundObjectResult($"任务正在被 {jobDto.ClaimsUserName} 处理");
} }
return jobDto; return jobDto;

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

@ -175,9 +175,9 @@ public class InjectionIssueJobsController : AbpController
// return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}"); // return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
//} //}
if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.AcceptUserId != CurrentUser.Id) if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.ClaimsUserId != CurrentUser.Id.ToString())
{ {
return new NotFoundObjectResult($"任务正在被 {jobDto.AcceptUserName} 处理"); return new NotFoundObjectResult($"任务正在被 {jobDto.ClaimsUserName} 处理");
} }
return jobDto; return jobDto;

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

@ -175,9 +175,9 @@ public class KittingIssueJobsController : AbpController
// return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}"); // return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
//} //}
if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.AcceptUserId != CurrentUser.Id) if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.ClaimsUserId != CurrentUser.Id.ToString())
{ {
return new NotFoundObjectResult($"任务正在被 {jobDto.AcceptUserName} 处理"); return new NotFoundObjectResult($"任务正在被 {jobDto.ClaimsUserName} 处理");
} }
return jobDto; return jobDto;

12
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/SparePartIssueJobsController.cs

@ -52,10 +52,10 @@ public class SparePartIssueJobsController : AbpController
{ {
status.Add((int)EnumJobStatus.Open); status.Add((int)EnumJobStatus.Open);
} }
else if (jobStatus == "Wait") //else if (jobStatus == "Wait")
{ //{
status.Add((int)EnumJobStatus.Wait); // status.Add((int)EnumJobStatus.Wait);
} //}
else else
{ {
status.Add((int)EnumJobStatus.Done); status.Add((int)EnumJobStatus.Done);
@ -174,9 +174,9 @@ public class SparePartIssueJobsController : AbpController
return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}"); return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
} }
if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.AcceptUserId != CurrentUser.Id) if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.ClaimsUserId != CurrentUser.Id.ToString())
{ {
return new NotFoundObjectResult($"任务正在被 {jobDto.AcceptUserName} 处理"); return new NotFoundObjectResult($"任务正在被 {jobDto.ClaimsUserName} 处理");
} }
return jobDto; return jobDto;

22
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/tests/Class1.cs

@ -15,7 +15,7 @@ public class ResponseJson
// 错误码: // 错误码:
public int Code { set; get; } = 0; public int Code { set; get; } = 0;
// 返回值 其具体含义由调用接口确定 // 返回值 其具体含义由调用接口确定
public string Value { set; get; } = ""; public int Value { set; get; } =0;
// 错误消息 // 错误消息
public string Msg { set; get; } = ""; public string Msg { set; get; } = "";
} }
@ -35,3 +35,23 @@ public class ResponCargoItem
[Display(Name = "货位状态")] [Display(Name = "货位状态")]
public int Flag { set; get; } = 0; public int Flag { set; get; } = 0;
} }
public class ResponCargos : ResponseJson
{
//货位状态列表
public List<ResponCargoItem> Datalist { set; get; }
}
public class ResultJson
{
// 错误码:
public int Code { set; get; } = 0;
// 返回值 其具体含义由调用接口确定
public int Value { set; get; } = 0;
// 错误消息
public string Result { set; get; } = "";
public string Msg { set; get; } = "";
public string Valuestr { set; get; }
}

17
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ItemContainers/ItemContainerAppService.cs

@ -5,6 +5,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Caching; using Volo.Abp.Caching;
using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Repositories;
@ -39,7 +40,19 @@ public class ItemContainerAppService
_repository = repository; _repository = repository;
_manager = manager; _manager = manager;
} }
protected override async Task<Dictionary<ItemContainer, EntityState>> ImportProcessingEntityAsync( Dictionary<ItemContainer, EntityState> dictionary)
{
var addList = dictionary.Where(p => p.Value == EntityState.Added).Select(p => p.Key);
foreach (var itemContainer in addList)
{
if (string.IsNullOrEmpty(itemContainer.BasicUom))
{
var itemBasic = await ItemBasicAppService.GetByCodeAsync(itemContainer.ItemCode).ConfigureAwait(false);
itemContainer.BasicUom = itemBasic.BasicUom;
}
}
return dictionary;
}
/// <summary> /// <summary>
/// 用来重写 新增实体 /// 用来重写 新增实体
/// </summary> /// </summary>
@ -86,7 +99,7 @@ public class ItemContainerAppService
{ {
//20240520苑静雯删除 //20240520苑静雯删除
await base.CheckItemBasicItemCodeAsync(importInput.ItemCode, validationRresult).ConfigureAwait(false); await base.CheckItemBasicItemCodeAsync(importInput.ItemCode, validationRresult).ConfigureAwait(false);
// await base.CheckItemBasicPackUomAsync(importInput.ItemCode, importInput.BasicUom, validationRresult).ConfigureAwait(false); //await base.CheckItemBasicPackUomAsync(importInput.ItemCode, importInput.BasicUom, validationRresult).ConfigureAwait(false);
//await base.CheckItemContainerAsync(importInput.ContainerCode, validationRresult).ConfigureAwait(false); //await base.CheckItemContainerAsync(importInput.ContainerCode, validationRresult).ConfigureAwait(false);
} }

4
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs

@ -344,8 +344,8 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase<Kitting, Kitt
} }
var fileContent1 = _excelService.Export(importList); var fileContent1 = _excelService.Export(importList);
return new TestResult(fileContent1.FileContents, ExportImportService.ContentType) { FileDownloadName = "Kitting导入文件" }; // return new TestResult(fileContent1.FileContents, ExportImportService.ContentType) { FileDownloadName = "Kitting导入文件" };
// return new JsonResult(new { Code = 200, FileDownloadName="" }); return new JsonResult(new { Code = 200, FileDownloadName="" });
} }

5
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/PositionCodes/PositionCodeAppService.cs

@ -95,10 +95,10 @@ public class PositionCodeAppService
{ {
throw new UserFriendlyException($"{id} 未找到位置码信息"); throw new UserFriendlyException($"{id} 未找到位置码信息");
} }
var itemEntity = await _repository.FirstOrDefaultAsync(p => p.PartCode == input.PartCode && p.Code!=input.Code).ConfigureAwait(false); var itemEntity = await _repository.FirstOrDefaultAsync(p => p.PartCode == input.PartCode && p.Code==input.Code).ConfigureAwait(false);
if (itemEntity != null) if (itemEntity != null)
{ {
throw new UserFriendlyException($"{input.PartCode} 物品已存在"); throw new UserFriendlyException($"位置码{input.Code}已存在物品{input.PartCode}的信息 ");
} }
@ -142,6 +142,7 @@ public class PositionCodeAppService
var itemBasic = await ItemBasicAppService.GetByCodeAsync(positionCode.PartCode).ConfigureAwait(false); var itemBasic = await ItemBasicAppService.GetByCodeAsync(positionCode.PartCode).ConfigureAwait(false);
positionCode.PartName = itemBasic.Name; positionCode.PartName = itemBasic.Name;
positionCode.PartDesc = itemBasic.Desc1; positionCode.PartDesc = itemBasic.Desc1;
if (string.IsNullOrEmpty(positionCode.BasicUom)) positionCode.BasicUom = itemBasic.BasicUom;
switch (positionCode.Type) switch (positionCode.Type)
{ {
case EnumPositionCodeType.InjectionIssue: case EnumPositionCodeType.InjectionIssue:

6
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/ProductionLineItems/ProductionLineItemAppService.cs

@ -126,9 +126,9 @@ public class ProductionLineItemAppService :
public virtual async Task<ProductionLineItemDTO> GetByProductLineCodeAndItemCodeAsync(string productLineCode, public virtual async Task<ProductionLineItemDTO> GetByProductLineCodeAndItemCodeAsync(string productLineCode,
string itemCode) string itemCode)
{ {
var entityList = await _repository var entity = await _repository
.FindAsync(p => p.ProdLineCode == productLineCode && p.ItemCode == itemCode).ConfigureAwait(false); .FirstOrDefaultAsync(p => p.ProdLineCode == productLineCode && p.ItemCode == itemCode).ConfigureAwait(false);
return ObjectMapper.Map<ProductionLineItem, ProductionLineItemDTO>(entityList); return ObjectMapper.Map<ProductionLineItem, ProductionLineItemDTO>(entity);
} }
[HttpPost("get-by-productlinecode-and-itemcode-and-erplocationcode-async")] [HttpPost("get-by-productlinecode-and-itemcode-and-erplocationcode-async")]
public virtual async Task<List<string>> GetByProductLineCodeAndItemCodeAndErpLocationCodeAsync(List<EnumLocationType> locationType, string erpLocationCodes,string itemCode) public virtual async Task<List<string>> GetByProductLineCodeAndItemCodeAndErpLocationCodeAsync(List<EnumLocationType> locationType, string erpLocationCodes,string itemCode)

32
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs

@ -40,9 +40,12 @@ public class TestService:ApplicationService
/// 生命周期操作 /// 生命周期操作
/// </summary> /// </summary>
[HttpPost("GetMacStatic")] [HttpPost("GetMacStatic")]
public async Task<int> GetMacStatic() public async Task<ResultJson> GetMacStatic()
{ {
return 1;
return new ResultJson() { Code = 200, Msg = "SUCESS", Value = 1 , Valuestr = "", Result = ""};
} }
@ -51,7 +54,7 @@ public class TestService:ApplicationService
/// <summary> /// <summary>
/// 异步开始生命周期操作不能堵塞 /// 异步开始生命周期操作不能堵塞
/// </summary> /// </summary>
public async Task<List<ResponCargoItem>> GetCargoStatic(string AreaID) public async Task<ResponCargos> GetCargoStatic(string AreaID)
{ {
List<ResponCargoItem> result = new List<ResponCargoItem>(); List<ResponCargoItem> result = new List<ResponCargoItem>();
@ -63,7 +66,14 @@ public class TestService:ApplicationService
result = result.Where(p => p.AreaID == AreaID).ToList(); result = result.Where(p => p.AreaID == AreaID).ToList();
return result;
var t = new ResponCargos();
t.Code = 200;
t.Msg = "Success";
t.Datalist = result;
return t;
} }
//[HttpPost("SyncIssueJobStereo")] //[HttpPost("SyncIssueJobStereo")]
@ -82,8 +92,18 @@ public class TestService:ApplicationService
//} //}
[HttpPost("GetCargoStatic1")]
/// <summary>
/// 异步开始生命周期操作不能堵塞
/// </summary>
public async Task<ResponCargos> GetCargoStatic1(ResponCargos p_cas)
{
return p_cas;
}
@ -93,7 +113,9 @@ public class TestService:ApplicationService
}
}
/// <summary> /// <summary>
/// 发给立体库主表 /// 发给立体库主表
/// </summary> /// </summary>

38
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Linq.Expressions;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Newtonsoft.Json; using Newtonsoft.Json;
@ -36,5 +37,42 @@ public sealed class CommonHelper
return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
} }
} }
}
/// <summary>
/// Expression动态拼接+泛型缓存
/// </summary>
/// <typeparam name="TIn"></typeparam>
/// <typeparam name="TOut"></typeparam>
public class ExpressionGenericMapper<TIn, TOut>//Mapper`2
{
private static Func<TIn, TOut> _FUNC = null;
static ExpressionGenericMapper()
{
ParameterExpression parameterExpression = Expression.Parameter(typeof(TIn), "p");
List<MemberBinding> memberBindingList = new List<MemberBinding>();
foreach (var item in typeof(TOut).GetProperties())
{
MemberExpression property = Expression.Property(parameterExpression, typeof(TIn).GetProperty(item.Name));
MemberBinding memberBinding = Expression.Bind(item, property);
memberBindingList.Add(memberBinding);
}
foreach (var item in typeof(TOut).GetFields())
{
MemberExpression property = Expression.Field(parameterExpression, typeof(TIn).GetField(item.Name));
MemberBinding memberBinding = Expression.Bind(item, property);
memberBindingList.Add(memberBinding);
}
MemberInitExpression memberInitExpression = Expression.MemberInit(Expression.New(typeof(TOut)), memberBindingList.ToArray());
Expression<Func<TIn, TOut>> lambda = Expression.Lambda<Func<TIn, TOut>>(memberInitExpression, new ParameterExpression[]
{
parameterExpression
});
_FUNC = lambda.Compile();//拼装是一次性的
}
public static TOut Trans(TIn t)
{
return _FUNC(t);
}
} }

3
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/ItemGuideBooks/ItemGuideBook.cs

@ -13,19 +13,16 @@ public class ItemGuideBook : SfsBaseDataAggregateRootBase
/// <summary> /// <summary>
/// 物品名称 /// 物品名称
/// </summary> /// </summary>
[IgnoreUpdate]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
/// 物品描述1 /// 物品描述1
/// </summary> /// </summary>
[IgnoreUpdate]
public string Desc1 { get; set; } public string Desc1 { get; set; }
/// <summary> /// <summary>
/// 物品描述2 /// 物品描述2
/// </summary> /// </summary>
[IgnoreUpdate]
public string Desc2 { get; set; } public string Desc2 { get; set; }
/// <summary> /// <summary>

127
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs

@ -25,10 +25,9 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
public async Task<bool> BatchInsertAsync(List<SplitPackingRec> input) public async Task<bool> BatchInsertAsync(List<SplitPackingRec> input)
{ {
var query = await _repository.GetQueryableAsync().ConfigureAwait(false); #region 校验
foreach (SplitPackingRec item in input) foreach (SplitPackingRec item in input)
{ {
#region 校验
if (item.OprType == OprTypeEnum.SplitBox || item.OprType == OprTypeEnum.MergeBox) //拆箱或合箱 if (item.OprType == OprTypeEnum.SplitBox || item.OprType == OprTypeEnum.MergeBox) //拆箱或合箱
{ {
if (item.FromPackingCode == item.ToPackingCode) if (item.FromPackingCode == item.ToPackingCode)
@ -43,13 +42,26 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
throw new UserFriendlyException("操作类型不是拆箱或合箱状态,源箱码和目标箱码必须相同!"); throw new UserFriendlyException("操作类型不是拆箱或合箱状态,源箱码和目标箱码必须相同!");
} }
} }
#endregion }
#endregion
//缓存数据
var query = await _repository.GetQueryableAsync().ConfigureAwait(false);
var fromPackCodeLst = input.Select(itm => itm.FromPackingCode).ToList();
var toPackCodeLst = input.Select(itm => itm.ToPackingCode).ToList();
var historyLst = await query.Where(itm => fromPackCodeLst.Contains(itm.ToPackingCode) && (itm.OprType == OprTypeEnum.SplitBox || itm.OprType == OprTypeEnum.MergeBox)).ToListAsync().ConfigureAwait(false); //取顶级箱码时用到
var hisLst2 = await query.Where(itm => fromPackCodeLst.Contains(itm.FromPackingCode)).ToListAsync().ConfigureAwait(false);
Dictionary<string, SplitPackingRec> hisLst3 = await query.Where(itm => toPackCodeLst.Contains(itm.FromPackingCode) && itm.OprType == OprTypeEnum.Other).ToDictionaryAsync(itm => itm.FromPackingCode, it2 => it2).ConfigureAwait(false);
//遍历、批量插入
List<SplitPackingRec> operLst = new List<SplitPackingRec>();
foreach (SplitPackingRec item in input)
{
if (item.OprType == OprTypeEnum.SplitBox || item.OprType == OprTypeEnum.MergeBox) if (item.OprType == OprTypeEnum.SplitBox || item.OprType == OprTypeEnum.MergeBox)
{ {
//设置顶级箱码 //设置顶级箱码
item.FromTopPackingCode = CalcuTopPackingCode(query, item.FromPackingCode); item.FromTopPackingCode = CalcuTopPackingCode(input, historyLst, item);
item.ToTopPackingCode = CalcuTopPackingCode(query, item.FromPackingCode); //ToPackingCode item.ToTopPackingCode = CalcuTopPackingCode(input, historyLst, item);
if (item.FromTopPackingCode.IsNullOrEmpty()) if (item.FromTopPackingCode.IsNullOrEmpty())
{ {
item.FromTopPackingCode = item.FromPackingCode; item.FromTopPackingCode = item.FromPackingCode;
@ -59,14 +71,12 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
item.ToTopPackingCode = item.FromTopPackingCode; item.ToTopPackingCode = item.FromTopPackingCode;
} }
//设置六个单据号 //设置六个单据号
SetBillNumber(query, item); SetBillNumber(hisLst2, item);
//拆箱时,如果目标箱不存在,插入目标箱(两个箱码相同) //拆箱时,如果目标箱不存在,插入目标箱(两个箱码相同)
string toPackCode = item.ToPackingCode; if (hisLst3.ContainsKey(item.ToPackingCode) == false)
var toHis = await query.Where(itm => itm.FromPackingCode == toPackCode && itm.ToPackingCode == toPackCode).OrderBy(itm => itm.CreationTime).FirstOrDefaultAsync().ConfigureAwait(false);
if (toHis == null)
{ {
//SplitPackingRec newObj = CommonHelper.CloneObj(item);
SplitPackingRec newObj = CommonHelper.CloneObj(item); SplitPackingRec newObj = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
newObj.SetId(GuidGenerator.Create()); newObj.SetId(GuidGenerator.Create());
newObj.OprType = OprTypeEnum.Other; newObj.OprType = OprTypeEnum.Other;
newObj.FromPackingCode = newObj.ToPackingCode; //克隆赋值 newObj.FromPackingCode = newObj.ToPackingCode; //克隆赋值
@ -75,11 +85,20 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
newObj.FromUom = newObj.ToUom; newObj.FromUom = newObj.ToUom;
newObj.FromQty = newObj.ToQty; newObj.FromQty = newObj.ToQty;
newObj.FromLot = newObj.ToLot; newObj.FromLot = newObj.ToLot;
var res = await _repository.InsertAsync(newObj, true).ConfigureAwait(false); //var res = await _repository.InsertAsync(newObj, false).ConfigureAwait(false);
operLst.Add(newObj);
} }
SplitPackingRec newEntity = CommonHelper.CloneObj(item); //var toHis = await query.Where(itm => itm.FromPackingCode == toPackCode && itm.ToPackingCode == toPackCode).OrderBy(itm => itm.CreationTime).FirstOrDefaultAsync().ConfigureAwait(false);
//if (toHis == null)
//{
//}
//SplitPackingRec newEntity = CommonHelper.CloneObj(item);
SplitPackingRec newEntity = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
newEntity.SetId(GuidGenerator.Create()); newEntity.SetId(GuidGenerator.Create());
var ret = await _repository.InsertAsync(newEntity, true).ConfigureAwait(false); // var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false);
operLst.Add(newEntity);
} }
else else
{ {
@ -91,11 +110,14 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
{ {
item.ToTopPackingCode = item.FromPackingCode;// ToPackingCode; item.ToTopPackingCode = item.FromPackingCode;// ToPackingCode;
} }
SplitPackingRec newEntity = CommonHelper.CloneObj(item); //SplitPackingRec newEntity = CommonHelper.CloneObj(item);
SplitPackingRec newEntity = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
newEntity.SetId(GuidGenerator.Create()); newEntity.SetId(GuidGenerator.Create());
var ret = await _repository.InsertAsync(newEntity, true).ConfigureAwait(false); //var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false);
operLst.Add(newEntity);
} }
} //foreach } //foreach
await _repository.InsertManyAsync(operLst).ConfigureAwait(false);
return true; return true;
} }
@ -199,48 +221,71 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
} }
/// <summary> /// <summary>
/// 取顶级箱码 /// 取顶级箱码
/// </summary> /// </summary>
/// <param name="historyQuery">箱码历史</param> /// <param name="memoryInput">本次操作要插入的拆箱记录列表,位于内存中</param>
/// <param name="packingCode">箱码,from to时都传入from</param> /// <param name="historyLst">数据库中的历史数据:拆箱或合箱、to箱码=内存中的from箱码</param>
/// <param name="curRecord">内存中当前记录</param>
/// <returns></returns> /// <returns></returns>
private static string CalcuTopPackingCode(IQueryable<SplitPackingRec> historyQuery, string packingCode) private static string CalcuTopPackingCode(List<SplitPackingRec> memoryInput, List<SplitPackingRec> historyLst, SplitPackingRec curRecord)
{ {
var qry = historyQuery.Where(itm => itm.OprType == OprTypeEnum.SplitBox || itm.OprType == OprTypeEnum.MergeBox); //根据当前记录在内存列表中递归取得最上级拆箱记录:1-2 2-3 3-4 根据3-4能取到1-2
string ret = null; SplitPackingRec priorMemoryRecord = curRecord;
SplitPackingRec? firstObj = null;
string toCode = packingCode;
while (1 == 1) while (1 == 1)
{ {
firstObj = qry.FirstOrDefault(itm => itm.ToPackingCode == toCode); var obj = memoryInput.FirstOrDefault(itm => itm.ToPackingCode == priorMemoryRecord.FromPackingCode);
if (firstObj == null) if (obj != null)
{ {
ret = toCode; priorMemoryRecord = obj;
break;
} }
else else
{ {
toCode = firstObj.FromPackingCode; break;
} }
} }
return ret; /*
//var historyRec = historyQuery.Where(itm => itm.FromPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault(); from箱码在数据库中取上级拆箱记录
//if (historyRec != null)
//{ 1-1
// return historyRec.FromTopPackingCode; 2-2
//} 1-2 to箱码=1=from箱码
//else 3-3
2-3 to箱码=21-2
4-4
3-4 to箱码=32-3
5-5
3-5 to箱码=32-3
*/
var hisObj = historyLst.FirstOrDefault(itm => itm.ToPackingCode == priorMemoryRecord.FromPackingCode);
if (hisObj != null)
{
return hisObj.FromTopPackingCode;
}
else
{
return priorMemoryRecord.FromPackingCode;
}
//var qry = historyLst.Where(itm => itm.OprType == OprTypeEnum.SplitBox || itm.OprType == OprTypeEnum.MergeBox);
//string ret = null;
//SplitPackingRec? firstObj = null;
//string toCode = priorRecord.FromPackingCode;
//while (1 == 1)
//{ //{
// historyRec = historyQuery.Where(itm => itm.ToPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault(); // firstObj = qry.FirstOrDefault(itm => itm.ToPackingCode == toCode);
// if (historyRec != null) // if (firstObj == null)
// {
// ret = toCode;
// break;
// }
// else
// { // {
// return historyRec.ToTopPackingCode; // toCode = firstObj.FromPackingCode;
// } // }
//} //}
//return null; //return ret;
} }
private static void SetBillNumber(IQueryable<SplitPackingRec> historyQuery, SplitPackingRec obj) private static void SetBillNumber(List<SplitPackingRec> historyQuery, SplitPackingRec obj)
{ {
var historyRec = historyQuery.Where(itm => itm.FromPackingCode == obj.FromPackingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault(); var historyRec = historyQuery.Where(itm => itm.FromPackingCode == obj.FromPackingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault();
if (historyRec != null) if (historyRec != null)

2
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/TransferLogs/ITransferLogAppService.cs

@ -15,5 +15,5 @@ public interface ITransferLogAppService
Task<List<TransferLogDTO>> GetListByContainerAsync(string containerCode); Task<List<TransferLogDTO>> GetListByContainerAsync(string containerCode);
Task<List<TransferLogDTO>> GetListByItemAsync(string itemCode); Task<List<TransferLogDTO>> GetListByItemAsync(string itemCode);
Task<List<TransferLogDTO>> GetListByLocationAsync(string locationCode); Task<List<TransferLogDTO>> GetListByLocationAsync(string locationCode);
Task<List<TransferLogDTO>> AddManyWithTransferAsync(List<TransferLogEditInput> inputs, List<TransactionEditInput> transactionInputs);
} }

21
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/TransferLogs/TransferLogAppService.cs

@ -75,6 +75,27 @@ public class TransferLogAppService
return dto; return dto;
} }
[HttpPost("add-many-with-transfer")]
public virtual async Task<List<TransferLogDTO>> AddManyWithTransferAsync(List<TransferLogEditInput> inputs,List<TransactionEditInput> transactionInputs)
{
var transferLogs = ObjectMapper.Map<List<TransferLogEditInput>, List<TransferLog>>(inputs);
var transactions = ObjectMapper.Map<List<TransactionEditInput>, List<Transaction>>(transactionInputs);
foreach (var entity in transferLogs)
{
if (string.IsNullOrEmpty(entity.Worker))
{
entity.Worker = CurrentUser.GetUserName();
}
entity.TransferTime = Clock.Now;
entity.ActiveDate = await _interfaceCalendarAclService.GetActiveDateAsync(Clock.Now).ConfigureAwait(false);
}
await _transferLogManager.AddManyWithTransferAsync(transferLogs, transactions).ConfigureAwait(false);
var dto = ObjectMapper.Map<List<TransferLog>, List<TransferLogDTO>>(transferLogs);
return dto;
}
[HttpGet("list/by-number/{number}")] [HttpGet("list/by-number/{number}")]
public virtual async Task<List<TransferLogDTO>> GetListByNumberAsync(string number) public virtual async Task<List<TransferLogDTO>> GetListByNumberAsync(string number)
{ {

2
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/TransferLogs/ITransferLogManager.cs

@ -51,5 +51,5 @@ public interface ITransferLogManager : IDomainService
Task<Balance> ChangeLocationAsync(Balance inventory, Task<Balance> ChangeLocationAsync(Balance inventory,
string newWarehouseCode, string newLocationCode, string newContainerCode, string worker, string newWarehouseCode, string newLocationCode, string newContainerCode, string worker,
string jobNumber, string docNumber); string jobNumber, string docNumber);
Task AddManyWithTransferAsync(List<TransferLog> transferLogs, List<Transaction> inputTransactions);
} }

54
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/TransferLogs/TransferLogManager.cs

@ -147,6 +147,60 @@ public class TransferLogManager : DomainService, ITransferLogManager
} }
public virtual async Task AddManyWithTransferAsync(List<TransferLog> transferLogs, List<Transaction> excludeTransactions)
{
//TODO 功能大调整
//1. 生成并添加Transactions
var transactions = new List<Transaction>();
foreach (var transferLog in transferLogs)
{
var number = await _numberGenerator.CreateAsync().ConfigureAwait(false);
var activeDate = await _interfaceCalendarAclService.GetActiveDateAsync(Clock.Now).ConfigureAwait(false);
await TrySetItemAndLocationAsync(transferLog).ConfigureAwait(false);
var inOutTransactions = await transferLog.BuildAndAddTransactionsAsync(number, activeDate,
_transactionManager.AddAsync).ConfigureAwait(false);
Logger.LogDebug($"{transferLog.DocNumber}|TransferLog:{transferLog}");
transactions.AddRange(inOutTransactions);
}
//2. 添加TransferLogs
await _transferLogRepository.InsertManyAsync(transferLogs).ConfigureAwait(false);
//3. Transactions按箱码,ERP料号,批次,库位,状态汇总数量,将需要对冲的明细对冲掉
var allTransactions = new List<Transaction>();
allTransactions.AddRange(transactions);
allTransactions.AddRange(excludeTransactions);
var compactTransactions = new List<Transaction>();
foreach (var transaction in allTransactions)
{
var compactTransaction = compactTransactions.FirstOrDefault(p => p.ItemCode == transaction.ItemCode
&& p.PackingCode == transaction.PackingCode
&& p.Lot == transaction.Lot
&& p.LocationCode == transaction.LocationCode
&& p.Status == transaction.Status);
if (compactTransaction == null)//如果集合中没有就创建
{
compactTransaction = new Transaction(transaction);
compactTransactions.Add(compactTransaction);
}
else//有则加减qty
{
compactTransaction.Qty += transaction.Qty;
}
}
//4. 根据汇总后的Transaction列表更新库存余额和库位可用容量
await _transactionManager.UpdateBalanceAsync(compactTransactions.Where(r=>r.Qty!=0).ToList()).ConfigureAwait(false);
}
public virtual async Task<Balance> ChangeBatchAsync(Balance inventory, string newLot, public virtual async Task<Balance> ChangeBatchAsync(Balance inventory, string newLot,
string newSupplierBatch, DateTime newArriveDate, DateTime newProduceDate, DateTime newExpireDate, string worker, string jobNumber, string docNumber) string newSupplierBatch, DateTime newArriveDate, DateTime newProduceDate, DateTime newExpireDate, string worker, string jobNumber, string docNumber)
{ {

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

@ -114,6 +114,13 @@ public enum EnumTransSubType
[Display(Name = "完工报废")] [Display(Name = "完工报废")]
Scrap_Product = 3604, Scrap_Product = 3604,
/// <summary>
/// 报废转移
/// </summary>
[Display(Name = "报废转移")]
Scrap_Transfer = 3605,
/// <summary> /// <summary>
/// 线边调整 /// 线边调整
/// </summary> /// </summary>

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

@ -41,8 +41,8 @@ public enum EnumIssueRequestType
ExcelImport=5, ExcelImport=5,
/// <summary> /// <summary>
/// 注塑计划 /// 涂装上线计划
/// </summary> /// </summary>
[Display(Name = "EXCEL导入")] [Display(Name = "涂装上线计划")]
InjectionPlan = 6, InjectionPlan = 6,
} }

18
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs

@ -75,12 +75,19 @@ public class KittingIssueJobAppService
[HttpPost("add-many")] [HttpPost("add-many")]
public override async Task<List<KittingIssueJobDTO>> CreateManyAsync(List<KittingIssueJobEditInput> inputs) public override async Task<List<KittingIssueJobDTO>> CreateManyAsync(List<KittingIssueJobEditInput> inputs)
{ {
foreach (var input in inputs) foreach (var input in inputs)
{ {
await CheckMinRowAndSetStatusAsync(input).ConfigureAwait(false); await CheckMinRowAndSetStatusAsync(input).ConfigureAwait(false);
await CheckDimensionalStorehouseAsync(input).ConfigureAwait(false); //如果是立库 就给直接承接了
var dimensionalStorehouseflag = await CheckDimensionalStorehouseAsync(input).ConfigureAwait(false);
if (dimensionalStorehouseflag)
{
input.IsClaims = true;
input.ClaimsUserId = "立库账号"; //todo
input.ClaimsUserName = "立库账号"; //todo
}
} }
var kittingIssueJobDtos = await base.CreateManyAsync(inputs).ConfigureAwait(false); var kittingIssueJobDtos = await base.CreateManyAsync(inputs).ConfigureAwait(false);
foreach (var kittingIssueJobDto in kittingIssueJobDtos) foreach (var kittingIssueJobDto in kittingIssueJobDtos)
{ {
@ -561,7 +568,7 @@ public class KittingIssueJobAppService
/// </summary> /// </summary>
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
private async Task CheckDimensionalStorehouseAsync(KittingIssueJobEditInput input) private async Task<bool> CheckDimensionalStorehouseAsync(KittingIssueJobEditInput input)
{ {
var jobDetailInputdetail = input.Details.FirstOrDefault(); var jobDetailInputdetail = input.Details.FirstOrDefault();
@ -571,6 +578,11 @@ public class KittingIssueJobAppService
if (loctionDto.Type == EnumLocationType.DimensionalStorehouse) if (loctionDto.Type == EnumLocationType.DimensionalStorehouse)
{ {
input.JobStatus = EnumJobStatus.Wait; input.JobStatus = EnumJobStatus.Wait;
return true;
}
else
{
return false;
} }
} }

19
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs

@ -9,6 +9,7 @@ using Microsoft.EntityFrameworkCore;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Repositories;
using Volo.Abp.Users;
using Win_in.Sfs.Basedata.Application; using Win_in.Sfs.Basedata.Application;
using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain;
@ -32,6 +33,7 @@ public class PurchaseOrderAppService :
private readonly IItemBasicAppService _itemBasicAppService; private readonly IItemBasicAppService _itemBasicAppService;
private readonly ILocationAppService _locationAppService; private readonly ILocationAppService _locationAppService;
public readonly IPurchasePriceSheetAppService _purchasePriceSheetAppService; public readonly IPurchasePriceSheetAppService _purchasePriceSheetAppService;
private readonly ICurrentUser _currentUser;
public readonly ISupplierItemAppService _supplierItemAppService; public readonly ISupplierItemAppService _supplierItemAppService;
public PurchaseOrderAppService( public PurchaseOrderAppService(
@ -41,6 +43,7 @@ public class PurchaseOrderAppService :
IItemBasicAppService itemBasicAppService IItemBasicAppService itemBasicAppService
, ILocationAppService locationAppService, , ILocationAppService locationAppService,
IPurchasePriceSheetAppService purchasePriceSheetAppService, IPurchasePriceSheetAppService purchasePriceSheetAppService,
ICurrentUser currentUser,
ISupplierItemAppService supplierItemAppService) : base(repository) ISupplierItemAppService supplierItemAppService) : base(repository)
{ {
_repository = repository; _repository = repository;
@ -52,7 +55,9 @@ ISupplierItemAppService supplierItemAppService) : base(repository)
base.UpdatePolicyName = PurchaseOrderPermissions.Update; base.UpdatePolicyName = PurchaseOrderPermissions.Update;
base.DeletePolicyName = PurchaseOrderPermissions.Delete; base.DeletePolicyName = PurchaseOrderPermissions.Delete;
_purchasePriceSheetAppService = purchasePriceSheetAppService; _purchasePriceSheetAppService = purchasePriceSheetAppService;
_currentUser = currentUser;
_supplierItemAppService = supplierItemAppService; _supplierItemAppService = supplierItemAppService;
} }
#region 东阳使用 #region 东阳使用
@ -103,8 +108,18 @@ ISupplierItemAppService supplierItemAppService) : base(repository)
foreach (var purchaseOrder in ImportData) foreach (var purchaseOrder in ImportData)
{ {
purchaseOrder.CreatorId = CurrentUser.Id; if (CurrentUser == null)
purchaseOrder.Worker = CurrentUser.GetName(); {
purchaseOrder.CreatorId = _currentUser.GetId();
purchaseOrder.Worker = _currentUser.GetName();
}
else
{
purchaseOrder.CreatorId = CurrentUser.Id;
purchaseOrder.Worker = CurrentUser.GetName();
}
var supplierDto = supplierDtos.First(p => p.Code == purchaseOrder.SupplierCode); var supplierDto = supplierDtos.First(p => p.Code == purchaseOrder.SupplierCode);
purchaseOrder.SupplierCode = supplierDto.Code; purchaseOrder.SupplierCode = supplierDto.Code;

18
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/ScrapNoteEventHandler.cs

@ -39,17 +39,17 @@ public class ScrapNoteEventHandler
await detail.TrySetLocationAsync(LocationAclService).ConfigureAwait(false); await detail.TrySetLocationAsync(LocationAclService).ConfigureAwait(false);
} }
//如果WMS管理报废库,生成库存转移 ////如果WMS管理报废库,生成库存转移
if (await SettingManager.IsTrueAsync(StoreSettings.Common.EnableScrapLocation).ConfigureAwait(false)) //if (await SettingManager.IsTrueAsync(StoreSettings.Common.EnableScrapLocation).ConfigureAwait(false))
{ //{
var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, EnumExchangeDataType.Transfer, dtos).ConfigureAwait(false); // var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, EnumExchangeDataType.Transfer, dtos).ConfigureAwait(false);
await AddManyAsync(exchangeData).ConfigureAwait(false); // await AddManyAsync(exchangeData).ConfigureAwait(false);
} //}
else //else
{ //{
var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, EnumExchangeDataType.Scrap, dtos).ConfigureAwait(false); var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, EnumExchangeDataType.Scrap, dtos).ConfigureAwait(false);
await AddManyAsync(exchangeData).ConfigureAwait(false); await AddManyAsync(exchangeData).ConfigureAwait(false);
} // }
} }
} }

46
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/ScrapNoteEventHandler.cs

@ -2,11 +2,14 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using DocumentFormat.OpenXml.Vml.Spreadsheet;
using Volo.Abp.EventBus; using Volo.Abp.EventBus;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Event; using Win_in.Sfs.Shared.Event;
using Win_in.Sfs.Wms.Inventory.Application.Contracts; using Win_in.Sfs.Wms.Inventory.Application.Contracts;
using Win_in.Sfs.Wms.Inventory.Domain;
using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared; using Win_in.Sfs.Wms.Store.Domain.Shared;
using Win_in.Sfs.Wms.Store.Event.Transaction; using Win_in.Sfs.Wms.Store.Event.Transaction;
@ -38,42 +41,54 @@ public class ScrapNoteEventHandler
private async Task AddTransactionsAsync(List<ScrapNote> scrapNotes) private async Task AddTransactionsAsync(List<ScrapNote> scrapNotes)
{ {
var isScrapLocation = await SettingManager.IsTrueAsync(StoreSettings.Common.EnableScrapLocation).ConfigureAwait(false); //如果WMS管理报废库,生成报废库存转移(从HOLD库先转移到线边)
//如果WMS管理报废库,生成库存转移 var holdLocation = await LocationAclService.GetFirstByTypeAsync(EnumLocationType.HOLD).ConfigureAwait(false); //隔离库位
if (await SettingManager.IsTrueAsync(StoreSettings.Common.EnableScrapLocation).ConfigureAwait(false)) var transferLogs = new List<TransferLogEditInput>();
var transactions = new List<TransactionEditInput>();//更新库存的事务
var emptyTransactions = new List<TransactionEditInput>();//不更新库存的事务
foreach (var scrapNote in scrapNotes)
{ {
var transferLogs = new List<TransferLogEditInput>(); if (isScrapLocation && scrapNote.Worker == "MES")//管理隔离库并且是mes接口来的从隔离库直接报废(但是要先移到线边)
foreach (var scrapNote in scrapNotes)
{ {
transferLogs.AddRange(BuildTransferLogs(scrapNote)); transferLogs.AddRange(BuildTransferLogs(scrapNote, holdLocation));
emptyTransactions.AddRange(BuildTransactions(scrapNote));
} }
await TransferLogAppService.AddManyAsync(transferLogs).ConfigureAwait(false); else
}
else
{
var transactions = new List<TransactionEditInput>();
foreach (var scrapNote in scrapNotes)
{ {
transactions.AddRange(BuildTransactions(scrapNote)); transactions.AddRange(BuildTransactions(scrapNote));
} }
}
if (transferLogs.Count > 0)
{
//报废是库存世界变动是隔离库数量-1,但是增加了一个移库日志从Hold到线边,库存事务是三个,Hold库-1(移库),线边+1(移库),线边-1(报废)
await TransferLogAppService.AddManyWithTransferAsync(transferLogs, emptyTransactions).ConfigureAwait(false);
await TransactionAppService.AddManyEmptyAsync(emptyTransactions).ConfigureAwait(false);
}
if (transactions.Count > 0)
{
await TransactionAppService.AddManyAsync(transactions).ConfigureAwait(false); await TransactionAppService.AddManyAsync(transactions).ConfigureAwait(false);
} }
} }
private List<TransferLogEditInput> BuildTransferLogs(ScrapNote scrapNote) private List<TransferLogEditInput> BuildTransferLogs(ScrapNote scrapNote, LocationDTO holdLocation)
{ {
var transferLogs = new List<TransferLogEditInput>(); var transferLogs = new List<TransferLogEditInput>();
foreach (var detail in scrapNote.Details.Where(detail => detail.Qty != 0)) foreach (var detail in scrapNote.Details.Where(detail => detail.Qty != 0))
{ {
var transferLog = ObjectMapper.Map<ScrapNoteDetail, TransferLogEditInput>(detail); var transferLog = ObjectMapper.Map<ScrapNoteDetail, TransferLogEditInput>(detail);
transferLog.TransType = TransType; transferLog.TransType = TransType;
transferLog.TransSubType = Enum.Parse<EnumTransSubType>(scrapNote.Type); transferLog.TransSubType = EnumTransSubType.Scrap_Transfer;
transferLog.Worker = scrapNote.Worker; transferLog.Worker = scrapNote.Worker;
transferLog.DocNumber = scrapNote.Number; transferLog.DocNumber = scrapNote.Number;
transferLog.JobNumber = scrapNote.JobNumber; transferLog.JobNumber = scrapNote.JobNumber;
transferLog.FromLocationCode = holdLocation?.Code;
transferLog.FromLocationArea = holdLocation?.AreaCode;
transferLog.FromLocationGroup = holdLocation?.LocationGroupCode;
transferLog.FromLocationErpCode = holdLocation?.ErpLocationCode;
transferLog.FromStatus = EnumInventoryStatus.HOLD;
transferLogs.Add(transferLog); transferLogs.Add(transferLog);
} }
@ -89,6 +104,7 @@ public class ScrapNoteEventHandler
var transaction = ObjectMapper.Map<ScrapNoteDetail, TransactionEditInput>(detail); var transaction = ObjectMapper.Map<ScrapNoteDetail, TransactionEditInput>(detail);
transaction.TransType = TransType; transaction.TransType = TransType;
transaction.TransSubType = Enum.Parse<EnumTransSubType>(deliverNote.Type);
transaction.TransInOut = EnumTransInOut.Out; transaction.TransInOut = EnumTransInOut.Out;
transaction.Worker = deliverNote.Worker; transaction.Worker = deliverNote.Worker;
transaction.DocNumber = deliverNote.Number; transaction.DocNumber = deliverNote.Number;

191
build/src/docker/publish/conf/settings/appsettings.Development - 副本.json

@ -0,0 +1,191 @@
{
"AlwaysAllowAuthorization": "true",
"RestoOptions":
{
"Address" :"http://7e42682n64.goho.co:21171/",
//
"UserName" :"",
//
"Password" :"",
//
"Token" :"",
"Path" :"zozocnApi/custom/receiveProductionPlan"
},
"App": {
"CorsOrigins": [
"http://localhost:59080",
"http://localhost:59081",
"http://localhost:59090",
"http://localhost:59091",
"http://localhost:59093",
"http://localhost:59094",
"http://localhost:59095",
"http://localhost:59096",
"http://localhost:59097",
"http://localhost:59098",
"http://localhost:59099",
"http://localhost:59090",
"http://localhost:59091",
"http://localhost:59093",
"http://localhost:59094",
"http://localhost:59095",
"http://localhost:59096",
"http://localhost:59097",
"http://localhost:59098",
"http://localhost:59099",
"https://localhost:59090",
"https://localhost:59091",
"https://localhost:59093",
"https://localhost:59094",
"https://localhost:59095",
"https://localhost:59096",
"https://localhost:59097",
"https://localhost:59098",
"https://localhost:59099",
"https://localhost:59090",
"https://localhost:59091",
"https://localhost:59093",
"https://localhost:59094",
"https://localhost:59095",
"https://localhost:59096",
"https://localhost:59097",
"https://localhost:59098",
"https://localhost:59099",
"http://localhost:9527"
]
},
"AuthServer": {
"Audience": "Auth",
//"Authority": "http://10.164.233.5:60083/",
"Authority": "http://localhost:59093/",
"ClientId": "Auth_App",
"ClientSecret": "1q2w3E*",
"RequireHttpsMetadata": "false",
"SwaggerClientId": "Auth_App",
"SwaggerClientSecret": "1q2w3e*",
"UseAuth": "true"
},
// "ConnectionStrings": {
// "AbpAuditLogging": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpBackgroundJobs": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpBlobStoring": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpFeatureManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpIdentity": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpIdentityServer": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpPermissionManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpSettingManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpTenantManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Auth": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Basedata": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "DataExchange": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "FileStorage": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Inventory": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Job": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Label": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Message": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Store": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;"
// },
"ConnectionStrings": {
"AbpAuditLogging": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpBackgroundJobs": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpBlobStoring": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpFeatureManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpIdentity": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpIdentityServer": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpPermissionManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpSettingManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpTenantManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Auth": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Basedata": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"DataExchange": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"FileStorage": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Inventory": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Job": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Label": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Message": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Store": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;"
},
"IdentityClients": {
"Default": {
//"Authority": "http://10.164.233.5:60083",
"Authority": "http://localhost:59093",
"ClientId": "Auth_App",
"ClientSecret": "1q2w3E*",
"GrantType": "client_credentials",
"RequireHttps": "false",
"Scope": "Auth"
}
},
"IsMultiTenancy": "True",
"Redis": {
"Configuration": "localhost:21194",
"KeyPrefix": "Wms:"
//"IsEnabled": "false"
},
"RemoteServices": {
"Auth": {
//"BaseUrl": "http://10.164.233.5:60083/"
"BaseUrl": "http://localhost:59093/"
},
"BaseData": {
//"BaseUrl": "http://10.164.233.5:60084/"
"BaseUrl": "http://localhost:59094/"
},
"Default": {
//"BaseUrl": "http://10.164.233.5:60083/"
"BaseUrl": "http://localhost:59093/"
},
"FileStorage": {
"BaseUrl": "http://10.164.233.5:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Inventory": {
"BaseUrl": "http://localhost:59095/"
},
"Job": {
"BaseUrl": "http://localhost:59095/"
},
"Label": {
"BaseUrl": "http://10.164.233.5:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Message": {
"BaseUrl": "http://10.164.233.5:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Store": {
"BaseUrl": "http://localhost:59095/"
}
},
"Serilog": {
"WriteTo": [
{
"Args": {
"configure": [
{
"Args": {
"path": "logs/log.txt",
"retainedFileCountLimit": "30",
"rollingInterval": "Day"
},
"Name": "File"
}
]
},
"Name": "Async"
},
{
"Name": "Http",
"Args": {
"requestUri": "http://localhost:21093",
"queueLimitBytes": null
}
}
]
}
}

11
build/src/docker/publish/conf/settings/appsettings.Development.json → build/src/docker/publish/conf/settings/appsettings.Development..json

@ -133,8 +133,8 @@
//"BaseUrl": "http://localhost:59093/" //"BaseUrl": "http://localhost:59093/"
}, },
"BaseData": { "BaseData": {
"BaseUrl": "http://dev.ccwin-in.com:60084/" //"BaseUrl": "http://dev.ccwin-in.com:60084/"
//"BaseUrl": "http://localhost:59094/" "BaseUrl": "http://localhost:59094/"
}, },
"Default": { "Default": {
"BaseUrl": "http://dev.ccwin-in.com:60083/" "BaseUrl": "http://dev.ccwin-in.com:60083/"
@ -142,6 +142,7 @@
}, },
"FileStorage": { "FileStorage": {
"BaseUrl": "http://dev.ccwin-in.com:60082/" "BaseUrl": "http://dev.ccwin-in.com:60082/"
//"BaseUrl": "http://localhost:59092/"
}, },
"Inventory": { "Inventory": {
"BaseUrl": "http://localhost:59095/" "BaseUrl": "http://localhost:59095/"
@ -150,10 +151,12 @@
"BaseUrl": "http://localhost:59095/" "BaseUrl": "http://localhost:59095/"
}, },
"Label": { "Label": {
"BaseUrl": "http://dev.ccwin-in.com:60082/" "BaseUrl": "http://dev.ccwin-in.com:60082/"
//"BaseUrl": "http://localhost:59092/"
}, },
"Message": { "Message": {
"BaseUrl": "http://dev.ccwin-in.com:60082/" "BaseUrl": "http://dev.ccwin-in.com:60082/"
//"BaseUrl": "http://localhost:59092/"
}, },
"Store": { "Store": {
"BaseUrl": "http://localhost:59095/" "BaseUrl": "http://localhost:59095/"

191
build/src/docker/publish/conf/settings/appsettings.Development_dev用的.json

@ -0,0 +1,191 @@
{
"AlwaysAllowAuthorization": "true",
"RestoOptions":
{
"Address" :"http://7e42682n64.goho.co:21171/",
//
"UserName" :"",
//
"Password" :"",
//
"Token" :"",
"Path" :"zozocnApi/custom/receiveProductionPlan"
},
"App": {
"CorsOrigins": [
"http://localhost:59080",
"http://localhost:59081",
"http://localhost:59090",
"http://localhost:59091",
"http://localhost:59093",
"http://localhost:59094",
"http://localhost:59095",
"http://localhost:59096",
"http://localhost:59097",
"http://localhost:59098",
"http://localhost:59099",
"http://localhost:59090",
"http://localhost:59091",
"http://localhost:59093",
"http://localhost:59094",
"http://localhost:59095",
"http://localhost:59096",
"http://localhost:59097",
"http://localhost:59098",
"http://localhost:59099",
"https://localhost:59090",
"https://localhost:59091",
"https://localhost:59093",
"https://localhost:59094",
"https://localhost:59095",
"https://localhost:59096",
"https://localhost:59097",
"https://localhost:59098",
"https://localhost:59099",
"https://localhost:59090",
"https://localhost:59091",
"https://localhost:59093",
"https://localhost:59094",
"https://localhost:59095",
"https://localhost:59096",
"https://localhost:59097",
"https://localhost:59098",
"https://localhost:59099",
"http://localhost:9527"
]
},
"AuthServer": {
"Audience": "Auth",
"Authority": "http://dev.ccwin-in.com:60083/",
//"Authority": "http://localhost:59093/",
"ClientId": "Auth_App",
"ClientSecret": "1q2w3E*",
"RequireHttpsMetadata": "false",
"SwaggerClientId": "Auth_App",
"SwaggerClientSecret": "1q2w3e*",
"UseAuth": "true"
},
// "ConnectionStrings": {
// "AbpAuditLogging": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpBackgroundJobs": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpBlobStoring": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpFeatureManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpIdentity": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpIdentityServer": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpPermissionManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpSettingManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpTenantManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Auth": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Basedata": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "DataExchange": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "FileStorage": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Inventory": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Job": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Label": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Message": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Store": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;"
// },
"ConnectionStrings": {
"AbpAuditLogging": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpBackgroundJobs": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpBlobStoring": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpFeatureManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpIdentity": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpIdentityServer": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpPermissionManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpSettingManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpTenantManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Auth": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Basedata": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"DataExchange": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"FileStorage": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Inventory": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Job": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Label": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Message": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Store": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;"
},
"IdentityClients": {
"Default": {
"Authority": "http://dev.ccwin-in.com:60083",
//"Authority": "http://localhost:59093",
"ClientId": "Auth_App",
"ClientSecret": "1q2w3E*",
"GrantType": "client_credentials",
"RequireHttps": "false",
"Scope": "Auth"
}
},
"IsMultiTenancy": "True",
"Redis": {
"Configuration": "localhost:21194",
"KeyPrefix": "Wms:"
//"IsEnabled": "false"
},
"RemoteServices": {
"Auth": {
"BaseUrl": "http://dev.ccwin-in.com:60083/"
//"BaseUrl": "http://localhost:59093/"
},
"BaseData": {
//"BaseUrl": "http://dev.ccwin-in.com:60084/"
"BaseUrl": "http://localhost:59094/"
},
"Default": {
"BaseUrl": "http://dev.ccwin-in.com:60083/"
//"BaseUrl": "http://localhost:59093/"
},
"FileStorage": {
"BaseUrl": "http://dev.ccwin-in.com:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Inventory": {
"BaseUrl": "http://localhost:59095/"
},
"Job": {
"BaseUrl": "http://localhost:59095/"
},
"Label": {
"BaseUrl": "http://dev.ccwin-in.com:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Message": {
"BaseUrl": "http://dev.ccwin-in.com:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Store": {
"BaseUrl": "http://localhost:59095/"
}
},
"Serilog": {
"WriteTo": [
{
"Args": {
"configure": [
{
"Args": {
"path": "logs/log.txt",
"retainedFileCountLimit": "30",
"rollingInterval": "Day"
},
"Name": "File"
}
]
},
"Name": "Async"
},
{
"Name": "Http",
"Args": {
"requestUri": "http://localhost:21093",
"queueLimitBytes": null
}
}
]
}
}

191
build/src/docker/publish/conf/settings/appsettings.Development_vpn现场调用的.json

@ -0,0 +1,191 @@
{
"AlwaysAllowAuthorization": "true",
"RestoOptions":
{
"Address" :"http://7e42682n64.goho.co:21171/",
//
"UserName" :"",
//
"Password" :"",
//
"Token" :"",
"Path" :"zozocnApi/custom/receiveProductionPlan"
},
"App": {
"CorsOrigins": [
"http://localhost:59080",
"http://localhost:59081",
"http://localhost:59090",
"http://localhost:59091",
"http://localhost:59093",
"http://localhost:59094",
"http://localhost:59095",
"http://localhost:59096",
"http://localhost:59097",
"http://localhost:59098",
"http://localhost:59099",
"http://localhost:59090",
"http://localhost:59091",
"http://localhost:59093",
"http://localhost:59094",
"http://localhost:59095",
"http://localhost:59096",
"http://localhost:59097",
"http://localhost:59098",
"http://localhost:59099",
"https://localhost:59090",
"https://localhost:59091",
"https://localhost:59093",
"https://localhost:59094",
"https://localhost:59095",
"https://localhost:59096",
"https://localhost:59097",
"https://localhost:59098",
"https://localhost:59099",
"https://localhost:59090",
"https://localhost:59091",
"https://localhost:59093",
"https://localhost:59094",
"https://localhost:59095",
"https://localhost:59096",
"https://localhost:59097",
"https://localhost:59098",
"https://localhost:59099",
"http://localhost:9527"
]
},
"AuthServer": {
"Audience": "Auth",
"Authority": "http://10.164.233.5:60083/",
//"Authority": "http://localhost:59093/",
"ClientId": "Auth_App",
"ClientSecret": "1q2w3E*",
"RequireHttpsMetadata": "false",
"SwaggerClientId": "Auth_App",
"SwaggerClientSecret": "1q2w3e*",
"UseAuth": "true"
},
// "ConnectionStrings": {
// "AbpAuditLogging": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpBackgroundJobs": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpBlobStoring": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpFeatureManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpIdentity": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpIdentityServer": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpPermissionManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpSettingManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "AbpTenantManagement": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Auth": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Basedata": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "DataExchange": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "FileStorage": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Inventory": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Job": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Label": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Message": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;",
// "Store": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;"
// },
"ConnectionStrings": {
"AbpAuditLogging": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpBackgroundJobs": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpBlobStoring": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpFeatureManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpIdentity": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpIdentityServer": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpPermissionManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpSettingManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"AbpTenantManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Auth": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Basedata": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"DataExchange": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"FileStorage": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Inventory": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Job": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Label": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Message": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;",
"Store": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;"
},
"IdentityClients": {
"Default": {
"Authority": "http://10.164.233.5:60083",
//"Authority": "http://localhost:59093",
"ClientId": "Auth_App",
"ClientSecret": "1q2w3E*",
"GrantType": "client_credentials",
"RequireHttps": "false",
"Scope": "Auth"
}
},
"IsMultiTenancy": "True",
"Redis": {
"Configuration": "localhost:21194",
"KeyPrefix": "Wms:"
//"IsEnabled": "false"
},
"RemoteServices": {
"Auth": {
"BaseUrl": "http://10.164.233.5:60083/"
//"BaseUrl": "http://localhost:59093/"
},
"BaseData": {
//"BaseUrl": "http://10.164.233.5:60084/"
"BaseUrl": "http://localhost:59094/"
},
"Default": {
"BaseUrl": "http://10.164.233.5:60083/"
//"BaseUrl": "http://localhost:59093/"
},
"FileStorage": {
"BaseUrl": "http://10.164.233.5:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Inventory": {
"BaseUrl": "http://localhost:59095/"
},
"Job": {
"BaseUrl": "http://localhost:59095/"
},
"Label": {
"BaseUrl": "http://10.164.233.5:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Message": {
"BaseUrl": "http://10.164.233.5:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Store": {
"BaseUrl": "http://localhost:59095/"
}
},
"Serilog": {
"WriteTo": [
{
"Args": {
"configure": [
{
"Args": {
"path": "logs/log.txt",
"retainedFileCountLimit": "30",
"rollingInterval": "Day"
},
"Name": "File"
}
]
},
"Name": "Async"
},
{
"Name": "Http",
"Args": {
"requestUri": "http://localhost:21093",
"queueLimitBytes": null
}
}
]
}
}
Loading…
Cancel
Save