跨层与采购退货其他出库逻辑变更

This commit is contained in:
2024-09-20 16:48:19 +08:00
parent adc18cebd6
commit 4355b3f7a5
4 changed files with 51 additions and 22 deletions

View File

@@ -119,6 +119,7 @@ namespace Tnb.WarehouseMgr
//.Where(a => a.status != "25065149810453")
.WhereIF(queryJson != null && queryJson["type"] != null, a => a.type == queryJson["type"].ToString())
.WhereIF(queryJson != null && queryJson["bill_code"] != null, a => a.bill_code.Contains(queryJson["bill_code"].ToString()))
.WhereIF(queryJson != null && queryJson["status"] != null, a => a.status == queryJson["status"].ToString())
.Select((a, b, c, d, e, f) => new WmsMaterialTransfer
{
id = a.id,
@@ -144,7 +145,7 @@ namespace Tnb.WarehouseMgr
order_code = a.order_code,
erp_bill_code = a.erp_bill_code,
})
.OrderBy("a.bill_code desc")
.OrderBy("a.create_time desc")
.ToPagedListAsync(input.currentPage, input.pageSize);
var _data = PageResult<WmsMaterialTransfer>.SqlSugarPageResult(result);
@@ -468,6 +469,7 @@ namespace Tnb.WarehouseMgr
code_batch = c.code_batch,
remainqty = d.actual_outstock_qty - d.rk_qty
}).ToList();
return await ToApiResult(HttpStatusCode.OK, "成功", res);
}
@@ -491,7 +493,7 @@ namespace Tnb.WarehouseMgr
{
throw new AppFriendlyException("来源其它出库单中的转库单明细id为空", 500);
}
string materialtransferid = otherOutstockH.source_detail_id;
string materialtransferdid = otherOutstockH.source_detail_id;
OtherOutstockD otherOutstockD_first = await _db.Queryable<OtherOutstockD>().Where(r => r.fk_id == input.source_id).FirstAsync();
if (input.details.Count == 0)
@@ -512,7 +514,7 @@ namespace Tnb.WarehouseMgr
});
await _s_taskExecuteSemaphore_F1ZCCInstock.WaitAsync();
WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable<WmsMaterialTransferD>().FirstAsync(it => it.id == materialtransferid);
WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable<WmsMaterialTransferD>().FirstAsync(it => it.id == materialtransferdid);
WmsMaterialTransfer wmsMaterialTransfer = await _db.Queryable<WmsMaterialTransfer>().FirstAsync(it => it.id == wmsMaterialTransferD.bill_id);
if (wmsMaterialTransferD.yxfqty_rk >= wmsMaterialTransferD.qty)
@@ -556,7 +558,7 @@ namespace Tnb.WarehouseMgr
commonCreatePretaskInput.endlocation_id = endLocation.id;
commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID;
commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID;
commonCreatePretaskInput.source_id = materialtransferid;
commonCreatePretaskInput.source_id = materialtransferdid;
commonCreatePretaskInput.carry_id = wmsCarryHs[index].id;
commonCreatePretaskInput.carry_code = wmsCarryHs[index].carry_code;
commonCreatePretaskInput.isExcuteMission = false;
@@ -593,7 +595,7 @@ namespace Tnb.WarehouseMgr
}
// 更新子表已下发数量
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + qty).Where(r => r.id == materialtransferid).ExecuteCommandAsync();
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + qty).Where(r => r.id == materialtransferdid).ExecuteCommandAsync();
await _db.Ado.CommitTranAsync();
}
@@ -1570,6 +1572,13 @@ namespace Tnb.WarehouseMgr
{
throw new AppFriendlyException("来源单据id不可为空", 500);
}
OtherOutstockH otherOutstockH = await _db.Queryable<OtherOutstockH>().Where(r => r.id == input.source_id).FirstAsync();
if (string.IsNullOrEmpty(otherOutstockH.source_detail_id))
{
throw new AppFriendlyException("来源其它出库单中的转库单明细id为空", 500);
}
string materialtransferdid = otherOutstockH.source_detail_id;
OtherOutstockD otherOutstockD_first = await _db.Queryable<OtherOutstockD>().Where(r => r.fk_id == input.source_id).FirstAsync();
if (string.IsNullOrEmpty(input.carry_code))
{
@@ -1581,11 +1590,11 @@ namespace Tnb.WarehouseMgr
throw new AppFriendlyException("数量必须大于0", 500);
}
WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable<WmsMaterialTransferD>().FirstAsync(it => it.id == input.source_id);
WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable<WmsMaterialTransferD>().FirstAsync(it => it.id == materialtransferdid);
if (wmsMaterialTransferD == null)
{
Logger.LogWarning($"不存在id为{input.source_id}的转库单明细!");
throw new AppFriendlyException($"不存在id为{input.source_id}的转库单明细!", 500);
Logger.LogWarning($"不存在id为{materialtransferdid}的转库单明细!");
throw new AppFriendlyException($"不存在id为{materialtransferdid}的转库单明细!", 500);
}
if (wmsMaterialTransferD.yxfqty_rk >= wmsMaterialTransferD.yzqty)
@@ -1648,7 +1657,7 @@ namespace Tnb.WarehouseMgr
commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID;
commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID;
// 转库单id
commonCreatePretaskInput.source_id = input.source_id;
commonCreatePretaskInput.source_id = materialtransferdid;
commonCreatePretaskInput.carry_id = wmsCarryH.id;
commonCreatePretaskInput.carry_code = wmsCarryH.carry_code;
commonCreatePretaskInput.isExcuteMission = false;
@@ -1673,13 +1682,15 @@ namespace Tnb.WarehouseMgr
carryMaterialDetail.code_batch = wmsMaterialTransferD.code_batch;
carryMaterialDetail.barcode = wmsCarryH.carry_code;
carryMaterialDetail.unit_id = wmsMaterialTransferD.unit_id;
carryMaterialDetail.auxprop_gys = otherOutstockD_first.auxprop_gys;
carryMaterialDetail.auxprop_xph = otherOutstockD_first.auxprop_xph;
carryMaterialDetails.Add(carryMaterialDetail);
carryMaterialBindInput.details = carryMaterialDetails;
await _wmsCarryBindService.CarryMaterialBind(carryMaterialBindInput, _db);
await _db.Updateable<WmsCarryH>().SetColumns(r => r.carry_status == "1").Where(r => r.id == wmsCarryH.id).ExecuteCommandAsync();
// 更新子表已下发数量
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + input.qty).Where(r => r.id == input.source_id).ExecuteCommandAsync();
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + input.qty).Where(r => r.id == materialtransferdid).ExecuteCommandAsync();
await _db.Ado.CommitTranAsync();
}
@@ -2254,6 +2265,13 @@ namespace Tnb.WarehouseMgr
{
throw new AppFriendlyException("来源单据id不可为空", 500);
}
OtherOutstockH otherOutstockH = await _db.Queryable<OtherOutstockH>().Where(r => r.id == input.source_id).FirstAsync();
if (string.IsNullOrEmpty(otherOutstockH.source_detail_id))
{
throw new AppFriendlyException("来源其它出库单中的转库单明细id为空", 500);
}
string materialtransferdid = otherOutstockH.source_detail_id;
OtherOutstockD otherOutstockD_first = await _db.Queryable<OtherOutstockD>().Where(r => r.fk_id == input.source_id).FirstAsync();
if (string.IsNullOrEmpty(input.carry_code))
{
@@ -2265,10 +2283,10 @@ namespace Tnb.WarehouseMgr
throw new AppFriendlyException("数量必须大于0", 500);
}
WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable<WmsMaterialTransferD>().FirstAsync(it => it.id == input.source_id);
WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable<WmsMaterialTransferD>().FirstAsync(it => it.id == materialtransferdid);
if (wmsMaterialTransferD == null)
{
throw new AppFriendlyException($"不存在id为{input.source_id}的转库单明细!", 500);
throw new AppFriendlyException($"不存在id为{materialtransferdid}的转库单明细!", 500);
}
if (wmsMaterialTransferD.yxfqty_rk >= wmsMaterialTransferD.yzqty)
@@ -2334,7 +2352,7 @@ namespace Tnb.WarehouseMgr
commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID;
commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID;
// 转库单id
commonCreatePretaskInput.source_id = input.source_id;
commonCreatePretaskInput.source_id = materialtransferdid;
commonCreatePretaskInput.carry_id = wmsCarryH.id;
commonCreatePretaskInput.carry_code = wmsCarryH.carry_code;
commonCreatePretaskInput.isExcuteMission = false;
@@ -2358,13 +2376,15 @@ namespace Tnb.WarehouseMgr
carryMaterialDetail.code_batch = wmsMaterialTransferD.code_batch;
carryMaterialDetail.barcode = wmsCarryH.carry_code;
carryMaterialDetail.unit_id = wmsMaterialTransferD.unit_id;
carryMaterialDetail.auxprop_gys = otherOutstockD_first.auxprop_gys;
carryMaterialDetail.auxprop_xph = otherOutstockD_first.auxprop_xph;
carryMaterialDetails.Add(carryMaterialDetail);
carryMaterialBindInput.details = carryMaterialDetails;
await _wmsCarryBindService.CarryMaterialBind(carryMaterialBindInput, _db);
await _db.Updateable<WmsCarryH>().SetColumns(r => r.carry_status == "3").Where(r => r.id == wmsCarryH.id).ExecuteCommandAsync();
// 更新子表已下发数量
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + input.qty).Where(r => r.id == input.source_id).ExecuteCommandAsync();
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + input.qty).Where(r => r.id == materialtransferdid).ExecuteCommandAsync();
await _db.Ado.CommitTranAsync();
}