其他出库记录、原材料到中储仓入库接口变更

This commit is contained in:
2024-09-20 08:59:07 +08:00
parent 4ea75cc677
commit 28742d05d0
11 changed files with 448 additions and 6 deletions

View File

@@ -442,6 +442,34 @@ namespace Tnb.WarehouseMgr
return await ToApiResult(HttpStatusCode.OK, "成功");
}
[HttpPost, NonUnify, AllowAnonymous]
public async Task<Entities.Dto.Outputs.Result> QtckList(QueryQTCKInput input)
{
var res = _db.Queryable<WmsMaterialTransfer>()
.InnerJoin<OtherOutstockH>((a, b) => a.id == b.source_id)
.InnerJoin<WmsMaterialTransferD>((a, b, c) => b.source_detail_id == c.id)
.InnerJoin<OtherOutstockD>((a, b, c, d) => b.id == d.fk_id)
.WhereIF(!string.IsNullOrEmpty(input.warehouse_outstock), (a, b, c) => a.warehouse_outstock == input.warehouse_outstock)
.WhereIF(!string.IsNullOrEmpty(input.warehouse_instock), (a, b, c) => a.warehouse_instock == input.warehouse_instock)
.Where((a, b, c,d) => d.rk_qty < d.actual_outstock_qty)
.Select((a, b, c, d) => new
{
materialtransfer_billcode = a.bill_code,
otheroutstock_id = b.id,
otheroutstock_billcode = b.bill_code,
outstock_time = b.create_time,
material_id=c.material_id,
material_code=c.material_code,
material_name=c.material_ex,
material_spec=c.material_specification,
unit_code = c.unit_id,
code_batch = c.code_batch,
remainqty = d.actual_outstock_qty - d.rk_qty
}).ToList();
return await ToApiResult(HttpStatusCode.OK, "成功", res);
}
/// <summary>
/// PDA操作(8线到中储仓)
/// </summary>
@@ -454,8 +482,17 @@ namespace Tnb.WarehouseMgr
{
if (string.IsNullOrEmpty(input.source_id))
{
throw new AppFriendlyException("来源单id不可为空", 500);
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 materialtransferid = 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)
{
throw new AppFriendlyException("请先扫描料箱", 500);
@@ -474,7 +511,7 @@ namespace Tnb.WarehouseMgr
});
await _s_taskExecuteSemaphore_F1ZCCInstock.WaitAsync();
WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable<WmsMaterialTransferD>().FirstAsync(it => it.id == input.source_id);
WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable<WmsMaterialTransferD>().FirstAsync(it => it.id == materialtransferid);
WmsMaterialTransfer wmsMaterialTransfer = await _db.Queryable<WmsMaterialTransfer>().FirstAsync(it => it.id == wmsMaterialTransferD.bill_id);
if (wmsMaterialTransferD.yxfqty_rk >= wmsMaterialTransferD.qty)
@@ -518,7 +555,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 = input.source_id;
commonCreatePretaskInput.source_id = materialtransferid;
commonCreatePretaskInput.carry_id = wmsCarryHs[index].id;
commonCreatePretaskInput.carry_code = wmsCarryHs[index].carry_code;
commonCreatePretaskInput.isExcuteMission = false;
@@ -544,6 +581,8 @@ namespace Tnb.WarehouseMgr
carryMaterialDetail.code_batch = wmsMaterialTransferD.code_batch;
carryMaterialDetail.barcode = wmsCarryHs[index].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);
@@ -553,7 +592,7 @@ namespace Tnb.WarehouseMgr
}
// 更新子表已下发数量
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + qty).Where(r => r.id == input.source_id).ExecuteCommandAsync();
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + qty).Where(r => r.id == materialtransferid).ExecuteCommandAsync();
await _db.Ado.CommitTranAsync();
}