原材料仓退料 退料单同步等

This commit is contained in:
2024-08-23 00:38:08 +08:00
parent 5b4c7f6575
commit 3943cfb01e
11 changed files with 289 additions and 83 deletions

View File

@@ -660,8 +660,25 @@ namespace Tnb.WarehouseMgr
try
{
BasWarehouse warehouse_outstock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == input.warehouse_outstock).FirstAsync();
BasWarehouse warehouse_instock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == input.warehouse_instock).FirstAsync();
WmsErpWarehouserelaH wmsErpWarehouserelaHout = await db.Queryable<WmsErpWarehouserelaH>().Where(r => r.erp_warehousecode == input.warehouse_outstock).FirstAsync();
if (wmsErpWarehouserelaHout == null)
{
_LoggerErp2Mes.LogWarning($@"【TransferOrder】不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系");
throw new AppFriendlyException($@"不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系", 500);
}
WmsErpWarehouserelaH wmsErpWarehouserelaHin = await db.Queryable<WmsErpWarehouserelaH>().Where(r => r.erp_warehousecode == input.warehouse_instock).FirstAsync();
if (wmsErpWarehouserelaHin == null)
{
_LoggerErp2Mes.LogWarning($@"【TransferOrder】不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系");
throw new AppFriendlyException($@"不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系", 500);
}
string warehouse_outstock_code = wmsErpWarehouserelaHout.wms_warehousecode;
string warehouse_instock_code = wmsErpWarehouserelaHin.wms_warehousecode;
BasWarehouse warehouse_outstock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == warehouse_outstock_code).FirstAsync();
BasWarehouse warehouse_instock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == warehouse_instock_code).FirstAsync();
if (warehouse_outstock == null)
{
_LoggerErp2Mes.LogWarning($"【MaterialTransfer】无法查询到出库仓库{input.warehouse_outstock}的档案记录!");
@@ -804,67 +821,56 @@ namespace Tnb.WarehouseMgr
if (details_return.Count > 0)
{
//WmsPrdReturnH wmsPrdReturnH = new WmsPrdReturnH();
//string Code = await _billRuleService.GetBillNumber("WMSPRDRETURN");
//wmsPrdReturnH.bill_code = Code;
//wmsPrdReturnH.status = WmsWareHouseConst.BILLSTATUS_ADD_ID;
//wmsPrdReturnH.bill_date = DateTime.Now;
//wmsPrdReturnH.warehouse_outstock = warehouse_outstock.id;
//wmsPrdReturnH.warehouse_instock = warehouse_instock.id;
//wmsPrdReturnH.biller_out = input.biller_out;
//wmsPrdReturnH.depart_out = input.depart_out;
//wmsPrdReturnH.biller_in = input.biller_in;
//wmsPrdReturnH.depart_in = input.depart_in;
//wmsPrdReturnH.deliver_date = input.deliver_date;
//wmsPrdReturnH.arrival_date = input.arrival_date;
//wmsPrdReturnH.create_id = WmsWareHouseConst.ErpUserId;
//wmsPrdReturnH.create_time = DateTime.Now;
//wmsPrdReturnH.org_id = WmsWareHouseConst.AdministratorOrgId;
//wmsPrdReturnH.erp_bill_code = input.bill_code;
//wmsPrdReturnH.transfer_type = transfer_type;
//wmsPrdReturnH.erp_pk = input.erp_pk;
WmsPrdReturnH wmsPrdReturnH = new WmsPrdReturnH();
string Code = await _billRuleService.GetBillNumber("WMSPRDRETURN");
wmsPrdReturnH.bill_code = Code;
wmsPrdReturnH.status = WmsWareHouseConst.BILLSTATUS_ADD_ID;
wmsPrdReturnH.warehouse_id = warehouse_instock.id;
wmsPrdReturnH.create_id = WmsWareHouseConst.ErpUserId;
wmsPrdReturnH.create_time = DateTime.Now;
wmsPrdReturnH.erp_bill_code = input.bill_code;
wmsPrdReturnH.transfer_type = transfer_type;
wmsPrdReturnH.erp_pk = input.erp_pk;
//await db.Insertable(wmsPrdReturnH).ExecuteCommandAsync();
await db.Insertable(wmsPrdReturnH).ExecuteCommandAsync();
//List<WmsPrdReturnD> wmsPrdReturnDs = new List<WmsPrdReturnD>();
//foreach (var detail in input.details)
//{
// WmsPrdReturnD wmsPrdReturnD = new WmsPrdReturnD();
// wmsPrdReturnD.lineno = detail.lineno;
// wmsPrdReturnD.material_code = detail.material_code;
// wmsPrdReturnD.code_batch = detail.code_batch;
// wmsPrdReturnD.station_code = detail.station_code;
// wmsPrdReturnD.qty = detail.qty;
// wmsPrdReturnD.bill_id = wmsMaterialTransfer.id;
List<WmsPrdReturnD> wmsPrdReturnDs = new List<WmsPrdReturnD>();
foreach (var detail in input.details)
{
WmsPrdReturnD wmsPrdReturnD = new WmsPrdReturnD();
wmsPrdReturnD.lineno = detail.lineno;
wmsPrdReturnD.material_code = detail.material_code;
wmsPrdReturnD.code_batch = detail.code_batch;
wmsPrdReturnD.qty = -detail.qty;
wmsPrdReturnD.bill_id = wmsPrdReturnH.id;
// wmsPrdReturnD.yxfqty = 0;
// wmsPrdReturnD.yzqty = 0;
// wmsPrdReturnD.erp_line_pk = detail.erp_line_pk;
wmsPrdReturnD.ytqty = 0;
wmsPrdReturnD.erp_line_pk = detail.erp_line_pk;
// var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
// if (material != null)
// {
// wmsPrdReturnD.material_id = material.id;
// wmsPrdReturnD.material_code = material.code;
// wmsPrdReturnD.material_name = material.name;
// }
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
{
wmsPrdReturnD.material_id = material.id;
wmsPrdReturnD.material_code = material.code;
wmsPrdReturnD.material_name = material.name;
}
// var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => b.EnCode == detail.unit_code).Select((a, b) => b).FirstAsync();
// if (erpExtendField != null)
// {
// wmsPrdReturnD.unit_id = erpExtendField.Id;
// }
// else
// {
// _LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体明细中单位{detail.unit_code}在wms系统中未找到");
// throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
// }
var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => b.EnCode == detail.unit_code).Select((a, b) => b).FirstAsync();
if (erpExtendField != null)
{
wmsPrdReturnD.unit_id = erpExtendField.Id;
}
else
{
_LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体明细中单位{detail.unit_code}在wms系统中未找到");
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
// wmsPrdReturnDs.Add(wmsPrdReturnD);
//}
wmsPrdReturnDs.Add(wmsPrdReturnD);
}
//await db.Insertable(wmsPrdReturnDs).ExecuteCommandAsync();
//LoggerErp2Mes.LogInformation($"【MaterialTransfer】成功生成单据:{Code}");
await db.Insertable(wmsPrdReturnDs).ExecuteCommandAsync();
LoggerErp2Mes.LogInformation($"【MaterialTransfer】成功生成单据:{Code}");
}
await db.Ado.CommitTranAsync();