diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs index 926d141..04dfc72 100644 --- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs +++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs @@ -1435,36 +1435,50 @@ namespace Khd.Core.Wpf.Form { try { - //剩余出库单 - int count = OutTaskNumber.Items.Count; - using var scope = _host.Services.CreateScope(); - using var dbContext = scope.ServiceProvider.GetRequiredService(); + MessageBoxResult messageBoxResult = HandyControl.Controls.MessageBox.Show("是否确认捡料完成?", "提示信息", MessageBoxButton.YesNoCancel, MessageBoxImage.Information); + if (messageBoxResult == MessageBoxResult.Yes) + { + //剩余出库单 + int count = OutTaskNumber.Items.Count; + using var scope = _host.Services.CreateScope(); + using var dbContext = scope.ServiceProvider.GetRequiredService(); - var wcsCmd = dbContext.WcsTask - .Where(t => t.taskStatus == 6 || t.taskStatus == 3) - .Where(t => t.nextPointId == 10) - .FirstOrDefault(); - if (wcsCmd == null) - { - HandyControl.Controls.MessageBox.Error("未查询到当前有背负式Agv由装配区到捡料区任务"); - } - else - { - if (wcsCmd.taskType == 32)//领料 + var wcsCmd = dbContext.WcsTask + .Where(t => t.taskStatus == 6 || t.taskStatus == 3) + .Where(t => t.nextPointId == 10) + .FirstOrDefault(); + if (wcsCmd == null) { - if (count > 0) + HandyControl.Controls.MessageBox.Error("未查询到当前有背负式Agv由装配区到捡料区任务"); + } + else + { + if (wcsCmd.taskType == 32)//领料 { - MessageBoxResult messageBoxResult = HandyControl.Controls.MessageBox.Show("是否需要背负式小车返回?", "提示信息", MessageBoxButton.YesNoCancel, MessageBoxImage.Information); - if (messageBoxResult == MessageBoxResult.Yes) + if (count > 0) { - WcsTask wcsTask = CoreMapper.Map(wcsCmd); - wcsTask.taskStatus = 0; - wcsTask.createTime = DateTime.Now; - wcsTask.useFlag = 1; - wcsTask.objid = Global.SnowId.NextId(); - WcsTaskLog wcsTaskLog = CoreMapper.Map(wcsTask); - dbContext.Add(wcsTaskLog); - dbContext.Add(wcsTask); + MessageBoxResult messageBoxResult1 = HandyControl.Controls.MessageBox.Show("是否需要背负式小车返回?", "提示信息", MessageBoxButton.YesNoCancel, MessageBoxImage.Information); + if (messageBoxResult1 == MessageBoxResult.Yes) + { + WcsTask wcsTask = CoreMapper.Map(wcsCmd); + wcsTask.taskStatus = 0; + wcsTask.createTime = DateTime.Now; + wcsTask.useFlag = 1; + wcsTask.objid = Global.SnowId.NextId(); + WcsTaskLog wcsTaskLog = CoreMapper.Map(wcsTask); + dbContext.Add(wcsTaskLog); + dbContext.Add(wcsTask); + } + else + { + BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 10); + baseEquip.endStationCode = string.Empty; + baseEquip.ud3 = null; + dbContext.Update(baseEquip); + dbContext.SaveChanges(); + + } + } else { @@ -1476,33 +1490,24 @@ namespace Khd.Core.Wpf.Form return; } + if (wcsCmd.taskStatus == 3) + { + wcsCmd.taskStatus = 4; + } } - else + else if (wcsCmd.taskType == 48)//返库 { - BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 10); - baseEquip.endStationCode = string.Empty; - baseEquip.ud3 = null; - dbContext.Update(baseEquip); - dbContext.SaveChanges(); - return; - } - - if (wcsCmd.taskStatus == 3) - { - wcsCmd.taskStatus = 4; + if (wcsCmd.taskStatus == 6) + { + wcsCmd.taskStatus = 7; + } } + dbContext.Update(wcsCmd); + dbContext.SaveChanges(); + HandyControl.Controls.MessageBox.Success("背负式Agv任务确认完成成功"); } - else if (wcsCmd.taskType == 48)//返库 - { - if (wcsCmd.taskStatus == 6) - { - wcsCmd.taskStatus = 7; - } - } - dbContext.Update(wcsCmd); - dbContext.SaveChanges(); - HandyControl.Controls.MessageBox.Success("背负式Agv任务确认完成成功"); } + } catch (Exception ex) { @@ -2440,13 +2445,14 @@ namespace Khd.Core.Wpf.Form { try { - + using var scope = _host.Services.CreateScope(); + using var dbContext = scope.ServiceProvider.GetRequiredService(); + BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 10); if (!string.IsNullOrEmpty(txtOutBox.Text) && !string.IsNullOrEmpty(txtOutBarCode.Text)) { - using var scope = _host.Services.CreateScope(); - using var dbContext = scope.ServiceProvider.GetRequiredService(); + var wmsRawStock = dbContext.WmsRawStock .FirstOrDefault(t => t.instockBatch == txtOutBarCode.Text && t.palletInfoCode == txtOutBox.Text); if (wmsRawStock == null) @@ -2472,7 +2478,7 @@ namespace Khd.Core.Wpf.Form 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(); + .Where(t => t.materialId == mesBaseBarcodeInfo.materialId && t.realOutstockAmount < t.outstockAmount && t.saleOrderId == (mesBaseBarcodeInfo.saleOrderId == null ? 0 : mesBaseBarcodeInfo.saleOrderId) && t.endStationCode == baseEquip.endStationCode).FirstOrDefault(); if (wmsRawOutstock != null) { wmsRawOutstock.realOutstockAmount += outScan; @@ -2527,90 +2533,90 @@ namespace Khd.Core.Wpf.Form { // 没有申请单 // 如果选中了出库单,并且无需要出库的申请单,则禁止出库 - BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 10); + if (!string.IsNullOrEmpty(baseEquip.endStationCode)) { scanOutMsg.Text = "申请单里该条码无需出库!"; return; } - if (mesBaseBarcodeInfo.PurchaseOrderId == null) + if (mesBaseBarcodeInfo.PurchaseOrderId == null) + { + wmsRawStock.totalAmount -= outScan; + if (wmsRawStock.totalAmount == 0) { - wmsRawStock.totalAmount -= outScan; - if (wmsRawStock.totalAmount == 0) - { - dbContext.WmsRawStock.Remove(wmsRawStock); - - } - else - { - dbContext.WmsRawStock.Update(wmsRawStock); - - } - #region 插入rawOutstock - string timeStamp = DateTime.Now.ToString("yyyyMMddHHmmss"); - WmsRawOutstock newWmsRawOutstock = new WmsRawOutstock(); - newWmsRawOutstock.taskCode = timeStamp + "CTU" + Random.Shared.Next(10, 99); - newWmsRawOutstock.warehouseId = 512; - newWmsRawOutstock.locationCode = wcsTask.currPointNo; - newWmsRawOutstock.stationId = 512; - newWmsRawOutstock.materialId = mesBaseBarcodeInfo.materialId; - newWmsRawOutstock.materialBatch = mesBaseBarcodeInfo.barcodeInfo; - newWmsRawOutstock.palletInfoCode = wcsTask.containerNo; - newWmsRawOutstock.outstockAmount = outScan; - newWmsRawOutstock.realOutstockAmount = outScan; - newWmsRawOutstock.operationType = "1"; - newWmsRawOutstock.taskType = "1"; - newWmsRawOutstock.auditStatus = "1"; - newWmsRawOutstock.applyBy = "CtuGun"; - newWmsRawOutstock.applyDate = DateTime.Now; - newWmsRawOutstock.executeStatus = "2"; - newWmsRawOutstock.saleOrderId = mesBaseBarcodeInfo.saleOrderId; - newWmsRawOutstock.updateDate = DateTime.Now; - newWmsRawOutstock.beginTime = DateTime.Now; - newWmsRawOutstock.endTime = DateTime.Now; - dbContext.WmsRawOutstock.Add(newWmsRawOutstock); - dbContext.SaveChanges(); - #endregion - //if (mesBaseBarcodeInfo != null) - //{ - // WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail() - // { - // rawOutstockDetailId = Global.SnowId.NextId(), - // rawOutstockId = 0, - // materialId = mesBaseBarcodeInfo.materialId, - // createDate = DateTime.Now, - // createBy = "WCS", - // taskCode = wcsTask.objid.ToString(), - // executeStatus = "2", - // locationCode = wcsTask.currPointNo, - // outstockAmount = outScan, - // planAmount = outScan, - // warehouseId = 512, - // materialBarcode = mesBaseBarcodeInfo.barcodeInfo, - // instockBatch = mesBaseBarcodeInfo.batchCode, - // stackAmount = outScan, - // outstockPerson = "WCS", - // outstockTime = DateTime.Now, - // outstockWay = "2", - // materialProductionDate = mesBaseBarcodeInfo.productionDate - // }; - // dbContext.WmsRawOutstockDetail.Add(wmsProductOutstockDetail); - //} - // dbContext.SaveChanges(); + dbContext.WmsRawStock.Remove(wmsRawStock); } else { - scanOutMsg.Text = "该条码的销售订单不正确"; - txtOutScan.Text = string.Empty; - txtOutBarCode.Text = string.Empty; - outMaterialSpecTxt.Text = string.Empty; - outMaterialNameTxt.Text = string.Empty; - txtOutBox.Text = string.Empty; - txtOutBox.Focus(); - return; + dbContext.WmsRawStock.Update(wmsRawStock); + } + #region 插入rawOutstock + string timeStamp = DateTime.Now.ToString("yyyyMMddHHmmss"); + WmsRawOutstock newWmsRawOutstock = new WmsRawOutstock(); + newWmsRawOutstock.taskCode = timeStamp + "CTU" + Random.Shared.Next(10, 99); + newWmsRawOutstock.warehouseId = 512; + newWmsRawOutstock.locationCode = wcsTask.currPointNo; + newWmsRawOutstock.stationId = 512; + newWmsRawOutstock.materialId = mesBaseBarcodeInfo.materialId; + newWmsRawOutstock.materialBatch = mesBaseBarcodeInfo.barcodeInfo; + newWmsRawOutstock.palletInfoCode = wcsTask.containerNo; + newWmsRawOutstock.outstockAmount = outScan; + newWmsRawOutstock.realOutstockAmount = outScan; + newWmsRawOutstock.operationType = "1"; + newWmsRawOutstock.taskType = "1"; + newWmsRawOutstock.auditStatus = "1"; + newWmsRawOutstock.applyBy = "CtuGun"; + newWmsRawOutstock.applyDate = DateTime.Now; + newWmsRawOutstock.executeStatus = "2"; + newWmsRawOutstock.saleOrderId = mesBaseBarcodeInfo.saleOrderId; + newWmsRawOutstock.updateDate = DateTime.Now; + newWmsRawOutstock.beginTime = DateTime.Now; + newWmsRawOutstock.endTime = DateTime.Now; + dbContext.WmsRawOutstock.Add(newWmsRawOutstock); + dbContext.SaveChanges(); + #endregion + //if (mesBaseBarcodeInfo != null) + //{ + // WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail() + // { + // rawOutstockDetailId = Global.SnowId.NextId(), + // rawOutstockId = 0, + // materialId = mesBaseBarcodeInfo.materialId, + // createDate = DateTime.Now, + // createBy = "WCS", + // taskCode = wcsTask.objid.ToString(), + // executeStatus = "2", + // locationCode = wcsTask.currPointNo, + // outstockAmount = outScan, + // planAmount = outScan, + // warehouseId = 512, + // materialBarcode = mesBaseBarcodeInfo.barcodeInfo, + // instockBatch = mesBaseBarcodeInfo.batchCode, + // stackAmount = outScan, + // outstockPerson = "WCS", + // outstockTime = DateTime.Now, + // outstockWay = "2", + // materialProductionDate = mesBaseBarcodeInfo.productionDate + // }; + // dbContext.WmsRawOutstockDetail.Add(wmsProductOutstockDetail); + //} + // dbContext.SaveChanges(); + + } + else + { + scanOutMsg.Text = "该条码的销售订单不正确"; + txtOutScan.Text = string.Empty; + txtOutBarCode.Text = string.Empty; + outMaterialSpecTxt.Text = string.Empty; + outMaterialNameTxt.Text = string.Empty; + txtOutBox.Text = string.Empty; + txtOutBox.Focus(); + return; + } } scanOutMsg.Text = "出库成功!";