master
2 years ago
parent 66bbced58f
commit 07285c2746

@ -20,13 +20,13 @@ namespace Khd.Core.Domain.Models
[Key] [Key]
[Column("product_instock_detail_id")] [Column("product_instock_detail_id")]
public long productInstockDetailId { get; set; } public long? productInstockDetailId { get; set; }
/// <summary> /// <summary>
/// 成品入库记录ID /// 成品入库记录ID
/// </summary> /// </summary>
[Column("product_instock_id")] [Column("product_instock_id")]
public long productInstockId { get; set; } public long? productInstockId { get; set; }
/// <summary> /// <summary>
/// 库位编码 /// 库位编码
@ -38,7 +38,7 @@ namespace Khd.Core.Domain.Models
/// 成品ID /// 成品ID
/// </summary> /// </summary>
[Column("product_id")] [Column("product_id")]
public long productId { get; set; } public long? productId { get; set; }
/// <summary> /// <summary>
/// 成品条码 /// 成品条码

@ -0,0 +1,8 @@
{
"profiles": {
"WSL": {
"commandName": "WSL2",
"distributionName": ""
}
}
}

@ -68,8 +68,11 @@ namespace Khd.Core.Wcs.Wcs
//var createRawInWareTaskThread = new Thread(CreateRawInWareTaskLogic); //var createRawInWareTaskThread = new Thread(CreateRawInWareTaskLogic);
//createRawInWareTaskThread.Start(); //createRawInWareTaskThread.Start();
//var createFiveProductTaskThread = new Thread(CreateFiveProductTaskLogic); var createFiveProductInTaskThread = new Thread(CreateFiveProductInTaskLogic);
//createFiveProductTaskThread.Start(); createFiveProductInTaskThread.Start();
var createFiveProductTaskThread = new Thread(CreateFiveProductTaskLogic);
createFiveProductTaskThread.Start();
var createRawTaskThread = new Thread(CreateRawTaskLogic); var createRawTaskThread = new Thread(CreateRawTaskLogic);
createRawTaskThread.Start(); createRawTaskThread.Start();
@ -81,6 +84,97 @@ namespace Khd.Core.Wcs.Wcs
LogManager.Info("出库任务监听启动成功"); LogManager.Info("出库任务监听启动成功");
} }
private void CreateFiveProductInTaskLogic(object? obj)
{
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 28);
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == 30);
while (true)
{
try
{
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
var wmsProductInstock = dbContext.WmsProductInstock
.Where(t => t.productType == "2")
.Where(t => t.auditStatus == "1")
.Where(t => t.warehouseId == 521)
.FirstOrDefault();
if (wmsProductInstock != null && wmsProductInstock.executeStatus == "0")
{
var wmsBaseLocation = dbContext.WmsBaseLocation
.Where(t => t.warehouseId == 521)
.Where(t => t.activeFlag == "1")
.Where(t => t.instockFlag == "0")
.Where(t => t.outstockFlag == "0")
.Where(t => t.locationStatus == "1")
.Where(t => t.containerCode == null || t.containerCode == "").FirstOrDefault();
if (wmsBaseLocation != null)
{
var wcsTask = new WcsTask()
{
objid = StaticData.SnowId.NextId(),
serialNo = SystemData.GetSerialNo(dbContext),
taskType = 34,
startPointId = wmsBaseLocation.locationId,
startPointNo = wmsBaseLocation.locationCode,
endPointId = endEquip.objid,
endPointNo = endEquip.equipNo,
currPointId = wmsBaseLocation.locationId,
currPointNo = wmsBaseLocation.locationCode,
equipmentNo = agvEquip.equipNo,
useFlag = 1,
qty = 1,
containerNo = wmsProductInstock.palletInfoCode,
taskStatus = 0,
createBy = "WCS",
createTime = DateTime.Now,
floorNo = 5,
fromFloorNo = 5,
isEmpty = "0",
masterId = wmsProductInstock.productId,
orderId = wmsProductInstock.productInstockId,
materialId = wmsProductInstock.productId,
nextPointId = agvEquip.objid,
nextPointNo = agvEquip.equipNo,
};
WmsProductInstockDetail wmsProductInstockDetail = new WmsProductInstockDetail()
{
erpAmount = 0,
productId = wmsProductInstock.productId,
executeStatus = "1",
productInstockDetailId = StaticData.SnowId.NextId(),
instockAmount = 1,
instockBy = "WCS",
instockDate = DateTime.Now,
instockWay = "2",
locationCode = wmsBaseLocation.locationCode,
planAmount = 1,
productBarcode = wmsProductInstock.productBatch,
productBatch = wmsProductInstock.productBatch,
productInstockId = wmsProductInstock.productInstockId,
};
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
wmsProductInstock.executeStatus = "1";
wmsBaseLocation.instockFlag = "1";
wmsBaseLocation.locationStatus = "4";
dbContext.Add(wmsProductInstock);
dbContext.Update(wmsProductInstock);
dbContext.Update(wmsBaseLocation);
dbContext.Add(wcsTask);
dbContext.Add(wcsTaskLog);
dbContext.SaveChanges();
}
}
}
catch (Exception ex)
{
LogManager.Error(ex);
}
Thread.Sleep(1000);
}
}
/// <summary> /// <summary>
/// 创建去翻转机的任务 /// 创建去翻转机的任务
/// </summary> /// </summary>
@ -420,10 +514,29 @@ namespace Khd.Core.Wcs.Wcs
qty = Convert.ToInt32(needNumber); qty = Convert.ToInt32(needNumber);
stock.updateDate = DateTime.Now; stock.updateDate = DateTime.Now;
} }
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
};
wcsTask = new WcsTask() wcsTask = new WcsTask()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
orderId = item.saleOrderId, orderId = item.productOutstockId,
taskType = 38, taskType = 38,
containerNo = location.containerCode, containerNo = location.containerCode,
createBy = "WCS", createBy = "WCS",
@ -446,25 +559,7 @@ namespace Khd.Core.Wcs.Wcs
location.locationStatus = "6"; location.locationStatus = "6";
location.updateBy = "WCS"; location.updateBy = "WCS";
location.updateTime = DateTime.Now; location.updateTime = DateTime.Now;
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.Where(t => t.barcodeInfo == stock.productBatch).FirstOrDefault(); dbContext.Add(detail);
if (mesBaseBarcodeInfo != null)
{
WmsProductOutstockDetail wmsProductOutstockDetail = new WmsProductOutstockDetail()
{
productOutstockDetailId = StaticData.SnowId.NextId(),
productOutstockId = item.productOutstockId,
productId = item.productId,
beginTime = DateTime.Now,
confirmAmount = 0,
executeStatus = "1",
locationCode = location.locationCode,
outstockAmount = qty,
planAmount = item.applyQty,
warehouseId = item.warehouseId,
productBatch = mesBaseBarcodeInfo.batchCode,
productBarcode = mesBaseBarcodeInfo.barcodeInfo
};
dbContext.Add(wmsProductOutstockDetail);
dbContext.Update(location); dbContext.Update(location);
dbContext.Add(wcsTask); dbContext.Add(wcsTask);
dbContext.Update(stock); dbContext.Update(stock);
@ -475,7 +570,6 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
} }
if (item.beginTime == null) if (item.beginTime == null)
{ {
item.beginTime = DateTime.Now; item.beginTime = DateTime.Now;
@ -648,7 +742,12 @@ namespace Khd.Core.Wcs.Wcs
planAmount = item.outstockAmount, planAmount = item.outstockAmount,
warehouseId = item.warehouseId, warehouseId = item.warehouseId,
materialBarcode = mesBaseBarcodeInfo.barcodeInfo, materialBarcode = mesBaseBarcodeInfo.barcodeInfo,
instockBatch = mesBaseBarcodeInfo.batchCode instockBatch = mesBaseBarcodeInfo.batchCode,
stackAmount = qty,
outstockPerson = "WCS",
outstockTime = DateTime.Now,
outstockWay = "2",
materialProductionDate = mesBaseBarcodeInfo.productionDate
}; };
dbContext.Add(wmsProductOutstockDetail); dbContext.Add(wmsProductOutstockDetail);
location.outstockFlag = "1"; location.outstockFlag = "1";
@ -769,6 +868,31 @@ namespace Khd.Core.Wcs.Wcs
useFlag = 0, useFlag = 0,
qty = qty qty = qty
}; };
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.Where(t => t.barcodeInfo == stock.instockBatch).FirstOrDefault();
if (mesBaseBarcodeInfo != null)
{
WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail()
{
rawOutstockDetailId = StaticData.SnowId.NextId(),
rawOutstockId = item.rawOutstockId,
materialId = item.materialId,
createDate = DateTime.Now,
createBy = "WCS",
taskCode = wcsTask.objid.ToString(),
executeStatus = "1",
locationCode = location.locationCode,
outstockAmount = qty,
planAmount = item.outstockAmount,
warehouseId = item.warehouseId,
materialBarcode = mesBaseBarcodeInfo.barcodeInfo,
instockBatch = mesBaseBarcodeInfo.batchCode,
stackAmount = qty,
outstockPerson = "WCS",
outstockTime = DateTime.Now,
outstockWay = "2",
materialProductionDate = mesBaseBarcodeInfo.productionDate
};
dbContext.Add(wmsProductOutstockDetail);
location.outstockFlag = "1"; location.outstockFlag = "1";
location.locationStatus = "6"; location.locationStatus = "6";
location.updateBy = "WCS"; location.updateBy = "WCS";
@ -787,6 +911,7 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
} }
}
if (CreateSuccess) if (CreateSuccess)
{ {
BaseEquip startStationEquip = StaticData.BaseEquip.First(t => t.objid == 21); BaseEquip startStationEquip = StaticData.BaseEquip.First(t => t.objid == 21);
@ -900,6 +1025,9 @@ namespace Khd.Core.Wcs.Wcs
qty = Convert.ToInt32(needNumber); qty = Convert.ToInt32(needNumber);
stock.updateDate = DateTime.Now; stock.updateDate = DateTime.Now;
} }
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.Where(t => t.barcodeInfo == stock.instockBatch).FirstOrDefault();
if (mesBaseBarcodeInfo != null)
{
wcsTask = new WcsTask() wcsTask = new WcsTask()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
@ -922,6 +1050,28 @@ namespace Khd.Core.Wcs.Wcs
useFlag = 1, useFlag = 1,
qty = qty qty = qty
}; };
WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail()
{
rawOutstockDetailId = StaticData.SnowId.NextId(),
rawOutstockId = item.rawOutstockId,
materialId = item.materialId,
createDate = DateTime.Now,
createBy = "WCS",
taskCode = wcsTask.objid.ToString(),
executeStatus = "1",
locationCode = location.locationCode,
outstockAmount = qty,
planAmount = item.outstockAmount,
warehouseId = item.warehouseId,
materialBarcode = mesBaseBarcodeInfo.barcodeInfo,
instockBatch = mesBaseBarcodeInfo.batchCode,
stackAmount = qty,
outstockPerson = "WCS",
outstockTime = DateTime.Now,
outstockWay = "2",
materialProductionDate = mesBaseBarcodeInfo.productionDate
};
dbContext.Add(wmsProductOutstockDetail);
location.outstockFlag = "1"; location.outstockFlag = "1";
location.locationStatus = "6"; location.locationStatus = "6";
location.updateBy = "WCS"; location.updateBy = "WCS";
@ -948,6 +1098,7 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
} }
}
catch catch
{ {

@ -133,7 +133,8 @@ namespace Khd.Core.Wcs.Wcs
//正常托盘到位 //正常托盘到位
if (Convert.ToInt32(linesignal01Value) == 1) if (Convert.ToInt32(linesignal01Value) == 1)
{ {
//判断task表里没有该rfid的未完成的入库信息未下发去向 //判断task表里没有该rfid的未完成的入库
//信息,未下发去向
var task = dbContext.WcsTask.Where(t => t.containerNo == RFID001Value && t.taskStatus < 1).FirstOrDefault(); var task = dbContext.WcsTask.Where(t => t.containerNo == RFID001Value && t.taskStatus < 1).FirstOrDefault();
if (task == null) if (task == null)
{ {
@ -143,6 +144,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
var lastTask = dbContext.WcsTaskLog.Where(t => t.containerNo == RFID001Value).OrderByDescending(t => t.createTime).FirstOrDefault(); var lastTask = dbContext.WcsTaskLog.Where(t => t.containerNo == RFID001Value).OrderByDescending(t => t.createTime).FirstOrDefault();
if (lastTask != null) if (lastTask != null)
{ {
if (lastTask.materialId == material.materialId && lastTask.ud3 != "10") if (lastTask.materialId == material.materialId && lastTask.ud3 != "10")
{ {
@ -290,9 +292,9 @@ namespace Khd.Core.Wcs.Wcs
{ {
try try
{ {
var automatic06Value = this._plc.Read(this.automatic.plcpointAddress);//提升机自动状态 //var automatic06Value = this._plc.Read(this.automatic.plcpointAddress);//提升机自动状态
if (automatic06Value != null && Convert.ToInt32(automatic06Value) == 1) //if (automatic06Value != null && Convert.ToInt32(automatic06Value) == 1)
{ //{
using var scope = _host.Services.CreateScope(); using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>(); using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
var serialno06Value = this._plc.Read(this.serialno06.plcpointAddress); //提升机流水号 读 var serialno06Value = this._plc.Read(this.serialno06.plcpointAddress); //提升机流水号 读
@ -330,7 +332,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
if (Convert.ToInt32(currentfloor06Value) == wcsTask.fromFloorNo) if (Convert.ToInt32(currentfloor06Value) == wcsTask.fromFloorNo)
{ {
if (Convert.ToInt32(canwritewcsrun06value) == 0) //if (Convert.ToInt32(canwritewcsrun06value) == 0)
{ {
wcsTask.taskStatus = 2; wcsTask.taskStatus = 2;
wcsTask.updateBy = "提升机线程"; wcsTask.updateBy = "提升机线程";
@ -367,7 +369,7 @@ namespace Khd.Core.Wcs.Wcs
BasePlcpoint floorPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID00" + wcsTask.fromFloorNo); BasePlcpoint floorPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "RFID00" + wcsTask.fromFloorNo);
if (wcsTask.containerNo == this._plc.ReadRFID(floorPoint.plcpointAddress)) if (wcsTask.containerNo == this._plc.ReadRFID(floorPoint.plcpointAddress))
{ {
if (Convert.ToInt32(canwritewcsrun06value) == 0) //if (Convert.ToInt32(canwritewcsrun06value) == 0)
{ {
if (Convert.ToInt32(currentfloor06Value) == wcsTask.fromFloorNo)//提升机当前楼层为初始地楼层 if (Convert.ToInt32(currentfloor06Value) == wcsTask.fromFloorNo)//提升机当前楼层为初始地楼层
{ {
@ -401,7 +403,7 @@ namespace Khd.Core.Wcs.Wcs
} }
if (wcsTask.taskStatus == 3 && Convert.ToInt32(currentfloor06Value) == wcsTask.floorNo && Convert.ToInt32(reserialno06) == wcsTask.serialNo)//任务状态为3且当前楼层为任务的目的楼层 if (wcsTask.taskStatus == 3 && Convert.ToInt32(currentfloor06Value) == wcsTask.floorNo && Convert.ToInt32(reserialno06) == wcsTask.serialNo)//任务状态为3且当前楼层为任务的目的楼层
{ {
if (Convert.ToInt32(canwritewcsrun06value) == 0) //if (Convert.ToInt32(canwritewcsrun06value) == 0)
{ {
wcsTask.taskStatus = 4; wcsTask.taskStatus = 4;
wcsTask.updateBy = "提升机线程"; wcsTask.updateBy = "提升机线程";
@ -434,7 +436,7 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
} }
} //}
} }
catch (Exception ex) catch (Exception ex)
{ {

@ -74,7 +74,7 @@ namespace Khd.Core.Wcs.Wcs
var taskList = dbContext.WcsTask var taskList = dbContext.WcsTask
.Where(t => t.useFlag == 1) .Where(t => t.useFlag == 1)
.Where(t => t.nextPointId == agvID).OrderBy(t => t.createTime).ToList(); .Where(t => t.nextPointId == agvID).OrderBy(t => t.createTime).ToList();
dbContext.ChangeTracker.Entries().ToList().ForEach (e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
if (taskList.Count == 0) if (taskList.Count == 0)
{ {
LogManager.Info(FloorNo + "楼AGV无任务"); LogManager.Info(FloorNo + "楼AGV无任务");
@ -124,7 +124,7 @@ namespace Khd.Core.Wcs.Wcs
type="00" type="00"
} }
}, },
taskTyp= baseDictionary.dicValue, taskTyp = baseDictionary.dicValue,
ctnrTyp = "2", ctnrTyp = "2",
}; };
string message = JsonConvert.SerializeObject(agvTask); string message = JsonConvert.SerializeObject(agvTask);
@ -312,7 +312,7 @@ namespace Khd.Core.Wcs.Wcs
type="00" type="00"
} }
}, },
taskTyp= baseDictionary.dicValue, taskTyp = baseDictionary.dicValue,
ctnrTyp = "2", ctnrTyp = "2",
}; };
string message = JsonConvert.SerializeObject(agvTask); string message = JsonConvert.SerializeObject(agvTask);
@ -428,8 +428,8 @@ namespace Khd.Core.Wcs.Wcs
type = "00" type = "00"
} }
}, },
taskTyp= baseDictionary.dicValue, taskTyp = baseDictionary.dicValue,
ctnrTyp="2" ctnrTyp = "2"
}; };
string message = JsonConvert.SerializeObject(agvTask); string message = JsonConvert.SerializeObject(agvTask);
@ -487,7 +487,7 @@ namespace Khd.Core.Wcs.Wcs
type="00" type="00"
} }
}, },
taskTyp= baseDictionary.dicValue, taskTyp = baseDictionary.dicValue,
ctnrTyp = "2", ctnrTyp = "2",
}; };
string message = JsonConvert.SerializeObject(agvTask); string message = JsonConvert.SerializeObject(agvTask);
@ -664,13 +664,19 @@ namespace Khd.Core.Wcs.Wcs
} }
else if (item.taskType == 38)//出库 else if (item.taskType == 38)//出库
{ {
var wmsProductOutstockDetail = dbContext.WmsProductOutstockDetail.FirstOrDefault(t => t.productOutstockId == item.orderId); var wmsProductOutstockDetails = dbContext.WmsProductOutstockDetail.Where(t => t.productOutstockId == item.orderId );
if(wmsProductOutstockDetail != null) var wmsProductOutstockDetail = wmsProductOutstockDetails.FirstOrDefault(t=> t.executeStatus == "1" && t.locationCode == item.currPointNo);
var wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == item.orderId);
if (wmsProductOutstockDetail != null && wmsProductOutstock != null)
{ {
wmsProductOutstockDetail.executeStatus = "2"; wmsProductOutstockDetail.executeStatus = "2";
dbContext.Update(wmsProductOutstockDetail); dbContext.Update(wmsProductOutstockDetail);
if (!wmsProductOutstockDetails.Any(t => t.executeStatus != "2"))
{
wmsProductOutstock.executeStatus = "2";
dbContext.Update(wmsProductOutstock);
} }
BaseEquip lineEquip = StaticData.BaseEquip.First(t=>t.objid==5); BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 5);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation
.First(t => t.locationId == item.endPointId && t.warehouseFloor == 5); .First(t => t.locationId == item.endPointId && t.warehouseFloor == 5);
wmsBaseLocation.outstockFlag = "0"; wmsBaseLocation.outstockFlag = "0";
@ -694,6 +700,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Delete(); dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Delete();
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
}
else if (item.taskType == 33)//原材料到背板安装 else if (item.taskType == 33)//原材料到背板安装
{ {
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.startPointId); WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.startPointId);
@ -721,9 +729,12 @@ namespace Khd.Core.Wcs.Wcs
var mesBasePalletInfo = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == item.containerNo).FirstOrDefault(); var mesBasePalletInfo = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == item.containerNo).FirstOrDefault();
var wmsProductInstock = dbContext.WmsProductInstock var wmsProductInstock = dbContext.WmsProductInstock
.Where(t => t.palletInfoCode == item.containerNo) .Where(t => t.palletInfoCode == item.containerNo)
.Where(t => t.instockType == "2" && t.executeStatus == "1" && t.productType == "2" && t.warehouseFloor == 5) .Where(t => t.executeStatus == "1" && t.productType == "2" && t.warehouseFloor == 5)
.FirstOrDefault(); .FirstOrDefault();
if (mesBasePalletInfo != null && wmsProductInstock != null) if (mesBasePalletInfo != null && wmsProductInstock != null)
{
WmsProductInstockDetail? wmsProductInstockDetail = dbContext.WmsProductInstockDetail.Where(t => t.productInstockId == wmsProductInstock.productInstockId).FirstOrDefault();
if (wmsProductInstockDetail != null)
{ {
WmsProductStock wmsProductStock = new WmsProductStock() WmsProductStock wmsProductStock = new WmsProductStock()
{ {
@ -751,7 +762,9 @@ namespace Khd.Core.Wcs.Wcs
warehouseId = 512 warehouseId = 512
}; };
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.startPointId); BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.startPointId);
wmsProductInstockDetail.executeStatus = "2";
startEquip.emptyCount = 0; startEquip.emptyCount = 0;
dbContext.Update(wmsProductInstockDetail);
dbContext.Update(startEquip); dbContext.Update(startEquip);
dbContext.Add(wmsProductStock); dbContext.Add(wmsProductStock);
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
@ -761,6 +774,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 }); dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
}
} }
else if (item.taskType == 46)//该任务结束后立刻生成一个新的返库任务但是是否使用标志未0等待mes通知 else if (item.taskType == 46)//该任务结束后立刻生成一个新的返库任务但是是否使用标志未0等待mes通知
{ {
@ -773,7 +788,7 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation.updateTime = DateTime.Now; wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS"; wmsBaseLocation.updateBy = "WCS";
WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).FirstOrDefault(); WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).FirstOrDefault();
if(wmsRawStock != null) if (wmsRawStock != null)
{ {
wmsRawStock.completeFlag = "0"; wmsRawStock.completeFlag = "0";
wmsRawStock.updateDate = DateTime.Now; wmsRawStock.updateDate = DateTime.Now;

@ -572,6 +572,12 @@ namespace Khd.Core.Wcs.Wcs
{ {
if (item.taskType == 30)//出库任务 if (item.taskType == 30)//出库任务
{ {
WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.taskCode == item.objid.ToString());
if (wmsRawOutstockDetail != null)
{
wmsRawOutstockDetail.executeStatus = "2";
wmsRawOutstockDetail.updateDate = DateTime.Now;
dbContext.Update(wmsRawOutstockDetail);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation
.First(t => t.locationId == item.startPointId && t.warehouseFloor == 5); .First(t => t.locationId == item.startPointId && t.warehouseFloor == 5);
wmsBaseLocation.outstockFlag = "0"; wmsBaseLocation.outstockFlag = "0";
@ -590,6 +596,7 @@ namespace Khd.Core.Wcs.Wcs
this._plc.WriteToPoint(this.canReceive.plcpointAddress, "1", this.canReceive.plcpointLength?.ToString()); this._plc.WriteToPoint(this.canReceive.plcpointAddress, "1", this.canReceive.plcpointLength?.ToString());
} }
} }
}
else if (item.taskType == 29)//入库任务 else if (item.taskType == 29)//入库任务
{ {
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation

@ -130,7 +130,7 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();//找不到再找任意库位 wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();//找不到再找任意库位
//深浅库位问题?库位入库优先级等 //深浅库位问题?库位入库优先级等
var AgvEquip = StaticData.BaseEquip.First(t => t.floorNo == 5 && t.equipType == 5);//背负Agv var AgvEquip = StaticData.BaseEquip.First(t => t.floorNo == 5 && t.equipType == 5);//
if (wmsBaseLocations.Count > 0 && wmsBaseLocation != null) if (wmsBaseLocations.Count > 0 && wmsBaseLocation != null)
{ {
wcsTask.taskStatus = 0;//创建状态 wcsTask.taskStatus = 0;//创建状态
@ -145,12 +145,12 @@ namespace Khd.Core.Wcs.Wcs
if(wcsTask.fromFloorNo != 1) if(wcsTask.fromFloorNo != 1)
{ {
wcsTask.taskType = 47; wcsTask.taskType = 47;
wcsTask.useFlag = 1; wcsTask.useFlag = 0;
} }
else else
{ {
wcsTask.taskType = 47;//?28? wcsTask.taskType = 47;//?28?
wcsTask.useFlag = 0; wcsTask.useFlag = 1;
} }
wmsBaseLocation.instockFlag = "1"; wmsBaseLocation.instockFlag = "1";

@ -144,8 +144,6 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation ??= outBill.FirstOrDefault()?.b;//先找相同物料的外侧库位 wmsBaseLocation ??= outBill.FirstOrDefault()?.b;//先找相同物料的外侧库位
wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault(t => t.locDeep == 2);//找不到再找深库位 wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault(t => t.locDeep == 2);//找不到再找深库位
wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();//找不到再找任意库位 wmsBaseLocation ??= wmsBaseLocations.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();//找不到再找任意库位
//深浅库位问题?库位入库优先级等
if (wmsBaseLocations.Count > 0 && wmsBaseLocation != null) if (wmsBaseLocations.Count > 0 && wmsBaseLocation != null)
{ {

@ -6,14 +6,14 @@
//"DefaultConnection": "server=175.27.215.92;port=3306;database=hwjy-cloud;uid=kehaida;pwd=khd2024;charset='utf8';persistsecurityinfo=True;SslMode=None;Allow User Variables=True" //"DefaultConnection": "server=175.27.215.92;port=3306;database=hwjy-cloud;uid=kehaida;pwd=khd2024;charset='utf8';persistsecurityinfo=True;SslMode=None;Allow User Variables=True"
}, },
"PlcConfigs": [ "PlcConfigs": [
//{ {
// "IP": "192.168.2.30", "IP": "192.168.2.30",
// "Port": 102, //102 "Port": 102, //102
// "CpuType": 40, "CpuType": 40,
// "Rack": 0, "Rack": 0,
// "Slot": 1, "Slot": 1,
// "Code": 0 "Code": 0
//}, },
{ {
"IP": "192.168.2.31", "IP": "192.168.2.31",
"Port": 102, //102 "Port": 102, //102
@ -22,14 +22,14 @@
"Slot": 1, "Slot": 1,
"Code": 1 "Code": 1
}, },
//{ {
// "IP": "192.168.2.220", "IP": "192.168.2.220",
// "Port": 102, //102 "Port": 102, //102
// "CpuType": 40, "CpuType": 40,
// "Rack": 0, "Rack": 0,
// "Slot": 1, "Slot": 1,
// "Code": 2 "Code": 2
//} }
], ],
"PLCSetting": { "PLCSetting": {
"Mode": "0", "Mode": "0",

Loading…
Cancel
Save