master
2 years ago
parent 464524d845
commit 00bfc12f17

@ -70,18 +70,6 @@ namespace Khd.Core.Api.Controllers
return _application.TaskContinue(taskContinue); return _application.TaskContinue(taskContinue);
} }
/// <summary>
/// 柜体拆分验收区通知返库接口
/// </summary>
/// <param name="taskReturn"></param>
/// <returns></returns>
[HttpPost("taskReturn")]
public AgvCompeletedResponse TaskReturn(TaskReturn taskReturn)
{
LogManager.Info($"TaskReturn 接口收到消息: {taskReturn}");
return _application.TaskReturn(taskReturn);
}
/// <summary> /// <summary>
/// 通知去翻转机的任务 /// 通知去翻转机的任务
/// </summary> /// </summary>
@ -90,13 +78,14 @@ namespace Khd.Core.Api.Controllers
[HttpPost("callMaterial")] [HttpPost("callMaterial")]
public ReponseMessage CallMaterial(CallMaterial callMaterial) public ReponseMessage CallMaterial(CallMaterial callMaterial)
{ {
LogManager.Info($"CallMaterial 接口收到消息: {callMaterial}"); LogManager.Info($"CallMaterial 接口收到消息: {callMaterial.ToJsonString()}");
return _application.CallMaterial(callMaterial); return _application.CallMaterial(callMaterial);
} }
[HttpPost("AgvTaskComplete")] [HttpPost("AgvTaskComplete")]
public ReponseMessage AGVTaskComplete() public ReponseMessage AGVTaskComplete()
{ {
LogManager.Info($"AgvTaskComplete 接口收到消息");
return _application.AGVTaskComplete(); return _application.AGVTaskComplete();
} }
} }

@ -1,4 +1,4 @@
{ {
"iisSettings": { "iisSettings": {
"windowsAuthentication": false, "windowsAuthentication": false,
"anonymousAuthentication": true, "anonymousAuthentication": true,

@ -84,10 +84,11 @@ namespace Khd.Core.Application
wcscmd.sendFlag = 1; wcscmd.sendFlag = 1;
wcscmd.cmdStatus = 4; wcscmd.cmdStatus = 4;
wcsTask.taskStatus = 4; wcsTask.taskStatus = 4;
_dbContext.WcsCmd.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmd { cmdStatus = 4 }); _dbContext.WcsCmd.Update(wcscmd);
_dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 4 }); _dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 4 });
_dbContext.WcsTask.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTask { taskStatus = 4 }); _dbContext.WcsTask.Update(wcsTask);
_dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4 }); _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4 });
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0"; reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功"; reponseagvCallbackDto.message = "成功";
} }
@ -99,9 +100,10 @@ namespace Khd.Core.Application
wcscmd.cmdStatus = 3; wcscmd.cmdStatus = 3;
wcsTask.taskStatus = 3; wcsTask.taskStatus = 3;
_dbContext.WcsCmd.Update(wcscmd); _dbContext.WcsCmd.Update(wcscmd);
_dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 3 });
_dbContext.WcsTask.Update(wcsTask); _dbContext.WcsTask.Update(wcsTask);
_dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 3 });
_dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 3 }); _dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 3 });
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0"; reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功"; reponseagvCallbackDto.message = "成功";
} }
@ -485,7 +487,7 @@ namespace Khd.Core.Application
{ {
_dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); _dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
bool hasTask = _dbContext.WcsTask.Where(t => t.taskType == 41).Any(); bool hasTask = _dbContext.WcsTask.Where(t => t.taskType == 41).Any();
if (hasTask) if (!hasTask)
{ {
reponseMessage.code = "0"; reponseMessage.code = "0";
reponseMessage.message = "成功"; reponseMessage.message = "成功";
@ -493,7 +495,7 @@ namespace Khd.Core.Application
else else
{ {
reponseMessage.code = "1"; reponseMessage.code = "1";
reponseMessage.message = "当前无任务"; reponseMessage.message = "当前不可翻转";
} }
} }
catch (Exception ex) catch (Exception ex)

@ -17,6 +17,8 @@ namespace Khd.Core.Domain.Models
[Table("wcs_base_equip")] [Table("wcs_base_equip")]
public class BaseEquip public class BaseEquip
{ {
[Column("endStationCode")]
public string endStationCode { get; set; }
[Column("container_no")] [Column("container_no")]
public string containerNo { get; set; } public string containerNo { get; set; }

@ -201,6 +201,9 @@ namespace Khd.Core.Domain.Models
/// </summary> /// </summary>
[Column("bind_barcode")] [Column("bind_barcode")]
public string bindBarcode { get; set; } public string bindBarcode { get; set; }
[Column("safe_flag")]
public string safeFlag { get; set; }
} }
} }

@ -17,6 +17,8 @@ namespace Khd.Core.Domain.Models
[Table("wms_raw_outstock")] [Table("wms_raw_outstock")]
public class WmsRawOutstock public class WmsRawOutstock
{ {
[Column("sale_order_id")]
public long? saleOrderId { get; set; }
[Key] [Key]
[Column("raw_outstock_id")] [Column("raw_outstock_id")]

@ -121,8 +121,6 @@ namespace Khd.Core.Wcs
} }
} }
/// <summary> /// <summary>
/// 发起GET同步请求 /// 发起GET同步请求
/// </summary> /// </summary>

@ -98,27 +98,27 @@ namespace Khd.Core.Wcs
//ThirdFloorPoint thirdFloorPoint = new(_host, StaticData.PlcDic[0], ThirdBaseFloorEquip.floorNo.Value); //ThirdFloorPoint thirdFloorPoint = new(_host, StaticData.PlcDic[0], ThirdBaseFloorEquip.floorNo.Value);
//thirdFloorPoint.StartPoint(); //thirdFloorPoint.StartPoint();
////三层AGV //三层AGV
//var ThirdFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 3 && t.equipType == 4).First(); var ThirdFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 3 && t.equipType == 4).First();
//ThirdFloorAGV thirdFloorAGV = new(_host, StaticData.PlcDic[2], ThirdFloorAgvEquip.floorNo.Value); ThirdFloorAGV thirdFloorAGV = new(_host, StaticData.PlcDic[2], ThirdFloorAgvEquip.floorNo.Value);
//thirdFloorAGV.StartPoint(); thirdFloorAGV.StartPoint();
////五层接驳位 ////五层接驳位
//var FifthBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 1).First(); //var FifthBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 1).First();
//FiveFloorPoint fifthFloorPoint = new(_host, StaticData.PlcDic[0], FifthBaseFloorEquip.floorNo.Value); //FiveFloorPoint fifthFloorPoint = new(_host, StaticData.PlcDic[0], FifthBaseFloorEquip.floorNo.Value);
//fifthFloorPoint.StartPoint(); //fifthFloorPoint.StartPoint();
////五层CTU //五层CTU
//var FiveFloorCTUEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 6).First(); //var FiveFloorCTUEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 6).First();
//FiveFloorCTU fiveFloorCTU = new(_host, StaticData.PlcDic[1], FiveFloorCTUEquip.floorNo.Value); //FiveFloorCTU fiveFloorCTU = new(_host, StaticData.PlcDic[1], FiveFloorCTUEquip.floorNo.Value);
//fiveFloorCTU.StartPoint(); //fiveFloorCTU.StartPoint();
////五层AGV //五层AGV
//var FifthFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 5).First(); //var FifthFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 5).First();
//FiveFloorAGV fifthFloorAGV = new(_host, StaticData.PlcDic[0], FifthFloorAgvEquip.floorNo.Value); //FiveFloorAGV fifthFloorAGV = new(_host, StaticData.PlcDic[0], FifthFloorAgvEquip.floorNo.Value);
//fifthFloorAGV.StartPoint(); //fifthFloorAGV.StartPoint();
////背负式Agv //背负式Agv
//var FifthFloorBearAgvEquip = StaticData.BaseEquip.Where(t => t.objid == 28).First(); //var FifthFloorBearAgvEquip = StaticData.BaseEquip.Where(t => t.objid == 28).First();
//FiveFloorBearAgv fiveFloorBearAgv = new(_host, StaticData.PlcDic[1], FifthFloorBearAgvEquip.floorNo.Value); //FiveFloorBearAgv fiveFloorBearAgv = new(_host, StaticData.PlcDic[1], FifthFloorBearAgvEquip.floorNo.Value);
//fiveFloorBearAgv.StartPoint(); //fiveFloorBearAgv.StartPoint();

@ -29,29 +29,29 @@ namespace Khd.Core.Wcs.Wcs
/// </summary> /// </summary>
public void StartPoint() public void StartPoint()
{ {
var createBearAgvReturnThread = new Thread(CreateBearAgvReturnLogic); //var createBearAgvReturnThread = new Thread(CreateBearAgvReturnLogic);
createBearAgvReturnThread.Start(); //createBearAgvReturnThread.Start();
var createFiveProductInTaskThread = new Thread(CreateFiveProductInTaskLogic); //var createFiveProductInTaskThread = new Thread(CreateFiveProductInTaskLogic);
createFiveProductInTaskThread.Start(); //createFiveProductInTaskThread.Start();
var createFiveProductTaskThread = new Thread(CreateFiveProductTaskLogic); //var createFiveProductTaskThread = new Thread(CreateFiveProductTaskLogic);
createFiveProductTaskThread.Start(); //createFiveProductTaskThread.Start();
var createRawTaskThread = new Thread(CreateRawTaskLogic); //var createRawTaskThread = new Thread(CreateRawTaskLogic);
createRawTaskThread.Start(); //createRawTaskThread.Start();
var createRawInThread = new Thread(CreateRawInTaskLogic); //var createRawInThread = new Thread(CreateRawInTaskLogic);
createRawInThread.Start(); //createRawInThread.Start();
//var createThirdOutTaskThread = new Thread(CreateThirdOutTaskLogic); var createThirdOutTaskThread = new Thread(CreateThirdOutTaskLogic);
//createThirdOutTaskThread.Start(); createThirdOutTaskThread.Start();
//var CreateSecondProductTaskThread = new Thread(CreateSecondProductTaskLogic); var CreateSecondProductTaskThread = new Thread(CreateSecondProductTaskLogic);
//CreateSecondProductTaskThread.Start(); CreateSecondProductTaskThread.Start();
//var createEmptyTrayThread = new Thread(CreateEmptyTrayLogic); var createEmptyTrayThread = new Thread(CreateEmptyTrayLogic);
//createEmptyTrayThread.Start(); createEmptyTrayThread.Start();
//var createThirdWasterTaskThread = new Thread(CreateThirdWasterTaskLogic); //var createThirdWasterTaskThread = new Thread(CreateThirdWasterTaskLogic);
//createThirdWasterTaskThread.Start(); //createThirdWasterTaskThread.Start();
@ -371,7 +371,9 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.instockFlag == "0") .Where(t => t.instockFlag == "0")
.Where(t => t.outstockFlag == "0") .Where(t => t.outstockFlag == "0")
.Where(t => t.locationStatus == "1") .Where(t => t.locationStatus == "1")
.Where(t => t.containerCode == null || t.containerCode == "").FirstOrDefault(); .Where(t => t.containerCode == null)
.OrderByDescending(t => t.locColumn)
.FirstOrDefault();
if (wmsBaseLocation != null) if (wmsBaseLocation != null)
{ {
var wcsTask = new WcsTask() var wcsTask = new WcsTask()
@ -379,10 +381,10 @@ namespace Khd.Core.Wcs.Wcs
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
serialNo = SystemData.GetSerialNo(dbContext), serialNo = SystemData.GetSerialNo(dbContext),
taskType = 34, taskType = 34,
endPointId = endEquip.objid, endPointId = wmsBaseLocation.locationId,
endPointNo = endEquip.equipNo, endPointNo = wmsBaseLocation.locationCode,
currPointId = wmsBaseLocation.locationId, currPointId = endEquip.objid,
currPointNo = wmsBaseLocation.locationCode, currPointNo = endEquip.equipNo,
equipmentNo = agvEquip.equipNo, equipmentNo = agvEquip.equipNo,
useFlag = 1, useFlag = 1,
qty = 1, qty = 1,
@ -420,7 +422,6 @@ namespace Khd.Core.Wcs.Wcs
wmsProductInstock.executeStatus = "1"; wmsProductInstock.executeStatus = "1";
wmsBaseLocation.instockFlag = "1"; wmsBaseLocation.instockFlag = "1";
wmsBaseLocation.locationStatus = "4"; wmsBaseLocation.locationStatus = "4";
wmsProductInstock.instockAmount += 1;
dbContext.Add(wmsProductInstockDetail); dbContext.Add(wmsProductInstockDetail);
dbContext.Update(wmsProductInstock); dbContext.Update(wmsProductInstock);
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
@ -457,6 +458,9 @@ namespace Khd.Core.Wcs.Wcs
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
bool task = dbContext.WcsTask.Where(t => t.nextPointId == 9 && t.taskStatus <= 5).Any(); bool task = dbContext.WcsTask.Where(t => t.nextPointId == 9 && t.taskStatus <= 5).Any();
if (!task) if (!task)
{
endEquip = dbContext.BaseEquip.First(t => t.objid == 31);
if (endEquip.emptyCount == 0)
{ {
WcsTask? wcsTask = dbContext.WcsTask.FirstOrDefault(t => t.endPointId == endEquip.objid); WcsTask? wcsTask = dbContext.WcsTask.FirstOrDefault(t => t.endPointId == endEquip.objid);
if (wcsTask == null) if (wcsTask == null)
@ -468,7 +472,7 @@ namespace Khd.Core.Wcs.Wcs
if (wmsRawOutstock != null) if (wmsRawOutstock != null)
{ {
var wmsRawStocks = dbContext.WmsRawStock var wmsRawStocks = dbContext.WmsRawStock
.Where(t => t.materialId == wmsRawOutstock.materialId) .Where(t => t.saleOrderId == wmsRawOutstock.saleOrderId)
.Where(t => t.warehouseId == 311) .Where(t => t.warehouseId == 311)
.ToList(); .ToList();
var wmsBaseLocations = dbContext.WmsBaseLocation var wmsBaseLocations = dbContext.WmsBaseLocation
@ -484,6 +488,7 @@ namespace Khd.Core.Wcs.Wcs
where a.locationCode == b.locationCode where a.locationCode == b.locationCode
select new { a, b }; select new { a, b };
WmsBaseLocation? wmsBaseLocation = null; WmsBaseLocation? wmsBaseLocation = null;
WmsRawStock? wmsRawStock = null;
bill = bill.OrderBy(t => t.b.instockDate); bill = bill.OrderBy(t => t.b.instockDate);
var fistbill = bill.FirstOrDefault(); var fistbill = bill.FirstOrDefault();
if (fistbill != null) if (fistbill != null)
@ -500,17 +505,13 @@ namespace Khd.Core.Wcs.Wcs
var lastbill = bill.Where(t => t.a.locRow == locRow) var lastbill = bill.Where(t => t.a.locRow == locRow)
.Where(t => t.a.locColumn == fistbill.a.locColumn) .Where(t => t.a.locColumn == fistbill.a.locColumn)
.Where(t => t.a.locDeep == 2) .Where(t => t.a.locDeep == 2)
.Where(t => t.b.materialId == wmsRawOutstock.materialId)
.FirstOrDefault(); .FirstOrDefault();
wmsBaseLocation = fistbill.a;
if (lastbill != null) if (lastbill != null)
{ {
if (lastbill.b.instockDate != null && fistbill.b.instockDate != null) if (lastbill.b.instockDate != null && fistbill.b.instockDate != null)
{ {
wmsBaseLocation = fistbill.a;
if (lastbill.b.instockDate.Value.Date == fistbill.b.instockDate.Value.Date)
{
wmsBaseLocation = lastbill.a;
}
if (wmsBaseLocation.locDeep == 1) if (wmsBaseLocation.locDeep == 1)
{ {
int? row = 0; int? row = 0;
@ -529,6 +530,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
WmsBaseLocation? toLocation = dbContext.WmsBaseLocation.Where(t => t.warehouseId == wmsBaseLocation.warehouseId) WmsBaseLocation? toLocation = dbContext.WmsBaseLocation.Where(t => t.warehouseId == wmsBaseLocation.warehouseId)
.Where(t => t.locDeep == 1) .Where(t => t.locDeep == 1)
.Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault(); .Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault();
toLocation ??= dbContext.WmsBaseLocation.Where(t => t.warehouseId == wmsBaseLocation.warehouseId) toLocation ??= dbContext.WmsBaseLocation.Where(t => t.warehouseId == wmsBaseLocation.warehouseId)
.Where(t => t.warehouseId != wmsBaseLocation.locationId) .Where(t => t.warehouseId != wmsBaseLocation.locationId)
@ -540,7 +542,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
taskType = 67, taskType = 67,
containerNo = wmsBaseLocation.containerCode, containerNo = fromBaseLocation.containerCode,
createBy = "WCS", createBy = "WCS",
createTime = DateTime.Now.AddSeconds(-10), createTime = DateTime.Now.AddSeconds(-10),
taskStatus = 0, taskStatus = 0,
@ -574,7 +576,8 @@ namespace Khd.Core.Wcs.Wcs
} }
if (wmsBaseLocation != null) if (wmsBaseLocation != null)
{ {
MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == wmsBaseLocation.containerCode); wmsRawStock = wmsRawStocks.Where(t => t.locationCode == wmsBaseLocation.locationCode).First();
MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == wmsRawStock.palletInfoCode);
if (mesBasePalletInfo != null) if (mesBasePalletInfo != null)
{ {
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode); MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode);
@ -623,6 +626,8 @@ namespace Khd.Core.Wcs.Wcs
useFlag = 1, useFlag = 1,
qty = 1 qty = 1
}; };
wmsBaseLocation.outstockFlag = "1";
wmsBaseLocation.locationStatus = "6";
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
dbContext.Add(wmsRawOutstockDetail); dbContext.Add(wmsRawOutstockDetail);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask); WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
@ -633,7 +638,7 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
} }
}
} }
} }
} }
@ -670,13 +675,15 @@ namespace Khd.Core.Wcs.Wcs
if (wmsRawReturn.executeStatus == "0") if (wmsRawReturn.executeStatus == "0")
{ {
//任务未开始Status=0 //任务未开始Status=0
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.equipNo == wmsRawReturn.endStationCode); BaseEquip? startEquip = StaticData.BaseEquip.FirstOrDefault(t => t.equipNo == wmsRawReturn.endStationCode);
if (startEquip != null)
{
WcsTask wcsTask = new() WcsTask wcsTask = new()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
orderId = wmsRawReturn.rawReturnId, orderId = wmsRawReturn.rawReturnId,
taskType = 48, taskType = 48,
containerNo = "", containerNo = null,
currPointId = startEquip.objid, currPointId = startEquip.objid,
currPointNo = startEquip.equipNo, currPointNo = startEquip.equipNo,
nextPointId = baseEquip.objid, nextPointId = baseEquip.objid,
@ -698,7 +705,6 @@ namespace Khd.Core.Wcs.Wcs
//materialNo = wmsRawReturn.materialBatch, //materialNo = wmsRawReturn.materialBatch,
}; };
wmsRawReturn.executeStatus = "1"; wmsRawReturn.executeStatus = "1";
wmsRawReturn.returnAmount += 1;
dbContext.Add(wcsTask); dbContext.Add(wcsTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask); WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
dbContext.Add(wcsTaskLog); dbContext.Add(wcsTaskLog);
@ -707,6 +713,7 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
} }
}
catch (Exception ex) catch (Exception ex)
{ {
LogManager.Error(ex); LogManager.Error(ex);
@ -732,7 +739,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
var proStock = dbContext.WmsProductStock var proStock = dbContext.WmsProductStock
.Where(t => t.warehouseId == 531) .Where(t => t.warehouseId == 531)
.Where(t => t.activeFlag == "0").ToList(); .Where(t => t.activeFlag == "1").ToList();
var proOutStock = dbContext.WmsProductOutstock var proOutStock = dbContext.WmsProductOutstock
.Where(t => t.outstockQty < t.applyQty) .Where(t => t.outstockQty < t.applyQty)
.Where(t => t.auditStatus == "1") .Where(t => t.auditStatus == "1")
@ -749,7 +756,7 @@ namespace Khd.Core.Wcs.Wcs
var wmsproStocks = proStock var wmsproStocks = proStock
.Where(t => t.productId == item.productId && t.warehouseId == item.warehouseId) .Where(t => t.productId == item.productId && t.warehouseId == item.warehouseId)
.Select(t => t.palletInfoCode) .Select(t => t.locationCode)
.ToList(); .ToList();
var wmsBaseLocations = dbContext.WmsBaseLocation var wmsBaseLocations = dbContext.WmsBaseLocation
@ -759,7 +766,7 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.instockFlag == "0") .Where(t => t.instockFlag == "0")
.Where(t => t.outstockFlag == "0") .Where(t => t.outstockFlag == "0")
.Where(t => t.warehouseId == item.warehouseId) .Where(t => t.warehouseId == item.warehouseId)
.Where(t => wmsproStocks.Contains(t.containerCode)) .Where(t => wmsproStocks.Contains(t.locationCode))
.ToList(); .ToList();
decimal needNumber = Convert.ToDecimal(item.applyQty - item.outstockQty); decimal needNumber = Convert.ToDecimal(item.applyQty - item.outstockQty);
@ -773,7 +780,7 @@ namespace Khd.Core.Wcs.Wcs
var bill = from a in wmsBaseLocations var bill = from a in wmsBaseLocations
from b in proStock from b in proStock
where a.containerCode == b.palletInfoCode where a.locationCode == b.locationCode
select new { a, b }; select new { a, b };
//如果第一列满足需求,则按第一列排序,否则按最后一列排序 //如果第一列满足需求,则按第一列排序,否则按最后一列排序
if (bill.Where(t => t.a.locColumn == 1).Select(t => t.b.totalAmount - t.b.frozenAmount).Sum() > needNumber) if (bill.Where(t => t.a.locColumn == 1).Select(t => t.b.totalAmount - t.b.frozenAmount).Sum() > needNumber)
@ -807,7 +814,7 @@ 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); MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == stock.palletInfoCode);
if (mesBasePalletInfo != null) if (mesBasePalletInfo != null)
{ {
WmsProductOutstockDetail detail = new() WmsProductOutstockDetail detail = new()
@ -920,13 +927,9 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Add(wcsTask); dbContext.Add(wcsTask);
dbContext.Update(stock); dbContext.Update(stock);
dbContext.SaveChanges(); dbContext.SaveChanges();
if (qty >= needNumber)
{
break; break;
} }
} }
break;
}
if (item.beginTime == null) if (item.beginTime == null)
{ {
item.beginTime = DateTime.Now; item.beginTime = DateTime.Now;
@ -1178,7 +1181,8 @@ namespace Khd.Core.Wcs.Wcs
{ {
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
//原材料库存 //原材料库存
var rawStock = dbContext.WmsRawStock.Where(t => t.activeFlag == "1").ToList(); var rawStock = dbContext.WmsRawStock
.Where(t => t.activeFlag == "1").ToList();
//原材料出库记录 //原材料出库记录
var rawOutStock = dbContext.WmsRawOutstock var rawOutStock = dbContext.WmsRawOutstock
.Where(t => t.executeStatus == "0" || t.executeStatus == "1") .Where(t => t.executeStatus == "0" || t.executeStatus == "1")
@ -1215,139 +1219,142 @@ namespace Khd.Core.Wcs.Wcs
{ {
lock (SystemData.outStockLock) lock (SystemData.outStockLock)
{ {
if (endEquip.equipType == 8)//CTU出库 //if (endEquip.equipType == 8)//CTU出库
{ //{
var wcsOutstockLock = dbContext.WcsOutstockLock.Where(t => t.warehouseId == 512).First(); // var wcsOutstockLock = dbContext.WcsOutstockLock.Where(t => t.warehouseId == 512).First();
if (wcsOutstockLock.qty == 0 && wcsOutstockLock.boxStatus == 0) // if (wcsOutstockLock.qty == 0 && wcsOutstockLock.boxStatus == 0)
{ // {
var wmsRawStocks = rawStock // var wmsRawStocks = rawStock
.Where(t => t.materialId == item.materialId) // .Where(t => t.materialId == item.materialId)
.Where(t => t.warehouseId == item.warehouseId) // .Where(t => t.warehouseId == item.warehouseId)
.Select(t => t.locationCode) // .Select(t => t.locationCode)
.ToList(); // .ToList();
var wmsBaseLocations = dbContext.WmsBaseLocation // var wmsBaseLocations = dbContext.WmsBaseLocation
.Where(t => t.activeFlag == "1") // .Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0") // .Where(t => t.delFlag == "0")
.Where(t => t.locationScrapType == "1") // .Where(t => t.locationScrapType == "1")
.Where(t => t.instockFlag == "0") // .Where(t => t.instockFlag == "0")
.Where(t => t.outstockFlag == "0") // .Where(t => t.outstockFlag == "0")
.Where(t => t.ContainerStatus == "1") // .Where(t => t.ContainerStatus == "1")
.Where(t => t.warehouseId == item.warehouseId) // .Where(t => t.warehouseId == item.warehouseId)
.Where(t => wmsRawStocks.Contains(t.locationCode)) // .Where(t => wmsRawStocks.Contains(t.locationCode))
.ToList(); // .ToList();
decimal? needNumber = item.outstockAmount - RealOutNumber; // decimal? needNumber = item.outstockAmount - RealOutNumber;
var bill = from a in wmsBaseLocations // var bill = from a in wmsBaseLocations
from b in rawStock // from b in rawStock
where a.locationCode == b.locationCode // where a.locationCode == b.locationCode
select new { a, b }; // select new { a, b };
//如果第一列满足需求,则按第一列排序,否则按最后一列排序 // //如果第一列满足需求,则按第一列排序,否则按最后一列排序
if (bill.Where(t => t.a.locColumn == 1).Select(t => t.b.totalAmount - t.b.frozenAmount).Sum() > needNumber) // if (bill.Where(t => t.a.locColumn == 1).Select(t => t.b.totalAmount - t.b.frozenAmount).Sum() > needNumber)
{ // {
bill = bill.OrderBy(t => t.a.locColumn).ToList(); // bill = bill.OrderBy(t => t.a.locColumn).ToList();
} // }
else // else
{ // {
bill = bill.OrderByDescending(t => t.a.locColumn).ToList(); // bill = bill.OrderByDescending(t => t.a.locColumn).ToList();
} // }
//做数量限制 // //做数量限制
//bill = bill.Take(5 - dbContext.WcsCmd.Where(t => t.cmdStatus < 3 && t.nextPointId == 20).Count()); // //bill = bill.Take(5 - dbContext.WcsCmd.Where(t => t.cmdStatus < 3 && t.nextPointId == 20).Count());
bill = bill.Take(6); // bill = bill.Take(6);
BaseEquip ctuEquip = StaticData.BaseEquip.First(t => t.objid == 11); // BaseEquip ctuEquip = StaticData.BaseEquip.First(t => t.objid == 11);
BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 20); // BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 20);
foreach (var b in bill) // foreach (var b in bill)
{ // {
needNumber = item.outstockAmount - RealOutNumber; // needNumber = item.outstockAmount - RealOutNumber;
item.executeStatus = "1"; // item.executeStatus = "1";
WmsBaseLocation location = b.a; // WmsBaseLocation location = b.a;
WmsRawStock stock = b.b; // WmsRawStock stock = b.b;
WcsTask wcsTask; // WcsTask wcsTask;
int qty = 0; // int qty = 0;
if (stock.totalAmount - stock.frozenAmount <= needNumber)//该料箱全部出 // if (stock.totalAmount - stock.frozenAmount <= needNumber)//该料箱全部出
{ // {
RealOutNumber += stock.totalAmount - stock.frozenAmount; // RealOutNumber += stock.totalAmount - stock.frozenAmount;
qty = Convert.ToInt32(stock.totalAmount - stock.frozenAmount); // qty = Convert.ToInt32(stock.totalAmount - stock.frozenAmount);
stock.updateDate = DateTime.Now; // stock.updateDate = DateTime.Now;
} // }
else // else
{ // {
RealOutNumber += needNumber; // RealOutNumber += needNumber;
qty = Convert.ToInt32(needNumber); // qty = Convert.ToInt32(needNumber);
stock.updateDate = DateTime.Now; // stock.updateDate = DateTime.Now;
} // }
wcsTask = new WcsTask() // wcsTask = new WcsTask()
{ // {
objid = StaticData.SnowId.NextId(), // objid = StaticData.SnowId.NextId(),
orderId = item.rawOutstockId, // orderId = item.rawOutstockId,
taskType = 38, // taskType = 38,
containerNo = location.containerCode, // containerNo = location.containerCode,
createBy = "WCS", // createBy = "WCS",
createTime = DateTime.Now, // createTime = DateTime.Now,
taskStatus = -1, // taskStatus = -1,
materialId = item.materialId, // materialId = item.materialId,
currPointId = location.locationId, // currPointId = location.locationId,
currPointNo = location.locationCode, // currPointNo = location.locationCode,
nextPointId = ctuEquip.objid, // nextPointId = ctuEquip.objid,
nextPointNo = ctuEquip.equipNo, // nextPointNo = ctuEquip.equipNo,
endPointId = lineEquip.objid, // endPointId = lineEquip.objid,
endPointNo = lineEquip.equipNo, // endPointNo = lineEquip.equipNo,
equipmentNo = ctuEquip.equipNo, // equipmentNo = ctuEquip.equipNo,
ud1 = location.locColumn, // ud1 = location.locColumn,
useFlag = 1, // useFlag = 1,
qty = qty // qty = qty
}; // };
MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.Where(t => t.barcodeInfo == stock.instockBatch).FirstOrDefault(); // MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.Where(t => t.barcodeInfo == stock.instockBatch).FirstOrDefault();
if (mesBaseBarcodeInfo != null) // if (mesBaseBarcodeInfo != null)
{ // {
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
}; // };
location.outstockFlag = "1"; // location.outstockFlag = "1";
location.locationStatus = "6"; // location.locationStatus = "6";
location.updateBy = "WCS"; // location.updateBy = "WCS";
location.updateTime = DateTime.Now; // location.updateTime = DateTime.Now;
wcsOutstockLock.boxStatus = 1; // wcsOutstockLock.boxStatus = 1;
dbContext.Add(wmsProductOutstockDetail); // dbContext.Add(wmsProductOutstockDetail);
dbContext.Update(location); // dbContext.Update(location);
dbContext.Add(wcsTask); // dbContext.Add(wcsTask);
dbContext.Update(stock); // dbContext.Update(stock);
if (qty >= needNumber) // if (qty >= needNumber)
{ // {
break; // break;
} // }
} // }
} // }
if (item.beginTime == null) // if (item.beginTime == null)
{ // {
item.beginTime = DateTime.Now; // item.beginTime = DateTime.Now;
} // }
dbContext.Update(wcsOutstockLock); // dbContext.Update(wcsOutstockLock);
dbContext.Update(item); // dbContext.Update(item);
dbContext.SaveChanges(); // dbContext.SaveChanges();
} // }
}//CTU出库 //}//CTU出库
if (endEquip.equipType == 10)//CTU出库到装配区 if (endEquip.equipType == 10)//CTU出库到装配区
{
BaseEquip endStationCodeEquip = dbContext.BaseEquip.First(t => t.objid == 10);
if (!string.IsNullOrEmpty(endStationCodeEquip.remark))
{ {
bool CreateSuccess = false; bool CreateSuccess = false;
var wcsOutstockLock = dbContext.WcsOutstockLock var wcsOutstockLock = dbContext.WcsOutstockLock
@ -1355,9 +1362,10 @@ namespace Khd.Core.Wcs.Wcs
.First(); .First();
if (wcsOutstockLock.qty == 0 && wcsOutstockLock.boxStatus == 0) if (wcsOutstockLock.qty == 0 && wcsOutstockLock.boxStatus == 0)
{ {
var orderList = rawOutStock.Where(t => t.endStationCode == item.endStationCode).ToList(); var orderList = rawOutStock.Where(t => t.endStationCode == endStationCodeEquip.endStationCode).ToList();
List<WcsTask> tasks = new(); 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();
//对物料和数量进行分组 //对物料和数量进行分组
var list = orderList.GroupBy(t => t.materialId).Select(t => new var list = orderList.GroupBy(t => t.materialId).Select(t => new
{ {
@ -1366,7 +1374,6 @@ namespace Khd.Core.Wcs.Wcs
realOutstockAmount = t.Sum(x => x.realOutstockAmount) realOutstockAmount = t.Sum(x => x.realOutstockAmount)
} }
).ToList(); ).ToList();
foreach (var order in list) foreach (var order in list)
{ {
if (tasks.Count >= 6) if (tasks.Count >= 6)
@ -1446,7 +1453,7 @@ namespace Khd.Core.Wcs.Wcs
endPointNo = lineEquip.equipNo, endPointNo = lineEquip.equipNo,
equipmentNo = ctuEquip.equipNo, equipmentNo = ctuEquip.equipNo,
ud1 = location.locColumn, ud1 = location.locColumn,
useFlag = 0, useFlag = 1,
qty = qty qty = qty
}; };
tasks.Add(wcsTask); tasks.Add(wcsTask);
@ -1615,12 +1622,15 @@ namespace Khd.Core.Wcs.Wcs
BaseEquip startStationEquip = StaticData.BaseEquip.First(t => t.objid == 21); BaseEquip startStationEquip = StaticData.BaseEquip.First(t => t.objid == 21);
BaseEquip bearAgvEquip = StaticData.BaseEquip.First(t => t.objid == 10); BaseEquip bearAgvEquip = StaticData.BaseEquip.First(t => t.objid == 10);
BaseEquip endStationEquip = StaticData.BaseEquip.First(t => t.equipNo == item.endStationCode); BaseEquip endStationEquip = StaticData.BaseEquip.First(t => t.equipNo == item.endStationCode);
bool hasTask = dbContext.WcsTask.Where(t => t.taskType == 32).Any();
if (!hasTask)
{
WcsTask bearAgvTask = new() WcsTask bearAgvTask = new()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
orderId = item.orderId, orderId = item.rawOutstockId,
taskType = 32, taskType = 32,
containerNo = "", containerNo = null,
currPointId = startStationEquip.objid, currPointId = startStationEquip.objid,
currPointNo = startStationEquip.equipNo, currPointNo = startStationEquip.equipNo,
nextPointId = bearAgvEquip.objid, nextPointId = bearAgvEquip.objid,
@ -1640,19 +1650,22 @@ namespace Khd.Core.Wcs.Wcs
masterId = item.materialId, masterId = item.materialId,
fromFloorNo = 5, fromFloorNo = 5,
}; };
dbContext.Add(bearAgvTask);
}
if (item.beginTime == null) if (item.beginTime == null)
{ {
item.beginTime = DateTime.Now; item.beginTime = DateTime.Now;
} }
dbContext.UpdateRange(orderList); dbContext.UpdateRange(orderList);
dbContext.AddRange(tasks); dbContext.AddRange(tasks);
dbContext.Add(bearAgvTask);
dbContext.Update(item); dbContext.Update(item);
dbContext.Update(wcsOutstockLock); dbContext.Update(wcsOutstockLock);
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
} }
} }
}
if (endEquip.equipType == 12 || endEquip.equipType == 13)//原材料到柜体验收区 if (endEquip.equipType == 12 || endEquip.equipType == 13)//原材料到柜体验收区
{ {
bool hasTask = dbContext.WcsTask.Where(t => t.nextPointId == 28 && t.useFlag == 1 && t.taskStatus <= 5).Any(); bool hasTask = dbContext.WcsTask.Where(t => t.nextPointId == 28 && t.useFlag == 1 && t.taskStatus <= 5).Any();
@ -1664,10 +1677,10 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => t.materialId == item.materialId && t.warehouseId == item.warehouseId) .Where(t => t.materialId == item.materialId && t.warehouseId == item.warehouseId)
.WhereIf(endEquip.equipType == 13, t => t.completeFlag == "0") .WhereIf(endEquip.equipType == 13, t => t.completeFlag == "0")
.WhereIf(endEquip.equipType == 12, t => t.completeFlag == "1") .WhereIf(endEquip.equipType == 12, t => t.completeFlag == "1")
.Where(t => t.saleOrderId == item.saleOrderId)
.Where(t => t.totalAmount > t.frozenAmount) .Where(t => t.totalAmount > t.frozenAmount)
.Select(t => t.palletInfoCode) .Select(t => t.palletInfoCode)
.ToList(); .ToList();
var wmsBaseLocations = dbContext.WmsBaseLocation var wmsBaseLocations = dbContext.WmsBaseLocation
.Where(t => t.activeFlag == "1") .Where(t => t.activeFlag == "1")
.Where(t => t.delFlag == "0") .Where(t => t.delFlag == "0")

@ -596,10 +596,10 @@ namespace Khd.Core.Wcs.Wcs
} }
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.currPointId && t.warehouseFloor == 5);
wmsBaseLocation.outstockFlag = "0"; wmsBaseLocation.outstockFlag = "0";
wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = ""; wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now; wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS"; wmsBaseLocation.updateBy = "WCS";
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
@ -614,14 +614,14 @@ namespace Khd.Core.Wcs.Wcs
newTask.taskStatus = 6; newTask.taskStatus = 6;
newTask.objid = StaticData.SnowId.NextId(); newTask.objid = StaticData.SnowId.NextId();
lineEquip.equipStatus = 0; lineEquip.equipStatus = 0;
dbContext.Remove(item);
dbContext.Update(lineEquip); dbContext.Update(lineEquip);
dbContext.Add(newTask); dbContext.Add(newTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask); WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask);
dbContext.Add(wcsTaskLog); dbContext.Add(wcsTaskLog);
dbContext.Remove(item);
dbContext.WcsCmd.Remove(wcsCmd); dbContext.WcsCmd.Remove(wcsCmd);
dbContext.SaveChanges(); dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6, nextPointId = floorLineEquip.objid, nextPointNo = floorLineEquip.equipNo, fromFloorNo = 5, floorNo = 1 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
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 });
} }
} }
@ -663,7 +663,6 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation.updateBy = "WCS"; wmsBaseLocation.updateBy = "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.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)
@ -680,7 +679,7 @@ namespace Khd.Core.Wcs.Wcs
updateBy = "WCS", updateBy = "WCS",
updateDate = DateTime.Now, updateDate = DateTime.Now,
saleorderCode = wmsProductInstock.saleorderCode, saleorderCode = wmsProductInstock.saleorderCode,
saleOrderId = wmsProductInstock.SaleOrderId, saleOrderId = wmsProductInstock.SaleOrderId == null ? 0 : wmsProductInstock.SaleOrderId,
stockType = "2", stockType = "2",
productStockId = wmsProductInstock.productInstockId, productStockId = wmsProductInstock.productInstockId,
qualityStatus = "0", qualityStatus = "0",
@ -860,7 +859,8 @@ namespace Khd.Core.Wcs.Wcs
warehouseFloor = 5, warehouseFloor = 5,
stockType = "1", stockType = "1",
totalAmount = 1, totalAmount = 1,
saleOrderId = 0, saleOrderId = mesBaseBarcodeInfo.saleOrderId,
safeFlag=mesBaseBarcodeInfo.safeFlag,
supplierId = mesBaseBarcodeInfo.manufacturerId, supplierId = mesBaseBarcodeInfo.manufacturerId,
materialId = mesBasePalletInfo.materialId, materialId = mesBasePalletInfo.materialId,
qualityStatus = "0", qualityStatus = "0",

@ -191,7 +191,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
} }
}else if (task.taskType == 100) }
else if (task.taskType == 100)
{ {
dbContext.WcsTask.Where(t => t.objid == task.objid).Delete(); dbContext.WcsTask.Where(t => t.objid == task.objid).Delete();
//根据rfid找到库位 //根据rfid找到库位
@ -689,9 +690,6 @@ 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.WcsTaskLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
lock (SystemData.outStockLock) lock (SystemData.outStockLock)
{
int wcsTaskCount = dbContext.WcsTask.Where(t => t.taskType == 29).Count();
if (wcsTaskCount == 0)
{ {
WcsOutstockLock wcsOutstockLock = dbContext.WcsOutstockLock.Where(t => t.warehouseId == 512).First(); WcsOutstockLock wcsOutstockLock = dbContext.WcsOutstockLock.Where(t => t.warehouseId == 512).First();
wcsOutstockLock.qty = 0; wcsOutstockLock.qty = 0;
@ -700,7 +698,6 @@ namespace Khd.Core.Wcs.Wcs
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
} }
}
else if (item.taskType == 100)//出库任务 else if (item.taskType == 100)//出库任务
{ {
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation

@ -67,7 +67,7 @@ namespace Khd.Core.Wcs.Wcs
} }
else else
{ {
var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.orderId == wcsTask.orderId); var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == wcsTask.orderId);
if (wmsRawOutstock != null) if (wmsRawOutstock != null)
{ {
var endEquip = StaticData.BaseEquip.FirstOrDefault(t => t.equipNo == wmsRawOutstock.endStationCode); var endEquip = StaticData.BaseEquip.FirstOrDefault(t => t.equipNo == wmsRawOutstock.endStationCode);

@ -61,9 +61,11 @@ namespace Khd.Core.Wcs.Wcs
bool hasTask = dbContext.WcsTask.Where(t => t.taskType == 41 || t.taskType == 42).Any(); bool hasTask = dbContext.WcsTask.Where(t => t.taskType == 41 || t.taskType == 42).Any();
if (!hasTask) if (!hasTask)
{ {
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == 35); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 35);
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 31); BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 31);
BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 9); BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 9);
if (endEquip.emptyCount != (SystemData.maxTray / 2) && endEquip.emptyCount != SystemData.maxTray)
{
WcsTask wcsTask = new() WcsTask wcsTask = new()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
@ -71,16 +73,16 @@ namespace Khd.Core.Wcs.Wcs
taskStatus = 0, taskStatus = 0,
useFlag = 1, useFlag = 1,
createBy = FloorNo + "楼AGV", createBy = FloorNo + "楼AGV",
nextPointId=agvEquip.objid, nextPointId = agvEquip.objid,
nextPointNo=agvEquip.agvPositionCode, nextPointNo = agvEquip.agvPositionCode,
currPointId = startEquip.objid, currPointId = startEquip.objid,
currPointNo = startEquip.agvPositionCode, currPointNo = startEquip.agvPositionCode,
endPointId = endEquip.objid, endPointId = endEquip.objid,
endPointNo = endEquip.agvPositionCode, endPointNo = endEquip.agvPositionCode,
containerNo="", containerNo = null,
createTime = DateTime.Now, createTime = DateTime.Now,
isEmpty="1", isEmpty = "1",
qty=1, qty = 1,
}; };
dbContext.Add(wcsTask); dbContext.Add(wcsTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask); WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
@ -90,6 +92,7 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
} }
}
catch (Exception ex) catch (Exception ex)
{ {
LogManager.Error(ex); LogManager.Error(ex);
@ -234,7 +237,7 @@ namespace Khd.Core.Wcs.Wcs
} }
else if (item.taskType == 41)//库位-翻转机 else if (item.taskType == 41)//库位-翻转机
{ {
WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.rawOutstockId == item.orderId && t.executeStatus == "1"); WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.rawOutstockId == item.orderId && t.executeStatus == "0");
if (wmsRawOutstockDetail != null) if (wmsRawOutstockDetail != null)
{ {
wmsRawOutstockDetail.executeStatus = "1"; wmsRawOutstockDetail.executeStatus = "1";
@ -299,8 +302,8 @@ namespace Khd.Core.Wcs.Wcs
} }
else if (item.taskType == 40)//周转位-收集架 else if (item.taskType == 40)//周转位-收集架
{ {
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
WcsCmd wcsCmd = new WcsCmd() WcsCmd wcsCmd = new WcsCmd()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
@ -359,8 +362,8 @@ namespace Khd.Core.Wcs.Wcs
else if (item.taskType == 42)//翻转机-收集架 else if (item.taskType == 42)//翻转机-收集架
{ {
//var startEquip = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); //var startEquip = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
WcsCmd wcsCmd = new WcsCmd() WcsCmd wcsCmd = new WcsCmd()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
@ -418,8 +421,8 @@ namespace Khd.Core.Wcs.Wcs
} }
else if (item.taskType == 43)//收集架-周转区 else if (item.taskType == 43)//收集架-周转区
{ {
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
WcsCmd wcsCmd = new WcsCmd() WcsCmd wcsCmd = new WcsCmd()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
@ -477,8 +480,8 @@ namespace Khd.Core.Wcs.Wcs
} }
else if (item.taskType == 44)//周转区-提升机 else if (item.taskType == 44)//周转区-提升机
{ {
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 3); BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 3);
WcsCmd wcsCmd = new WcsCmd() WcsCmd wcsCmd = new WcsCmd()
{ {
objid = StaticData.SnowId.NextId(), objid = StaticData.SnowId.NextId(),
@ -595,8 +598,6 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Remove(item); dbContext.Remove(item);
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 });
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.Update(fromBaseLocation);
dbContext.Update(toBaseLocation);
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
if (item.taskType == 39) if (item.taskType == 39)
@ -632,6 +633,7 @@ namespace Khd.Core.Wcs.Wcs
materialId = mesBaseBarcodeInfo.materialId, materialId = mesBaseBarcodeInfo.materialId,
occupyAmount = 0, occupyAmount = 0,
palletInfoCode = item.containerNo, palletInfoCode = item.containerNo,
safeFlag = mesBaseBarcodeInfo.safeFlag,
totalAmount = 1, totalAmount = 1,
warehouseFloor = 3, warehouseFloor = 3,
warehouseId = 311 warehouseId = 311
@ -684,9 +686,12 @@ namespace Khd.Core.Wcs.Wcs
if (wmsRawOutstockDetail != null) if (wmsRawOutstockDetail != null)
{ {
wmsRawOutstockDetail.executeStatus = "2"; wmsRawOutstockDetail.executeStatus = "2";
WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.palletInfoCode == item.containerNo).FirstOrDefault(); WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.currPointNo).FirstOrDefault();
if (wmsRawStock != null) if (wmsRawStock != null)
{ {
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 31);
endEquip.emptyCount = 1;
dbContext.Update(endEquip);
dbContext.Update(wmsRawOutstock); dbContext.Update(wmsRawOutstock);
dbContext.Remove(wmsRawStock); dbContext.Remove(wmsRawStock);
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
@ -702,6 +707,9 @@ namespace Khd.Core.Wcs.Wcs
else if (item.taskType == 42) else if (item.taskType == 42)
{ {
BaseEquip emptyEquip = dbContext.BaseEquip.First(t => t.objid == 35); BaseEquip emptyEquip = dbContext.BaseEquip.First(t => t.objid == 35);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 31);
endEquip.emptyCount = 0;
dbContext.Update(endEquip);
emptyEquip.emptyCount += 1; emptyEquip.emptyCount += 1;
emptyEquip.equipStatus = 1; emptyEquip.equipStatus = 1;
emptyEquip.updateTime = DateTime.Now; emptyEquip.updateTime = DateTime.Now;

@ -14,14 +14,14 @@
"Slot": 1, "Slot": 1,
"Code": 0 "Code": 0
}, },
{ //{
"IP": "192.168.2.31", // "IP": "192.168.2.31",
"Port": 102, //102 // "Port": 102, //102
"CpuType": 40, // "CpuType": 40,
"Rack": 0, // "Rack": 0,
"Slot": 1, // "Slot": 1,
"Code": 1 // "Code": 1
}, //},
{ {
"IP": "192.168.2.220", "IP": "192.168.2.220",
"Port": 102, //102 "Port": 102, //102

@ -2052,32 +2052,33 @@
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="167*"/> <RowDefinition Height="*"/>
<RowDefinition Height="167*"/> <RowDefinition Height="*"/>
<RowDefinition Height="167*"/> <RowDefinition Height="*"/>
<RowDefinition Height="166.667"/> <RowDefinition Height="*"/>
<RowDefinition Height="167*"/> <RowDefinition Height="*"/>
<RowDefinition Height="167*"/> <RowDefinition Height="*"/>
<RowDefinition Height="83*"/> <RowDefinition Height="*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Text="扫描出库" Foreground="White" FontSize="50" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.ColumnSpan="6"/> <TextBlock Text="扫描出库" Foreground="White" FontSize="50" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.ColumnSpan="6"/>
<TextBlock Text="待执行CTU任务数:" Visibility="Hidden" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="50"/> <Button Content="选择出库" Background="#346DFF" Grid.ColumnSpan="6" Grid.Row="1" Foreground="White" FontSize="50" Height="100" Width="300" Click="SelectOutBtn_Click"/>
<TextBlock x:Name="outTaskCount" Visibility="Hidden" Grid.Row="0" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/> <TextBlock Text="待执行CTU任务数:" Visibility="Hidden" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="50"/>
<Button Content="执行CTU出库任务" Visibility="Hidden" Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="ExecuteCtuTask_Click"/> <TextBlock x:Name="outTaskCount" Visibility="Hidden" Grid.Row="1" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<TextBlock Text="扫描料箱号:" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/> <Button Content="执行CTU出库任务" Visibility="Hidden" Grid.Row="1" Grid.Column="3" Grid.ColumnSpan="2" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="ExecuteCtuTask_Click"/>
<TextBlock Text="扫描条码号:" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/> <TextBlock Text="扫描料箱号:" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<Button Click="boxOutClear_Click" HorizontalAlignment="Right" Height="100" Panel.ZIndex="1" Width="100" Margin="0,0,130,0" Grid.Column="5" Grid.Row="1"> <TextBlock Text="扫描条码号:" Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<Button Click="boxOutClear_Click" HorizontalAlignment="Right" Height="100" Panel.ZIndex="1" Width="100" Margin="0,0,130,0" Grid.Column="5" Grid.Row="2">
<Image Source="..\Resources\cancel.png"/> <Image Source="..\Resources\cancel.png"/>
</Button> </Button>
<Button Click="barOutClear_Click" HorizontalAlignment="Right" Height="100" Panel.ZIndex="1" Width="100" Margin="0,0,130,0" Grid.Column="5" Grid.Row="2"> <Button Click="barOutClear_Click" HorizontalAlignment="Right" Height="100" Panel.ZIndex="1" Width="100" Margin="0,0,130,0" Grid.Column="5" Grid.Row="3">
<Image Source="..\Resources\cancel.png"/> <Image Source="..\Resources\cancel.png"/>
</Button> </Button>
<TextBlock Text="出库数量:" Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/> <TextBlock Text="出库数量:" Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<hc:TextBox hc:InfoElement.ShowClearButton="True" x:Name="txtOutBox" FontSize="50" LostFocus="txtOutBox_TextChanged" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="1" Grid.Column="3" Grid.ColumnSpan="3"/> <hc:TextBox hc:InfoElement.ShowClearButton="True" x:Name="txtOutBox" FontSize="50" LostFocus="txtOutBox_TextChanged" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="2" Grid.Column="3" Grid.ColumnSpan="3"/>
<hc:TextBox hc:InfoElement.ShowClearButton="True" x:Name="txtOutBarCode" FontSize="50" LostFocus="txtOutBarCode_TextChanged" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="2" Grid.Column="3" Grid.ColumnSpan="3"/> <hc:TextBox hc:InfoElement.ShowClearButton="True" x:Name="txtOutBarCode" FontSize="50" LostFocus="txtOutBarCode_TextChanged" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="3" Grid.Column="3" Grid.ColumnSpan="3"/>
<hc:TextBox x:Name="txtOutScan" IsReadOnly="True" FontSize="50" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="3" Grid.Column="3" Grid.ColumnSpan="3" /> <hc:TextBox x:Name="txtOutScan" IsReadOnly="True" FontSize="50" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="4" Grid.Column="3" Grid.ColumnSpan="3" />
<Button Content="确认出库" Grid.Row="4" Grid.ColumnSpan="6" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="OutRawBaseLocaltion_Click"/> <Button Content="确认出库" Grid.Row="5" Grid.ColumnSpan="6" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="OutRawBaseLocaltion_Click"/>
<Button Content="背负式小车捡料完成" Grid.Row="5" Grid.ColumnSpan="6" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="btnBearConfirmBox_Click"/> <Button Content="背负式小车捡料完成" Grid.Row="6" Grid.ColumnSpan="6" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="btnBearConfirmBox_Click"/>
</Grid> </Grid>
<!--<Border Background="#213269" BorderBrush="Silver" BorderThickness="2" CornerRadius="10" Width="900" Height="500" Margin="0,5,0,0"> <!--<Border Background="#213269" BorderBrush="Silver" BorderThickness="2" CornerRadius="10" Width="900" Height="500" Margin="0,5,0,0">
<StackPanel Margin="0,10,10,10"> <StackPanel Margin="0,10,10,10">

@ -1079,8 +1079,7 @@ namespace Khd.Core.Wpf.Form
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 wcsCmd = dbContext.WcsCmd var wcsCmd = dbContext.WcsCmd
.Where(t => t.cmdStatus == 6) .Where(t => t.cmdStatus == 6||t.cmdStatus==3)
.Where(t => t.nextPointId == 21)
.FirstOrDefault(); .FirstOrDefault();
if (wcsCmd == null) if (wcsCmd == null)
{ {
@ -1088,9 +1087,27 @@ namespace Khd.Core.Wpf.Form
} }
else else
{ {
dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmd { cmdStatus = 7 }); WcsTask? wcsTask = dbContext.WcsTask.FirstOrDefault(t => t.objid == wcsCmd.taskId&&t.nextPointId==10);
if(wcsTask == null)
{
MessageBox.Show("未查询到当前有背负式Agv由装配区到捡料区任务");
return;
}
if (wcsCmd.cmdStatus == 3)
{
wcsCmd.cmdStatus = 4;
wcsTask.taskStatus = 4;
}
else if(wcsCmd.cmdStatus == 6)
{
wcsCmd.cmdStatus = 7;
wcsTask.taskStatus = 7;
}
dbContext.Update(wcsCmd);
dbContext.Update(wcsTask);
dbContext.SaveChanges();
dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 7 }); dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 7 });
dbContext.WcsTask.Where(t => t.objid == wcsCmd.taskId).Update(t => new WcsTask { taskStatus = 7 });
dbContext.WcsTaskLog.Where(t => t.objid == wcsCmd.taskId).Update(t => new WcsTaskLog { taskStatus = 7 }); dbContext.WcsTaskLog.Where(t => t.objid == wcsCmd.taskId).Update(t => new WcsTaskLog { taskStatus = 7 });
MessageBox.Show("背负式Agv任务确认完成成功"); MessageBox.Show("背负式Agv任务确认完成成功");
} }
@ -1399,7 +1416,19 @@ namespace Khd.Core.Wpf.Form
txtInScan.Text = string.Empty; txtInScan.Text = string.Empty;
return; return;
} }
//20240708142603RB014 if(container == null)
{
MessageBox.Show("未查询到该容器!");
txtInBox.Text = string.Empty;
return;
}
if(material == null)
{
MessageBox.Show("未查询到该条码内容!");
txtInBarCode.Text = string.Empty;
txtInScan.Text = string.Empty;
return;
}
var newRawStock = new WmsRawStock() var newRawStock = new WmsRawStock()
{ {
materialId = material.materialId, materialId = material.materialId,
@ -1420,7 +1449,7 @@ namespace Khd.Core.Wpf.Form
warehouseId = 512, warehouseId = 512,
createBy = "扫描入库", createBy = "扫描入库",
createDate = System.DateTime.Now, createDate = System.DateTime.Now,
safeFlag = "1", safeFlag = material.safeFlag
}; };
dbContext.WmsRawStock.Add(newRawStock); dbContext.WmsRawStock.Add(newRawStock);
dbContext.SaveChanges(); dbContext.SaveChanges();
@ -1640,7 +1669,7 @@ namespace Khd.Core.Wpf.Form
MessageBox.Show("库存已经被清空!"); MessageBox.Show("库存已经被清空!");
return; return;
} }
int outScan = Convert.ToInt32(this.txtOutScan.Text); decimal outScan = Convert.ToDecimal(this.txtOutScan.Text);
if (outScan != 1 && outScan > wmsRawStock.totalAmount - wmsRawStock.frozenAmount) if (outScan != 1 && outScan > wmsRawStock.totalAmount - wmsRawStock.frozenAmount)
{ {
MessageBox.Show("出库数量不能大于库存数量!"); MessageBox.Show("出库数量不能大于库存数量!");
@ -1654,7 +1683,11 @@ namespace Khd.Core.Wpf.Form
} }
else else
{ {
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.materialId == wcsTask.materialId && t.realOutstockAmount < t.outstockAmount); var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == txtOutBarCode.Text);
if (mesBaseBarcodeInfo != null)
{
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock
.Where(t => t.materialId == mesBaseBarcodeInfo.materialId && t.realOutstockAmount < t.outstockAmount&&t.saleOrderId == (mesBaseBarcodeInfo.saleOrderId==null?0:mesBaseBarcodeInfo.saleOrderId)).FirstOrDefault();
if (wmsRawOutstock != null) if (wmsRawOutstock != null)
{ {
wmsRawOutstock.realOutstockAmount += outScan; wmsRawOutstock.realOutstockAmount += outScan;
@ -1678,7 +1711,6 @@ namespace Khd.Core.Wpf.Form
dbContext.Update(wmsRawStock); dbContext.Update(wmsRawStock);
dbContext.Update(wmsRawOutstock); dbContext.Update(wmsRawOutstock);
} }
var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == txtOutBarCode.Text);
if (mesBaseBarcodeInfo != null) if (mesBaseBarcodeInfo != null)
{ {
WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail() WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail()
@ -1708,17 +1740,21 @@ namespace Khd.Core.Wpf.Form
} }
else else
{ {
wmsRawStock.totalAmount -= outScan; MessageBox.Show("该条码的销售订单不正确");
if (wmsRawStock.totalAmount == 0) txtOutScan.Text = string.Empty;
{ txtOutBarCode.Text = string.Empty;
dbContext.WmsRawStock.Remove(wmsRawStock); return;
dbContext.SaveChanges(); //wmsRawStock.totalAmount -= outScan;
} //if (wmsRawStock.totalAmount == 0)
else //{
{ // dbContext.WmsRawStock.Remove(wmsRawStock);
dbContext.WmsRawStock.Update(wmsRawStock); // dbContext.SaveChanges();
dbContext.SaveChanges(); //}
} //else
//{
// dbContext.WmsRawStock.Update(wmsRawStock);
// dbContext.SaveChanges();
//}
} }
MessageBox.Show("出库成功!"); MessageBox.Show("出库成功!");
@ -1726,6 +1762,11 @@ namespace Khd.Core.Wpf.Form
txtOutBarCode.Text = string.Empty; txtOutBarCode.Text = string.Empty;
txtOutBarCode.Focus(); txtOutBarCode.Focus();
} }
else
{
MessageBox.Show("未查询到该条码信息!");
}
}
} }
else else
{ {
@ -2500,7 +2541,7 @@ namespace Khd.Core.Wpf.Form
{ {
objid = Global.SnowId.NextId(), objid = Global.SnowId.NextId(),
taskType = 56, taskType = 56,
containerNo = "00000000", containerNo = null,
currPointId = baseEquip.objid, currPointId = baseEquip.objid,
currPointNo = baseEquip.equipNo, currPointNo = baseEquip.equipNo,
nextPointId = agvEquip.objid, nextPointId = agvEquip.objid,
@ -2578,7 +2619,7 @@ namespace Khd.Core.Wpf.Form
{ {
objid = Global.SnowId.NextId(), objid = Global.SnowId.NextId(),
taskType = 56, taskType = 56,
containerNo = "0", containerNo = null,
currPointId = startEquip.objid, currPointId = startEquip.objid,
currPointNo = startEquip.equipNo, currPointNo = startEquip.equipNo,
nextPointId = agvEquip.objid, nextPointId = agvEquip.objid,
@ -2691,7 +2732,7 @@ namespace Khd.Core.Wpf.Form
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>();
BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 1); BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 1);
baseEquip.containerNo = "0"; baseEquip.containerNo = null;
dbContext.Update(baseEquip); dbContext.Update(baseEquip);
dbContext.SaveChanges(); dbContext.SaveChanges();
MessageBox.Show("确认入库成功!"); MessageBox.Show("确认入库成功!");
@ -2858,5 +2899,11 @@ namespace Khd.Core.Wpf.Form
InventoryTaskForm inventoryTaskForm = new InventoryTaskForm(this._host); InventoryTaskForm inventoryTaskForm = new InventoryTaskForm(this._host);
inventoryTaskForm.ShowDialog(); inventoryTaskForm.ShowDialog();
} }
private void SelectOutBtn_Click(object sender, RoutedEventArgs e)
{
}
} }
} }

@ -167,7 +167,7 @@ namespace Khd.Core.Wpf.TaskForm.Inventory
palletInfoCode = _containerNo, palletInfoCode = _containerNo,
materialId = _materialId, materialId = _materialId,
instockBatch = barcode, instockBatch = barcode,
safeFlag = "0", safeFlag = mesBaseBarcodeInfo.safeFlag,
stockType="1", stockType="1",
activeFlag="1", activeFlag="1",
supplierId=mesBaseBarcodeInfo.manufacturerId, supplierId=mesBaseBarcodeInfo.manufacturerId,
@ -180,12 +180,12 @@ namespace Khd.Core.Wpf.TaskForm.Inventory
totalAmount=mesBaseBarcodeInfo.batchFlag=="1"?mesBaseBarcodeInfo.amount:1, totalAmount=mesBaseBarcodeInfo.batchFlag=="1"?mesBaseBarcodeInfo.amount:1,
warehouseFloor=5, warehouseFloor=5,
warehouseId=512, warehouseId=512,
saleOrderId=mesBaseBarcodeInfo.saleOrderId, saleOrderId=mesBaseBarcodeInfo.saleOrderId==null?0:mesBaseBarcodeInfo.saleOrderId,
locationCode = _locationCode, locationCode = _locationCode,
createBy = "WCS", createBy = "WCS",
createDate = DateTime.Now, createDate = DateTime.Now,
updateBy = "WCS", updateBy = "WCS",
updateDate = DateTime.Now updateDate = DateTime.Now,
}); });
} }
else else

@ -0,0 +1,32 @@
<Window x:Class="Khd.Core.Wpf.TaskForm.SelectOutRawForm"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Khd.Core.Wpf.TaskForm"
mc:Ignorable="d"
WindowStartupLocation="CenterScreen"
Background="#333333"
Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="出库终点" Foreground="White" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="30"/>
<ComboBox x:Name="EmptyCount" FontSize="30" Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Left" VerticalAlignment="Center" Width="300" Height="75"/>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="5">
<Button Content="保存" Width="150" Height="75" FontSize="50" Background="#2196F3" Foreground="White" Click="Button_Click"/>
<Button Content="取消" Margin="200,0,0,0" Width="150" Height="75" FontSize="50" Background="#F44336" Foreground="White" Click="Button_Click_1"/>
</StackPanel>
</Grid>
</Window>

@ -0,0 +1,40 @@
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace Khd.Core.Wpf.TaskForm
{
/// <summary>
/// SelectOutRawForm.xaml 的交互逻辑
/// </summary>
public partial class SelectOutRawForm : Window
{
private readonly IHost _host;
public SelectOutRawForm(IHost host)
{
InitializeComponent();
_host = host;
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
this.Close();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
}
}
}
Loading…
Cancel
Save