diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/BarCodeInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/BarCodeInput.cs index 9ac3fbee..406a6d2b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/BarCodeInput.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/BarCodeInput.cs @@ -16,6 +16,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto.Inputs /// /// 条码数量 /// - public int code_qty { get; set; } + public decimal code_qty { get; set; } } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs index ed53ce90..4ac61682 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs @@ -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().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 wmsPurchaseOrderDs = new List(); + foreach (var detail in input.details) { - WmsPurchaseOrderD wmsPurchaseOrderD = await db.Queryable().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().InnerJoin((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() - .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().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().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().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().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() + // .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, "成功");