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

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

@@ -2396,7 +2396,11 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
LoggerFloor4MJX2MJC.LogInformation($"【四楼待灭菌线到灭菌仓】 下料点 {key} {strs[2]}采集到 {carry_code}");
LoggerFloor4MJX2MJC.LogInformation($"【四楼待灭菌线到灭菌仓】 下料点 {key} {strs[2]}采集到长度 {carry_code.Length}");
WmsCarryH wmsCarryH = await db_Floor4MJX2MJC.Queryable<WmsCarryH>().Where(r => r.carry_code == carry_code).FirstAsync();
if (wmsCarryH == null)
{
LoggerFloor4MJX2MJC.LogWarning($"【四楼待灭菌线到灭菌仓】 托盘号{carry_code}在系统中不存在");
continue;
}
//锁定起点库位
await db_Floor4MJX2MJC.Updateable<BasLocation>().SetColumns(r => new BasLocation { is_lock = 1 }).Where(r => r.id == startlocation.id).ExecuteCommandAsync();
//锁定终点库位

View File

@@ -386,7 +386,7 @@ namespace Tnb.WarehouseMgr
wmsPurchaseOrderH.contact_person = input.contact_person;
wmsPurchaseOrderH.tel = input.tel;
wmsPurchaseOrderH.supplier_code = input.supplier_code;
wmsPurchaseOrderH.certificate_date = input.certificate_date.Value.ToString("yyyy-MM-dd HH:mm:ss");
//wmsPurchaseOrderH.certificate_date = input.certificate_date.Value.ToString("yyyy-MM-dd HH:mm:ss");
wmsPurchaseOrderH.ship_date = input.ship_date;
wmsPurchaseOrderH.erp_pk = input.erp_pk;
wmsPurchaseOrderH.create_id = WmsWareHouseConst.ErpUserId;
@@ -732,12 +732,12 @@ namespace Tnb.WarehouseMgr
if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_ZC_ID
&& (warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_ZCC_ID || warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_HCC_ID))
{
int count = input.details.Where(r => string.IsNullOrEmpty(r.station_code)).Count();
if (count > 0)
{
_LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体存在未填写工位的明细");
throw new AppFriendlyException($@"表体存在未填写工位的明细!", 500);
}
//int count = input.details.Where(r => string.IsNullOrEmpty(r.station_code)).Count();
//if (count > 0)
//{
// _LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体存在未填写工位的明细");
// throw new AppFriendlyException($@"表体存在未填写工位的明细!", 500);
//}
transfer_type = WmsWareHouseConst.MATERIALTRANSFER_QTCRK_CODE;
}
// 外协调拨入库
@@ -2006,6 +2006,7 @@ namespace Tnb.WarehouseMgr
wmsRawmatTransferoutstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsRawmatTransferoutstockH.instockorg_id = org_erpExtendField.pk_org_v;
wmsRawmatTransferoutstockH.instockorg_code = org_erpExtendField.pk_org;
wmsRawmatTransferoutstockH.warehouse_code = WmsWareHouseConst.WAREHOUSE_YCL_CODE;
List<WmsRawmatTransferoutstockD> wmsRawmatTransferoutstockDs = new List <WmsRawmatTransferoutstockD>();
foreach (var detail in details_WAREHOUSE_YCL_ID)
{

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();
}

View File

@@ -36,6 +36,7 @@ namespace Tnb.WarehouseMgr
[HttpPost, AllowAnonymous]
public async Task<dynamic> MaterialStock(VisualDevModelListQueryInput input)
{
var warehouse_id = "";
var supplier_code = "";
var code_batch = "";
var material_specification = "";
@@ -43,6 +44,7 @@ namespace Tnb.WarehouseMgr
var material_code = "";
if (!input.queryJson.IsNullOrWhiteSpace())
{
warehouse_id = JObject.Parse(input.queryJson).Value<string>("warehouse_id");
supplier_code = JObject.Parse(input.queryJson).Value<string>("supplier_code");
code_batch = JObject.Parse(input.queryJson).Value<string>(nameof(WmsCarryCode.code_batch));
material_specification = JObject.Parse(input.queryJson).Value<string>(nameof(WmsCarryCode.material_specification));
@@ -63,6 +65,7 @@ namespace Tnb.WarehouseMgr
.WhereIF(!string.IsNullOrEmpty(code_batch), (a, b, c, d, e, f) => a.code_batch.Contains(code_batch))
.WhereIF(!string.IsNullOrEmpty(container_no), (a, b, c, d, e, f) => f.container_no.Contains(container_no))
.WhereIF(!string.IsNullOrEmpty(material_code), (a, b, c, d, e, f) => f.code.Contains(material_code))
.WhereIF(!string.IsNullOrEmpty(warehouse_id), (a, b, c, d, e, f) => c.wh_id == warehouse_id)
.Select((a, b, c, d, e, f, g, h) => new WmsStockReportH
{
org_id = e.org_id,
@@ -127,6 +130,7 @@ namespace Tnb.WarehouseMgr
.WhereIF(!string.IsNullOrEmpty(supplier_code), (a, b, c, d, e, f, g, h) => h.supplier_code.Contains(supplier_code))
.WhereIF(!string.IsNullOrEmpty(container_no), (a, b, c, d, e, f, g, h) => f.container_no.Contains(container_no))
.WhereIF(!string.IsNullOrEmpty(material_code), (a, b, c, d, e, f) => f.code.Contains(material_code))
.WhereIF(!string.IsNullOrEmpty(warehouse_id), (a, b, c, d, e, f) => c.wh_id == warehouse_id)
.Select((a, b, c, d, e, f, g, h) => new WmsStockReportH
{
org_id = e.org_id,