diff --git a/BasicData/Tnb.BasicData.Entities/Entity/BasMaterial.cs b/BasicData/Tnb.BasicData.Entities/Entity/BasMaterial.cs index e83664f9..ca7842d3 100644 --- a/BasicData/Tnb.BasicData.Entities/Entity/BasMaterial.cs +++ b/BasicData/Tnb.BasicData.Entities/Entity/BasMaterial.cs @@ -278,5 +278,10 @@ public partial class BasMaterial : BaseEntity /// 物料型号(箱号) /// public string? material_standard { get; set; } - + + /// + /// 入库容差配置 + /// + public decimal intolerance { get; set; } = 0; + } diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/ErpEntity/ErpBdMaterial.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/ErpEntity/ErpBdMaterial.cs index d7c935fd..8c459181 100644 --- a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/ErpEntity/ErpBdMaterial.cs +++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/ErpEntity/ErpBdMaterial.cs @@ -67,5 +67,10 @@ namespace Tnb.ProductionMgr.Entities.Entity.ErpEntity /// 保质期 年 /// public string QUALITYNUM { get; set; } + + /// + /// 入库容差% + /// + public decimal INTOLERANCE { get; set; } } } \ No newline at end of file diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 462f2e34..f8075c97 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -1939,13 +1939,17 @@ namespace Tnb.ProductionMgr BasFactoryConfig config1 = await db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.IS_SURPASS); if (config1?.value == "1") { - BasFactoryConfig? config2 = await db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.IS_SURPASS_PERCENTAGE); - if (!string.IsNullOrEmpty(config2?.value)) + // BasFactoryConfig? config2 = await db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.IS_SURPASS_PERCENTAGE); + // if (!string.IsNullOrEmpty(config2?.value)) + // { + // if ((prdMoTask.reported_work_qty ?? 0) + input.reported_qty > prdMoTask.scheduled_qty * (100 + Convert.ToDecimal(config2?.value ?? "1")) / 100) + // { + // throw Oops.Bah($"提报数量不能大于{100 + Convert.ToDecimal(config2?.value ?? "0")}%排产数量"); + // } + // } + if ((prdMoTask.reported_work_qty ?? 0) + input.reported_qty > prdMoTask.scheduled_qty * (100 + basMaterial.intolerance) / 100) { - if ((prdMoTask.reported_work_qty ?? 0) + input.reported_qty > prdMoTask.scheduled_qty * (100 + Convert.ToDecimal(config2?.value ?? "1")) / 100) - { - throw Oops.Bah($"提报数量不能大于{100 + Convert.ToDecimal(config2?.value ?? "0")}%排产数量"); - } + throw Oops.Bah($"提报数量不能大于{100 + basMaterial.intolerance}%排产数量"); } } else @@ -1953,28 +1957,6 @@ namespace Tnb.ProductionMgr throw Oops.Bah("提报数量不能大于排产数量"); } } - - if ((prdMoTask.reported_work_qty ?? 0) + input.reported_qty > prdMoTask.scheduled_qty) - { - BasFactoryConfig config1 = await db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.IS_SURPASS); - if (config1?.value == "1") - { - BasFactoryConfig? config2 = await db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.IS_SURPASS_PERCENTAGE); - if (!string.IsNullOrEmpty(config2?.value)) - { - if ((prdMoTask.reported_work_qty ?? 0) + input.reported_qty > prdMoTask.scheduled_qty * (100 + Convert.ToDecimal(config2?.value ?? "1")) / 100) - { - throw Oops.Bah($"提报数量不能大于{100 + Convert.ToDecimal(config2?.value ?? "0")}%排产数量"); - } - } - } - else - { - throw Oops.Bah("提报数量不能大于排产数量"); - } - } - - // bool flag = (prdMoTask.reported_work_qty ?? 0) + (prdMoTask.scrap_qty ?? 0) + input.reported_qty == prdMoTask.scheduled_qty; // if ((prdMoTask.reported_work_qty ?? 0) + (prdMoTask.scrap_qty ?? 0) + input.reported_qty > prdMoTask.scheduled_qty) diff --git a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs index cd610162..3ce5c9f0 100644 --- a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs @@ -940,6 +940,7 @@ namespace Tnb.ProductionMgr unit_id = unitId, state = "1", di = erpBdMaterial.UDI, + intolerance = erpBdMaterial.INTOLERANCE, create_time = DateTime.Now }; if (qualityFlag) basMaterial.quality_guarantee_period = quality_guarantee_period; @@ -991,6 +992,7 @@ namespace Tnb.ProductionMgr .SetColumns(x => x.unit_id == unitId) .SetColumns(x => x.name == erpBdMaterial.NAME) .SetColumns(x => x.di == erpBdMaterial.UDI) + .SetColumns(x => x.intolerance == erpBdMaterial.INTOLERANCE) .SetColumnsIF(qualityFlag,x => x.quality_guarantee_period == quality_guarantee_period) .Where(x => x.id == materialId) .ExecuteCommandAsync();