如洲 陈
4 天以前 6b3c4d87c500442f9774904c6a1117fe7cee5b5f
MES.Service/service/WomcaaManager.cs
@@ -17,6 +17,31 @@
    private readonly WomcabManager _womcabManager = new();
    /// <summary>
    /// 验证BOM是否为空
    /// </summary>
    /// <param name="erpCabs">BOM明细列表</param>
    /// <param name="billNo">生产任务单号</param>
    /// <exception cref="Exception">当BOM为空时抛出异常</exception>
    private void ValidateBomNotEmpty(List<ErpCAB> erpCabs, string billNo)
    {
        if (erpCabs == null || erpCabs.Count == 0)
        {
            throw new Exception($"生产任务单 {billNo} 的BOM为空,不允许推送到MES系统");
        }
        // 检查是否有有效的BOM明细(物料编码不为空且需领用量大于0)
        var validBomItems = erpCabs.Where(cab =>
            !string.IsNullOrWhiteSpace(cab.FMaterialID2) &&
            !string.IsNullOrWhiteSpace(cab.FNeedQty2) &&
            decimal.TryParse(cab.FNeedQty2, out decimal qty) && qty > 0).ToList();
        if (validBomItems.Count == 0)
        {
            throw new Exception($"生产任务单 {billNo} 的BOM明细无效(物料编码为空或需领用量为0),不允许推送到MES系统");
        }
    }
    public bool SaveList(List<ErpWOM> rohIns)
    {
        var result = rohIns.Select(Save).ToList();
@@ -29,6 +54,9 @@
        var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa);
        var mesWomcabs =  MapErpCABtoWomcab(wom.ErpCabs);
        // 验证BOM是否为空
        ValidateBomNotEmpty(wom.ErpCabs, womErpCaa.FBillNo);
        return UseTransaction(db =>
        {
            switch (womErpCaa.Type)