|
|
|
|
@ -347,6 +347,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
{
|
|
|
|
|
using var scope = _host.Services.CreateScope();
|
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
List<string> cannotIn = new List<string>();
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
@ -399,9 +400,9 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
select new { a, b };//在上面的基础上获取对应托盘的外侧库位的空库位信息
|
|
|
|
|
|
|
|
|
|
WmsBaseLocation? wmsBaseLocation = null;
|
|
|
|
|
wmsBaseLocation ??= outBill.FirstOrDefault()?.b;//先找相同物料的外侧库位
|
|
|
|
|
wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault(t => t.locDeep == 1);//找不到再找深库位
|
|
|
|
|
wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();//找不到再找任意库位
|
|
|
|
|
wmsBaseLocation ??= outBill.Where(t=> !cannotIn.Contains(t.b.locationCode)).FirstOrDefault()?.b;//先找相同物料的外侧库位
|
|
|
|
|
wmsBaseLocation ??= wmsBaseLocations.Where(t => !cannotIn.Contains(t.locationCode)).Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault(t => t.locDeep == 1);//找不到再找深库位
|
|
|
|
|
wmsBaseLocation ??= wmsBaseLocations.Where(t => !cannotIn.Contains(t.locationCode)).Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();//找不到再找任意库位
|
|
|
|
|
//深浅库位问题?库位入库优先级等
|
|
|
|
|
|
|
|
|
|
var AgvEquip = StaticData.BaseEquip.First(t => t.objid == 28);//5楼叉车
|
|
|
|
|
@ -414,8 +415,9 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
.Where(t => t.locColumn == wmsBaseLocation.locColumn).Any();
|
|
|
|
|
if (!hasLocation)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(DateTime.Now + $":目标库位{wmsBaseLocation.locationCode}的浅库位库位状态异常,无法入库");
|
|
|
|
|
_logger.Info($"目标库位{wmsBaseLocation.locationCode}的浅库位库位状态异常,无法入库");
|
|
|
|
|
cannotIn.Add(wmsBaseLocation.locationCode);
|
|
|
|
|
Console.WriteLine(DateTime.Now + $":目标库位{cannotIn.Join(",")}的浅库位库位状态异常,无法入库");
|
|
|
|
|
_logger.Info($"目标库位{cannotIn.Join(",")}的浅库位库位状态异常,无法入库");
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -466,6 +468,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
cannotIn.Clear();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -1447,22 +1450,6 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == location.containerCode);
|
|
|
|
|
if (mesBasePalletInfo != null)
|
|
|
|
|
{
|
|
|
|
|
WmsProductOutstockDetail detail = new()
|
|
|
|
|
{
|
|
|
|
|
productId = item.productId,
|
|
|
|
|
productOutstockId = item.productOutstockId,
|
|
|
|
|
locationCode = location.locationCode,
|
|
|
|
|
executeStatus = "1",
|
|
|
|
|
beginTime = DateTime.Now,
|
|
|
|
|
warehouseId = item.warehouseId,
|
|
|
|
|
erpAmount = 0,
|
|
|
|
|
confirmAmount = 0,
|
|
|
|
|
outstockAmount = 1,
|
|
|
|
|
planAmount = 1,
|
|
|
|
|
productBatch = item.productBatch,
|
|
|
|
|
productOutstockDetailId = StaticData.SnowId.NextId(),
|
|
|
|
|
productBarcode = mesBasePalletInfo.materialBarcode,
|
|
|
|
|
};
|
|
|
|
|
if (location.locDeep == 1)//如果是深库位
|
|
|
|
|
{
|
|
|
|
|
int? row = 0;
|
|
|
|
|
@ -1588,6 +1575,22 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
useFlag = 1,
|
|
|
|
|
qty = 1
|
|
|
|
|
};
|
|
|
|
|
WmsProductOutstockDetail detail = new()
|
|
|
|
|
{
|
|
|
|
|
productId = item.productId,
|
|
|
|
|
productOutstockId = item.productOutstockId,
|
|
|
|
|
locationCode = location.locationCode,
|
|
|
|
|
executeStatus = "1",
|
|
|
|
|
beginTime = DateTime.Now,
|
|
|
|
|
warehouseId = item.warehouseId,
|
|
|
|
|
erpAmount = 0,
|
|
|
|
|
confirmAmount = 0,
|
|
|
|
|
outstockAmount = 1,
|
|
|
|
|
planAmount = 1,
|
|
|
|
|
productBatch = item.productBatch,
|
|
|
|
|
productOutstockDetailId = StaticData.SnowId.NextId(),
|
|
|
|
|
productBarcode = mesBasePalletInfo.materialBarcode,
|
|
|
|
|
};
|
|
|
|
|
location.locationStatus = "6";
|
|
|
|
|
location.updateBy = "WCS";
|
|
|
|
|
location.updateTime = DateTime.Now;
|
|
|
|
|
|