|
|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
using Khd.Core.Domain.Models;
|
|
|
|
|
using Khd.Core.EntityFramework;
|
|
|
|
|
using Khd.Core.Library;
|
|
|
|
|
using Khd.Core.Library.Mapper;
|
|
|
|
|
using Khd.Core.Wcs.Global;
|
|
|
|
|
using Masuit.Tools;
|
|
|
|
|
@ -18,6 +19,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class CreateTaskByRecord
|
|
|
|
|
{
|
|
|
|
|
private readonly LoggerUtils _logger=new LoggerUtils();
|
|
|
|
|
private readonly IHost _host;
|
|
|
|
|
public CreateTaskByRecord(IHost host)
|
|
|
|
|
{
|
|
|
|
|
@ -31,37 +33,62 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
{
|
|
|
|
|
//背负式Agv返库任务
|
|
|
|
|
var createBearAgvReturnThread = new Thread(CreateBearAgvReturnLogic);
|
|
|
|
|
createBearAgvReturnThread.IsBackground = true;
|
|
|
|
|
createBearAgvReturnThread.Name = "CreateBearAgvReturnLogic";
|
|
|
|
|
createBearAgvReturnThread.Start();
|
|
|
|
|
//五楼半成品入库任务
|
|
|
|
|
var createFiveProductInTaskThread = new Thread(CreateFiveProductInTaskLogic);
|
|
|
|
|
createFiveProductInTaskThread.IsBackground = true;
|
|
|
|
|
createFiveProductInTaskThread.Name = "CreateFiveProductInTaskLogic";
|
|
|
|
|
createFiveProductInTaskThread.Start();
|
|
|
|
|
//五楼成品出库任务
|
|
|
|
|
var createFiveProductTaskThread = new Thread(CreateFiveProductTaskLogic);
|
|
|
|
|
createFiveProductTaskThread.IsBackground = true;
|
|
|
|
|
createFiveProductTaskThread.Name = "CreateFiveProductTaskLogic";
|
|
|
|
|
createFiveProductTaskThread.Start();
|
|
|
|
|
//五楼CTU出库任务以及原材料出库任务
|
|
|
|
|
var createRawTaskThread = new Thread(CreateRawTaskLogic);
|
|
|
|
|
createRawTaskThread.IsBackground = true;
|
|
|
|
|
createRawTaskThread.Name = "CreateRawTaskLogic";
|
|
|
|
|
createRawTaskThread.Start();
|
|
|
|
|
//五楼柜体拆分返库任务
|
|
|
|
|
var createRawInThread = new Thread(CreateRawInTaskLogic);
|
|
|
|
|
createRawInThread.IsBackground = true;
|
|
|
|
|
createRawInThread.Name = "CreateRawInTaskLogic";
|
|
|
|
|
createRawInThread.Start();
|
|
|
|
|
//三楼去翻转机任务
|
|
|
|
|
var createThirdOutTaskThread = new Thread(CreateThirdOutTaskLogic);
|
|
|
|
|
createThirdOutTaskThread.IsBackground = true;
|
|
|
|
|
createThirdOutTaskThread.Name = "CreateThirdOutTaskLogic";
|
|
|
|
|
createThirdOutTaskThread.Start();
|
|
|
|
|
//二楼成品出库任务
|
|
|
|
|
var CreateSecondProductTaskThread = new Thread(CreateSecondProductTaskLogic);
|
|
|
|
|
CreateSecondProductTaskThread.IsBackground = true;
|
|
|
|
|
CreateSecondProductTaskThread.Name = "CreateSecondProductTaskLogic";
|
|
|
|
|
CreateSecondProductTaskThread.Start();
|
|
|
|
|
//三楼托盘收集架满5个或10个时出库合盘任务
|
|
|
|
|
var createEmptyTrayThread = new Thread(CreateEmptyTrayLogic);
|
|
|
|
|
createEmptyTrayThread.IsBackground = true;
|
|
|
|
|
createEmptyTrayThread.Name = "CreateEmptyTrayLogic";
|
|
|
|
|
createEmptyTrayThread.Start();
|
|
|
|
|
//二楼废品区人工调度任务
|
|
|
|
|
var createThirdWasterTaskThread = new Thread(CreateThirdWasterTaskLogic);
|
|
|
|
|
createThirdWasterTaskThread.IsBackground = true;
|
|
|
|
|
createThirdWasterTaskThread.Name = "CreateThirdWasterTaskLogic";
|
|
|
|
|
createThirdWasterTaskThread.Start();
|
|
|
|
|
|
|
|
|
|
//背负式退库
|
|
|
|
|
var BackReturnTaskThread= new Thread(BackReturnTaskLogic);
|
|
|
|
|
BackReturnTaskThread.IsBackground = true;
|
|
|
|
|
BackReturnTaskThread.Name = "BackReturnTaskLogic";
|
|
|
|
|
BackReturnTaskThread.Start();
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":出库任务监听启动成功");
|
|
|
|
|
LogManager.Info("出库任务监听启动成功");
|
|
|
|
|
_logger.Info("出库任务监听启动成功");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CreateRawInTaskLogic(object? obj)
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 五楼柜体拆分返库任务
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void CreateRawInTaskLogic()
|
|
|
|
|
{
|
|
|
|
|
using var scope = _host.Services.CreateScope();
|
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
@ -120,7 +147,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogManager.Error(ex);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
}
|
|
|
|
|
@ -157,7 +184,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogManager.Error(ex);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
}
|
|
|
|
|
@ -291,7 +318,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogManager.Error(ex);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
}
|
|
|
|
|
@ -304,41 +331,45 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
{
|
|
|
|
|
using var scope = _host.Services.CreateScope();
|
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
try
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
|
|
|
|
|
WcsTask? wcsTask = dbContext.WcsTask.Where(t => t.taskType == 28).FirstOrDefault();
|
|
|
|
|
if (wcsTask != null)
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
WmsRawInstock? wmsRawInstock = dbContext.WmsRawInstock.Where(t => t.instockType == "2" && t.warehouseId == 511 && t.executeStatus == "0").FirstOrDefault();
|
|
|
|
|
if (wmsRawInstock != null)
|
|
|
|
|
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
|
|
|
|
|
WcsTask? wcsTask = dbContext.WcsTask.Where(t => t.taskType == 28).FirstOrDefault();
|
|
|
|
|
if (wcsTask != null)
|
|
|
|
|
{
|
|
|
|
|
wcsTask.useFlag = 1;
|
|
|
|
|
wcsTask.createTime = DateTime.Now;
|
|
|
|
|
wmsRawInstock.executeStatus = "1";
|
|
|
|
|
wmsRawInstock.beginTime = DateTime.Now;
|
|
|
|
|
WmsRawInstockDetail wmsRawInstockDetail = new WmsRawInstockDetail()
|
|
|
|
|
WmsRawInstock? wmsRawInstock = dbContext.WmsRawInstock.Where(t => t.instockType == "2" && t.warehouseId == 511 && t.executeStatus == "0").FirstOrDefault();
|
|
|
|
|
if (wmsRawInstock != null)
|
|
|
|
|
{
|
|
|
|
|
rawInstockDetailId = StaticData.SnowId.NextId(),
|
|
|
|
|
rawInstockId = wmsRawInstock.rawInstockId,
|
|
|
|
|
instockWay = "2",
|
|
|
|
|
activeFlag = "1",
|
|
|
|
|
stackAmount = 1,
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createDate = DateTime.Now,
|
|
|
|
|
materialId = wmsRawInstock.materialId,
|
|
|
|
|
instockAmount = 1,
|
|
|
|
|
executeStatus = "0",
|
|
|
|
|
};
|
|
|
|
|
dbContext.Update(wmsRawInstock);
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
wcsTask.useFlag = 1;
|
|
|
|
|
wcsTask.createTime = DateTime.Now;
|
|
|
|
|
wmsRawInstock.executeStatus = "1";
|
|
|
|
|
wmsRawInstock.beginTime = DateTime.Now;
|
|
|
|
|
WmsRawInstockDetail wmsRawInstockDetail = new WmsRawInstockDetail()
|
|
|
|
|
{
|
|
|
|
|
rawInstockDetailId = StaticData.SnowId.NextId(),
|
|
|
|
|
rawInstockId = wmsRawInstock.rawInstockId,
|
|
|
|
|
instockWay = "2",
|
|
|
|
|
activeFlag = "1",
|
|
|
|
|
stackAmount = 1,
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createDate = DateTime.Now,
|
|
|
|
|
materialId = wmsRawInstock.materialId,
|
|
|
|
|
instockAmount = 1,
|
|
|
|
|
executeStatus = "0",
|
|
|
|
|
};
|
|
|
|
|
dbContext.Update(wmsRawInstock);
|
|
|
|
|
dbContext.Update(wcsTask);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
catch(Exception ex)
|
|
|
|
|
{
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -437,7 +468,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogManager.Error(ex);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
}
|
|
|
|
|
@ -492,176 +523,179 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
WmsBaseLocation? wmsBaseLocation = null;
|
|
|
|
|
WmsRawStock? wmsRawStock = null;
|
|
|
|
|
bill = bill.OrderBy(t => t.b.instockDate.Value.Date);//按某个时间段
|
|
|
|
|
var fistbill = bill.FirstOrDefault();
|
|
|
|
|
if (fistbill != null)
|
|
|
|
|
foreach (var item in bill)
|
|
|
|
|
{
|
|
|
|
|
int? locRow = 0;
|
|
|
|
|
if (fistbill.a.locRow % 2 == 1)
|
|
|
|
|
var fistbill = bill.First();
|
|
|
|
|
if (fistbill != null)
|
|
|
|
|
{
|
|
|
|
|
locRow = fistbill.a.locRow + 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
locRow = fistbill.a.locRow - 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var lastbill = bill.Where(t => t.a.locRow == locRow)
|
|
|
|
|
.Where(t => t.a.locColumn == fistbill.a.locColumn)
|
|
|
|
|
.Where(t => t.a.locDeep == 2)
|
|
|
|
|
.FirstOrDefault();
|
|
|
|
|
wmsBaseLocation = fistbill.a;
|
|
|
|
|
if (lastbill != null)
|
|
|
|
|
{
|
|
|
|
|
if (lastbill.b.instockDate != null && fistbill.b.instockDate != null)
|
|
|
|
|
int? locRow = 0;
|
|
|
|
|
if (fistbill.a.locRow % 2 == 1)
|
|
|
|
|
{
|
|
|
|
|
if (wmsBaseLocation.locDeep == 1)
|
|
|
|
|
locRow = fistbill.a.locRow + 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
locRow = fistbill.a.locRow - 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var lastbill = bill.Where(t => t.a.locRow == locRow)
|
|
|
|
|
.Where(t => t.a.locColumn == fistbill.a.locColumn)
|
|
|
|
|
.Where(t => t.a.locDeep == 2)
|
|
|
|
|
.FirstOrDefault();
|
|
|
|
|
wmsBaseLocation = fistbill.a;
|
|
|
|
|
if (lastbill != null)
|
|
|
|
|
{
|
|
|
|
|
if (lastbill.b.instockDate != null && fistbill.b.instockDate != null)
|
|
|
|
|
{
|
|
|
|
|
int? row = 0;
|
|
|
|
|
if (wmsBaseLocation.locRow % 2 == 1)
|
|
|
|
|
if (wmsBaseLocation.locDeep == 1)
|
|
|
|
|
{
|
|
|
|
|
row = wmsBaseLocation.locRow + 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
row = wmsBaseLocation.locRow - 1;
|
|
|
|
|
}
|
|
|
|
|
var lowLocationBill = bill.Where(t => t.a.locRow == locRow).Where(t => t.a.locColumn == wmsBaseLocation.locColumn).Where(t => t.a.warehouseId == wmsBaseLocation.warehouseId).FirstOrDefault();
|
|
|
|
|
if (lowLocationBill != null)
|
|
|
|
|
{
|
|
|
|
|
wmsBaseLocation = lowLocationBill.a;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
WmsBaseLocation? fromBaseLocation = AllWmsBaseLocations.Where(t => t.locRow == row)
|
|
|
|
|
.Where(t => t.locColumn == wmsBaseLocation.locColumn)
|
|
|
|
|
.Where(t => t.warehouseId == wmsBaseLocation.warehouseId).FirstOrDefault();
|
|
|
|
|
if (fromBaseLocation != null && !string.IsNullOrEmpty(fromBaseLocation.containerCode))
|
|
|
|
|
int? row = 0;
|
|
|
|
|
if (wmsBaseLocation.locRow % 2 == 1)
|
|
|
|
|
{
|
|
|
|
|
WmsRawStock? wmsRawStock1 = dbContext.WmsRawStock.FirstOrDefault(t => t.locationCode == fromBaseLocation.locationCode);
|
|
|
|
|
if (wmsRawStock1 != null)
|
|
|
|
|
row = wmsBaseLocation.locRow + 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
row = wmsBaseLocation.locRow - 1;
|
|
|
|
|
}
|
|
|
|
|
var lowLocationBill = bill.Where(t => t.a.locRow == locRow).Where(t => t.a.locColumn == wmsBaseLocation.locColumn).Where(t => t.a.warehouseId == wmsBaseLocation.warehouseId).FirstOrDefault();
|
|
|
|
|
if (lowLocationBill != null)
|
|
|
|
|
{
|
|
|
|
|
wmsBaseLocation = lowLocationBill.a;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
WmsBaseLocation? fromBaseLocation = AllWmsBaseLocations.Where(t => t.locRow == row)
|
|
|
|
|
.Where(t => t.locColumn == wmsBaseLocation.locColumn)
|
|
|
|
|
.Where(t => t.warehouseId == wmsBaseLocation.warehouseId).FirstOrDefault();
|
|
|
|
|
if (fromBaseLocation != null && !string.IsNullOrEmpty(fromBaseLocation.containerCode))
|
|
|
|
|
{
|
|
|
|
|
WmsBaseLocation? toLocation = AllWmsBaseLocations.Where(t => t.warehouseId == wmsBaseLocation.warehouseId)
|
|
|
|
|
.Where(t => t.locDeep == 1)
|
|
|
|
|
.Where(t => string.IsNullOrEmpty(t.containerCode))
|
|
|
|
|
.Where(t => t.locColumn > wmsBaseLocation.locColumn)
|
|
|
|
|
.OrderBy(t => t.locColumn)
|
|
|
|
|
.FirstOrDefault();
|
|
|
|
|
toLocation ??= AllWmsBaseLocations.Where(t => t.warehouseId == wmsBaseLocation.warehouseId)
|
|
|
|
|
.Where(t => t.locDeep == 1)
|
|
|
|
|
.Where(t => string.IsNullOrEmpty(t.containerCode))
|
|
|
|
|
.Where(t => t.locColumn < wmsBaseLocation.locColumn)
|
|
|
|
|
.OrderByDescending(t => t.locColumn)
|
|
|
|
|
.FirstOrDefault();
|
|
|
|
|
toLocation ??= AllWmsBaseLocations.Where(t => t.warehouseId == wmsBaseLocation.warehouseId)
|
|
|
|
|
.Where(t => t.warehouseId != wmsBaseLocation.locationId)
|
|
|
|
|
.Where(t => string.IsNullOrEmpty(t.containerCode))
|
|
|
|
|
.FirstOrDefault();
|
|
|
|
|
if (toLocation != null)
|
|
|
|
|
WmsRawStock? wmsRawStock1 = dbContext.WmsRawStock.FirstOrDefault(t => t.locationCode == fromBaseLocation.locationCode);
|
|
|
|
|
if (wmsRawStock1 != null)
|
|
|
|
|
{
|
|
|
|
|
var RemoveTask = new WcsTask()
|
|
|
|
|
WmsBaseLocation? toLocation = AllWmsBaseLocations.Where(t => t.warehouseId == wmsBaseLocation.warehouseId)
|
|
|
|
|
.Where(t => t.locDeep == 1)
|
|
|
|
|
.Where(t => string.IsNullOrEmpty(t.containerCode))
|
|
|
|
|
.Where(t => t.locColumn > wmsBaseLocation.locColumn)
|
|
|
|
|
.OrderBy(t => t.locColumn)
|
|
|
|
|
.FirstOrDefault();
|
|
|
|
|
toLocation ??= AllWmsBaseLocations.Where(t => t.warehouseId == wmsBaseLocation.warehouseId)
|
|
|
|
|
.Where(t => t.locDeep == 1)
|
|
|
|
|
.Where(t => string.IsNullOrEmpty(t.containerCode))
|
|
|
|
|
.Where(t => t.locColumn < wmsBaseLocation.locColumn)
|
|
|
|
|
.OrderByDescending(t => t.locColumn)
|
|
|
|
|
.FirstOrDefault();
|
|
|
|
|
toLocation ??= AllWmsBaseLocations.Where(t => t.warehouseId == wmsBaseLocation.warehouseId)
|
|
|
|
|
.Where(t => t.warehouseId != wmsBaseLocation.locationId)
|
|
|
|
|
.Where(t => string.IsNullOrEmpty(t.containerCode))
|
|
|
|
|
.FirstOrDefault();
|
|
|
|
|
if (toLocation != null)
|
|
|
|
|
{
|
|
|
|
|
objid = StaticData.SnowId.NextId(),
|
|
|
|
|
taskType = 67,
|
|
|
|
|
containerNo = wmsRawStock1.palletInfoCode,
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createTime = DateTime.Now.AddSeconds(-10),
|
|
|
|
|
taskStatus = 0,
|
|
|
|
|
currPointId = fromBaseLocation.locationId,
|
|
|
|
|
currPointNo = fromBaseLocation.locationCode,
|
|
|
|
|
nextPointId = baseEquip.objid,
|
|
|
|
|
nextPointNo = baseEquip.equipNo,
|
|
|
|
|
endPointId = toLocation.locationId,
|
|
|
|
|
endPointNo = toLocation.locationCode,
|
|
|
|
|
equipmentNo = baseEquip.equipNo,
|
|
|
|
|
useFlag = 1,
|
|
|
|
|
qty = 1
|
|
|
|
|
};
|
|
|
|
|
toLocation.locationStatus = "4";
|
|
|
|
|
toLocation.updateBy = "WCS";
|
|
|
|
|
toLocation.updateTime = DateTime.Now;
|
|
|
|
|
fromBaseLocation.updateBy = "WCS";
|
|
|
|
|
fromBaseLocation.updateTime = DateTime.Now;
|
|
|
|
|
fromBaseLocation.locationStatus = "4";
|
|
|
|
|
dbContext.Update(toLocation);
|
|
|
|
|
dbContext.Update(fromBaseLocation);
|
|
|
|
|
dbContext.Add(RemoveTask);
|
|
|
|
|
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(RemoveTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
var RemoveTask = new WcsTask()
|
|
|
|
|
{
|
|
|
|
|
objid = StaticData.SnowId.NextId(),
|
|
|
|
|
taskType = 67,
|
|
|
|
|
containerNo = wmsRawStock1.palletInfoCode,
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createTime = DateTime.Now.AddSeconds(-10),
|
|
|
|
|
taskStatus = 0,
|
|
|
|
|
currPointId = fromBaseLocation.locationId,
|
|
|
|
|
currPointNo = fromBaseLocation.locationCode,
|
|
|
|
|
nextPointId = baseEquip.objid,
|
|
|
|
|
nextPointNo = baseEquip.equipNo,
|
|
|
|
|
endPointId = toLocation.locationId,
|
|
|
|
|
endPointNo = toLocation.locationCode,
|
|
|
|
|
equipmentNo = baseEquip.equipNo,
|
|
|
|
|
useFlag = 1,
|
|
|
|
|
qty = 1
|
|
|
|
|
};
|
|
|
|
|
toLocation.locationStatus = "4";
|
|
|
|
|
toLocation.updateBy = "WCS";
|
|
|
|
|
toLocation.updateTime = DateTime.Now;
|
|
|
|
|
fromBaseLocation.updateBy = "WCS";
|
|
|
|
|
fromBaseLocation.updateTime = DateTime.Now;
|
|
|
|
|
fromBaseLocation.locationStatus = "4";
|
|
|
|
|
dbContext.Update(toLocation);
|
|
|
|
|
dbContext.Update(fromBaseLocation);
|
|
|
|
|
dbContext.Add(RemoveTask);
|
|
|
|
|
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(RemoveTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (wmsBaseLocation != null)
|
|
|
|
|
{
|
|
|
|
|
wmsRawStock = wmsRawStocks.Where(t => t.locationCode == wmsBaseLocation.locationCode).First();
|
|
|
|
|
MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == wmsRawStock.palletInfoCode);
|
|
|
|
|
if (mesBasePalletInfo != null)
|
|
|
|
|
if (wmsBaseLocation != null)
|
|
|
|
|
{
|
|
|
|
|
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode);
|
|
|
|
|
if (mesBaseBarcodeInfo != null)
|
|
|
|
|
wmsRawStock = wmsRawStocks.Where(t => t.locationCode == wmsBaseLocation.locationCode).First();
|
|
|
|
|
MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == wmsRawStock.palletInfoCode);
|
|
|
|
|
if (mesBasePalletInfo != null)
|
|
|
|
|
{
|
|
|
|
|
WmsRawOutstockDetail wmsRawOutstockDetail = new WmsRawOutstockDetail()
|
|
|
|
|
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode);
|
|
|
|
|
if (mesBaseBarcodeInfo != null)
|
|
|
|
|
{
|
|
|
|
|
rawOutstockDetailId = StaticData.SnowId.NextId(),
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createDate = DateTime.Now,
|
|
|
|
|
executeStatus = "0",
|
|
|
|
|
erpAmount = 0,
|
|
|
|
|
erpStatus = "0",
|
|
|
|
|
instockBatch = mesBaseBarcodeInfo.batchCode,
|
|
|
|
|
stackAmount = 1,
|
|
|
|
|
locationCode = wmsBaseLocation.locationCode,
|
|
|
|
|
rawOutstockId = wmsRawOutstock.rawOutstockId,
|
|
|
|
|
planAmount = 1,
|
|
|
|
|
outstockWay = "2",
|
|
|
|
|
outstockPerson = "WCS",
|
|
|
|
|
outstockTime = DateTime.Now,
|
|
|
|
|
materialProductionDate = mesBaseBarcodeInfo.productionDate,
|
|
|
|
|
materialBarcode = mesBasePalletInfo.materialBarcode,
|
|
|
|
|
materialId = wmsRawOutstock.materialId,
|
|
|
|
|
machineName = mesBaseBarcodeInfo.machineName,
|
|
|
|
|
outstockAmount = 1,
|
|
|
|
|
taskCode = wmsRawOutstock.taskCode
|
|
|
|
|
};
|
|
|
|
|
wcsTask = new WcsTask()
|
|
|
|
|
{
|
|
|
|
|
objid = StaticData.SnowId.NextId(),
|
|
|
|
|
orderId = wmsRawOutstock.rawOutstockId,
|
|
|
|
|
taskType = 41,
|
|
|
|
|
containerNo = wmsBaseLocation.containerCode,
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createTime = DateTime.Now,
|
|
|
|
|
taskStatus = 0,
|
|
|
|
|
materialId = wmsRawOutstock.materialId,
|
|
|
|
|
currPointId = wmsBaseLocation.locationId,
|
|
|
|
|
currPointNo = wmsBaseLocation.locationCode,
|
|
|
|
|
nextPointId = baseEquip.objid,
|
|
|
|
|
nextPointNo = baseEquip.equipNo,
|
|
|
|
|
endPointId = endEquip.objid,
|
|
|
|
|
endPointNo = endEquip.equipNo,
|
|
|
|
|
equipmentNo = endEquip.equipNo,
|
|
|
|
|
useFlag = 1,
|
|
|
|
|
qty = 1
|
|
|
|
|
};
|
|
|
|
|
wmsBaseLocation.locationStatus = "6";
|
|
|
|
|
dbContext.Update(wmsBaseLocation);
|
|
|
|
|
dbContext.Add(wmsRawOutstockDetail);
|
|
|
|
|
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
|
|
|
|
|
dbContext.Remove(wcsTaskManual);
|
|
|
|
|
dbContext.Add(wcsTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
WmsRawOutstockDetail wmsRawOutstockDetail = new WmsRawOutstockDetail()
|
|
|
|
|
{
|
|
|
|
|
rawOutstockDetailId = StaticData.SnowId.NextId(),
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createDate = DateTime.Now,
|
|
|
|
|
executeStatus = "0",
|
|
|
|
|
erpAmount = 0,
|
|
|
|
|
erpStatus = "0",
|
|
|
|
|
instockBatch = mesBaseBarcodeInfo.batchCode,
|
|
|
|
|
stackAmount = 1,
|
|
|
|
|
locationCode = wmsBaseLocation.locationCode,
|
|
|
|
|
rawOutstockId = wmsRawOutstock.rawOutstockId,
|
|
|
|
|
planAmount = 1,
|
|
|
|
|
outstockWay = "2",
|
|
|
|
|
outstockPerson = "WCS",
|
|
|
|
|
outstockTime = DateTime.Now,
|
|
|
|
|
materialProductionDate = mesBaseBarcodeInfo.productionDate,
|
|
|
|
|
materialBarcode = mesBasePalletInfo.materialBarcode,
|
|
|
|
|
materialId = wmsRawOutstock.materialId,
|
|
|
|
|
machineName = mesBaseBarcodeInfo.machineName,
|
|
|
|
|
outstockAmount = 1,
|
|
|
|
|
taskCode = wmsRawOutstock.taskCode
|
|
|
|
|
};
|
|
|
|
|
wcsTask = new WcsTask()
|
|
|
|
|
{
|
|
|
|
|
objid = StaticData.SnowId.NextId(),
|
|
|
|
|
orderId = wmsRawOutstock.rawOutstockId,
|
|
|
|
|
taskType = 41,
|
|
|
|
|
containerNo = wmsBaseLocation.containerCode,
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createTime = DateTime.Now,
|
|
|
|
|
taskStatus = 0,
|
|
|
|
|
materialId = wmsRawOutstock.materialId,
|
|
|
|
|
currPointId = wmsBaseLocation.locationId,
|
|
|
|
|
currPointNo = wmsBaseLocation.locationCode,
|
|
|
|
|
nextPointId = baseEquip.objid,
|
|
|
|
|
nextPointNo = baseEquip.equipNo,
|
|
|
|
|
endPointId = endEquip.objid,
|
|
|
|
|
endPointNo = endEquip.equipNo,
|
|
|
|
|
equipmentNo = endEquip.equipNo,
|
|
|
|
|
useFlag = 1,
|
|
|
|
|
qty = 1
|
|
|
|
|
};
|
|
|
|
|
wmsBaseLocation.locationStatus = "6";
|
|
|
|
|
dbContext.Update(wmsBaseLocation);
|
|
|
|
|
dbContext.Add(wmsRawOutstockDetail);
|
|
|
|
|
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
|
|
|
|
|
dbContext.Remove(wcsTaskManual);
|
|
|
|
|
dbContext.Add(wcsTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -674,7 +708,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogManager.Error(ex);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -745,7 +779,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogManager.Error(ex);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
}
|
|
|
|
|
@ -826,7 +860,6 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == stock.palletInfoCode);
|
|
|
|
|
if (mesBasePalletInfo != null)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (location.locDeep == 1)
|
|
|
|
|
{
|
|
|
|
|
int? row = 0;
|
|
|
|
|
@ -969,7 +1002,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(ex.Message + ex.StackTrace);
|
|
|
|
|
LogManager.Error(ex);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
}
|
|
|
|
|
@ -1197,7 +1230,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(ex.Message + ex.StackTrace);
|
|
|
|
|
LogManager.Error(ex);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
}
|
|
|
|
|
@ -1815,7 +1848,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogManager.Error(ex);
|
|
|
|
|
_logger.Error(ex.Message + "\n" + ex.StackTrace);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
|
}
|
|
|
|
|
|