跨层与采购退货其他出库逻辑变更
This commit is contained in:
@@ -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();
|
||||
//锁定终点库位
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user