Browse Source

mes接口添加

dev_DY_CC
lvzb 11 months ago
parent
commit
6f7f9e6443
  1. 10
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/IMesChassisManager.cs
  2. 8
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/IMesChassisRepository.cs
  3. 49
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/MesChassis.cs
  4. 47
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Chassis/MesChassisManager.cs
  5. 27
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Chassis/MesChassisDbContextModelCreatingExtensions.cs
  6. 13
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Chassis/MesChassisEfCoreRepository.cs
  7. 1
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeDbContextModelCreatingExtensions.cs
  8. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeEntityFrameworkCoreFawtygModule.cs
  9. 3
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/MesDbContext.cs
  10. 5
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/FawtygAutoMapperProfile.cs
  11. 92
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesChassisConverter.cs
  12. 116
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesChassisReader.cs
  13. 34
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesIncomingBackgroundWorker.cs
  14. 36
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsExtensions.cs
  15. 5
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsWorker.cs
  16. 4
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/appsettings.json
  17. 50
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/Chassis/ChassisExchangeDto.cs
  18. 35
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml
  19. 4
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.DbMigrator/appsettings.json
  20. 4
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Domain.Shared/Enums/EnumIncomingDataType.cs

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

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

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

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

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

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

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

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

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

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

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

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

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

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;
}
}

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

@ -76,16 +76,16 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
//#endregion //#endregion
#region 报废 Scrap //#region 报废 Scrap
Logger.LogInformation($"读取报废(Scrap)");//报废 //Logger.LogInformation($"读取报废(Scrap)");//报废
var scrapReader = workerContext.ServiceProvider.GetRequiredService<ScrapReader>(); //var scrapReader = workerContext.ServiceProvider.GetRequiredService<ScrapReader>();
var scrapConverter = workerContext.ServiceProvider.GetRequiredService<ScrapConverter>(); //var scrapConverter = workerContext.ServiceProvider.GetRequiredService<ScrapConverter>();
//读取并保存Scrap ////读取并保存Scrap
var scrapsFromExternalList = await scrapReader.ReadAsync().ConfigureAwait(false); //var scrapsFromExternalList = await scrapReader.ReadAsync().ConfigureAwait(false);
//转换Scrap ////转换Scrap
await scrapConverter.ConvertAsync(scrapsFromExternalList).ConfigureAwait(false); //await scrapConverter.ConvertAsync(scrapsFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"处理报废【{scrapsFromExternalList.Count}】条数据"); //Logger.LogInformation($"处理报废【{scrapsFromExternalList.Count}】条数据");
#endregion //#endregion
//#region 耗用单 BackFlush //#region 耗用单 BackFlush
//Logger.LogInformation($"读取耗用单 (BackFlush)");//耗用单 //Logger.LogInformation($"读取耗用单 (BackFlush)");//耗用单
@ -109,7 +109,7 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
//Logger.LogInformation($"处理储位调拨【{transferNoteFromExternalList.Count}】条数据"); //Logger.LogInformation($"处理储位调拨【{transferNoteFromExternalList.Count}】条数据");
//#endregion //#endregion
//#region 成品发运 Delivery //#region 成品发运 Delivery
//Logger.LogInformation($"读取成品发运 (Delivery)");//成品发运 //Logger.LogInformation($"读取成品发运 (Delivery)");//成品发运
@ -134,6 +134,18 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
//Logger.LogInformation($"处理自动叫料【{callMtlFromExternalList.Count}】条数据"); //Logger.LogInformation($"处理自动叫料【{callMtlFromExternalList.Count}】条数据");
//#endregion //#endregion
#region 底盘 Chassis
Logger.LogInformation($"读取底盘(Chassis)");//底盘
var mesChassisReader = workerContext.ServiceProvider.GetRequiredService<MesChassisReader>();
var mesChassisConverter = workerContext.ServiceProvider.GetRequiredService<MesChassisConverter>();
//读取并保存Chassis
var mesChassisFromExternalList = await mesChassisReader.ReadAsync().ConfigureAwait(false);
//转换Chassis
await mesChassisConverter.ConvertAsync(mesChassisFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"处理底盘【{mesChassisFromExternalList.Count}】条数据");
#endregion
Logger.LogInformation($"提交: 执行 {Incoming}"); Logger.LogInformation($"提交: 执行 {Incoming}");
#region 未启用接口启用时需要看逻辑修改 #region 未启用接口启用时需要看逻辑修改

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

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

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

@ -107,7 +107,7 @@ public class IncomingToWmsWorker : AsyncPeriodicBackgroundWorkerBase
incomingToWms.SetError(EnumExchangeDataErrorCode.Exception, e.Message); incomingToWms.SetError(EnumExchangeDataErrorCode.Exception, e.Message);
} }
//归档并删除 //归档并删除
// await incomingToWmsManager.ArchiveAsync(incomingToWms).ConfigureAwait(false); await incomingToWmsManager.ArchiveAsync(incomingToWms).ConfigureAwait(false);
} }
} }
@ -213,6 +213,9 @@ public class IncomingToWmsWorker : AsyncPeriodicBackgroundWorkerBase
case EnumIncomingDataType.CallMtl: case EnumIncomingDataType.CallMtl:
await incomingToWms.HandleInjectionIssueRequestAsync(workerContext).ConfigureAwait(false); await incomingToWms.HandleInjectionIssueRequestAsync(workerContext).ConfigureAwait(false);
break; break;
case EnumIncomingDataType.MesChassis:
await incomingToWms.HandleChassisAsync(workerContext).ConfigureAwait(false);
break;
case EnumIncomingDataType.None: case EnumIncomingDataType.None:
default: default:
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();

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

@ -26,10 +26,10 @@
"RemoteServices": { "RemoteServices": {
"BaseData": { "BaseData": {
"BaseUrl": "http://localhost:59094/" "BaseUrl": "http://dev.ccwin-in.com:60084/"
}, },
"Store": { "Store": {
"BaseUrl": "http://localhost:59095/" "BaseUrl": "http://dev.ccwin-in.com:60085/"
}, },
"Label": { "Label": {
"BaseUrl": "http://dev.ccwin-in.com:60082/" "BaseUrl": "http://dev.ccwin-in.com:60082/"

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

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

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

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

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

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

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

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

Loading…
Cancel
Save