电梯优化

This commit is contained in:
2024-08-22 14:53:21 +08:00
parent 4ce0a58715
commit 20043b879d
10 changed files with 264 additions and 130 deletions

View File

@@ -382,7 +382,7 @@ namespace Tnb.WarehouseMgr
await db.Insertable(wmsPurchaseOrderH).ExecuteCommandAsync();
List<WmsPurchaseOrderD> wmsPurchaseOrderDs = new List<WmsPurchaseOrderD>();
foreach (var detail in input.details)
foreach (var detail in details)
{
WmsPurchaseOrderD wmsPurchaseOrderD = new WmsPurchaseOrderD();
@@ -470,11 +470,11 @@ namespace Tnb.WarehouseMgr
await db.Insertable(wmsPurchaseReturnH).ExecuteCommandAsync();
List<WmsPurchaseReturnD> wmsPurchaseReturnDs = new List<WmsPurchaseReturnD>();
foreach (var detail in input.details)
foreach (var detail in details_return)
{
WmsPurchaseReturnD wmsPurchaseReturnD = new WmsPurchaseReturnD();
wmsPurchaseReturnD.bill_id = wmsPurchaseReturnD.id;
wmsPurchaseReturnD.bill_id = wmsPurchaseReturnH.id;
wmsPurchaseReturnD.matcode = detail.material_code;
wmsPurchaseReturnD.unit = detail.unit_code;
@@ -490,7 +490,7 @@ namespace Tnb.WarehouseMgr
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
wmsPurchaseReturnD.qty = detail.purchase_quantity;
wmsPurchaseReturnD.qty = -detail.purchase_quantity;
wmsPurchaseReturnD.code_batch = detail.code_batch;
wmsPurchaseReturnD.erp_line_pk = detail.erp_line_pk;
wmsPurchaseReturnD.create_id = WmsWareHouseConst.ErpUserId;
@@ -733,70 +733,142 @@ namespace Tnb.WarehouseMgr
}
await db.Ado.BeginTranAsync();
WmsMaterialTransfer wmsMaterialTransfer = new WmsMaterialTransfer();
string Code = await _billRuleService.GetBillNumber("MaterialTransfer");
wmsMaterialTransfer.bill_code = Code;
wmsMaterialTransfer.status = WmsWareHouseConst.BILLSTATUS_ADD_ID;
wmsMaterialTransfer.bill_date = DateTime.Now;
wmsMaterialTransfer.warehouse_outstock = warehouse_outstock.id;
wmsMaterialTransfer.warehouse_instock = warehouse_instock.id;
wmsMaterialTransfer.biller_out = input.biller_out;
wmsMaterialTransfer.depart_out = input.depart_out;
wmsMaterialTransfer.biller_in = input.biller_in;
wmsMaterialTransfer.depart_in = input.depart_in;
wmsMaterialTransfer.deliver_date = input.deliver_date;
wmsMaterialTransfer.arrival_date = input.arrival_date;
wmsMaterialTransfer.create_id = WmsWareHouseConst.ErpUserId;
wmsMaterialTransfer.create_time = DateTime.Now;
wmsMaterialTransfer.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsMaterialTransfer.erp_bill_code = input.bill_code;
wmsMaterialTransfer.transfer_type = transfer_type;
wmsMaterialTransfer.erp_pk = input.erp_pk;
await db.Insertable(wmsMaterialTransfer).ExecuteCommandAsync();
List<MaterialTransferDetail> details = input.details.Where(r => r.qty > 0).ToList();
List<MaterialTransferDetail> details_return = input.details.Where(r => r.qty < 0).ToList();
List<WmsMaterialTransferD> wmsMaterialTransferDs = new List<WmsMaterialTransferD>();
foreach (var detail in input.details)
if (details.Count > 0)
{
WmsMaterialTransferD wmsMaterialTransferD = new WmsMaterialTransferD();
wmsMaterialTransferD.lineno = detail.lineno;
wmsMaterialTransferD.material_code = detail.material_code;
wmsMaterialTransferD.code_batch = detail.code_batch;
wmsMaterialTransferD.station_code = detail.station_code;
wmsMaterialTransferD.qty = detail.qty;
wmsMaterialTransferD.bill_id = wmsMaterialTransfer.id;
WmsMaterialTransfer wmsMaterialTransfer = new WmsMaterialTransfer();
string Code = await _billRuleService.GetBillNumber("MaterialTransfer");
wmsMaterialTransfer.bill_code = Code;
wmsMaterialTransfer.status = WmsWareHouseConst.BILLSTATUS_ADD_ID;
wmsMaterialTransfer.bill_date = DateTime.Now;
wmsMaterialTransfer.warehouse_outstock = warehouse_outstock.id;
wmsMaterialTransfer.warehouse_instock = warehouse_instock.id;
wmsMaterialTransfer.biller_out = input.biller_out;
wmsMaterialTransfer.depart_out = input.depart_out;
wmsMaterialTransfer.biller_in = input.biller_in;
wmsMaterialTransfer.depart_in = input.depart_in;
wmsMaterialTransfer.deliver_date = input.deliver_date;
wmsMaterialTransfer.arrival_date = input.arrival_date;
wmsMaterialTransfer.create_id = WmsWareHouseConst.ErpUserId;
wmsMaterialTransfer.create_time = DateTime.Now;
wmsMaterialTransfer.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsMaterialTransfer.erp_bill_code = input.bill_code;
wmsMaterialTransfer.transfer_type = transfer_type;
wmsMaterialTransfer.erp_pk = input.erp_pk;
wmsMaterialTransferD.yxfqty = 0;
wmsMaterialTransferD.yzqty = 0;
wmsMaterialTransferD.erp_line_pk = detail.erp_line_pk;
await db.Insertable(wmsMaterialTransfer).ExecuteCommandAsync();
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
List<WmsMaterialTransferD> wmsMaterialTransferDs = new List<WmsMaterialTransferD>();
foreach (var detail in input.details)
{
wmsMaterialTransferD.material_id = material.id;
wmsMaterialTransferD.material_specification = material.material_specification;
WmsMaterialTransferD wmsMaterialTransferD = new WmsMaterialTransferD();
wmsMaterialTransferD.lineno = detail.lineno;
wmsMaterialTransferD.material_code = detail.material_code;
wmsMaterialTransferD.code_batch = detail.code_batch;
wmsMaterialTransferD.station_code = detail.station_code;
wmsMaterialTransferD.qty = detail.qty;
wmsMaterialTransferD.bill_id = wmsMaterialTransfer.id;
wmsMaterialTransferD.yxfqty = 0;
wmsMaterialTransferD.yzqty = 0;
wmsMaterialTransferD.erp_line_pk = detail.erp_line_pk;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
{
wmsMaterialTransferD.material_id = material.id;
wmsMaterialTransferD.material_specification = material.material_specification;
}
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)
{
wmsMaterialTransferD.unit_id = erpExtendField.Id;
wmsMaterialTransferD.unit_code = erpExtendField.EnCode;
}
else
{
_LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体明细中单位{detail.unit_code}在wms系统中未找到");
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
wmsMaterialTransferDs.Add(wmsMaterialTransferD);
}
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)
{
wmsMaterialTransferD.unit_id = erpExtendField.Id;
wmsMaterialTransferD.unit_code = erpExtendField.EnCode;
}
else
{
_LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体明细中单位{detail.unit_code}在wms系统中未找到");
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
wmsMaterialTransferDs.Add(wmsMaterialTransferD);
await db.Insertable(wmsMaterialTransferDs).ExecuteCommandAsync();
LoggerErp2Mes.LogInformation($"【MaterialTransfer】成功生成单据:{Code}");
}
await db.Insertable(wmsMaterialTransferDs).ExecuteCommandAsync();
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;
//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;
// wmsPrdReturnD.yxfqty = 0;
// wmsPrdReturnD.yzqty = 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 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);
//}
//await db.Insertable(wmsPrdReturnDs).ExecuteCommandAsync();
//LoggerErp2Mes.LogInformation($"【MaterialTransfer】成功生成单据:{Code}");
}
await db.Ado.CommitTranAsync();
LoggerErp2Mes.LogInformation($"【MaterialTransfer】成功生成单据:{Code}");
return await ToApiResult(HttpStatusCode.OK, "成功");
}
catch (Exception ex)