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. 34
      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>
[Key]
public string mesout_callmtl_id { get; set; }
public long ID { get; set; }
/// <summary>
/// 物料
/// </summary>
@ -33,7 +33,7 @@ public class CallMtl : Entity
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)
{
var ids = entities.Select(p => p.mesout_callmtl_id);
var plans = await _repository.GetListAsync(p => ids.Contains(p.mesout_callmtl_id)).ConfigureAwait(false);
var ids = entities.Select(p => p.ID);
var plans = await _repository.GetListAsync(p => ids.Contains(p.ID)).ConfigureAwait(false);
plans.ForEach(p =>
{
p.Yl1 = 2;
@ -31,8 +31,8 @@ public class CallMtlManager : DomainService, ICallMtlManager
}
public virtual async Task UpdateProcessedListAsync(List<CallMtl> entities)
{
var ids = entities.Select(p => p.mesout_callmtl_id);
var plans = await _repository.GetListAsync(p => ids.Contains(p.mesout_callmtl_id)).ConfigureAwait(false);
var ids = entities.Select(p => p.ID);
var plans = await _repository.GetListAsync(p => ids.Contains(p.ID)).ConfigureAwait(false);
plans.ForEach(p =>
{
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>
[Key]
public string mesout_frozen_id { get; set; }
public long mesout_frozen_id { get; set; }
/// <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();
//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_loc).HasMaxLength(10);
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.ConfigureDelivery(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.Modularity;
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.Frozen;
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<IDeliveryRepository, DeliveryEfCoreRepository>();
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.EntityFrameworkCore;
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.Frozen;
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<CallMtl> CallMtl { get; }
public virtual DbSet<MesChassis> MesChassis { get; }
public MesDbContext(DbContextOptions<MesDbContext> 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)
{
//context.AddBackgroundWorkerAsync<EosIncomingBackgroundWorker>();
context.AddBackgroundWorkerAsync<EosOutgoingBackgroundWorker>();
context.AddBackgroundWorkerAsync<EosIncomingBackgroundWorker>();
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.Threading;
using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent.Incoming;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent;
@ -29,10 +30,23 @@ public class EosIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{
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} 已关闭没有执行!");
return;
if (!_options.Value.IncomingOptions.Active)
{
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
}
else
{
if (!confitem.Active)
{
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
}
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.Threading;
using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent;
@ -29,10 +30,24 @@ public class EosOutgoingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{
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} 已关闭没有执行!");
return;
if (!confitem.Active)
{
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
}
}
Logger.LogInformation($"传出 采购上架单");

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

@ -1,5 +1,3 @@
//----------------------
// <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)
@ -72,7 +70,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
/// </summary>
/// <returns>Success</returns>
/// <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);
}
@ -83,7 +81,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
/// </summary>
/// <returns>Success</returns>
/// <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 disposeClient_ = false;
@ -98,8 +96,8 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
// Operation Path: "CargoState/GetMacStatic"
urlBuilder_.Append("CargoState/GetMacStatic");
urlBuilder_.Append("api/CargoState/GetMacStatic");
//urlBuilder_.Append("CargoState/GetMacStatic");
PrepareRequest(client_, request_, urlBuilder_);
var url_ = urlBuilder_.ToString();
@ -125,7 +123,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
var status_ = (int)response_.StatusCode;
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)
{
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>
/// <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);
}
@ -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>
/// <returns>Success</returns>
/// <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 disposeClient_ = false;
@ -269,7 +267,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
var status_ = (int)response_.StatusCode;
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)
{
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
{
/// <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))")]
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();
Client client = new Client(_options.Value.AutoRemote.IpAddress, _httpClientFactory.CreateClient());//调用客户记录
var flag = await client.GetMacStaticAsync().ConfigureAwait(false);
if (flag != 1)
if (flag.Code != 200)
{
// 记录错误日志并返回空列表
_logger.LogInformation($"读取到摄像头信息为不可用{DateTime.Now},请检查摄像头");
@ -94,7 +94,15 @@ public class InjectionMoldingRequestReader : IReader
{
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.Threading;
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.Store.Application.Contracts;
@ -13,7 +14,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent;
public class InjectionMoldingTaskIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
{
private readonly string Incoming = "InjectionMoldingTask Incoming";
private readonly string Incoming = "视觉接收";
private readonly IOptions<InjectionMoldingTaskOptions> _options;
@ -32,30 +33,36 @@ public class InjectionMoldingTaskIncomingBackgroundWorker : AsyncPeriodicBackgro
_options.Value.AutoRemote.Interval = 2;
#endif
Timer.Period = options.Value.AutoRemote.TimeCycle * 60 * 1000; //default 10 minutes
}
[UnitOfWork]
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{
Logger.LogInformation($"Starting: Handling {Incoming}");
if (!_options.Value.IncomingOptions.Active)
Logger.LogInformation($"开始: 执行 {Incoming}");
var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
var confitem = await configManager.GetInterfaceConfig("SJ-IN").ConfigureAwait(false);
if (confitem == null)
{
Logger.LogInformation($"{Incoming} is not active!");
return;
if (!_options.Value.IncomingOptions.Active)
{
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
}
int min = DateTime.Now.Hour*60+ DateTime.Now.Minute;//第二天00:05:00与当天23:55:00不执行避免tyrpnumber重复
if ( (24*60-5)<= min || min <= 5)
else
{
Logger.LogInformation($"{Incoming} 时间小于第二天00:05:00大于当天23:55:00");
return;
if (!confitem.Active)
{
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
}
Logger.LogInformation($"注塑任务");//缴库
var reader = workerContext.ServiceProvider.GetService<InjectionMoldingRequestReader>();
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": {
"Default": "Server=10.164.113.32,1818\\SHDB;Database=Wms_Dy_ShangHai;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;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",
"MES": "Server=10.164.113.32,1818\\SHDB;Database=MES_SH;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=dev.ccwin-in.com,13319;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false",
"MES": "Server=10.164.233.7;Database=MES_JY;uid=sa;pwd=Asdf1234$;TrustServerCertificate=True;Encrypt=false"
},
"AuthServer": {
@ -27,10 +27,10 @@
"Inventory": {
"BaseUrl": "http://localhost:59095/"
"BaseUrl": "http://dev.ccwin-in.com:60082/"
},
"Job": {
"BaseUrl": "http://localhost:59095/"
"BaseUrl": "http://dev.ccwin-in.com:60085/"
},
"Label": {
"BaseUrl": "http://dev.ccwin-in.com:60082/"
@ -39,10 +39,10 @@
"BaseUrl": "http://dev.ccwin-in.com:60082/"
},
"Store": {
"BaseUrl": "http://localhost:59095/"
"BaseUrl": "http://dev.ccwin-in.com:60085/"
},
"BaseData": {
"BaseUrl": "http://localhost:59094/"
"BaseUrl": "http://dev.ccwin-in.com:60084/"
}
@ -67,7 +67,7 @@
"InjectionMoldingTaskOptions": {
"AutoRemote": {
"IpAddress": "http://10.164.227.103:30000/",
"IpAddress": "http://dev.ccwin-in.com:60084/",
"UserName": "",
"Password": "",
"Token": "",
@ -78,14 +78,14 @@
"IncomingOptions": {
"Active": true,
"PeriodSeconds": 10,
"PeriodSeconds": 5,
"BatchSize": 10,
"MaxCount": 100,
"RetryTimes": 3
},
"OutgoingOptions": {
"Active": true,
"PeriodSeconds": 10,
"PeriodSeconds": 5,
"BatchSize": 10,
"MaxCount": 100,
"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.Wms.DataExchange.Domain;
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.DeliverRequest;
using Win_in.Sfs.Wms.DataExchange.WMS.InjectionIssueRequest;
@ -293,5 +294,9 @@ public class FawtygAutoMapperProfile : Profile
.Ignore(x => x.ReceivedQty)
.Ignore(x => x.Status)
.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(),
DataAction = EnumExchangeDataAction.Add,
SourceSystem = EnumSystemType.MES.ToString(),
SourceDataId = CallMtl.mesout_callmtl_id.ToString(),
SourceDataGroupCode = CallMtl.mesout_callmtl_id,
SourceDataId = CallMtl.ID.ToString(),
SourceDataGroupCode = CallMtl.ID.ToString(),
SourceDataDetailCode = CallMtl.mesout_callmtl_erpno,
SourceDataContent = JsonSerializer.Serialize(CallMtl),
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,
SourceSystem = EnumSystemType.MES.ToString(),
SourceDataId = Frozen.mesout_frozen_id.ToString(),
SourceDataGroupCode = Frozen.mesout_frozen_id,
SourceDataGroupCode = Frozen.mesout_frozen_id.ToString(),
SourceDataDetailCode = Frozen.mesout_frozen_part,
SourceDataContent = JsonSerializer.Serialize(Frozen),
WriteTime = DateTime.Now,
@ -101,7 +101,7 @@ public class FrozenReader : IReader
{
var mesNote = new MesNoteExchangeDto()
{
MesRequestNumber=Frozen.mesout_frozen_id,
MesRequestNumber=Frozen.mesout_frozen_id.ToString(),
Worker = Frozen.mesout_frozen_user,
Remark = Frozen.mesout_frozen_reason,
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.Threading;
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.Fawtyg.MesAgent.Incoming;
@ -32,12 +33,27 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{
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} 已关闭没有执行!");
return;
if (!_options.Value.IncomingOptions.Active)
{
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重复
if ( (24*60-5)<= min || min <= 5)
{
@ -64,6 +80,18 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
Logger.LogInformation($"处理储位调拨【{mesOutsFromExternalList_TransferNote.Count}】条数据");
#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
Logger.LogInformation($"读取报废(Scrap)");//报废
var scrapReader = workerContext.ServiceProvider.GetRequiredService<ScrapReader>();
@ -89,7 +117,6 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
#region 储位调拨 TransferNote
Logger.LogInformation($"读取储位调拨 (TransferNote)");//储位调拨
var TransferNoteReader = workerContext.ServiceProvider.GetRequiredService<QtyrfeReader>();
// var TransferNoteConverter = workerContext.ServiceProvider.GetRequiredService<QtyrfeConverter>();
//读取并保存TransferNote
var transferNoteFromExternalList = await TransferNoteReader.ReadAsync().ConfigureAwait(false);
//转换TransferNote
@ -97,16 +124,7 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
Logger.LogInformation($"处理储位调拨【{transferNoteFromExternalList.Count}】条数据");
#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
Logger.LogInformation($"读取成品发运 (Delivery)");//成品发运
@ -131,6 +149,18 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
Logger.LogInformation($"处理自动叫料【{callMtlFromExternalList.Count}】条数据");
#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}");
#region 未启用接口启用时需要看逻辑修改

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

@ -105,7 +105,7 @@ public class MesOutConverter : IIncomingConverter
//}
//else
//{
wmsProductReceiptNoteDetail.Lot = ""; //排序批次
wmsProductReceiptNoteDetail.Lot = ""; //排序批次
wmsProductReceiptNoteDetail.PackingCode = "";//箱标签
wmsProductReceiptNoteDetail.Status = EnumInventoryStatus.OK;
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.Threading;
using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Outgoing;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent;
@ -30,10 +31,24 @@ public class MesOutgoingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{
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!");
return;
if (!confitem.Active)
{
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
}
}
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<CustomerExchangeDto, CustomerEditInput>();
CreateMap<PurchasePriceExchangeDto, PurchasePriceSheetEditInput>();
CreateMap<PurchasePriceSheetDTO, PurchasePriceExchangeDto>();
CreateMap<SalePriceExchangeDto, SalePriceSheetEditInput>();
CreateMap<SalePriceSheetDTO,SalePriceExchangeDto> ();
CreateMap<StdCostPriceExchangeDto, StdCostPriceSheetEditInput>();
CreateMap<StdCostPriceSheetDTO, StdCostPriceExchangeDto>();
CreateMap<ProductRecycleNoteDTO, ProductRecycleNoteEditInput>();
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.Threading;
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.Fawtyg.TyrpAgent.Incoming;
@ -34,10 +35,24 @@ public class TyrpIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{
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} 已关闭没有执行!");
return;
if (!_options.Value.IncomingOptions.Active)
{
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
}
else
{
if (!confitem.Active)
{
Logger.LogInformation($"{Incoming} 已关闭没有执行!");
return;
}
}
//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.Threading;
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.Fawtyg.TyrpAgent.Outgoing;
@ -33,11 +34,23 @@ public class TyrpOutgoingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{
Logger.LogInformation($"开始: 执行 {Outgoing}");
if (!_options.Value.OutgoingOptions.Active)
var configManager = workerContext.ServiceProvider.GetRequiredService<IInterfaceConfigManager>();
var confitem = await configManager.GetInterfaceConfig("TYRP-OUT").ConfigureAwait(false);
if (confitem == null)
{
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
if (!_options.Value.OutgoingOptions.Active)
{
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
}
}
else
{
if (!confitem.Active)
{
Logger.LogInformation($"{Outgoing} 已关闭没有执行!");
return;
}
}
var scontrolWriter = workerContext.ServiceProvider.GetRequiredService<ScontrolWriter>();//scontrol中间表服务
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)
{
context.AddBackgroundWorkerAsync<IncomingToWmsWorker>();
context.AddBackgroundWorkerAsync<OutgoingFromWmsWorker>();
// context.AddBackgroundWorkerAsync<OutgoingFromWmsWorker>();
}
}

34
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);
}
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)
{
var item = JsonSerializer.Deserialize<ItemBasicEditInput>(incomingConverted.DataContent);
var itemBasicAppService = workerContext.ServiceProvider.GetRequiredService<IItemBasicAppService>();
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)
{

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

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

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

@ -29,6 +29,26 @@ public class OutgoingFromWmsWorker : AsyncPeriodicBackgroundWorkerBase
[UnitOfWork]
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
var exchangeDataAppService = workerContext.ServiceProvider.GetRequiredService<IExchangeDataAppService>();
var objectMapper = workerContext.ServiceProvider.GetRequiredService<IObjectMapper>();
@ -60,5 +80,6 @@ public class OutgoingFromWmsWorker : AsyncPeriodicBackgroundWorkerBase
{
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": {
"Default": "Server=10.164.233.6;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"
"Default": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_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": {
"Authority": "http://10.164.233.5:60083/",
"Authority": "http://dev.ccwin-in.com:60083/",
"RequireHttpsMetadata": "false",
"SwaggerClientId": "admin",
"SwaggerClientSecret": "1q2w3E*",
@ -26,16 +26,16 @@
"RemoteServices": {
"BaseData": {
"BaseUrl": "http://10.164.233.5:60084/"
"BaseUrl": "http://dev.ccwin-in.com:60084/"
},
"Store": {
"BaseUrl": "http://10.164.233.5:60085/"
"BaseUrl": "http://dev.ccwin-in.com:60085/"
},
"Label": {
"BaseUrl": "http://10.164.233.5:60082/"
"BaseUrl": "http://dev.ccwin-in.com:60082/"
},
"Auth": {
"BaseUrl": "http://10.164.233.5:60083/"
"BaseUrl": "http://dev.ccwin-in.com:60083/"
}
},
"DataExchangeOptions": {
@ -44,7 +44,7 @@
"PeriodSeconds": 10,
"RetryTimes": 1,
"BatchSize": 100,
"apiUrl": "http://10.164.233.5:60085/"
"apiUrl": "http://dev.ccwin-in.com:60085/"
},
"OutgoingOptions": {
"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>
</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">
<summary>
ERP料号

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

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

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

@ -130,4 +130,8 @@ public enum EnumIncomingDataType
/// 自动叫料
/// </summary>
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<ArchivedOutgoingFromWms> ArchivedOutgoingFromWms { get; set; }
public DbSet<InterfaceConfig> InterfaceConfig { get; set; }
#region Entities from the modules
/* 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.ConfigureOutgoingFromWms(options);
builder.ConfigureArchivedOutgoingFromWms(options);
builder.ConfigureInterfaceConfig(options);
builder.ConfigureMessageReceive(options);
/* 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<IOutgoingToExternalRepository, OutgoingToExternalEfCoreRepository>();
context.Services.AddTransient<IArchivedOutgoingToExternalRepository, ArchivedOutgoingToExternalEfCoreRepository>();
context.Services.AddTransient<IInterfaceConfigRepository, InterfaceConfigEfCoreRepository>();
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 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);
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]
[HttpPost("update")]
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}");
//}
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;

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}");
//}
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;

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}");
//}
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;

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}");
//}
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;

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);
}
else if (jobStatus == "Wait")
{
status.Add((int)EnumJobStatus.Wait);
}
//else if (jobStatus == "Wait")
//{
// status.Add((int)EnumJobStatus.Wait);
//}
else
{
status.Add((int)EnumJobStatus.Done);
@ -174,9 +174,9 @@ public class SparePartIssueJobsController : AbpController
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;

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 string Value { set; get; } = "";
public int Value { set; get; } =0;
// 错误消息
public string Msg { set; get; } = "";
}
@ -35,3 +35,23 @@ public class ResponCargoItem
[Display(Name = "货位状态")]
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.Mvc;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using Volo.Abp.Caching;
using Volo.Abp.Domain.Repositories;
@ -39,7 +40,19 @@ public class ItemContainerAppService
_repository = repository;
_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>
@ -86,7 +99,7 @@ public class ItemContainerAppService
{
//20240520苑静雯删除
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);
}

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);
return new TestResult(fileContent1.FileContents, ExportImportService.ContentType) { FileDownloadName = "Kitting导入文件" };
// return new JsonResult(new { Code = 200, FileDownloadName="" });
// return new TestResult(fileContent1.FileContents, ExportImportService.ContentType) { FileDownloadName = "Kitting导入文件" };
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} 未找到位置码信息");
}
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)
{
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);
positionCode.PartName = itemBasic.Name;
positionCode.PartDesc = itemBasic.Desc1;
if (string.IsNullOrEmpty(positionCode.BasicUom)) positionCode.BasicUom = itemBasic.BasicUom;
switch (positionCode.Type)
{
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,
string itemCode)
{
var entityList = await _repository
.FindAsync(p => p.ProdLineCode == productLineCode && p.ItemCode == itemCode).ConfigureAwait(false);
return ObjectMapper.Map<ProductionLineItem, ProductionLineItemDTO>(entityList);
var entity = await _repository
.FirstOrDefaultAsync(p => p.ProdLineCode == productLineCode && p.ItemCode == itemCode).ConfigureAwait(false);
return ObjectMapper.Map<ProductionLineItem, ProductionLineItemDTO>(entity);
}
[HttpPost("get-by-productlinecode-and-itemcode-and-erplocationcode-async")]
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>
[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>
public async Task<List<ResponCargoItem>> GetCargoStatic(string AreaID)
public async Task<ResponCargos> GetCargoStatic(string AreaID)
{
List<ResponCargoItem> result = new List<ResponCargoItem>();
@ -63,7 +66,14 @@ public class TestService:ApplicationService
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")]
@ -82,9 +92,18 @@ public class TestService:ApplicationService
//}
[HttpPost("GetCargoStatic1")]
/// <summary>
/// 异步开始生命周期操作不能堵塞
/// </summary>
public async Task<ResponCargos> GetCargoStatic1(ResponCargos p_cas)
{
return p_cas;
}
@ -93,7 +112,10 @@ public class TestService:ApplicationService
}
}
/// <summary>
/// 发给立体库主表
/// </summary>

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

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
@ -36,5 +37,42 @@ public sealed class CommonHelper
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>
[IgnoreUpdate]
public string Name { get; set; }
/// <summary>
/// 物品描述1
/// </summary>
[IgnoreUpdate]
public string Desc1 { get; set; }
/// <summary>
/// 物品描述2
/// </summary>
[IgnoreUpdate]
public string Desc2 { get; set; }
/// <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)
{
var query = await _repository.GetQueryableAsync().ConfigureAwait(false);
#region 校验
foreach (SplitPackingRec item in input)
{
#region 校验
if (item.OprType == OprTypeEnum.SplitBox || item.OprType == OprTypeEnum.MergeBox) //拆箱或合箱
{
if (item.FromPackingCode == item.ToPackingCode)
@ -43,13 +42,26 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
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)
{
//设置顶级箱码
item.FromTopPackingCode = CalcuTopPackingCode(query, item.FromPackingCode);
item.ToTopPackingCode = CalcuTopPackingCode(query, item.FromPackingCode); //ToPackingCode
item.FromTopPackingCode = CalcuTopPackingCode(input, historyLst, item);
item.ToTopPackingCode = CalcuTopPackingCode(input, historyLst, item);
if (item.FromTopPackingCode.IsNullOrEmpty())
{
item.FromTopPackingCode = item.FromPackingCode;
@ -59,14 +71,12 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
item.ToTopPackingCode = item.FromTopPackingCode;
}
//设置六个单据号
SetBillNumber(query, item);
SetBillNumber(hisLst2, item);
//拆箱时,如果目标箱不存在,插入目标箱(两个箱码相同)
string toPackCode = item.ToPackingCode;
var toHis = await query.Where(itm => itm.FromPackingCode == toPackCode && itm.ToPackingCode == toPackCode).OrderBy(itm => itm.CreationTime).FirstOrDefaultAsync().ConfigureAwait(false);
if (toHis == null)
if (hisLst3.ContainsKey(item.ToPackingCode) == false)
{
SplitPackingRec newObj = CommonHelper.CloneObj(item);
//SplitPackingRec newObj = CommonHelper.CloneObj(item);
SplitPackingRec newObj = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
newObj.SetId(GuidGenerator.Create());
newObj.OprType = OprTypeEnum.Other;
newObj.FromPackingCode = newObj.ToPackingCode; //克隆赋值
@ -75,11 +85,20 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
newObj.FromUom = newObj.ToUom;
newObj.FromQty = newObj.ToQty;
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());
var ret = await _repository.InsertAsync(newEntity, true).ConfigureAwait(false);
// var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false);
operLst.Add(newEntity);
}
else
{
@ -91,11 +110,14 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
{
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());
var ret = await _repository.InsertAsync(newEntity, true).ConfigureAwait(false);
//var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false);
operLst.Add(newEntity);
}
} //foreach
await _repository.InsertManyAsync(operLst).ConfigureAwait(false);
return true;
}
@ -199,48 +221,71 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
}
/// <summary>
/// 取顶级箱码
/// 取顶级箱码
/// </summary>
/// <param name="historyQuery">箱码历史</param>
/// <param name="packingCode">箱码,from to时都传入from</param>
/// <param name="memoryInput">本次操作要插入的拆箱记录列表,位于内存中</param>
/// <param name="historyLst">数据库中的历史数据:拆箱或合箱、to箱码=内存中的from箱码</param>
/// <param name="curRecord">内存中当前记录</param>
/// <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);
string ret = null;
SplitPackingRec? firstObj = null;
string toCode = packingCode;
//根据当前记录在内存列表中递归取得最上级拆箱记录:1-2 2-3 3-4 根据3-4能取到1-2
SplitPackingRec priorMemoryRecord = curRecord;
while (1 == 1)
{
firstObj = qry.FirstOrDefault(itm => itm.ToPackingCode == toCode);
if (firstObj == null)
var obj = memoryInput.FirstOrDefault(itm => itm.ToPackingCode == priorMemoryRecord.FromPackingCode);
if (obj != null)
{
ret = toCode;
break;
priorMemoryRecord = obj;
}
else
{
toCode = firstObj.FromPackingCode;
break;
}
}
return ret;
//var historyRec = historyQuery.Where(itm => itm.FromPackingCode == packingCode).OrderBy(itm => itm.CreationTime).FirstOrDefault();
//if (historyRec != null)
//{
// return historyRec.FromTopPackingCode;
//}
//else
/*
from箱码在数据库中取上级拆箱记录
1-1
2-2
1-2 to箱码=1=from箱码
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();
// if (historyRec != null)
// firstObj = qry.FirstOrDefault(itm => itm.ToPackingCode == toCode);
// 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();
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>> GetListByItemAsync(string itemCode);
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;
}
[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}")]
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,
string newWarehouseCode, string newLocationCode, string newContainerCode, string worker,
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,
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 = "完工报废")]
Scrap_Product = 3604,
/// <summary>
/// 报废转移
/// </summary>
[Display(Name = "报废转移")]
Scrap_Transfer = 3605,
/// <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,
/// <summary>
/// 注塑计划
/// 涂装上线计划
/// </summary>
[Display(Name = "EXCEL导入")]
[Display(Name = "涂装上线计划")]
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")]
public override async Task<List<KittingIssueJobDTO>> CreateManyAsync(List<KittingIssueJobEditInput> inputs)
{
foreach (var input in inputs)
{
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);
foreach (var kittingIssueJobDto in kittingIssueJobDtos)
{
@ -561,7 +568,7 @@ public class KittingIssueJobAppService
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
private async Task CheckDimensionalStorehouseAsync(KittingIssueJobEditInput input)
private async Task<bool> CheckDimensionalStorehouseAsync(KittingIssueJobEditInput input)
{
var jobDetailInputdetail = input.Details.FirstOrDefault();
@ -571,6 +578,11 @@ public class KittingIssueJobAppService
if (loctionDto.Type == EnumLocationType.DimensionalStorehouse)
{
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.Domain.Entities;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Users;
using Win_in.Sfs.Basedata.Application;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
@ -32,6 +33,7 @@ public class PurchaseOrderAppService :
private readonly IItemBasicAppService _itemBasicAppService;
private readonly ILocationAppService _locationAppService;
public readonly IPurchasePriceSheetAppService _purchasePriceSheetAppService;
private readonly ICurrentUser _currentUser;
public readonly ISupplierItemAppService _supplierItemAppService;
public PurchaseOrderAppService(
@ -41,6 +43,7 @@ public class PurchaseOrderAppService :
IItemBasicAppService itemBasicAppService
, ILocationAppService locationAppService,
IPurchasePriceSheetAppService purchasePriceSheetAppService,
ICurrentUser currentUser,
ISupplierItemAppService supplierItemAppService) : base(repository)
{
_repository = repository;
@ -52,7 +55,9 @@ ISupplierItemAppService supplierItemAppService) : base(repository)
base.UpdatePolicyName = PurchaseOrderPermissions.Update;
base.DeletePolicyName = PurchaseOrderPermissions.Delete;
_purchasePriceSheetAppService = purchasePriceSheetAppService;
_currentUser = currentUser;
_supplierItemAppService = supplierItemAppService;
}
#region 东阳使用
@ -103,8 +108,18 @@ ISupplierItemAppService supplierItemAppService) : base(repository)
foreach (var purchaseOrder in ImportData)
{
purchaseOrder.CreatorId = CurrentUser.Id;
purchaseOrder.Worker = CurrentUser.GetName();
if (CurrentUser == null)
{
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);
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);
}
//如果WMS管理报废库,生成库存转移
if (await SettingManager.IsTrueAsync(StoreSettings.Common.EnableScrapLocation).ConfigureAwait(false))
{
var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, EnumExchangeDataType.Transfer, dtos).ConfigureAwait(false);
await AddManyAsync(exchangeData).ConfigureAwait(false);
}
else
{
////如果WMS管理报废库,生成库存转移
//if (await SettingManager.IsTrueAsync(StoreSettings.Common.EnableScrapLocation).ConfigureAwait(false))
//{
// var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, EnumExchangeDataType.Transfer, dtos).ConfigureAwait(false);
// await AddManyAsync(exchangeData).ConfigureAwait(false);
//}
//else
//{
var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, EnumExchangeDataType.Scrap, dtos).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.Linq;
using System.Threading.Tasks;
using DocumentFormat.OpenXml.Vml.Spreadsheet;
using Volo.Abp.EventBus;
using Volo.Abp.Uow;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Event;
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.Shared;
using Win_in.Sfs.Wms.Store.Event.Transaction;
@ -38,42 +41,54 @@ public class ScrapNoteEventHandler
private async Task AddTransactionsAsync(List<ScrapNote> scrapNotes)
{
//如果WMS管理报废库,生成库存转移
if (await SettingManager.IsTrueAsync(StoreSettings.Common.EnableScrapLocation).ConfigureAwait(false))
var isScrapLocation = await SettingManager.IsTrueAsync(StoreSettings.Common.EnableScrapLocation).ConfigureAwait(false); //如果WMS管理报废库,生成报废库存转移(从HOLD库先转移到线边)
var holdLocation = await LocationAclService.GetFirstByTypeAsync(EnumLocationType.HOLD).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>();
foreach (var scrapNote in scrapNotes)
if (isScrapLocation && scrapNote.Worker == "MES")//管理隔离库并且是mes接口来的从隔离库直接报废(但是要先移到线边)
{
transferLogs.AddRange(BuildTransferLogs(scrapNote));
transferLogs.AddRange(BuildTransferLogs(scrapNote, holdLocation));
emptyTransactions.AddRange(BuildTransactions(scrapNote));
}
await TransferLogAppService.AddManyAsync(transferLogs).ConfigureAwait(false);
}
else
{
var transactions = new List<TransactionEditInput>();
foreach (var scrapNote in scrapNotes)
else
{
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);
}
}
private List<TransferLogEditInput> BuildTransferLogs(ScrapNote scrapNote)
private List<TransferLogEditInput> BuildTransferLogs(ScrapNote scrapNote, LocationDTO holdLocation)
{
var transferLogs = new List<TransferLogEditInput>();
foreach (var detail in scrapNote.Details.Where(detail => detail.Qty != 0))
{
var transferLog = ObjectMapper.Map<ScrapNoteDetail, TransferLogEditInput>(detail);
transferLog.TransType = TransType;
transferLog.TransSubType = Enum.Parse<EnumTransSubType>(scrapNote.Type);
transferLog.TransSubType = EnumTransSubType.Scrap_Transfer;
transferLog.Worker = scrapNote.Worker;
transferLog.DocNumber = scrapNote.Number;
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);
}
@ -89,6 +104,7 @@ public class ScrapNoteEventHandler
var transaction = ObjectMapper.Map<ScrapNoteDetail, TransactionEditInput>(detail);
transaction.TransType = TransType;
transaction.TransSubType = Enum.Parse<EnumTransSubType>(deliverNote.Type);
transaction.TransInOut = EnumTransInOut.Out;
transaction.Worker = deliverNote.Worker;
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/"
},
"BaseData": {
"BaseUrl": "http://dev.ccwin-in.com:60084/"
//"BaseUrl": "http://localhost:59094/"
//"BaseUrl": "http://dev.ccwin-in.com:60084/"
"BaseUrl": "http://localhost:59094/"
},
"Default": {
"BaseUrl": "http://dev.ccwin-in.com:60083/"
@ -142,6 +142,7 @@
},
"FileStorage": {
"BaseUrl": "http://dev.ccwin-in.com:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Inventory": {
"BaseUrl": "http://localhost:59095/"
@ -150,10 +151,12 @@
"BaseUrl": "http://localhost:59095/"
},
"Label": {
"BaseUrl": "http://dev.ccwin-in.com:60082/"
"BaseUrl": "http://dev.ccwin-in.com:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Message": {
"BaseUrl": "http://dev.ccwin-in.com:60082/"
"BaseUrl": "http://dev.ccwin-in.com:60082/"
//"BaseUrl": "http://localhost:59092/"
},
"Store": {
"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