This commit is contained in:
2024-11-05 14:54:54 +08:00
parent 9957cc44ca
commit d4d84e00b8
2 changed files with 79 additions and 11 deletions

View File

@@ -16,6 +16,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto.Inputs
/// <summary>
/// 条码数量
/// </summary>
public int code_qty { get; set; }
public decimal code_qty { get; set; }
}
}

View File

@@ -628,27 +628,95 @@ namespace Tnb.WarehouseMgr
_LoggerErp2Mes.LogWarning($"【PurchaseOrderUpdateInput】未找到采购订单erp_pk:{input.erp_pk}");
throw new AppFriendlyException($@"未找到采购订单erp_pk:{input.erp_pk}", 500);
}
//先删除所有的子表数据
await db.Deleteable<WmsPurchaseOrderD>().Where(r => r.fk_wms_purchase_order_id == wmsPurchaseOrderH.id).ExecuteCommandAsync();
if(input.details!=null && input.details.Count > 0)
{
foreach(var item in input.details)
List<WmsPurchaseOrderD> wmsPurchaseOrderDs = new List<WmsPurchaseOrderD>();
foreach (var detail in input.details)
{
WmsPurchaseOrderD wmsPurchaseOrderD = await db.Queryable<WmsPurchaseOrderD>().Where(r => r.fk_wms_purchase_order_id == wmsPurchaseOrderH.id && r.erp_line_pk == item.erp_line_pk).FirstAsync();
if(wmsPurchaseOrderD==null)
WmsPurchaseOrderD wmsPurchaseOrderD = new WmsPurchaseOrderD();
wmsPurchaseOrderD.fk_wms_purchase_order_id = wmsPurchaseOrderH.id;
wmsPurchaseOrderD.matcode = detail.material_code;
wmsPurchaseOrderD.unit = detail.unit_code;
var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => a.cunitid == detail.unit_code).Select((a, b) => b).FirstAsync();
if (erpExtendField != null)
{
_LoggerErp2Mes.LogWarning($"【PurchaseOrderUpdateInput】未找到采购订单明细数据erp_pk:{input.erp_pk},erp_line_pk:{item.erp_line_pk}");
throw new AppFriendlyException($@"未找到采购订单明细数据erp_pk:{input.erp_pk}erp_line_pk{item.erp_line_pk}", 500);
wmsPurchaseOrderD.unit_id = erpExtendField.Id;
wmsPurchaseOrderD.unit = erpExtendField.EnCode;
}
else
{
await db.Updateable<WmsPurchaseOrderD>()
.SetColumns(r => r.net_price == item.net_price)
.SetColumns(r => r.purchase_quantity == item.purchase_quantity)
.SetColumns(r => r.actual_quantity == item.actual_quantity)
.Where(r => r.id == wmsPurchaseOrderD.id).ExecuteCommandAsync();
_LoggerErp2Mes.LogWarning($@"【PurchaseOrder】表体明细中单位{detail.unit_code}在wms系统中未找到");
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
wmsPurchaseOrderD.purchase_quantity = detail.purchase_quantity;
wmsPurchaseOrderD.stock_location = detail.stock_location;
wmsPurchaseOrderD.code_batch = detail.code_batch;
wmsPurchaseOrderD.delivery_date = detail.delivery_date.Value.ToString("yyyy-MM-dd HH:mm:ss");
wmsPurchaseOrderD.erp_line_pk = detail.erp_line_pk;
wmsPurchaseOrderD.create_id = WmsWareHouseConst.ErpUserId;
wmsPurchaseOrderD.create_time = DateTime.Now;
wmsPurchaseOrderD.actual_quantity = 0;
wmsPurchaseOrderD.lineno = detail.lineno;
wmsPurchaseOrderD.gift = detail.gift;
wmsPurchaseOrderD.production_unit = detail.production_unit;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
{
wmsPurchaseOrderD.matcode_id = material.id;
wmsPurchaseOrderD.material_specification = material.material_specification;
wmsPurchaseOrderD.material_standard = material.material_standard;
}
var gys_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.supplier_id == detail.auxprop_gys).FirstAsync();
if (gys_erpExtendField != null)
{
wmsPurchaseOrderD.auxprop_gys = gys_erpExtendField.table_id;
}
else
{
_LoggerErp2Mes.LogWarning($@"【PurchaseOrder】表体明细中组织{detail.auxprop_gys}在wms系统中未找到");
throw new AppFriendlyException($@"表体明细中组织{detail.auxprop_gys}在wms系统中未找到", 500);
}
wmsPurchaseOrderDs.Add(wmsPurchaseOrderD);
}
await db.Insertable(wmsPurchaseOrderDs).ExecuteCommandAsync();
}
////查出现有的所有子表数据
//var nowWmsPurchaseOrderDs = await db.Queryable<WmsPurchaseOrderD>().Where(r => r.fk_wms_purchase_order_id == wmsPurchaseOrderH.id).ToListAsync();
//if(input.details!=null && input.details.Count > 0)
//{
// foreach(var item in input.details)
// {
// WmsPurchaseOrderD wmsPurchaseOrderD = await db.Queryable<WmsPurchaseOrderD>().Where(r => r.fk_wms_purchase_order_id == wmsPurchaseOrderH.id && r.erp_line_pk == item.erp_line_pk).FirstAsync();
// if(wmsPurchaseOrderD==null)
// {
// _LoggerErp2Mes.LogWarning($"【PurchaseOrderUpdateInput】未找到采购订单明细数据erp_pk:{input.erp_pk},erp_line_pk:{item.erp_line_pk}");
// throw new AppFriendlyException($@"未找到采购订单明细数据erp_pk:{input.erp_pk}erp_line_pk{item.erp_line_pk}", 500);
// }
// else
// {
// await db.Updateable<WmsPurchaseOrderD>()
// .SetColumns(r => r.net_price == item.net_price)
// .SetColumns(r => r.purchase_quantity == item.purchase_quantity)
// .SetColumns(r => r.actual_quantity == item.actual_quantity)
// .Where(r => r.id == wmsPurchaseOrderD.id).ExecuteCommandAsync();
// }
// }
//}
await db.Ado.CommitTranAsync();
return await ToApiResult(HttpStatusCode.OK, "成功");