master
1 year ago
parent f9a5cec9da
commit 2a7aef2bca

@ -361,7 +361,7 @@ namespace Khd.Core.Wcs.Wcs
WcsTask? wcsTask = dbContext.WcsTask.Where(t => t.nextPointId == 28).FirstOrDefault(); WcsTask? wcsTask = dbContext.WcsTask.Where(t => t.nextPointId == 28).FirstOrDefault();
if (wcsTask == null) if (wcsTask == null)
{ {
WmsRawInstock? wmsRawInstock = dbContext.WmsRawInstock.Where(t => t.warehouseId == 511 && t.instockType == "2" && t.executeStatus == "0").FirstOrDefault(); WmsRawInstock? wmsRawInstock = dbContext.WmsRawInstock.Where(t => t.warehouseId == 511 && (t.instockType == "2" || t.instockType == "4") && t.executeStatus == "0").FirstOrDefault();
if (wmsRawInstock != null) if (wmsRawInstock != null)
{ {
MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == wmsRawInstock.palletInfoCode); MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == wmsRawInstock.palletInfoCode);
@ -939,139 +939,130 @@ namespace Khd.Core.Wcs.Wcs
if (wcsTaskManual != null) if (wcsTaskManual != null)
{ {
var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == wcsTaskManual.orderId); var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == wcsTaskManual.orderId);
if (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)
.Where(t => t.warehouseId == 311)
.Where(t => t.totalAmount > t.frozenAmount)
.ToList();
var wmsRawStockLocations = wmsRawStocks.Select(x => x.locationCode).ToList();
var AllWmsBaseLocations = dbContext.WmsBaseLocation
.Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1")
.Where(t => t.warehouseId == 311)
.Where(t => t.locationStatus == "1").ToList();
var wmsBaseLocations = AllWmsBaseLocations
.Where(t => t.warehouseId == 311)
.Where(t => wmsRawStockLocations.Contains(t.locationCode))
.WhereIf(!string.IsNullOrEmpty(wcsTaskManual.startPointNo), t => t.locationCode == wcsTaskManual.startPointNo)
.ToList();
if (!string.IsNullOrEmpty(wcsTaskManual.startPointNo))
{ {
var wmsRawStocks = dbContext.WmsRawStock var wmsRawPreferredOut = dbContext.WmsRawPreferredOut.Where(t => t.LocationCode == wcsTaskManual.startPointNo).FirstOrDefault();
.Where(t => t.saleOrderId == (wmsRawOutstock.saleOrderId == null ? 0 : wmsRawOutstock.saleOrderId)) if (wmsRawPreferredOut != null)
.Where(t => t.warehouseId == 311)
.Where(t => t.materialId == wmsRawOutstock.materialId)
.Where(t => t.totalAmount > t.frozenAmount)
.ToList();
var wmsRawStockLocations = wmsRawStocks.Select(x => x.locationCode).ToList();
var AllWmsBaseLocations = dbContext.WmsBaseLocation
.Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1")
.Where(t => t.warehouseId == 311)
.Where(t => t.locationStatus == "1").ToList();
var wmsBaseLocations = AllWmsBaseLocations
.Where(t => t.warehouseId == 311)
.Where(t => wmsRawStockLocations.Contains(t.locationCode))
.WhereIf(!string.IsNullOrEmpty(wcsTaskManual.startPointNo),t=>t.locationCode== wcsTaskManual.startPointNo)
.ToList();
if (!string.IsNullOrEmpty(wcsTaskManual.startPointNo))
{ {
var wmsRawPreferredOut = dbContext.WmsRawPreferredOut.Where(t => t.LocationCode == wcsTaskManual.startPointNo).FirstOrDefault(); dbContext.Remove(wmsRawPreferredOut);
if (wmsRawPreferredOut != null)
{
dbContext.Remove(wmsRawPreferredOut);
}
} }
var bill = from a in wmsBaseLocations }
from b in wmsRawStocks var bill = from a in wmsBaseLocations
where a.locationCode == b.locationCode from b in wmsRawStocks
select new { a, b }; where a.locationCode == b.locationCode
WmsBaseLocation? wmsBaseLocation = null; select new { a, b };
WmsRawStock? wmsRawStock = null; WmsBaseLocation? wmsBaseLocation = null;
var inLocations = AllWmsBaseLocations.Where(t => t.locDeep == 1).Where(t => !string.IsNullOrEmpty(t.containerCode)).ToList(); WmsRawStock? wmsRawStock = null;
var outLocations = AllWmsBaseLocations.Where(t => t.locDeep == 2).Where(t => string.IsNullOrEmpty(t.containerCode)).ToList(); var inLocations = AllWmsBaseLocations.Where(t => t.locDeep == 1).Where(t => !string.IsNullOrEmpty(t.containerCode)).ToList();
var list = new List<string>(); var outLocations = AllWmsBaseLocations.Where(t => t.locDeep == 2).Where(t => string.IsNullOrEmpty(t.containerCode)).ToList();
foreach (var item in inLocations) var list = new List<string>();
foreach (var item in inLocations)
{
if (outLocations.Where(t => t.locRow == (item.locRow % 2 == 0 ? item.locRow - 1 : item.locRow + 1))
.Where(t => t.locColumn == item.locColumn).Any())
{ {
if (outLocations.Where(t => t.locRow == (item.locRow % 2 == 0 ? item.locRow - 1 : item.locRow + 1)) list.Add(item.locationCode);
.Where(t => t.locColumn == item.locColumn).Any())
{
list.Add(item.locationCode);
}
} }
bill = bill.OrderBy(t => list.Contains(t.a.locationCode) ? 0 : 1).OrderBy(t => t.b.instockDate.Value.Date);//按某个时间段 }
//#region 如果有需要优先投料的库位,则该库位优先投料 bill = bill.OrderBy(t => list.Contains(t.a.locationCode) ? 0 : 1).OrderBy(t => t.b.instockDate.Value.Date);//按某个时间段
//List<string> PreferredOutsLocation = dbContext.WmsRawPreferredOut.Where(x => x.WarehouseId == 311).ToList().Select(x => x.LocationCode).ToList(); //#region 如果有需要优先投料的库位,则该库位优先投料
//if (PreferredOutsLocation != null && PreferredOutsLocation.Count > 0) //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); //{
//} // bill.OrderBy(t => PreferredOutsLocation.Contains(t.a.locationCode) ? 0 : 1);
//#endregion //}
//#endregion
foreach (var item in bill) foreach (var item in bill)
{
// 目标库位
var fistbill = item;
int? locRow = 0;
if (fistbill.a.locRow % 2 == 1)
{ {
// 目标库位 locRow = fistbill.a.locRow + 1;
var fistbill = item; }
else
{
locRow = fistbill.a.locRow - 1;
}
wmsBaseLocation = fistbill.a;
int? locRow = 0; // 目标库位处于深库位,判断是否需要移库浅库位
if (fistbill.a.locRow % 2 == 1) if (wmsBaseLocation.locDeep == 1)
{
int? row = 0;
if (wmsBaseLocation.locRow % 2 == 1)
{ {
locRow = fistbill.a.locRow + 1; row = wmsBaseLocation.locRow + 1;
} }
else else
{ {
locRow = fistbill.a.locRow - 1; row = wmsBaseLocation.locRow - 1;
} }
wmsBaseLocation = fistbill.a;
// 目标库位处于深库位,判断是否需要移库浅库位 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 (wmsBaseLocation.locDeep == 1) if (lowLocationBill != null)
{ {
int? row = 0; //对应的浅库位满足条件,直接出浅库位
if (wmsBaseLocation.locRow % 2 == 1) wmsBaseLocation = lowLocationBill.a;
}
else
{
//目标出库库位对应的浅库位
WmsBaseLocation? fromBaseLocation = dbContext.WmsBaseLocation.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) && fromBaseLocation.locationStatus == "1")
{ {
row = wmsBaseLocation.locRow + 1; // 浅库位有库存
} WmsRawStock? wmsRawStock1 = dbContext.WmsRawStock.FirstOrDefault(t => t.locationCode == fromBaseLocation.locationCode);
else if (wmsRawStock1 != null)
{
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 = dbContext.WmsBaseLocation.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) && fromBaseLocation.locationStatus == "1")
{ {
// 浅库位有库存 #region 找寻移库目标库位
WmsRawStock? wmsRawStock1 = dbContext.WmsRawStock.FirstOrDefault(t => t.locationCode == fromBaseLocation.locationCode); // 寻找移库目的库位
if (wmsRawStock1 != null) WmsBaseLocation? toLocation = null;
var moveLocationList = AllWmsBaseLocations.Where(t => t.warehouseId == fromBaseLocation.warehouseId)
.Where(t => t.warehouseId != fromBaseLocation.locationId)
.Where(t => string.IsNullOrEmpty(t.containerCode)).OrderBy(t => t.locDeep).ToList();
foreach (WmsBaseLocation itemLocation in moveLocationList)
{ {
#region 找寻移库目标库位
// 寻找移库目的库位
WmsBaseLocation? toLocation = null;
var moveLocationList = AllWmsBaseLocations.Where(t => t.warehouseId == fromBaseLocation.warehouseId) if (itemLocation.locDeep == 1)
.Where(t => t.warehouseId != fromBaseLocation.locationId)
.Where(t => string.IsNullOrEmpty(t.containerCode)).OrderBy(t => t.locDeep).ToList();
foreach (WmsBaseLocation itemLocation in moveLocationList)
{ {
bool hasLocation = AllWmsBaseLocations
if (itemLocation.locDeep == 1) .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)
{ {
bool hasLocation = AllWmsBaseLocations Console.WriteLine(DateTime.Now + $":目标库位{toLocation.locationCode}的浅库位库位状态异常,无法移库");
.Where(t => t.locRow == (itemLocation.locRow % 2 == 1 ? (itemLocation.locRow + 1) : (itemLocation.locRow - 1))) _logger.Info($"目标库位{toLocation.locationCode}的浅库位库位状态异常,无法移库");
.Where(t => t.locColumn == itemLocation.locColumn) continue;
.Where(t => t.locationStatus == "1" && string.IsNullOrEmpty(t.containerCode))
.Any();
if (!hasLocation)
{
Console.WriteLine(DateTime.Now + $":目标库位{toLocation.locationCode}的浅库位库位状态异常,无法移库");
_logger.Info($"目标库位{toLocation.locationCode}的浅库位库位状态异常,无法移库");
continue;
}
else
{
// 找到可以移库的目标库位
toLocation = itemLocation;
break;
}
} }
else else
{ {
@ -1081,124 +1072,134 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
if (toLocation == null) else
{ {
// 找寻下一个可出库库存 // 找到可以移库的目标库位
continue; toLocation = itemLocation;
break;
} }
var RemoveTask = new WcsTask() }
{ if (toLocation == null)
objid = StaticData.SnowId.NextId(), {
taskType = StaticTaskType.ThirdRemove, // 找寻下一个可出库库存
containerNo = wmsRawStock1.palletInfoCode, continue;
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
};
SystemData.LockOutLocation(toLocation, dbContext);
SystemData.LockOutLocation(fromBaseLocation, dbContext);
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);
#endregion
} }
} var RemoveTask = new WcsTask()
else if (fromBaseLocation != null && fromBaseLocation.locationStatus != "1")
{
//浅库位状态异常,找寻下一个可出库库存
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)
{
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode);
if (mesBaseBarcodeInfo != null)
{
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(), objid = StaticData.SnowId.NextId(),
orderId = wmsRawOutstock.rawOutstockId, taskType = StaticTaskType.ThirdRemove,
taskType = StaticTaskType.ThirdRawToFlip, containerNo = wmsRawStock1.palletInfoCode,
containerNo = wmsRawStock.palletInfoCode,
createBy = "WCS", createBy = "WCS",
createTime = DateTime.Now, createTime = DateTime.Now.AddSeconds(-10),
taskStatus = 0, taskStatus = 0,
materialId = wmsRawOutstock.materialId, currPointId = fromBaseLocation.locationId,
currPointId = wmsBaseLocation.locationId, currPointNo = fromBaseLocation.locationCode,
currPointNo = wmsBaseLocation.locationCode,
nextPointId = baseEquip.objid, nextPointId = baseEquip.objid,
nextPointNo = baseEquip.equipNo, nextPointNo = baseEquip.equipNo,
endPointId = endEquip.objid, endPointId = toLocation.locationId,
endPointNo = endEquip.equipNo, endPointNo = toLocation.locationCode,
equipmentNo = endEquip.equipNo, equipmentNo = baseEquip.equipNo,
useFlag = 1, useFlag = 1,
qty = 1 qty = 1
}; };
SystemData.LockOutLocation(wmsBaseLocation, dbContext); SystemData.LockOutLocation(toLocation, dbContext);
wmsBaseLocation.locationStatus = "6"; SystemData.LockOutLocation(fromBaseLocation, dbContext);
dbContext.Update(wmsBaseLocation); toLocation.locationStatus = "4";
dbContext.Add(wmsRawOutstockDetail); toLocation.updateBy = "WCS";
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask); toLocation.updateTime = DateTime.Now;
dbContext.Remove(wcsTaskManual); fromBaseLocation.updateBy = "WCS";
dbContext.Add(wcsTask); 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); dbContext.Add(wcsTaskLog);
dbContext.SaveChanges(); #endregion
break;
} }
}
else if (fromBaseLocation != null && fromBaseLocation.locationStatus != "1")
{
//浅库位状态异常,找寻下一个可出库库存
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)
{
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode);
if (mesBaseBarcodeInfo != null)
{
//if (wmsRawOutstock != null)
//{
// 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
// };
// dbContext.Add(wmsRawOutstockDetail);
//}
wcsTask = new WcsTask()
{
objid = StaticData.SnowId.NextId(),
orderId = wmsRawOutstock?.rawOutstockId,
taskType = StaticTaskType.ThirdRawToFlip,
containerNo = wmsRawStock.palletInfoCode,
createBy = "WCS",
createTime = DateTime.Now,
taskStatus = 0,
materialId = mesBaseBarcodeInfo.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
};
SystemData.LockOutLocation(wmsBaseLocation, dbContext);
wmsBaseLocation.locationStatus = "6";
dbContext.Update(wmsBaseLocation);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
dbContext.Remove(wcsTaskManual);
dbContext.Add(wcsTask);
dbContext.Add(wcsTaskLog);
dbContext.SaveChanges();
break;
}
}
}
} }
} }
} }
@ -1569,22 +1570,23 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
WmsProductOutstockDetail detail = new() //WmsProductOutstockDetail detail = new()
{ //{
productId = item.productId, // productId = item.productId,
productOutstockId = item.productOutstockId, // productOutstockId = item.productOutstockId,
locationCode = location.locationCode, // locationCode = location.locationCode,
executeStatus = "1", // executeStatus = "1",
beginTime = DateTime.Now, // beginTime = DateTime.Now,
warehouseId = item.warehouseId, // warehouseId = item.warehouseId,
erpAmount = 0, // erpAmount = 0,
confirmAmount = 0, // confirmAmount = 0,
outstockAmount = 1, // outstockAmount = 1,
planAmount = 1, // planAmount = 1,
productBatch = item.productBatch, // productBatch = item.productBatch,
productOutstockDetailId = StaticData.SnowId.NextId(), // productOutstockDetailId = StaticData.SnowId.NextId(),
productBarcode = mesBasePalletInfo.materialBarcode // productBarcode = mesBasePalletInfo.materialBarcode
}; //};
//dbContext.Add(detail);
wcsTask = new WcsTask() wcsTask = new WcsTask()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
@ -1609,7 +1611,6 @@ 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;
dbContext.Add(detail);
dbContext.Update(location); dbContext.Update(location);
dbContext.Add(wcsTask); dbContext.Add(wcsTask);
dbContext.Update(stock); dbContext.Update(stock);
@ -1867,27 +1868,27 @@ namespace Khd.Core.Wcs.Wcs
useFlag = 1, useFlag = 1,
qty = 1 qty = 1
}; };
WmsProductOutstockDetail detail = new() //WmsProductOutstockDetail detail = new()
{ //{
productId = item.productId, // productId = item.productId,
productOutstockId = item.productOutstockId, // productOutstockId = item.productOutstockId,
locationCode = location.locationCode, // locationCode = location.locationCode,
executeStatus = "1", // executeStatus = "1",
beginTime = DateTime.Now, // beginTime = DateTime.Now,
warehouseId = item.warehouseId, // warehouseId = item.warehouseId,
erpAmount = 0, // erpAmount = 0,
confirmAmount = 0, // confirmAmount = 0,
outstockAmount = 1, // outstockAmount = 1,
planAmount = 1, // planAmount = 1,
productBatch = item.productBatch, // productBatch = item.productBatch,
productOutstockDetailId = StaticData.SnowId.NextId(), // productOutstockDetailId = StaticData.SnowId.NextId(),
productBarcode = mesBasePalletInfo.materialBarcode, // productBarcode = mesBasePalletInfo.materialBarcode,
}; //};
//dbContext.Add(detail);
SystemData.LockOutLocation(location, dbContext); SystemData.LockOutLocation(location, dbContext);
location.locationStatus = "6"; location.locationStatus = "6";
location.updateBy = "WCS"; location.updateBy = "WCS";
location.updateTime = DateTime.Now; location.updateTime = DateTime.Now;
dbContext.Add(detail);
dbContext.Update(location); dbContext.Update(location);
dbContext.Add(wcsTask); dbContext.Add(wcsTask);
dbContext.Update(stock); dbContext.Update(stock);
@ -2553,33 +2554,33 @@ namespace Khd.Core.Wcs.Wcs
qty = qty qty = qty
}; };
//location是出库的库位mesBaseBarcodeInfo是条码信息表数据item是出库申请单 //location是出库的库位mesBaseBarcodeInfo是条码信息表数据item是出库申请单
WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail() //WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail()
{ //{
rawOutstockDetailId = StaticData.SnowId.NextId(), // rawOutstockDetailId = StaticData.SnowId.NextId(),
rawOutstockId = item.rawOutstockId, // rawOutstockId = item.rawOutstockId,
materialId = item.materialId, // materialId = item.materialId,
createDate = DateTime.Now, // createDate = DateTime.Now,
createBy = "WCS", // createBy = "WCS",
taskCode = wcsTask.objid.ToString(), // taskCode = wcsTask.objid.ToString(),
executeStatus = "1", // executeStatus = "1",
locationCode = location.locationCode, // locationCode = location.locationCode,
outstockAmount = qty, // outstockAmount = qty,
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, // stackAmount = qty,
outstockPerson = "WCS", // outstockPerson = "WCS",
outstockTime = DateTime.Now, // outstockTime = DateTime.Now,
outstockWay = "2", // outstockWay = "2",
materialProductionDate = mesBaseBarcodeInfo.productionDate // materialProductionDate = mesBaseBarcodeInfo.productionDate
}; //};
//dbContext.Add(wmsProductOutstockDetail);
if (item.beginTime == null) if (item.beginTime == null)
{ {
item.beginTime = DateTime.Now; item.beginTime = DateTime.Now;
} }
SystemData.LockOutLocation(location, dbContext); SystemData.LockOutLocation(location, dbContext);
dbContext.Add(wmsProductOutstockDetail);
location.locationStatus = "6"; location.locationStatus = "6";
location.updateBy = "WCS"; location.updateBy = "WCS";
location.updateTime = DateTime.Now; location.updateTime = DateTime.Now;

@ -780,22 +780,25 @@ namespace Khd.Core.Wcs.Wcs
updateDate = DateTime.Now, updateDate = DateTime.Now,
warehouseId = 511, warehouseId = 511,
}; };
WmsRawInstock? WmsRawInstock = dbContext.WmsRawInstock.FirstOrDefault(t => t.materialBarCode == mesBasePalletInfo.materialBarcode && t.instockType == "2"); var WmsRawInstock = dbContext.WmsRawInstock.FirstOrDefault(t => t.materialBarCode == mesBasePalletInfo.materialBarcode && t.instockType == "2");
WmsRawInstock.returnFlag = null; if (WmsRawInstock != null)
WmsRawInstock.executeStatus = "2"; {
WmsRawInstock.updateDate = DateTime.Now; WmsRawInstock.returnFlag = null;
WmsRawInstock.executeStatus = "2";
WmsRawInstock.updateDate = DateTime.Now;
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
dbContext.Update(WmsRawInstock); dbContext.Update(WmsRawInstock);
dbContext.Add(wmsRawStock); dbContext.Add(wmsRawStock);
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
startEquip.emptyCount = 0; startEquip.emptyCount = 0;
dbContext.Update(startEquip); dbContext.Update(startEquip);
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
dbContext.Remove(item); dbContext.Remove(item);
dbContext.SaveChanges(); dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
SystemData.SendPlcLocation(wmsBaseLocation); SystemData.SendPlcLocation(wmsBaseLocation);
}
} }
} }
@ -813,42 +816,41 @@ namespace Khd.Core.Wcs.Wcs
var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode); var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode);
if (mesBaseBarcodeInfo != null) if (mesBaseBarcodeInfo != null)
{ {
//if (mesBaseBarcodeInfo.PurchaseOrderId == -1)
//{ // 虚拟托盘号,合并的物料分别插入WmsRawInstock
// List<MesSaleOrderRelate> mesSaleOrderRelates = dbContext.MesSaleOrderRelate.Where(x => x.SaleOrderId == mesBaseBarcodeInfo.saleOrderId).ToList();
// List<WmsRawInstock>? wmsRawInstocks = new List<WmsRawInstock>();
// foreach (var mesSaleOrderRelate in mesSaleOrderRelates)
// {
// WmsRawInstock wmsRawInstock = new WmsRawInstock()
// {
// taskCode = StaticData.SnowId.NextId().ToString(),
// materialBarCode = null,
// materialBatchCode = null,
// applyBy = "wcs",
// applyDate = System.DateTime.Now,
// purchaseOrderId = mesSaleOrderRelate.PurchaseOrderId,
// beginTime = DateTime.Now,
// endTime = DateTime.Now,
// locationCode = wmsBaseLocation.locationCode,
// executeStatus = "2",
// instockAmount = mesSaleOrderRelate.RelateSaleOrderAmount,
// instockType = "1",
if (mesBaseBarcodeInfo.PurchaseOrderId == -1) // materialId = mesSaleOrderRelate.MaterialId,
{ // 虚拟托盘号,合并的物料分别插入WmsRawInstock // operationType = "3",
List<MesSaleOrderRelate> mesSaleOrderRelates = dbContext.MesSaleOrderRelate.Where(x => x.SaleOrderId == mesBaseBarcodeInfo.saleOrderId).ToList(); // palletInfoCode = mesBaseBarcodeInfo.palletInfoCode,
List<WmsRawInstock>? wmsRawInstocks = new List<WmsRawInstock>(); // poNo = mesBaseBarcodeInfo.poNo,
foreach (var mesSaleOrderRelate in mesSaleOrderRelates) // warehouseId = 511
{ // };
WmsRawInstock wmsRawInstock = new WmsRawInstock() // wmsRawInstocks.Add(wmsRawInstock);
{ // }
taskCode = StaticData.SnowId.NextId().ToString(), // if (wmsRawInstocks.Count > 0)
materialBarCode = null, // {
materialBatchCode = null, // dbContext.WmsRawInstock.AddRange(wmsRawInstocks);
applyBy = "wcs", // }
applyDate = System.DateTime.Now, //}
purchaseOrderId = mesSaleOrderRelate.PurchaseOrderId, //else
beginTime = DateTime.Now,
endTime = DateTime.Now,
locationCode = wmsBaseLocation.locationCode,
executeStatus = "2",
instockAmount = mesSaleOrderRelate.RelateSaleOrderAmount,
instockType = "1",
materialId = mesSaleOrderRelate.MaterialId,
operationType = "3",
palletInfoCode = mesBaseBarcodeInfo.palletInfoCode,
poNo = mesBaseBarcodeInfo.poNo,
warehouseId = 511
};
wmsRawInstocks.Add(wmsRawInstock);
}
if (wmsRawInstocks.Count > 0)
{
dbContext.WmsRawInstock.AddRange(wmsRawInstocks);
}
}
else
{ {
WmsRawInstock wmsRawInstock = new WmsRawInstock() WmsRawInstock wmsRawInstock = new WmsRawInstock()
{ {
@ -863,8 +865,7 @@ namespace Khd.Core.Wcs.Wcs
locationCode = wmsBaseLocation.locationCode, locationCode = wmsBaseLocation.locationCode,
executeStatus = "2", executeStatus = "2",
instockAmount = 1, instockAmount = 1,
instockType = "1", instockType = "4",
materialId = mesBaseBarcodeInfo.materialId, materialId = mesBaseBarcodeInfo.materialId,
operationType = "3", operationType = "3",
palletInfoCode = mesBaseBarcodeInfo.palletInfoCode, palletInfoCode = mesBaseBarcodeInfo.palletInfoCode,

@ -763,25 +763,43 @@ namespace Khd.Core.Wcs.Wcs
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == item.orderId); WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == item.orderId);
WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.currPointNo).FirstOrDefault(); WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.currPointNo).FirstOrDefault();
if (wmsRawOutstock != null && wmsRawStock != null) if (wmsRawStock != null)
{ {
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.Where(t => t.barcodeInfo == wmsRawStock.instockBatch).FirstOrDefault();
wmsRawOutstock.realOutstockAmount += 1;
if (wmsRawOutstock.realOutstockAmount >= wmsRawOutstock.outstockAmount)
{
wmsRawOutstock.endTime = DateTime.Now;
wmsRawOutstock.executeStatus = "2";
}
WmsRawOutstockDetail newWmsRawOutstockDetail = new WmsRawOutstockDetail(); WmsRawOutstockDetail newWmsRawOutstockDetail = new WmsRawOutstockDetail();
if (wmsRawOutstock != null)
{
wmsRawOutstock.realOutstockAmount += 1;
if (wmsRawOutstock.realOutstockAmount >= wmsRawOutstock.outstockAmount)
{
wmsRawOutstock.endTime = DateTime.Now;
wmsRawOutstock.executeStatus = "2";
}
}
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.rawOutstockId = wmsRawOutstock.rawOutstockId;
newWmsRawOutstockDetail.taskCode = wmsRawOutstock.taskCode; newWmsRawOutstockDetail.taskCode = wmsRawOutstock.taskCode;
newWmsRawOutstockDetail.warehouseId = wmsRawOutstock.warehouseId; newWmsRawOutstockDetail.warehouseId = wmsRawOutstock.warehouseId;
newWmsRawOutstockDetail.locationCode = wmsRawStock.locationCode; newWmsRawOutstockDetail.locationCode = wmsRawStock.locationCode;
newWmsRawOutstockDetail.materialBarcode = wmsRawStock.instockBatch; newWmsRawOutstockDetail.materialBarcode = wmsRawStock.instockBatch;
newWmsRawOutstockDetail.materialId = wmsRawStock.materialId; newWmsRawOutstockDetail.materialId = wmsRawStock.materialId;
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.Where(t => t.barcodeInfo == wmsRawStock.instockBatch).FirstOrDefault();
if (mesBaseBarcodeInfo != null) if (mesBaseBarcodeInfo != null)
{ {
newWmsRawOutstockDetail.instockBatch = mesBaseBarcodeInfo.batchCode; newWmsRawOutstockDetail.instockBatch = mesBaseBarcodeInfo.batchCode;
@ -796,15 +814,16 @@ namespace Khd.Core.Wcs.Wcs
newWmsRawOutstockDetail.createBy = "WCS"; newWmsRawOutstockDetail.createBy = "WCS";
newWmsRawOutstockDetail.createDate = DateTime.Now; newWmsRawOutstockDetail.createDate = DateTime.Now;
newWmsRawOutstockDetail.stackAmount = 1; newWmsRawOutstockDetail.stackAmount = 1;
dbContext.Add(newWmsRawOutstockDetail);
dbContext.Update(wmsRawOutstock);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 31); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 31);
endEquip.emptyCount = 1; endEquip.emptyCount = 1;
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
dbContext.Update(endEquip); dbContext.Update(endEquip);
dbContext.Update(wmsRawOutstock);
dbContext.Remove(wmsRawStock); dbContext.Remove(wmsRawStock);
dbContext.Add(newWmsRawOutstockDetail);
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
WcsTask wcsTask = CoreMapper.Map<WcsTask>(item); WcsTask wcsTask = CoreMapper.Map<WcsTask>(item);
wcsTask.objid = StaticData.SnowId.NextId(); wcsTask.objid = StaticData.SnowId.NextId();

@ -7,14 +7,14 @@
}, },
"DeleteLogDays": 10,// "DeleteLogDays": 10,//
"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

@ -335,8 +335,8 @@ namespace Khd.Core.Wpf.Form
try try
{ {
string version = HttpHelper.SendGetMessage("172.16.12.100", 5001, "wcs/RecieveRcs/version"); string version = HttpHelper.SendGetMessage("172.16.12.100", 5001, "wcs/RecieveRcs/version");
Version vs = new Version(version); var vs = new Version(version);
Version lovs = new Version(SystemData.VerSion); var lovs = new Version(SystemData.VerSion);
if (vs > lovs) if (vs > lovs)
{ {
var result = MessageBox.Show("有新版本是否更新?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Information); var result = MessageBox.Show("有新版本是否更新?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Information);
@ -357,50 +357,6 @@ namespace Khd.Core.Wpf.Form
{ {
} }
//using var client = SqlSugarHelper.GetInstance();
//var versionMsg = client.Queryable<VersionUpdateModel>().Where(t => t.ProcessName == StaticData.ProcessName).First();
//if (versionMsg != null)
//{
// if (StaticData.IsUpdate)
// {
// var versionUpdateLogModel = CoreMapper.Map<VersionUpdateLogModel>(versionMsg);
// versionUpdateLogModel.Id = Guid.NewGuid().ToString();
// versionUpdateLogModel.UpdateTime = DateTime.Now;
// versionUpdateLogModel.UpdateIp = string.Join(",", StaticData.IPS);
// client.Insertable(versionUpdateLogModel).ExecuteCommand();
// }
// if (string.IsNullOrEmpty(versionMsg.Version) || string.IsNullOrEmpty(versionMsg.DownloadUrl))
// {
// return;
// }
// //获取数据库程序的版本号
// if (StaticData.VerSion == "99.0.0.0")
// {
// File.WriteAllText("Version.txt", versionMsg.Version);
// }
// else
// {
// //比较版本号
// if (versionMsg.Version != StaticData.VerSion)
// {
// if (MessageBox.Show($"最新版本为:{versionMsg.Version},当前版本为:{StaticData.VerSion},是否更新?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.Yes)
// {
// Process.Start("AutoUpdate.exe", new List<string>
// {
// versionMsg.Version,
// StaticData.ProcessName,
// versionMsg.DownloadUrl
// });
// Application.Current.Shutdown();
// }
// }
// }
//}
//else
//{
// this.UpdateButton.Visibility = Visibility.Collapsed;
//}
} }

Loading…
Cancel
Save