原材料仓绑定采购/委外/调拨条码接口调整、载具绑定记录调整启用、入库流水插入调整
This commit is contained in:
@@ -23,6 +23,7 @@ using Tnb.WarehouseMgr.Entities.Consts;
|
||||
using Tnb.WarehouseMgr.Entities.Dto;
|
||||
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
|
||||
using Tnb.WarehouseMgr.Entities.Dto.Outputs;
|
||||
using Tnb.WarehouseMgr.Entities.Entity;
|
||||
using Tnb.WarehouseMgr.Entities.Enums;
|
||||
using Tnb.WarehouseMgr.Interfaces;
|
||||
|
||||
@@ -188,7 +189,67 @@ namespace Tnb.WarehouseMgr
|
||||
throw new Exception($"不能绑定多个不同类型单据打印的条码!:{string.Join(',', WmsTempCodes.DistinctBy(r => r.required_type).Select(r => r.barcode).ToList())}");
|
||||
}
|
||||
|
||||
var bill_group = WmsTempCodes.GroupBy(r => new { r.require_id, r.required_type });
|
||||
foreach (var group in bill_group)
|
||||
{
|
||||
string required_type = group.Key.required_type;
|
||||
switch (required_type)
|
||||
{
|
||||
case WmsWareHouseConst.BILLTYPE_PURCHASE_ID:
|
||||
{
|
||||
decimal? sum = input.details.Where(r => group.Select(r => r.barcode).Contains(r.barcode)).Select(r => r.codeqty).Sum();
|
||||
WmsPurchaseD wmsPurchaseD = await _db.Queryable<WmsPurchaseD>().Where(r => r.id == group.Key.require_id).FirstAsync();
|
||||
decimal? bind_qty = wmsPurchaseD.bind_qty ?? 0;
|
||||
if (sum + bind_qty > wmsPurchaseD.purchase_arriveqty)
|
||||
{
|
||||
throw new Exception($"托盘{input.carrycode} 物料{wmsPurchaseD.material_code} 当前绑定数量为{sum} 剩余可绑定数量为{(wmsPurchaseD.purchase_arriveqty - bind_qty).ParseToFloat()}!");
|
||||
}
|
||||
wmsPurchaseD.bind_qty = sum + bind_qty;
|
||||
await _db.Updateable(wmsPurchaseD).ExecuteCommandAsync();
|
||||
break;
|
||||
}
|
||||
case WmsWareHouseConst.BILLTYPE_OUTSOURCE_ID:
|
||||
{
|
||||
decimal? sum = group.Select(r => r.codeqty).Sum();
|
||||
WmsOutsourceD wmsOutsourceD = await _db.Queryable<WmsOutsourceD>().Where(r => r.id == group.Key.require_id).FirstAsync();
|
||||
decimal? bind_qty = wmsOutsourceD.bind_qty ?? 0;
|
||||
if (sum + bind_qty > wmsOutsourceD.actual_quantity)
|
||||
{
|
||||
throw new Exception($"托盘{input.carrycode} 物料{wmsOutsourceD.matcode} 当前绑定数量为{sum} 剩余可绑定数量为{wmsOutsourceD.actual_quantity - bind_qty}!");
|
||||
}
|
||||
wmsOutsourceD.bind_qty = sum + bind_qty;
|
||||
await _db.Updateable(wmsOutsourceD).ExecuteCommandAsync();
|
||||
break;
|
||||
}
|
||||
case WmsWareHouseConst.BILLTYPE_RAWMATTRANSFERINSTOCK_ID:
|
||||
{
|
||||
decimal? sum = group.Select(r => r.codeqty).Sum();
|
||||
WmsRawmatTransferinstockD wmsRawmatTransferinstockD = await _db.Queryable<WmsRawmatTransferinstockD>().Where(r => r.id == group.Key.require_id).FirstAsync();
|
||||
decimal? bind_qty = wmsRawmatTransferinstockD.bind_qty ?? 0;
|
||||
if (sum + bind_qty > wmsRawmatTransferinstockD.actual_qty)
|
||||
{
|
||||
throw new Exception($"托盘{input.carrycode} 物料{wmsRawmatTransferinstockD.matcode} 当前绑定数量为{sum} 剩余可绑定数量为{wmsRawmatTransferinstockD.actual_qty - bind_qty}!");
|
||||
}
|
||||
wmsRawmatTransferinstockD.bind_qty = sum + bind_qty;
|
||||
await _db.Updateable(wmsRawmatTransferinstockD).ExecuteCommandAsync();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
WmsCarrybindH wmsCarrybindH = new WmsCarrybindH();
|
||||
wmsCarrybindH.carry_id = carry.id;
|
||||
wmsCarrybindH.carry_code = carry.carry_code;
|
||||
wmsCarrybindH.create_id = input.create_id;
|
||||
wmsCarrybindH.create_time = DateTime.Now;
|
||||
wmsCarrybindH.org_id = WmsWareHouseConst.AdministratorOrgId;
|
||||
wmsCarrybindH.location_id = WmsWareHouseConst.LOCATION_YCLBGWDRK;
|
||||
wmsCarrybindH.location_code = "YCLBGWDRK";
|
||||
|
||||
List<WmsCarryCode> WmsCarryCodes = new List<WmsCarryCode>();
|
||||
|
||||
List<WmsCarrybindCode> wmsCarrybindCodes = new List<WmsCarrybindCode>();
|
||||
|
||||
foreach (var detail in input.details)
|
||||
{
|
||||
var WmsCarryCode = detail.Adapt<WmsCarryCode>();
|
||||
@@ -199,10 +260,19 @@ namespace Tnb.WarehouseMgr
|
||||
WmsCarryCode.create_id = input.create_id;
|
||||
WmsCarryCode.create_time = DateTime.Now;
|
||||
WmsCarryCodes.Add(WmsCarryCode);
|
||||
|
||||
var wmsCarrybindCode = detail.Adapt<WmsCarrybindCode>();
|
||||
wmsCarrybindCode.carrybind_id = wmsCarrybindH.id;
|
||||
wmsCarrybindCodes.Add(wmsCarrybindCode);
|
||||
}
|
||||
int rows = 0;
|
||||
if (WmsCarryCodes.Count > 0)
|
||||
{
|
||||
rows = await _db.Insertable(WmsCarryCodes).ExecuteCommandAsync();
|
||||
await _db.Insertable(wmsCarrybindH).ExecuteCommandAsync();
|
||||
await _db.Insertable(wmsCarrybindCodes).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
|
||||
await _db.Updateable<WmsCarryH>().SetColumns(r => new WmsCarryH
|
||||
{
|
||||
@@ -214,6 +284,7 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
throw new Exception($"物料列表为空,不能提交绑定,可能的原因;1.需要检查扫码设置(新PDA) 2.未扫到有效的二维码 详细信息:接收到{input.details.Count}个条码 但是成功绑定的条码数量为0个!");
|
||||
}
|
||||
|
||||
}
|
||||
catch (PostgresException ex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user