|
|
|
|
@ -41,6 +41,13 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
//createRemoveThread.Name = "CreateRemoveLogic";
|
|
|
|
|
//createRemoveThread.Start();
|
|
|
|
|
|
|
|
|
|
//二楼、五楼人工指定库位成品出库任务
|
|
|
|
|
var CreateProductTaskByLocationCodeThread = new Thread(CreateProductTaskByLocationCodeLogic);
|
|
|
|
|
CreateProductTaskByLocationCodeThread.IsBackground = true;
|
|
|
|
|
CreateProductTaskByLocationCodeThread.Name = "CreateFiveProductTaskLogic";
|
|
|
|
|
CreateProductTaskByLocationCodeThread.Start();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//创建退库任务
|
|
|
|
|
var stockReturnThread = new Thread(StockReturnLogic);
|
|
|
|
|
stockReturnThread.IsBackground = true;
|
|
|
|
|
@ -134,7 +141,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
.Where(t => t.executeStatus == "0")
|
|
|
|
|
.Where(t => t.outstockAmount > t.realOutstockAmount)
|
|
|
|
|
.Where(t => t.taskType == "5")
|
|
|
|
|
.Where(t => t.operationType =="0")
|
|
|
|
|
.Where(t => t.operationType == "0")
|
|
|
|
|
.Where(t => t.auditStatus == "1")
|
|
|
|
|
.ToList();
|
|
|
|
|
|
|
|
|
|
@ -143,7 +150,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
{
|
|
|
|
|
var locations = dbContext.WmsBaseLocation
|
|
|
|
|
.Where(t => rawOutStock.Select(x => x.locationCode).Contains(t.locationCode))
|
|
|
|
|
.AsEnumerable()
|
|
|
|
|
.AsEnumerable()
|
|
|
|
|
.OrderBy(x => x.locDeep == 2 ? 0 : 99)
|
|
|
|
|
.Select((loc, index) => new { loc.locationCode, Index = index })
|
|
|
|
|
.ToDictionary(item => item.locationCode, item => item.Index);
|
|
|
|
|
@ -1358,7 +1365,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
.Where(t => wmsRawStockLocations.Contains(t.locationCode))
|
|
|
|
|
.WhereIf(!string.IsNullOrEmpty(wcsTaskManual.startPointNo), t => t.locationCode == wcsTaskManual.startPointNo)
|
|
|
|
|
.ToList();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//手动模式
|
|
|
|
|
if (!string.IsNullOrEmpty(wcsTaskManual.startPointNo))
|
|
|
|
|
{
|
|
|
|
|
@ -1388,7 +1395,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bill = bill.OrderBy(t => list.Contains(t.a.locationCode) ? 0 : 1).OrderBy(t => t.b.instockDate.Value.Date);//按某个时间段
|
|
|
|
|
//#endregion
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
foreach (var item in bill)
|
|
|
|
|
{
|
|
|
|
|
@ -1442,7 +1449,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
WmsBaseLocation? toLocation = null;
|
|
|
|
|
|
|
|
|
|
var moveLocationList = AllWmsBaseLocations.Where(t => t.warehouseId == fromBaseLocation.warehouseId)
|
|
|
|
|
.Where(t => t.warehouseId != fromBaseLocation.locationId)
|
|
|
|
|
.Where(t => t.locationId != fromBaseLocation.locationId)
|
|
|
|
|
.Where(t => string.IsNullOrEmpty(t.containerCode)).OrderBy(t => t.locDeep).ToList();
|
|
|
|
|
|
|
|
|
|
foreach (WmsBaseLocation itemLocation in moveLocationList)
|
|
|
|
|
@ -1608,7 +1615,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
useFlag = 1,
|
|
|
|
|
qty = 1
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SystemData.LockOutLocation(wmsBaseLocation, dbContext);
|
|
|
|
|
wmsBaseLocation.locationStatus = "6";
|
|
|
|
|
dbContext.Update(wmsBaseLocation);
|
|
|
|
|
@ -1727,6 +1734,278 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 2楼、3楼指定库位成品出库
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 人工指定库位成品出库
|
|
|
|
|
/// 二楼、五楼指定库位成品出库任务
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void CreateProductTaskByLocationCodeLogic()
|
|
|
|
|
{
|
|
|
|
|
using var scope = _host.Services.CreateScope();
|
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
dbContext.ChangeTracker.Clear();
|
|
|
|
|
|
|
|
|
|
bool fiveTask = dbContext.WcsTask.Where(t => t.nextPointId == 28 && t.taskStatus <= 5).Any();
|
|
|
|
|
if (!fiveTask)
|
|
|
|
|
{
|
|
|
|
|
var fiveProOutStock = dbContext.WmsProductOutstock
|
|
|
|
|
.Where(t => t.outstockQty < t.applyQty)
|
|
|
|
|
.Where(t => t.auditStatus == "1")
|
|
|
|
|
.Where(t => t.warehouseId == 531)
|
|
|
|
|
.Where(t => t.operationType == "1") //不指定库位0,指定库位1
|
|
|
|
|
.Where(t => t.productType == "3")
|
|
|
|
|
.Where(t => t.executeStatus == "0" || t.executeStatus == "1").FirstOrDefault();
|
|
|
|
|
//创建任务
|
|
|
|
|
if (fiveProOutStock != null)
|
|
|
|
|
{
|
|
|
|
|
CreateTask(fiveProOutStock);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bool twoTask = dbContext.WcsTask.Where(t => t.nextPointId == 8 && t.taskStatus <= 7).Any();
|
|
|
|
|
if (!twoTask)
|
|
|
|
|
{
|
|
|
|
|
var twoProOutStock = dbContext.WmsProductOutstock
|
|
|
|
|
.Where(t => t.outstockQty < t.applyQty)
|
|
|
|
|
.Where(t => t.auditStatus == "1")
|
|
|
|
|
.Where(t => t.warehouseId == 231)
|
|
|
|
|
.Where(t => t.operationType == "1") //不指定库位0,指定库位1
|
|
|
|
|
.Where(t => t.productType == "3")
|
|
|
|
|
.Where(t => t.executeStatus == "0" || t.executeStatus == "1").FirstOrDefault();
|
|
|
|
|
|
|
|
|
|
//创建任务
|
|
|
|
|
if (twoProOutStock != null)
|
|
|
|
|
{
|
|
|
|
|
CreateTask(twoProOutStock);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(ex.Message + ex.StackTrace);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 二楼、五楼指定库位根据申请单成品出库任务
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="wmsProductOutstock"></param>
|
|
|
|
|
private void CreateTask(WmsProductOutstock wmsProductOutstock)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using var scope = _host.Services.CreateScope();
|
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
|
|
|
|
|
BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == (wmsProductOutstock.warehouseId == 531 ? 28 : 8));
|
|
|
|
|
|
|
|
|
|
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == (wmsProductOutstock.warehouseId == 531 ? 5 : 1));
|
|
|
|
|
List<WmsBaseLocation> AllWmsBaseLocations = dbContext.WmsBaseLocation.Where(t => t.warehouseId == wmsProductOutstock.warehouseId).ToList();
|
|
|
|
|
List<WmsProductOutstockDetail> details = dbContext.WmsProductOutstockDetail.Where(t => t.productOutstockId == wmsProductOutstock.productOutstockId).ToList();
|
|
|
|
|
if (details.Count == 0) return;
|
|
|
|
|
var locationCodes = details.Select(t => t.locationCode).Distinct().ToList();
|
|
|
|
|
//待出库列表
|
|
|
|
|
List<WmsBaseLocation> baseLocations = AllWmsBaseLocations.Where(t => locationCodes.Contains(t.locationCode) && t.warehouseId == wmsProductOutstock.warehouseId).ToList();
|
|
|
|
|
|
|
|
|
|
baseLocations = baseLocations.OrderByDescending(t => t.locDeep).ToList(); // 浅库位优先
|
|
|
|
|
//目标出库库位
|
|
|
|
|
WmsBaseLocation targetLocation = null;
|
|
|
|
|
foreach (var item in baseLocations)
|
|
|
|
|
{
|
|
|
|
|
//二次校验任务
|
|
|
|
|
bool hasTask = false;
|
|
|
|
|
if (wmsProductOutstock.warehouseId == 531)
|
|
|
|
|
{
|
|
|
|
|
hasTask = dbContext.WcsTask.Where(t => t.nextPointId == 28 && t.taskStatus <= 5).Any();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
hasTask = dbContext.WcsTask.Where(t => t.nextPointId == 8 && t.taskStatus <= 7).Any();
|
|
|
|
|
}
|
|
|
|
|
if (hasTask)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (item.locDeep == 2 && item.locationStatus == "1" && !string.IsNullOrEmpty(item.containerCode))
|
|
|
|
|
{ // 浅库位满足条件直接出
|
|
|
|
|
targetLocation = item;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (item.locDeep == 1 && item.locationStatus == "1" && !string.IsNullOrEmpty(item.containerCode)) //深库位出库 ,若浅库位有东西需要移库
|
|
|
|
|
{
|
|
|
|
|
// 计算对应浅库位坐标
|
|
|
|
|
int? locRow = item.locRow % 2 == 0 ? item.locRow - 1 : item.locRow + 1;
|
|
|
|
|
// 外侧浅库位
|
|
|
|
|
WmsBaseLocation? wmsBaseLocation = AllWmsBaseLocations.Where(t => t.locRow == locRow)
|
|
|
|
|
.Where(t => t.locColumn == item.locColumn)
|
|
|
|
|
.Where(t => t.warehouseId == item.warehouseId).FirstOrDefault();
|
|
|
|
|
if (wmsBaseLocation.locationStatus == "1" && !string.IsNullOrEmpty(wmsBaseLocation.containerCode))
|
|
|
|
|
{ //移库
|
|
|
|
|
|
|
|
|
|
#region 找寻移库目标库位
|
|
|
|
|
|
|
|
|
|
WmsBaseLocation? toLocation = null;
|
|
|
|
|
|
|
|
|
|
var moveLocationList = AllWmsBaseLocations.Where(t => t.warehouseId == item.warehouseId)
|
|
|
|
|
.Where(t => string.IsNullOrEmpty(t.containerCode) && t.locationStatus == "1").OrderBy(t => t.locDeep).ToList();
|
|
|
|
|
|
|
|
|
|
foreach (WmsBaseLocation itemLocation in moveLocationList)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (itemLocation.locDeep == 1)
|
|
|
|
|
{
|
|
|
|
|
bool hasLocation = AllWmsBaseLocations
|
|
|
|
|
.Where(t => t.locRow == (itemLocation.locRow % 2 == 1 ? (itemLocation.locRow + 1) : (itemLocation.locRow - 1)))
|
|
|
|
|
.Where(t => t.locColumn == itemLocation.locColumn)
|
|
|
|
|
.Where(t => t.locationStatus == "1" && string.IsNullOrEmpty(t.containerCode))
|
|
|
|
|
.Any();
|
|
|
|
|
if (!hasLocation)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(DateTime.Now + $":目标库位的浅库位库位状态异常,无法移库");
|
|
|
|
|
_logger.Info($"目标库位的浅库位库位状态异常,无法移库");
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// 找到可以移库的目标库位
|
|
|
|
|
toLocation = itemLocation;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// 找到可以移库的目标库位
|
|
|
|
|
toLocation = itemLocation;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (toLocation == null)
|
|
|
|
|
{
|
|
|
|
|
// 找寻下一个移库库位
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var RemoveTask = new WcsTask()
|
|
|
|
|
{
|
|
|
|
|
objid = StaticData.SnowId.NextId(),
|
|
|
|
|
orderId = wmsProductOutstock.productOutstockId,
|
|
|
|
|
taskType = wmsProductOutstock.warehouseId == 231 ? StaticTaskType.SecondRemove : StaticTaskType.FiveRemove,
|
|
|
|
|
containerNo = wmsBaseLocation.containerCode,
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createTime = DateTime.Now.AddSeconds(-10),
|
|
|
|
|
taskStatus = 0,
|
|
|
|
|
materialId = wmsProductOutstock.productId,
|
|
|
|
|
currPointId = wmsBaseLocation.locationId,
|
|
|
|
|
currPointNo = wmsBaseLocation.locationCode,
|
|
|
|
|
nextPointId = agvEquip.objid,
|
|
|
|
|
nextPointNo = agvEquip.equipNo,
|
|
|
|
|
endPointId = toLocation.locationId,
|
|
|
|
|
endPointNo = toLocation.locationCode,
|
|
|
|
|
equipmentNo = agvEquip.equipNo,
|
|
|
|
|
useFlag = 1,
|
|
|
|
|
qty = 1
|
|
|
|
|
};
|
|
|
|
|
SystemData.LockOutLocation(toLocation, dbContext);
|
|
|
|
|
SystemData.LockOutLocation(wmsBaseLocation, dbContext);
|
|
|
|
|
toLocation.locationStatus = "4";
|
|
|
|
|
toLocation.updateBy = "WCS";
|
|
|
|
|
toLocation.updateTime = DateTime.Now;
|
|
|
|
|
wmsBaseLocation.updateBy = "WCS";
|
|
|
|
|
wmsBaseLocation.updateTime = DateTime.Now;
|
|
|
|
|
wmsBaseLocation.locationStatus = "4";
|
|
|
|
|
dbContext.Update(toLocation);
|
|
|
|
|
dbContext.Update(wmsBaseLocation);
|
|
|
|
|
dbContext.Add(RemoveTask);
|
|
|
|
|
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(RemoveTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
targetLocation = item;
|
|
|
|
|
break;
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else if(wmsBaseLocation.locationStatus == "1" && string.IsNullOrEmpty(wmsBaseLocation.containerCode))
|
|
|
|
|
{
|
|
|
|
|
targetLocation = item;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else if(wmsBaseLocation.locationStatus != "1")
|
|
|
|
|
{
|
|
|
|
|
//浅库位状态异常
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WcsTask wcsTask = new WcsTask()
|
|
|
|
|
{
|
|
|
|
|
objid = StaticData.SnowId.NextId(),
|
|
|
|
|
orderId = wmsProductOutstock.productOutstockId,
|
|
|
|
|
taskType = wmsProductOutstock.warehouseId == 231 ? StaticTaskType.SecondStorageToLift : StaticTaskType.FiveProductOut,
|
|
|
|
|
containerNo = targetLocation.containerCode,
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createTime = DateTime.Now,
|
|
|
|
|
taskStatus = 0,
|
|
|
|
|
materialId = wmsProductOutstock.productId,
|
|
|
|
|
currPointId = targetLocation.locationId,
|
|
|
|
|
currPointNo = targetLocation.locationCode,
|
|
|
|
|
nextPointId = agvEquip.objid,
|
|
|
|
|
nextPointNo = agvEquip.equipNo,
|
|
|
|
|
endPointId = endEquip.objid,
|
|
|
|
|
endPointNo = endEquip.equipNo,
|
|
|
|
|
equipmentNo = agvEquip.equipNo,
|
|
|
|
|
useFlag = 1,
|
|
|
|
|
qty = 1
|
|
|
|
|
};
|
|
|
|
|
SystemData.LockOutLocation(targetLocation, dbContext);
|
|
|
|
|
targetLocation.locationStatus = "6";
|
|
|
|
|
targetLocation.updateBy = "WCS";
|
|
|
|
|
targetLocation.updateTime = DateTime.Now;
|
|
|
|
|
dbContext.Update(targetLocation);
|
|
|
|
|
dbContext.Add(wcsTask);
|
|
|
|
|
|
|
|
|
|
wmsProductOutstock.updateBy = "WCS";
|
|
|
|
|
wmsProductOutstock.updateDate = DateTime.Now;
|
|
|
|
|
if (wmsProductOutstock.executeStatus == "0")
|
|
|
|
|
{
|
|
|
|
|
wmsProductOutstock.executeStatus = "1";
|
|
|
|
|
wmsProductOutstock.beginTime = DateTime.Now;
|
|
|
|
|
}
|
|
|
|
|
dbContext.Update(wmsProductOutstock);
|
|
|
|
|
WmsProductOutstockDetail? wmsProductOutstockDetail = dbContext.WmsProductOutstockDetail.FirstOrDefault(x => x.productOutstockId == wmsProductOutstock.productOutstockId && x.locationCode == targetLocation.locationCode);
|
|
|
|
|
if (wmsProductOutstockDetail != null)
|
|
|
|
|
{
|
|
|
|
|
wmsProductOutstockDetail.executeStatus = "1";
|
|
|
|
|
wmsProductOutstockDetail.updateBy = "WCS";
|
|
|
|
|
wmsProductOutstockDetail.updateDate = DateTime.Now;
|
|
|
|
|
wmsProductOutstockDetail.beginTime = DateTime.Now;
|
|
|
|
|
dbContext.Update(wmsProductOutstockDetail);
|
|
|
|
|
}
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
|
|
|
|
|
}catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(ex.Message + ex.StackTrace);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 成品出库
|
|
|
|
|
/// </summary>
|
|
|
|
|
@ -1851,9 +2130,9 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
|
|
|
|
|
WmsBaseLocation? toLocation = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var moveLocationList = AllWmsBaseLocations.Where(t => t.warehouseId == location.warehouseId)
|
|
|
|
|
.Where(t => t.warehouseId != location.locationId)
|
|
|
|
|
.Where(t => t.locationId != location.locationId)
|
|
|
|
|
.Where(t => string.IsNullOrEmpty(t.containerCode) && t.locationStatus == "1").OrderBy(t => t.locDeep).ToList();
|
|
|
|
|
|
|
|
|
|
foreach (WmsBaseLocation itemLocation in moveLocationList)
|
|
|
|
|
@ -2083,7 +2362,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
Console.WriteLine(ex.Message + ex.StackTrace);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -2570,7 +2849,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
{
|
|
|
|
|
//原材料库存
|
|
|
|
|
var rawStock = dbContext.WmsRawStock
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Where(t => t.activeFlag == "1").ToList();
|
|
|
|
|
BaseEquip endStationCodeEquip = dbContext.BaseEquip.First(t => t.objid == 10);
|
|
|
|
|
if (!string.IsNullOrEmpty(endStationCodeEquip.endStationCode) && endStationCodeEquip.IsOut == 1)
|
|
|
|
|
@ -2583,9 +2862,9 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
bool hasTask = dbContext.WcsTask.Where(t => t.nextPointId == 11).Any();
|
|
|
|
|
if (!hasTask)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var orderList = rawOutStock.Where(t => endStationCodeEquip.endStationCode.Contains(t.endStationCode)).ToList();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<WcsTask> tasks = new();
|
|
|
|
|
List<long?> canOut = orderList.Select(t => t.saleOrderId).ToList();
|
|
|
|
|
rawStock = rawStock.Where(t => canOut.Contains(t.saleOrderId)).OrderByDescending(t => t.saleOrderId).ToList();
|
|
|
|
|
@ -2946,9 +3225,9 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
// 寻找移库目的库位
|
|
|
|
|
WmsBaseLocation? toLocation = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var moveLocationList = AllWmsBaseLocations.Where(t => t.warehouseId == location.warehouseId)
|
|
|
|
|
.Where(t => t.warehouseId != location.locationId)
|
|
|
|
|
.Where(t => t.locationId != location.locationId)
|
|
|
|
|
.Where(t => string.IsNullOrEmpty(t.containerCode) && t.locationStatus == "1").OrderBy(t => t.locDeep).ToList();
|
|
|
|
|
|
|
|
|
|
foreach (WmsBaseLocation itemLocation in moveLocationList)
|
|
|
|
|
|