快乐的昕的电脑
13 小时以前 0c999fbeed306e212e30baabf90792afa52412dc
主表ID改为序列化生成:生产订单、采购订单。采购订单整单删除功能日志消息补全。
已修改3个文件
78 ■■■■ 文件已修改
MES.Service/service/BasicData/MesRohInManager.cs 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/WomcaaManager.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/BasicData/MesRohInController.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/BasicData/MesRohInManager.cs
@@ -439,22 +439,50 @@
        }).ToList();
    }
    ///// <summary>
    ///// 生成新的主表ID,确保不重复
    ///// </summary>
    //private decimal GenerateNewId()
    //{
    //    // 处理空表的情况,从1开始
    //    var maxId = Db.Queryable<MesRohIn>().Max(x => (decimal?)x.EbelnK3id) ?? 0;
    //    var newId = maxId + 1;
    //    // 双重检查,确保生成的ID不存在
    //    while (Db.Queryable<MesRohIn>().Where(x => x.EbelnK3id == newId).Any())
    //    {
    //        newId++;
    //    }
    //    return newId;
    //}
    /// <summary>
    /// 生成新的主表ID,确保不重复
    /// 生成新的主表ID,通过数据库序列获取唯一ID
    /// </summary>
    private decimal GenerateNewId()
    {
        // 处理空表的情况,从1开始
        var maxId = Db.Queryable<MesRohIn>().Max(x => (decimal?)x.EbelnK3id) ?? 0;
        var newId = maxId + 1;
        // 双重检查,确保生成的ID不存在
        while (Db.Queryable<MesRohIn>().Where(x => x.EbelnK3id == newId).Any())
        try
        {
            newId++;
        }
            // 替换为:
            var sequenceValueObj = Db.Ado.GetScalar("SELECT NEXT VALUE FOR MES_ROH_IN_seq");
            var sequenceValue = Convert.ToDecimal(sequenceValueObj);
            // 验证序列值是否有效
            if (sequenceValue <= 0)
            {
                throw new InvalidOperationException($"数据库序列 MES_ROH_IN_seq 返回了无效的值: {sequenceValue}");
            }
        return newId;
            return sequenceValue;
        }
        catch (Exception ex)
        {
            // 记录异常信息
            Console.WriteLine($"调用数据库序列 MES_ROH_IN_seq 失败: {ex.Message}");
            // 向上层抛出明确的异常信息
            throw new InvalidOperationException($"生成子表ID失败,无法获取数据库序列值: {ex.Message}", ex);
        }
    }
    /// <summary>
MES.Service/service/WomcaaManager.cs
@@ -342,6 +342,34 @@
        return newId;
    }
    ///// <summary>
    ///// 生成新的主表ID,通过数据库序列获取唯一ID
    ///// </summary>
    //private decimal GenerateNewId()
    //{
    //    try
    //    {
    //        // 替换为:
    //        var sequenceValueObj = Db.Ado.GetScalar("SELECT NEXT VALUE FOR MES_WOMCAB_IN_seq");
    //        var sequenceValue = Convert.ToDecimal(sequenceValueObj);
    //        // 验证序列值是否有效
    //        if (sequenceValue <= 0)
    //        {
    //            throw new InvalidOperationException($"数据库序列 MES_WOMCAB_IN_seq 返回了无效的值: {sequenceValue}");
    //        }
    //        return sequenceValue;
    //    }
    //    catch (Exception ex)
    //    {
    //        // 记录异常信息
    //        Console.WriteLine($"调用数据库序列 MES_WOMCAB_IN_seq 失败: {ex.Message}");
    //        // 向上层抛出明确的异常信息
    //        throw new InvalidOperationException($"生成子表ID失败,无法获取数据库序列值: {ex.Message}", ex);
    //    }
    //}
    /// <summary>
    /// 生成新的子表ID,通过数据库序列获取唯一ID
    /// </summary>
MESApplication/Controllers/BasicData/MesRohInController.cs
@@ -270,6 +270,7 @@
        entity.Data = JsonConvert.SerializeObject(data);
        entity.Status = 1;
        entity.CreateBy = "PL017";
        entity.Route = data.FBillNo;
        try
        {
            dynamic resultInfos = new ExpandoObject();
@@ -284,6 +285,7 @@
            entity.DealWith = 1;
            _manager.save(entity);
            entity.ResultData = outMsg;
            return new ResponseResult
            {
                //status = outSum,