郑勃旭 2 years ago
parent
commit
00bbf75cb1
  1. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Scraps/Scrap.cs
  2. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/MesOut/MesOutDbContextModelCreatingExtensions.cs
  3. 1
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Scrap/ScrapDbContextModelCreatingExtensions.cs
  4. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/FawtygAutoMapperProfile.cs
  5. 4
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/FawtygAutoMapperProfile.cs
  6. 19
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluConverter.cs
  7. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluReader.cs
  8. 14
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesIncomingBackgroundWorker.cs
  9. 27
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesOutConverter.cs
  10. 9
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/ScrapConverter.cs
  11. 10
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/appsettings.json
  12. 2
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/AgentModule.cs
  13. 41
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsExtensions.cs
  14. 32
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Locations/LocationAutoMapperProfile.cs
  15. 7
      be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs

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

@ -13,7 +13,7 @@ public class Scrap : Entity
/// <summary>
/// ERP接收时间
/// </summary>
public decimal mesout_asd_dt_w { get; set; }
public string mesout_asd_dt_w { get; set; }
/// <summary>
/// 类型
/// </summary>
@ -64,10 +64,8 @@ public class Scrap : Entity
/// </summary>
public long Yl1 { get; set; }
public string Mes_Barcode { get; set; }
public override object[] GetKeys()
{
return new object[] { mesout_asd_id };
}
}

4
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/MesOut/MesOutDbContextModelCreatingExtensions.cs

@ -11,12 +11,12 @@ public static class MesOutDbContextModelCreatingExtensions
builder.Entity<MesOut>(b =>
{
//Configure table & schema Name
b.ToTable(options.TablePrefix + "mesout_wms", options.Schema);
b.ToTable(options.TablePrefix + "mesout", options.Schema);
//Configure ABP properties
b.ConfigureByConvention();
//Properties
b.Property(q => q.Mesout_ref_nbr).HasMaxLength(20);
b.Property(q => q.Mesout_ref_nbr).HasMaxLength(36);
b.Property(q => q.Mesout_id).HasMaxLength(1);
b.Property(q => q.Mesout_part).HasMaxLength(20);
b.Property(q => q.Mesout_date).HasMaxLength(8);

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

@ -30,7 +30,6 @@ public static class ScrapDbContextModelCreatingExtensions
b.Property(q => q.mesout_asd_stat).HasMaxLength(1);
b.Property(q => q.SCN).HasMaxLength(45);
b.Property(q => q.Yl1);
b.Property(q => q.Mes_Barcode).HasMaxLength(50);
});
}

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

@ -60,7 +60,6 @@ public class FawtygAutoMapperProfile : Profile
.Ignore(x => x.Details)
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.Status)
.Ignore(x => x.RpNumber)
.Ignore(x => x.DockCode)
.Ignore(x => x.Remark)
@ -69,6 +68,7 @@ public class FawtygAutoMapperProfile : Profile
;
CreateMap<SupplierAsnDetailExchangeDto, SupplierAsnDetailInput>()
.ForMember(x => x.RecommendErpCode, y => y.MapFrom(d => d.LocationErpCode))
.Ignore(x => x.ItemName)
.Ignore(x => x.ItemDesc1)
.Ignore(x => x.ItemDesc2)

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

@ -2,6 +2,7 @@ using AutoMapper;
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.MaterialRequest;
using Win_in.Sfs.Wms.DataExchange.WMS.PCK;
using Win_in.Sfs.Wms.DataExchange.WMS.ProductReceiptNote;
@ -18,7 +19,8 @@ public class FawtygAutoMapperProfile : Profile
CreateMap<IncomingFromExternal, ArchivedIncomingFromExternal>();
CreateMap<OutgoingFromWms, ArchivedOutgoingFromWms>();
CreateMap<OutgoingToExternal, ArchivedOutgoingToExternal>();
CreateMap<BackFlushNoteExchangeDto, BackFlushNoteEditInput>();
CreateMap<BackFlushNoteDetailExchangeDto, BackFlushNoteDetailInput>();
CreateMap<ProductReceiptNoteExchangeDto, ProductReceiptNoteEditInput>()
.Ignore(x => x.Number)

19
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluConverter.cs

@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
@ -10,6 +11,7 @@ using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.DataExchange.Domain;
using Win_in.Sfs.Wms.DataExchange.WMS.BackFlushNote;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming;
@ -70,7 +72,8 @@ public class BackFluConverter : IIncomingConverter
incomingToWms.SetEffectiveDate(first.EffectiveDate);
var exchangeBack = JsonSerializer.Deserialize<BackFlushNoteExchangeDto>(first.DestinationDataContent);
var wmsBack = _objectMapper.Map<BackFlushNoteExchangeDto, BackFlushNoteEditInput>(exchangeBack);
var item1 = await _itemBasicAppService.GetByCodeAsync(wmsBack.ItemCode).ConfigureAwait(false);
var item1 = await _itemBasicAppService.GetByCodeAsync(wmsBack.ItemCode).ConfigureAwait(false);
wmsBack.ProductReceiptNumber = DateTime.Now.ToShortDateString().Replace("/","").Trim();
if (item1 != null)
{
wmsBack.ItemName = item1.Name;
@ -80,7 +83,18 @@ public class BackFluConverter : IIncomingConverter
{
wmsBack.ItemName = "";
wmsBack.Uom = "";
}
}
wmsBack.PackingCode = "jiekou";
wmsBack.LocationCode = "jiekou";
wmsBack.LocationArea = "jiekou";
wmsBack.LocationGroup = "jiekou";
wmsBack.LocationErpCode = "jiekou";
wmsBack.ProductionPlanNumber = "jiekou";
wmsBack.Workshop = "jiekou";
wmsBack.ProdLine = "jiekou";
wmsBack.WarehouseCode = "jiekou";
wmsBack.Lot = "jiekou";
wmsBack.Details = new List<BackFlushNoteDetailInput>();
foreach (var incomingFromExternal in group.ToList())
{
@ -105,6 +119,7 @@ public class BackFluConverter : IIncomingConverter
wmsBackDetail.WarehouseCode = loctioncode.WarehouseCode;
wmsBackDetail.LocationArea = loctioncode.AreaCode;
wmsBackDetail.LocationGroup = loctioncode.LocationGroupCode;
wmsBackDetail.PackingCode = "jiekou";
wmsBack.Details.Add(wmsBackDetail);
}
incomingToWms.DataContent = JsonSerializer.Serialize(wmsBack);

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

@ -76,14 +76,14 @@ public class BackFluReader : IReader
{
DataType = EnumIncomingDataType.BackFlush.ToString(),
DataAction = EnumExchangeDataAction.Add,
SourceSystem = EnumSystemType.ERP.ToString(),
SourceSystem = EnumSystemType.MES.ToString(),
SourceDataId = backflu.scmout_type,
SourceDataGroupCode = backflu.scmout_nbr,
SourceDataDetailCode = backflu.scmout_part,
SourceDataContent = JsonSerializer.Serialize(backflu),
WriteTime = DateTime.Now,
Writer = nameof(MesIncomingBackgroundWorker),
DestinationSystem = EnumSystemType.ERP.ToString(),
DestinationSystem = EnumSystemType.MES.ToString(),
};
return incomingData;
}
@ -94,7 +94,8 @@ public class BackFluReader : IReader
var back = new BackFlushNoteExchangeDto()
{
ActiveDate = DateTime.ParseExact(backflu.scmout_dt_w, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture),
// ActiveDate = DateTime.ParseExact(backflu.scmout_dt_w, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture),
ActiveDate = Convert.ToDateTime(backflu.scmout_dt_w.Substring(0, 4) + "-" + backflu.scmout_dt_w.Substring(4, 2) + "-" + backflu.scmout_dt_w.Substring(6, 2)),
ItemCode = backflu.scmout_part,
Number = backflu.scmout_nbr
};

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

@ -49,14 +49,14 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
//var pullTaskFromExternalList = await pullTaskReader.ReadAsync().ConfigureAwait(false);
////转换PullTask
//await pullTaskConverter.ConvertAsync(pullTaskFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read Scrap");
Logger.LogInformation($"Read Scrap");
//var scrapReader = workerContext.ServiceProvider.GetRequiredService<ScrapReader>();
//var scrapConverter = workerContext.ServiceProvider.GetRequiredService<ScrapConverter>();
////读取并保存Scrap
//var scrapsFromExternalList = await scrapReader.ReadAsync().ConfigureAwait(false);
////转换Scrap
//await scrapConverter.ConvertAsync(scrapsFromExternalList).ConfigureAwait(false);
var scrapReader = workerContext.ServiceProvider.GetRequiredService<ScrapReader>();
var scrapConverter = workerContext.ServiceProvider.GetRequiredService<ScrapConverter>();
//读取并保存Scrap
var scrapsFromExternalList = await scrapReader.ReadAsync().ConfigureAwait(false);
//转换Scrap
await scrapConverter.ConvertAsync(scrapsFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read Issue");
//var pckHandleService = workerContext.ServiceProvider.GetRequiredService<IssueReader>();

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

@ -87,7 +87,7 @@ public class MesOutConverter : IIncomingConverter
wmsProductReceiptNoteDetail.Lot = ""; //排序批次
wmsProductReceiptNoteDetail.PackingCode = "";//箱标签
wmsProductReceiptNoteDetail.Status = EnumInventoryStatus.OK;
wmsProductReceiptNoteDetail.WarehouseCode = "";
wmsProductReceiptNoteDetail.WarehouseCode = "T8";
wmsProductReceiptNoteDetail.LocationArea = "";
wmsProductReceiptNoteDetail.LocationGroup = "";
var loc = await _locationAppService.GetListByTypesAndErpCodeAsync(types, wmsProductReceiptNoteDetail.LocationErpCode).ConfigureAwait(false);
@ -95,27 +95,24 @@ public class MesOutConverter : IIncomingConverter
{
wmsProductReceiptNoteDetail.LocationCode = loc[0].Code;
}
try
{
var item = await _itemBasicAppService.GetByCodeAsync(wmsProductReceiptNoteDetail.ItemCode).ConfigureAwait(false);
var item = await _itemBasicAppService.GetByCodeAsync(wmsProductReceiptNoteDetail.ItemCode).ConfigureAwait(false);
if (item != null)
{
wmsProductReceiptNoteDetail.ItemName = item.Name;
wmsProductReceiptNoteDetail.ItemDesc1 = !string.IsNullOrEmpty(item.Desc1) ? item.Desc1 : "";
wmsProductReceiptNoteDetail.ItemDesc2 = !string.IsNullOrEmpty(item.Desc2) ? item.Desc2 : "";
wmsProductReceiptNoteDetail.Uom = !string.IsNullOrEmpty(item.BasicUom) ? item.BasicUom : "";
wmsProductReceiptNoteDetail.ItemName = !string.IsNullOrEmpty(item.Name) ? item.Name : "";
wmsProductReceiptNoteDetail.ItemDesc1 = !string.IsNullOrEmpty(item.Desc1) ? item.Desc1 : "";
wmsProductReceiptNoteDetail.ItemDesc2 = !string.IsNullOrEmpty(item.Desc2) ? item.Desc2 : "";
wmsProductReceiptNoteDetail.Uom = !string.IsNullOrEmpty(item.BasicUom) ? item.BasicUom : "";
}
}
catch (Exception)
{
else
{
wmsProductReceiptNoteDetail.ItemName = "";
wmsProductReceiptNoteDetail.ItemDesc1 = "";
wmsProductReceiptNoteDetail.ItemDesc2 = "";
wmsProductReceiptNoteDetail.Uom = "";
}
wmsProductReceiptNote.Details.Add(wmsProductReceiptNoteDetail);
}
wmsProductReceiptNote.Details.Add(wmsProductReceiptNoteDetail);
}
incomingToWms.DataContent = JsonSerializer.Serialize(wmsProductReceiptNote);
incomingToWmsList.Add(incomingToWms);

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

@ -91,11 +91,18 @@ public class ScrapConverter : IIncomingConverter
var item = await _itemBasicAppService.GetByCodeAsync(wmsScrapDetail.ItemCode).ConfigureAwait(false);
if (item != null)
{
wmsScrapDetail.ItemName = item.Name;
wmsScrapDetail.ItemName =!string.IsNullOrEmpty(item.Name) ? item.Name : "";
wmsScrapDetail.ItemDesc1 = !string.IsNullOrEmpty(item.Desc1) ? item.Desc1 : "";
wmsScrapDetail.ItemDesc2 = !string.IsNullOrEmpty(item.Desc2) ? item.Desc2 : "";
wmsScrapDetail.Uom = !string.IsNullOrEmpty(item.BasicUom) ? item.BasicUom : "";
}
else
{
wmsScrapDetail.ItemName = "";
wmsScrapDetail.ItemDesc1 = "";
wmsScrapDetail.ItemDesc2 = "";
wmsScrapDetail.Uom ="";
}
wmsScarp.Details.Add(wmsScrapDetail);
}

10
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/appsettings.json

@ -1,12 +1,12 @@
{
"ConnectionStrings": {
"Default": "Server=10.164.113.32,1818\\SHDB;Database=Wms_Dy_ShangHai;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;TrustServerCertificate=True",
"DataExchange": "Server=10.164.113.32,1818\\SHDB;Database=DataExchange_Main;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;TrustServerCertificate=True",
"DataExchange": "Server=10.164.113.32,1818\\SHDB;Database=Wms_DataExchange_Main_Dy_ShangHai;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;TrustServerCertificate=True",
"MES": "Server=10.164.113.32,1818\\SHDB;Database=MES_SH;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;TrustServerCertificate=True"
},
"AuthServer": {
"Authority": "http://dev.ccwin-in.com:60083/",
"Authority": "http://10.164.113.31:60083/",
"RequireHttpsMetadata": "false",
"SwaggerClientId": "admin",
"SwaggerClientSecret": "1q2w3E*",
@ -24,13 +24,13 @@
"RemoteServices": {
"BaseData": {
"BaseUrl": "http://dev.ccwin-in.com:60084/"
"BaseUrl": "http://10.164.113.31:60084/"
},
"Store": {
"BaseUrl": "http://dev.ccwin-in.com:60085/"
"BaseUrl": "http://10.164.113.31:60085/"
},
"Label": {
"BaseUrl": "http://dev.ccwin-in.com:60082/"
"BaseUrl": "http://10.164.113.31:60082/"
}
},

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

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

@ -155,44 +155,9 @@ public static class IncomingToWmsExtensions
public static async Task HandleBackFlushsAsync(this IncomingToWms incomingConverted, PeriodicBackgroundWorkerContext workerContext)
{
var backFlush = JsonSerializer.Deserialize<BackFlushNoteEditInput>(incomingConverted.DataContent);
var balanceAppService = workerContext.ServiceProvider.GetRequiredService<IBalanceAppService>();
var balanceDtos = await balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput()
{
Qty = backFlush.Qty,
ItemCode = backFlush.ItemCode,
LocationAreas = new List<string>() { backFlush.LocationArea },
LocationTypes = new List<EnumLocationType>()
{
EnumLocationType.WIP,
},
Statuses = new List<EnumInventoryStatus>()
{
EnumInventoryStatus.OK,
}
}).ConfigureAwait(false);
foreach (var balanceDto in balanceDtos)
{
backFlush.Details.Add(new BackFlushNoteDetailInput()
{
Qty = balanceDto.Qty,
ItemCode = balanceDto.ItemCode,
ArriveDate = balanceDto.ArriveDate,
BomVersion = string.Empty,
ContainerCode = string.Empty,
ExpireDate = balanceDto.ExpireDate,
Lot = balanceDto.Lot,
LocationCode = balanceDto.LocationCode,
LocationErpCode = balanceDto.LocationErpCode,
LocationArea = balanceDto.LocationArea,
LocationGroup = balanceDto.LocationGroup
});
}
var backFlushAppService = workerContext.ServiceProvider.GetRequiredService<IBackFlushNoteAppService>();
// await backFlushAppService.CreateAsync(backFlush);
List<BackFlushNoteEditInput> back = new List<BackFlushNoteEditInput>();
back.Add(backFlush);
await backFlushAppService.CreateManyAsync(back).ConfigureAwait(false);
}
}

32
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Locations/LocationAutoMapperProfile.cs

@ -17,22 +17,22 @@ public partial class BasedataApplicationAutoMapperProfile : Profile
.Ignore(x => x.TenantId)
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.ConcurrencyStamp)
.Ignore(x => x.EnableMixItem)
.Ignore(x => x.EnableMixLot)
.Ignore(x => x.EnableMixStatus)
.Ignore(x => x.EnableNegative)
.Ignore(x => x.EnableKeepZero)
.Ignore(x => x.EnableOpportunityCount)
.Ignore(x => x.EnablePick)
.Ignore(x => x.EnableOverPick)
.Ignore(x => x.EnableWholeStore)
.Ignore(x => x.EnableBreakStore)
.Ignore(x => x.EnableShip)
.Ignore(x => x.EnableReceive)
.Ignore(x => x.EnableReturnToSupplier)
.Ignore(x => x.EnableReturnFromCustomer)
.Ignore(x => x.EnableSplitPallet)
.Ignore(x => x.EnableSplitBox)
//.Ignore(x => x.EnableMixItem)
//.Ignore(x => x.EnableMixLot)
//.Ignore(x => x.EnableMixStatus)
//.Ignore(x => x.EnableNegative)
//.Ignore(x => x.EnableKeepZero)
//.Ignore(x => x.EnableOpportunityCount)
//.Ignore(x => x.EnablePick)
//.Ignore(x => x.EnableOverPick)
//.Ignore(x => x.EnableWholeStore)
//.Ignore(x => x.EnableBreakStore)
//.Ignore(x => x.EnableShip)
//.Ignore(x => x.EnableReceive)
//.Ignore(x => x.EnableReturnToSupplier)
//.Ignore(x => x.EnableReturnFromCustomer)
//.Ignore(x => x.EnableSplitPallet)
//.Ignore(x => x.EnableSplitBox)
;

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

@ -772,8 +772,11 @@ public abstract class SfsCrudWithDetailsAppServiceBase<TEntity, TEntityDto, TReq
{
if (entity != null)
{
var first = entity.GetProps().First(p => p.Name == "Worker");
first.SetValue(first, CurrentUser.GetUserName());
if (entity.GetProps().Any(p => p.Name == "Worker"))
{
var first = entity.GetProps().First(p => p.Name == "Worker");
first.SetValue(first, CurrentUser.GetUserName());
}
}
var hasEntity = entity != null;

Loading…
Cancel
Save