change-调度3F人工叫料逻辑,自动删除人工任务

master
liuwf 1 year ago
parent c124c5ec0d
commit abd720db16

@ -1324,8 +1324,12 @@ namespace Khd.Core.Wcs.Wcs
if (wcsTaskManual != null)
{
var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == wcsTaskManual.orderId);
var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == wcsTaskManual.orderId);
if (!string.IsNullOrEmpty(wcsTaskManual.startPointNo)) //手动投料没有申请单
{
wmsRawOutstock = null;
}
var wmsRawStocks = dbContext.WmsRawStock
.WhereIf(wmsRawOutstock != null, t => t.saleOrderId == (wmsRawOutstock.saleOrderId == null ? 0 : wmsRawOutstock.saleOrderId))
.WhereIf(wmsRawOutstock != null, t => t.materialId == wmsRawOutstock.materialId)
@ -1345,8 +1349,12 @@ 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))
{
wmsBaseLocations = dbContext.WmsBaseLocation.Where(x => x.locationCode == wcsTaskManual.startPointNo).ToList();
var wmsRawPreferredOut = dbContext.WmsRawPreferredOut.Where(t => t.LocationCode == wcsTaskManual.startPointNo).FirstOrDefault();
if (wmsRawPreferredOut != null)
{
@ -1371,13 +1379,7 @@ namespace Khd.Core.Wcs.Wcs
}
}
bill = bill.OrderBy(t => list.Contains(t.a.locationCode) ? 0 : 1).OrderBy(t => t.b.instockDate.Value.Date);//按某个时间段
//#region 如果有需要优先投料的库位,则该库位优先投料
//List<string> PreferredOutsLocation = dbContext.WmsRawPreferredOut.Where(x => x.WarehouseId == 311).ToList().Select(x => x.LocationCode).ToList();
//if (PreferredOutsLocation != null && PreferredOutsLocation.Count > 0)
//{
// bill.OrderBy(t => PreferredOutsLocation.Contains(t.a.locationCode) ? 0 : 1);
//}
//#endregion
//#endregion
foreach (var item in bill)
{
@ -1527,6 +1529,29 @@ namespace Khd.Core.Wcs.Wcs
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode);
if (mesBaseBarcodeInfo != null)
{
if (wmsRawOutstock == null)
{
wmsRawOutstock = new WmsRawOutstock();
wmsRawOutstock.rawOutstockId = StaticData.SnowId.NextId();
wmsRawOutstock.taskCode = StaticData.SnowId.NextId().ToString();
wmsRawOutstock.warehouseId = 311;
wmsRawOutstock.locationCode = wmsBaseLocation.locationCode;
wmsRawOutstock.materialId = mesBaseBarcodeInfo.materialId;
wmsRawOutstock.materialBatch = mesBaseBarcodeInfo.barcodeInfo;
wmsRawOutstock.palletInfoCode = wmsBaseLocation.containerCode;
wmsRawOutstock.outstockAmount = 1;
wmsRawOutstock.realOutstockAmount = 0;
wmsRawOutstock.operationType = "1";
wmsRawOutstock.taskType = "1";
wmsRawOutstock.auditStatus = "1";
wmsRawOutstock.executeStatus = "0";
wmsRawOutstock.applyBy = "WCS";
wmsRawOutstock.auditDate = DateTime.Now;
wmsRawOutstock.saleOrderId = mesBaseBarcodeInfo != null ? mesBaseBarcodeInfo.saleOrderId : 0;
dbContext.Add(wmsRawOutstock);
}
//if (wmsRawOutstock != null)
//{
// WmsRawOutstockDetail wmsRawOutstockDetail = new WmsRawOutstockDetail()
@ -1574,6 +1599,7 @@ namespace Khd.Core.Wcs.Wcs
useFlag = 1,
qty = 1
};
SystemData.LockOutLocation(wmsBaseLocation, dbContext);
wmsBaseLocation.locationStatus = "6";
dbContext.Update(wmsBaseLocation);

@ -72,10 +72,7 @@ namespace Khd.Core.Wcs.Wcs
.FirstOrDefault(t => t.containerNo == rfid && t.nextPointId == baseEquip.objid);
if (wcsTask != null)
{
if (wcsTask.taskType == 99)
{
continue;
}
if (StaticData.BigContainerCodes.Contains(rfid))
{
if (rfid == lastRFID)

@ -645,7 +645,7 @@ namespace Khd.Core.Wcs.Wcs
{
var agvGetPoint = StaticData.BasePlcpointList.First(t => t.id == 53);
var agvGetValue = StaticData.PlcDic[2].Read(agvGetPoint.plcpointAddress);//小包出口的到位
if (agvGetValue != null && agvGetValue.ToString() == "1")
if (agvGetValue != null && (bool)agvGetValue==true)
{
var agvTask = new RequestAGVTaskDto
{

@ -343,6 +343,16 @@ namespace Khd.Core.Wcs.Wcs
try
{
dbContext.ChangeTracker.Clear();
#region 人工任务完成自动删除
WcsTask? wcsTask = dbContext.WcsTask.FirstOrDefault(t => t.taskType == 99 && t.taskStatus == 5);
if (wcsTask!=null)
{ //人工任务已经完成,自动删除
dbContext.Remove(wcsTask);
dbContext.SaveChanges();
}
#endregion
List<WcsTask> wcsTasks = dbContext.WcsTask.Where(t => t.IsDelete == 1).ToList();
foreach (var item in wcsTasks)
{
@ -424,6 +434,7 @@ namespace Khd.Core.Wcs.Wcs
}
}
/// <summary>
/// 定时发送心跳包
/// </summary>

@ -250,11 +250,11 @@ namespace Khd.Core.Wcs.Wcs
var callMaterial = StaticData.PlcDic[2].Read(basePlcpoint.plcpointAddress);
if (callMaterial != null && Convert.ToBoolean(callMaterial))
{
WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.rawOutstockId == item.orderId && t.executeStatus == "0");
if (wmsRawOutstockDetail != null)
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == item.orderId && t.executeStatus == "0");
if (wmsRawOutstock != null)
{
wmsRawOutstockDetail.executeStatus = "1";
wmsRawOutstockDetail.outstockTime = DateTime.Now;
wmsRawOutstock.executeStatus = "1";
wmsRawOutstock.updateDate = DateTime.Now;
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == 31);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
@ -286,7 +286,7 @@ namespace Khd.Core.Wcs.Wcs
Console.WriteLine(DateTime.Now + ":三楼AGV线程下发任务" + item.currPointNo + "," + item.endPointNo);
item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(wmsRawOutstockDetail);
dbContext.Update(wmsRawOutstock);
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
dbContext.SaveChanges();
@ -841,23 +841,23 @@ namespace Khd.Core.Wcs.Wcs
}
}
else
{
wmsRawOutstock = new WmsRawOutstock()
{
rawOutstockId = StaticData.SnowId.NextId(),
warehouseId = 311,
taskCode = "",
outstockAmount = 1,
realOutstockAmount = 1,
operationType = "3",
taskType = "1",
auditStatus = "0",
executeStatus = "2",
saleOrderId = mesBaseBarcodeInfo != null ? mesBaseBarcodeInfo.saleOrderId : 0,
};
//else
//{
// wmsRawOutstock = new WmsRawOutstock()
// {
// rawOutstockId = StaticData.SnowId.NextId(),
// warehouseId = 311,
// taskCode = "",
// outstockAmount = 1,
// realOutstockAmount = 1,
// operationType = "3",
// taskType = "1",
// auditStatus = "0",
// executeStatus = "2",
// saleOrderId = mesBaseBarcodeInfo != null ? mesBaseBarcodeInfo.saleOrderId : 0,
// };
}
//}
newWmsRawOutstockDetail.rawOutstockId = wmsRawOutstock.rawOutstockId;
newWmsRawOutstockDetail.taskCode = wmsRawOutstock.taskCode;
newWmsRawOutstockDetail.warehouseId = wmsRawOutstock.warehouseId;

@ -71,6 +71,7 @@ namespace Khd.Core.Wcs.Wcs
var AgvEquip = StaticData.BaseEquip.First(t => t.floorNo == 3 && t.equipType == 4);//背负Agv
if (wcsTask != null)//如果不是null
{
if (wcsTask.taskStatus == 5)//提升机任务是完成状态
{
lock (SystemData.ThirdTaskLock)

Loading…
Cancel
Save