| | |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | | using SqlSugar; |
| | | using System.Data; |
| | | |
| | | namespace MES.Service.service; |
| | | |
| | | /// <summary> |
| | | /// 生产订单 |
| | | /// </summary> |
| | | public class WomcaaManager : Repository<Womcaa> |
| | | { |
| | | //当前类已经继承了 Repository 增、删、查、改的方法 |
| | |
| | | return womcabList; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 生成新的主表ID,确保不重复 |
| | | /// </summary> |
| | | private decimal GenerateNewId() |
| | | { |
| | | // 处理空表的情况,从1开始 |
| | | var maxId = Db.Queryable<Womcaa>().Max(x => (decimal?)x.Erpid) ?? 0; |
| | | var newId = maxId + 1; |
| | | |
| | | // 双重检查,确保生成的ID不存在 |
| | | while (Db.Queryable<Womcaa>().Where(x => x.Erpid == newId).Any()) |
| | | { |
| | | newId++; |
| | | } |
| | | |
| | | return newId; |
| | | } |
| | | |
| | | ///// <summary> |
| | | ///// 生成新的主表ID,通过数据库序列获取唯一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}"); |
| | | // } |
| | | // // 处理空表的情况,从1开始 |
| | | // var maxId = Db.Queryable<Womcaa>().Max(x => (decimal?)x.Erpid) ?? 0; |
| | | // var newId = maxId + 1; |
| | | |
| | | // return sequenceValue; |
| | | // } |
| | | // catch (Exception ex) |
| | | // // 双重检查,确保生成的ID不存在 |
| | | // while (Db.Queryable<Womcaa>().Where(x => x.Erpid == newId).Any()) |
| | | // { |
| | | // // 记录异常信息 |
| | | // Console.WriteLine($"调用数据库序列 MES_WOMCAB_IN_seq 失败: {ex.Message}"); |
| | | |
| | | // // 向上层抛出明确的异常信息 |
| | | // throw new InvalidOperationException($"生成子表ID失败,无法获取数据库序列值: {ex.Message}", ex); |
| | | // newId++; |
| | | // } |
| | | |
| | | // 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 |
| | |
| | | throw new InvalidOperationException($"生成子表ID失败,无法获取数据库序列值: {ex.Message}", ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 整单删除,调用存储过程 |
| | | /// </summary> |
| | | /// <param name="billNo">单号</param> |
| | | /// <returns>被删除的单号</returns> |
| | | public (int outSum, string outMsg) Delete(string FBillNo, string FBillTypeID) |
| | | { |
| | | try |
| | | { |
| | | var outMsg = string.Empty; |
| | | var outSum = 0; |
| | | |
| | | var parameters = new List<SugarParameter> |
| | | { |
| | | new SugarParameter("@FBillNo", FBillNo), |
| | | new SugarParameter("@FBillTypeID", FBillTypeID), |
| | | new SugarParameter("@outMsg", outMsg, typeof(string), ParameterDirection.Output, 2500), |
| | | new SugarParameter("@outSum", outSum, typeof(int), ParameterDirection.Output) |
| | | }; |
| | | |
| | | Db.Ado.UseStoredProcedure().ExecuteCommand("ERP_DeleteMesRohInByBillNo", parameters); |
| | | |
| | | outMsg = parameters[2].Value?.ToString() ?? ""; |
| | | outSum = parameters[3].Value != null ? Convert.ToInt32(parameters[index: 3].Value) : -1; |
| | | return (outSum, outMsg); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new InvalidOperationException($"调用存储过程 ERP_DeleteMesRohInByBillNo 失败: {ex.Message}", ex); |
| | | } |
| | | } |
| | | } |