分拣、工位bom、现场问题处理
This commit is contained in:
@@ -331,10 +331,10 @@ namespace Tnb.WarehouseMgr
|
||||
WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable<WmsMaterialTransferD>().FirstAsync(it => it.id == input.source_id);
|
||||
WmsMaterialTransfer wmsMaterialTransfer = await _db.Queryable<WmsMaterialTransfer>().FirstAsync(it => it.id == wmsMaterialTransferD.bill_id);
|
||||
|
||||
//if (wmsMaterialTransferD.yxfqty >= wmsMaterialTransferD.qty)
|
||||
//{
|
||||
// throw new AppFriendlyException("已下发数量已达到转库数量", 500);
|
||||
//}
|
||||
if (wmsMaterialTransferD.yxfqty >= wmsMaterialTransferD.qty)
|
||||
{
|
||||
throw new AppFriendlyException("已下发数量已达到转库数量", 500);
|
||||
}
|
||||
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
@@ -363,7 +363,7 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
List<BasLocation> endLocations = new List<BasLocation>();
|
||||
// 集中供料区三工位
|
||||
if (wmsMaterialTransfer.warehouse_instock == WmsWareHouseConst.WAREHOUSE_JZGL_ID)
|
||||
if (wmsMaterialTransfer.warehouse_instock == WmsWareHouseConst.WAREHOUSE_JZGL_ID|| wmsMaterialTransfer.warehouse_instock == WmsWareHouseConst.WAREHOUSE_WBZHHC_ID)
|
||||
{
|
||||
// 根据三工位任务数平均分配任务 暂定
|
||||
endLocations = _db.Queryable<BasLocation>().Where(r => _wareHouseService.GetFloor1GLSGWOutstockLocation().Contains(r.id) && r.is_lock == 0 && r.is_use == "0")
|
||||
@@ -376,6 +376,11 @@ namespace Tnb.WarehouseMgr
|
||||
endLocations = _db.Queryable<BasLocation>().Where(r => _wareHouseService.GetFloor1WXSGWOutstockLocation().Contains(r.id) && r.is_lock == 0 && r.is_use == "0")
|
||||
.OrderBy("is_lock, task_nums, location_code").ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
BasWarehouse basWarehouse = await _db.Queryable<BasWarehouse>().Where(r => r.id == wmsMaterialTransfer.warehouse_instock).FirstAsync();
|
||||
throw new AppFriendlyException($@"当前不允许到转库单{wmsMaterialTransfer.bill_code}入库仓库{basWarehouse.whname}的转库操作", 500);
|
||||
}
|
||||
|
||||
if (endLocations.Count() < input.palletCount)
|
||||
{
|
||||
@@ -388,7 +393,7 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
BasLocation endLocation = null;
|
||||
// 集中供料区三工位
|
||||
if (wmsMaterialTransfer.warehouse_instock == WmsWareHouseConst.WAREHOUSE_JZGL_ID)
|
||||
if (wmsMaterialTransfer.warehouse_instock == WmsWareHouseConst.WAREHOUSE_JZGL_ID || wmsMaterialTransfer.warehouse_instock == WmsWareHouseConst.WAREHOUSE_WBZHHC_ID)
|
||||
{
|
||||
// 根据三工位任务数平均分配任务 暂定
|
||||
endLocation = await _db.Queryable<BasLocation>().Where(r => _wareHouseService.GetFloor1GLSGWOutstockLocation().Contains(r.id) && r.is_lock == 0 && r.is_use == "0").OrderBy("is_lock, task_nums, location_code").FirstAsync();
|
||||
@@ -530,6 +535,11 @@ namespace Tnb.WarehouseMgr
|
||||
throw new AppFriendlyException($"下发数量{qty}已超过可下发数量{wmsMaterialTransferD.qty - wmsMaterialTransferD.yxfqty_rk}", 500);
|
||||
}
|
||||
|
||||
if (qty > otherOutstockD_first.qty - otherOutstockD_first.rk_qty)
|
||||
{
|
||||
throw new AppFriendlyException($"下发数量{qty}已超过其它出库单{otherOutstockH.bill_code}中物料{otherOutstockD_first.material_code}的可下发数量{otherOutstockD_first.qty - otherOutstockD_first.rk_qty}", 500);
|
||||
}
|
||||
|
||||
await _db.Ado.BeginTranAsync();
|
||||
//入库取终点 //出库起点
|
||||
InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_ZC_ID, Size = input.details.Count };
|
||||
@@ -545,6 +555,8 @@ namespace Tnb.WarehouseMgr
|
||||
throw new AppFriendlyException("可用的入库库位数量少于扫描的料箱数量", 500);
|
||||
}
|
||||
|
||||
await _db.Updateable<OtherOutstockD>().SetColumns(r => r.rk_qty == otherOutstockD_first.rk_qty + qty).Where(r => r.id == otherOutstockD_first.id).ExecuteCommandAsync();
|
||||
|
||||
int index = 0;
|
||||
|
||||
List<WmsCarryH> wmsCarryHs = await _db.Queryable<WmsCarryH>().Where(r => input.details.Select(x => x.carry_code).Contains(r.carry_code)).ToListAsync();
|
||||
@@ -988,9 +1000,9 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
#region 更新已转数量
|
||||
// 8线到中储仓入库或三工位退回原材料操作时回写数量
|
||||
if ((wmsMaterialTransfer.warehouse_outstock == WmsWareHouseConst.WAREHOUSE_YCL_ID && wmsMaterialTransfer.warehouse_instock == WmsWareHouseConst.WAREHOUSE_ZC_ID)
|
||||
if (((wmsMaterialTransfer.warehouse_outstock == WmsWareHouseConst.WAREHOUSE_YCL_ID && wmsMaterialTransfer.warehouse_instock == WmsWareHouseConst.WAREHOUSE_ZC_ID)
|
||||
|| (wmsMaterialTransfer.warehouse_outstock == WmsWareHouseConst.WAREHOUSE_ZC_ID && wmsMaterialTransfer.warehouse_instock == WmsWareHouseConst.WAREHOUSE_YCL_ID)
|
||||
&& input.wmsDistaskH.task_type == WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID)
|
||||
)&& input.wmsDistaskH.task_type == WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID)
|
||||
{
|
||||
// 更新已转数量(入库)
|
||||
isOk = await _db.Updateable<WmsMaterialTransferD>().SetColumns(it => new WmsMaterialTransferD { yzqty_rk = it.yzqty_rk + wmsCarryCodes.Sum(r => r.codeqty) })
|
||||
@@ -998,7 +1010,7 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
else
|
||||
{
|
||||
// 中储仓到8线后自动解绑物料
|
||||
// 中储仓到7线后自动解绑物料
|
||||
if ((wmsMaterialTransfer.warehouse_outstock == WmsWareHouseConst.WAREHOUSE_ZC_ID && wmsMaterialTransfer.warehouse_instock == WmsWareHouseConst.WAREHOUSE_YCL_ID)
|
||||
&& input.wmsDistaskH.task_type == WmsWareHouseConst.WMS_PRETASK_TRANSFER_TYPE_ID)
|
||||
{
|
||||
@@ -1326,16 +1338,16 @@ namespace Tnb.WarehouseMgr
|
||||
throw new AppFriendlyException($@"转库单{wmsMaterialTransfer.bill_code}表体存在未填写工位的明细!", 500);
|
||||
}
|
||||
|
||||
var wmsMaterialTransferdsDistinct = wmsMaterialTransferds.Select(r => new
|
||||
{
|
||||
material_id = r.material_id,
|
||||
code_batch = r.code_batch,
|
||||
}).Distinct();
|
||||
if (wmsMaterialTransferdsDistinct.Count() < wmsMaterialTransferds.Count)
|
||||
{
|
||||
Logger.LogWarning($@"转库单{wmsMaterialTransfer.bill_code}表体存在物料和批号重复的明细!");
|
||||
throw new AppFriendlyException($@"转库单{wmsMaterialTransfer.bill_code}表体存在物料和批号重复的明细!", 500);
|
||||
}
|
||||
//var wmsMaterialTransferdsDistinct = wmsMaterialTransferds.Select(r => new
|
||||
//{
|
||||
// material_id = r.material_id,
|
||||
// code_batch = r.code_batch,
|
||||
//}).Distinct();
|
||||
//if (wmsMaterialTransferdsDistinct.Count() < wmsMaterialTransferds.Count)
|
||||
//{
|
||||
// Logger.LogWarning($@"转库单{wmsMaterialTransfer.bill_code}表体存在物料和批号重复的明细!");
|
||||
// throw new AppFriendlyException($@"转库单{wmsMaterialTransfer.bill_code}表体存在物料和批号重复的明细!", 500);
|
||||
//}
|
||||
|
||||
// 转库单载具子表
|
||||
List<WmsMaterialTransferCarry> wmsMaterialTransferCarrys = new List<WmsMaterialTransferCarry>();
|
||||
@@ -1480,7 +1492,7 @@ namespace Tnb.WarehouseMgr
|
||||
//出库取起点,获取所有符合输入的载具规格的载具
|
||||
OutStockStrategyZCC2Floor2Query OutStockStrategyInput = new()
|
||||
{
|
||||
warehouse_id = "2",
|
||||
warehouse_id = WmsWareHouseConst.WAREHOUSE_ZC_ID,
|
||||
material_id = wmsMaterialTransferD.material_id,
|
||||
code_batch = wmsMaterialTransferD.code_batch,
|
||||
needOut = needOut,
|
||||
@@ -1598,16 +1610,16 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
List<WmsMaterialTransferD> wmsMaterialTransferds = _db.Queryable<WmsMaterialTransferD>().Where(r => r.bill_id == input.source_id).ToList();
|
||||
|
||||
var wmsMaterialTransferdsDistinct = wmsMaterialTransferds.Select(r => new
|
||||
{
|
||||
material_id = r.material_id,
|
||||
code_batch = r.code_batch,
|
||||
}).Distinct();
|
||||
if (wmsMaterialTransferdsDistinct.Count() < wmsMaterialTransferds.Count)
|
||||
{
|
||||
Logger.LogWarning($@"转库单{wmsMaterialTransfer.bill_code}表体存在物料和批号重复的明细!");
|
||||
throw new AppFriendlyException($@"转库单{wmsMaterialTransfer.bill_code}表体存在物料和批号重复的明细!", 500);
|
||||
}
|
||||
//var wmsMaterialTransferdsDistinct = wmsMaterialTransferds.Select(r => new
|
||||
//{
|
||||
// material_id = r.material_id,
|
||||
// code_batch = r.code_batch,
|
||||
//}).Distinct();
|
||||
//if (wmsMaterialTransferdsDistinct.Count() < wmsMaterialTransferds.Count)
|
||||
//{
|
||||
// Logger.LogWarning($@"转库单{wmsMaterialTransfer.bill_code}表体存在物料和批号重复的明细!");
|
||||
// throw new AppFriendlyException($@"转库单{wmsMaterialTransfer.bill_code}表体存在物料和批号重复的明细!", 500);
|
||||
//}
|
||||
|
||||
// 转库单载具子表
|
||||
List<WmsMaterialTransferCarry> wmsMaterialTransferCarrys = new List<WmsMaterialTransferCarry>();
|
||||
@@ -1787,9 +1799,14 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
throw new AppFriendlyException($"本次下发数量{input.qty}已超过可下发数量{wmsMaterialTransferD.yzqty - wmsMaterialTransferD.yxfqty_rk}", 500);
|
||||
}
|
||||
if (input.qty > otherOutstockD_first.qty - otherOutstockD_first.rk_qty)
|
||||
{
|
||||
throw new AppFriendlyException($"下发数量{input.qty}已超过其它出库单{otherOutstockH.bill_code}中物料{otherOutstockD_first.material_code}的可下发数量{otherOutstockD_first.qty - otherOutstockD_first.rk_qty}", 500);
|
||||
}
|
||||
|
||||
await _s_taskExecuteSemaphore_YCLInstock.WaitAsync();
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
await _db.Updateable<OtherOutstockD>().SetColumns(r => r.rk_qty == otherOutstockD_first.rk_qty + input.qty).Where(r => r.id == otherOutstockD_first.id).ExecuteCommandAsync();
|
||||
|
||||
InStockStrategyQuery inStockStrategyInput = new()
|
||||
{
|
||||
@@ -2000,7 +2017,8 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
try
|
||||
{
|
||||
List<WmsCarryH> wmsCarryHs = _db.Queryable<WmsCarryH>().Where(r => r.work_station == input.work_station && r.is_lock == 0
|
||||
List<WmsCarryH> wmsCarryHs = _db.Queryable<WmsCarryH>().Where(r => r.work_station == input.work_station && r.is_lock == 0
|
||||
&& (r.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID || r.carrystd_id == WmsWareHouseConst.CARRY_ZYLJSTD_ID|| r.carrystd_id == WmsWareHouseConst.CARRY_ZYXCSTD_ID)
|
||||
&& (r.carry_status == ((int)(EnumCarryStatus.占用)).ToString() || r.carry_status == ((int)(EnumCarryStatus.齐套)).ToString())).ToList();
|
||||
if (string.IsNullOrEmpty(input.work_station))
|
||||
{
|
||||
@@ -2481,10 +2499,15 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
throw new AppFriendlyException($"本次下发数量{input.qty}已超过可下发数量{wmsMaterialTransferD.yzqty - wmsMaterialTransferD.yxfqty_rk}", 500);
|
||||
}
|
||||
if (input.qty > otherOutstockD_first.qty - otherOutstockD_first.rk_qty)
|
||||
{
|
||||
throw new AppFriendlyException($"下发数量{input.qty}已超过其它出库单{otherOutstockH.bill_code}中物料{otherOutstockD_first.material_code}的可下发数量{otherOutstockD_first.qty - otherOutstockD_first.rk_qty}", 500);
|
||||
}
|
||||
|
||||
await _s_taskExecuteSemaphore_YCLInstock.WaitAsync();
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
await _db.Updateable<OtherOutstockD>().SetColumns(r => r.rk_qty == otherOutstockD_first.rk_qty + input.qty).Where(r => r.id == otherOutstockD_first.id).ExecuteCommandAsync();
|
||||
|
||||
InStockStrategyQuery inStockStrategyInput = new()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user