1 year ago
commit b1285cb8a9

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

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

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

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

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

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

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

@ -1269,7 +1269,7 @@
</TabItem>
<TabItem x:Name="LocationManager11" Header="辅料库位" Style="{StaticResource DefaultItem}" FontSize="25" HorizontalContentAlignment="Center" Background="#213269" VerticalContentAlignment="Center" Foreground="White" Width="160" Height="80" Margin="5">
<Grid>
<Grid Height="1080" Width="1680">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
@ -2241,36 +2241,42 @@
Width="3*"
/>
<DataGridTextColumn
Header="物料描述"
Header="物料规格"
Binding="{Binding materialSpec}"
ElementStyle="{StaticResource dgCell}"
Width="5*"
/>
<DataGridTextColumn
<!--<DataGridTextColumn
Header="销售订单"
Binding="{Binding saleOrderId}"
ElementStyle="{StaticResource dgCell}"
Width="2*"
/>
<DataGridTextColumn
/>-->
<!--<DataGridTextColumn
Header="箱体携带数量"
Binding="{Binding thisOutAmount}"
ElementStyle="{StaticResource dgCell}"
Width="2*"
/>
/>-->
<DataGridTextColumn
Header="申请数量"
Header="申请退库数量"
Binding="{Binding outstockAmount}"
ElementStyle="{StaticResource dgCell}"
Width="2*"
/>
<DataGridTextColumn
Header="已数量"
Header="已退数量"
Binding="{Binding realOutstockAmount}"
ElementStyle="{StaticResource dgCell}"
Width="2*"
/>
<DataGridTextColumn
Header="退库工位"
Binding="{Binding endStationCode}"
ElementStyle="{StaticResource dgCell}"
Width="2*"
/>
</DataGrid.Columns>
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">

@ -15,6 +15,7 @@ using Masuit.Tools;
using Masuit.Tools.Logging;
using Microsoft.CodeAnalysis;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Internal;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.IdentityModel.Tokens;
@ -489,62 +490,98 @@ namespace Khd.Core.Wpf.Form
{
this.ReturnOrder.Text = "待退库单:\n" + list.Distinct().Join("\n");
});
var baseEquip = dbContext.BaseEquip.First(t => t.objid == 10);
if (!string.IsNullOrEmpty(baseEquip.endStationCode))
WcsTask? wcsTask = dbContext.WcsTask.Where(x => x.nextPointId == 10 && x.taskType == 48).FirstOrDefault();
if (wcsTask != null)
{
List<WcsTask> wcsTasks = dbContext.WcsTask.Where(t => t.taskType == 30).Where(t => orderIds.Contains(t.orderId)).ToList();
List<string> containerNos = wcsTasks.Select(t => t.containerNo).ToList();
List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock.Where(t => containerNos.Contains(t.palletInfoCode)).ToList();
var thisOutList = wmsRawStocks.GroupBy(t => new { t.materialId, t.saleOrderId })
.Select(t => new
{
materialId = t.Key.materialId,
saleOrderId = t.Key.saleOrderId,
thisOutAmount = t.Sum(x => x.totalAmount) - t.Sum(x => x.frozenAmount)
});
List<WmsRawReturn> endStationCodeOutRaw = wmsRawReturns.Where(t => baseEquip.endStationCode.Contains(t.endStationCode)).ToList();
List<long?> materialIds = endStationCodeOutRaw.Select(t => t.materialId).ToList();
List<MesBaseMaterialInfo> mesBaseMaterialInfos = dbContext.MesBaseMaterialInfo.Where(t => materialIds.Contains(t.MaterialId)).ToList();
var bill = endStationCodeOutRaw.GroupBy(t => new { t.materialId })
.Select(t => new
{
materialId = t.Key.materialId,
outstockAmount = t.Sum(x => x.returnAmount),
realOutstockAmount = t.Sum(x => x.planAmount),
});
var orderNumber = from a in bill
from b in thisOutList
from c in mesBaseMaterialInfos
where a.materialId == b.materialId
select new
{
materialBatch = c.MaterialCode,
saleOrderId = b.saleOrderId,
outstockAmount = a.outstockAmount,
materialSpec = c.MaterialSpec,
realOutstockAmount = a.realOutstockAmount,
thisOutAmount = b.thisOutAmount,
};
Dispatcher.Invoke(() =>
List<WmsRawReturn> wmsRawReturnList = wmsRawReturns.Where(x => x.endStationCode == wcsTask.currPointNo).ToList();
if (wmsRawReturnList != null && wmsRawReturnList.Count > 0)
{
this.ReturnTaskNumber.ItemsSource = orderNumber;
this.ReturnTaskNumber.Items.Refresh();
});
}
else
{
Dispatcher.Invoke(() =>
List<long?> materialIds = wmsRawReturnList.Select(t => t.materialId).ToList();
List<MesBaseMaterialInfo> mesBaseMaterialInfos = dbContext.MesBaseMaterialInfo.Where(t => materialIds.Contains(t.MaterialId)).ToList();
var rawReturnPageInfos = from a in mesBaseMaterialInfos
from b in wmsRawReturnList
where a.MaterialId == b.materialId
select new
{
materiaName = a.MaterialName,
materialSpec = a.MaterialSpec,
outstockAmount = b.planAmount,
realOutstockAmount = b.returnAmount,
endStationCode = b.endStationCode
};
Dispatcher.Invoke(() =>
{
this.ReturnTaskNumber.ItemsSource = rawReturnPageInfos;
this.ReturnTaskNumber.Items.Refresh();
});
}
else
{
this.ReturnTaskNumber.ItemsSource = null;
this.ReturnTaskNumber.Items.Refresh();
});
Dispatcher.Invoke(() =>
{
this.ReturnTaskNumber.ItemsSource = null;
this.ReturnTaskNumber.Items.Refresh();
});
}
}
//var baseEquip = dbContext.BaseEquip.First(t => t.objid == 10);
//if (!string.IsNullOrEmpty(baseEquip.endStationCode))
//{
// List<WcsTask> wcsTasks = dbContext.WcsTask.Where(t => t.taskType == 30).Where(t => orderIds.Contains(t.orderId)).ToList();
// List<string> containerNos = wcsTasks.Select(t => t.containerNo).ToList();
// List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock.Where(t => containerNos.Contains(t.palletInfoCode)).ToList();
// var thisOutList = wmsRawStocks.GroupBy(t => new { t.materialId, t.saleOrderId })
// .Select(t => new
// {
// materialId = t.Key.materialId,
// saleOrderId = t.Key.saleOrderId,
// thisOutAmount = t.Sum(x => x.totalAmount) - t.Sum(x => x.frozenAmount)
// });
// List<WmsRawReturn> endStationCodeOutRaw = wmsRawReturns.Where(t => baseEquip.endStationCode.Contains(t.endStationCode)).ToList();
// List<long?> materialIds = endStationCodeOutRaw.Select(t => t.materialId).ToList();
// List<MesBaseMaterialInfo> mesBaseMaterialInfos = dbContext.MesBaseMaterialInfo.Where(t => materialIds.Contains(t.MaterialId)).ToList();
// var bill = endStationCodeOutRaw.GroupBy(t => new { t.materialId })
// .Select(t => new
// {
// materialId = t.Key.materialId,
// outstockAmount = t.Sum(x => x.returnAmount),
// realOutstockAmount = t.Sum(x => x.planAmount),
// });
// var orderNumber = from a in bill
// from b in thisOutList
// from c in mesBaseMaterialInfos
// where a.materialId == b.materialId
// select new
// {
// materialBatch = c.MaterialCode,
// saleOrderId = b.saleOrderId,
// outstockAmount = a.outstockAmount,
// materialSpec = c.MaterialSpec,
// realOutstockAmount = a.realOutstockAmount,
// thisOutAmount = b.thisOutAmount,
// };
// Dispatcher.Invoke(() =>
// {
// this.ReturnTaskNumber.ItemsSource = orderNumber;
// this.ReturnTaskNumber.Items.Refresh();
// });
//}
//else
//{
// Dispatcher.Invoke(() =>
// {
// this.ReturnTaskNumber.ItemsSource = null;
// this.ReturnTaskNumber.Items.Refresh();
// });
//}
}
catch
{
}
Thread.Sleep(1000);
Thread.Sleep(2000);
}
}
@ -764,7 +801,7 @@ namespace Khd.Core.Wpf.Form
{
}
Thread.Sleep(2000);
Thread.Sleep(1000);
}
}
@ -2352,20 +2389,27 @@ namespace Khd.Core.Wpf.Form
txtReturnBarCode.Focus();
return;
}
WmsRawReturn? wmsRawReturn = dbContext.WmsRawReturn
.Where(t => t.rawReturnId == task.orderId).FirstOrDefault();
WmsRawReturn? wmsRawReturn = dbContext.WmsRawReturn.Where(t => t.endStationCode == task.currPointNo && t.materialId == material.materialId).FirstOrDefault();
if (wmsRawReturn == null)
{
txtReturnbox.Text = ("未查询到退库任务!");
return;
var result = MessageBox.Show("当前物料不在退出申请单中,确定还要入库吗?", "确认入库", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result != MessageBoxResult.Yes)
{
txtReturnBarCode.Text = string.Empty;
txtReturnBox.Text = string.Empty;
return;
}
}
var container = dbContext.WmsBaseLocation.FirstOrDefault(t => t.containerCode == txtReturnBox.Text && t.warehouseId == 512);
List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock
.Where(t => txtReturnBarCode.Text == t.instockBatch)
.Where(t => t.warehouseFloor == 5 && t.warehouseId == 512).ToList();
if (wmsRawStocks.Count > 0 && material.batchFlag != "1")
{
txtReturnbox.Text = ($"该条码已入库!料箱号为{wmsRawStocks.First().palletInfoCode},库位号为{wmsRawStocks.First().locationCode}");
txtReturnbox.Text = ($"该条码已入库,非批次!料箱号为{wmsRawStocks.First().palletInfoCode},库位号为{wmsRawStocks.First().locationCode}");
txtReturnBarCode.Text = string.Empty;
txtReturnBox.Text = string.Empty;
return;
@ -2384,38 +2428,45 @@ namespace Khd.Core.Wpf.Form
catch
{
txtReturnbox.Text = ("请输入正确的数量");
return;
}
wmsRawReturn.returnAmount += amount;
if (wmsRawReturn.returnAmount >= wmsRawReturn.planAmount)
if (wmsRawReturn != null)
{
wmsRawReturn.executeStatus = "2";
wmsRawReturn.endTime = DateTime.Now;
wmsRawReturn.updateDate = DateTime.Now;
wmsRawReturn.returnAmount += amount;
if (wmsRawReturn.returnAmount >= wmsRawReturn.planAmount)
{
wmsRawReturn.executeStatus = "2";
wmsRawReturn.endTime = DateTime.Now;
}
dbContext.WmsRawReturn.Update(wmsRawReturn);
WmsRawReturnDetail? wmsRawReturnDetail = new WmsRawReturnDetail();
wmsRawReturnDetail.RawReturnId = (long)wmsRawReturn.rawReturnId;
wmsRawReturnDetail.LocationCode = container.locationCode;
wmsRawReturnDetail.MaterialBarcode = txtInBarCode.Text;
wmsRawReturnDetail.MaterialId = (long)material.materialId;
wmsRawReturnDetail.InstockBatch = material.batchCode;
wmsRawReturnDetail.MaterialProductionDate = material.productionDate;
wmsRawReturnDetail.PlanAmount = wmsRawReturn.planAmount;
wmsRawReturnDetail.ReturnAmount = wmsRawReturn.returnAmount;
wmsRawReturnDetail.ExecuteStatus = "2";
wmsRawReturnDetail.ReturnAmount = wmsRawReturn.returnAmount;
wmsRawReturnDetail.ReturnPerson = "WPF";
wmsRawReturnDetail.ReturnTime = DateTime.Now;
wmsRawReturnDetail.ReturnWay = "2";
wmsRawReturnDetail.CreateBy = "WPF";
wmsRawReturnDetail.CreateDate = DateTime.Now;
dbContext.WmsRawReturnDetail.Add(wmsRawReturnDetail);
}
WmsRawReturnDetail? wmsRawReturnDetail = new WmsRawReturnDetail();
wmsRawReturnDetail.RawReturnId = (long)wmsRawReturn.rawReturnId;
wmsRawReturnDetail.LocationCode = container.locationCode;
wmsRawReturnDetail.MaterialBarcode = txtInBarCode.Text;
wmsRawReturnDetail.MaterialId = (long)material.materialId;
wmsRawReturnDetail.InstockBatch = material.batchCode;
wmsRawReturnDetail.MaterialProductionDate = material.productionDate;
wmsRawReturnDetail.PlanAmount = wmsRawReturn.planAmount;
wmsRawReturnDetail.ReturnAmount = wmsRawReturn.returnAmount;
wmsRawReturnDetail.ExecuteStatus = "2";
wmsRawReturnDetail.ReturnAmount = wmsRawReturn.returnAmount;
wmsRawReturnDetail.ReturnPerson = "WPF";
wmsRawReturnDetail.ReturnTime = DateTime.Now;
wmsRawReturnDetail.ReturnWay = "2";
wmsRawReturnDetail.CreateBy = "WPF";
wmsRawReturnDetail.CreateDate = DateTime.Now;
decimal? message = 0;
if (wmsRawStocks.Count > 0)
{ // 批次条码并且有库存
var newRawStock = wmsRawStocks.First();
newRawStock.totalAmount += amount;
newRawStock.updateDate = DateTime.Now;
dbContext.WmsRawStock.Update(newRawStock);
message = newRawStock.totalAmount;
}
else
{ // 无库存
@ -2442,12 +2493,17 @@ namespace Khd.Core.Wpf.Form
safeFlag = material.safeFlag
};
dbContext.WmsRawStock.Add(newRawStock);
message = newRawStock.totalAmount;
}
dbContext.SaveChanges();
txtReturnbox.Text = ("退库成功!");
txtReturnbox.Text = ($"退库成功!,当前库存{message}");
txtReturnBarCode.Text = string.Empty;
txtReturnBox.Text = string.Empty;
returnMaterialName.Text = string.Empty;
returnGG.Text = string.Empty;
txtReturnScan.Text = string.Empty;
txtReturnBarCode.Focus();
}
else
@ -2850,6 +2906,14 @@ namespace Khd.Core.Wpf.Form
item.executeStatus = "2";
item.endTime = DateTime.Now;
}
//if (wmsRawStock.totalAmount <= 0)
//{
// dbContext.Remove(wmsRawStock);
//}
//else
//{
// dbContext.Update(wmsRawStock);
//}
wmsRawStock.totalAmount -= outAmount;
if (wmsRawStock.totalAmount == 0)
{
@ -3863,7 +3927,7 @@ namespace Khd.Core.Wpf.Form
dbContext.AddRange(addList);
dbContext.SaveChanges();
transaction.Commit();
HandyControl.Controls.MessageBox.Show("创建出库任务成功!");
// HandyControl.Controls.MessageBox.Show("创建出库任务成功!");
itemsControlItems.Clear();
CallSelectedItem.Clear();
GetPersonCallMaterialData();

Loading…
Cancel
Save