快乐的昕的电脑
3 天以前 8328aed1bca2a30c3105b19f41d324acb59437c9
采购订单:添加组合键、添加单别。生产订单:添加整单删除、主表id生产改为序列化
已修改4个文件
138 ■■■■■ 文件已修改
MES.Service/Dto/webApi/ErpRohIn.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/MesRohIn.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/BasicData/MesRohInManager.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/WomcaaManager.cs 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/webApi/ErpRohIn.cs
@@ -19,7 +19,7 @@
    public string? FChargeId { get; set; }
    public string? FProviderEMail { get; set; }
    public string? Remarks { get; set; }
    public string? FCancelStatus { get; set; }
    public string? FCancelStatus { get; set; }//作废状态
    public string? FCancellerId { get; set; }
    public string? FCancelDate { get; set; }
    public string? FCreatorId { get; set; }
MES.Service/Modes/MesRohIn.cs
@@ -312,14 +312,14 @@
    
     
    /// <summary>
    ///     组合单号
    ///     组合单号:单号-单别
    /// </summary>
    [SugarColumn(ColumnName = "MBILL_NO")]
    public string? MBillNo { get; set; }
    
    /// <summary>
    ///     单别
    ///     单别:330/331/332
    /// </summary>
    [SugarColumn(ColumnName = "Number_Type")]
    public string? NumberType { get; set; }
MES.Service/service/BasicData/MesRohInManager.cs
@@ -140,9 +140,6 @@
        mesRohIn.EbelnK3id = eid;
        mesRohIn.BillNo = rohIn.FBillNo;
        
        mesRohIn.DocumentType = rohIn.FBillTypeID;
        mesRohIn.BusinessType = rohIn.FBusinessType;
        ////erp传过来的Y->C,表示审核。N->A。(与金蝶逻辑保持一致)
        //mesRohIn.DocumentStatus = rohIn.FDocumentStatus;
@@ -259,6 +256,12 @@
        mesRohIn.FixtureMoldProcurement = rohIn.F_UNW_Combo_zjmj;//治具丶模具加工及采购
        mesRohIn.urgent_material = rohIn.FUrgent_Material;//急料
        //mesRohIn.DocumentType = rohIn.FBillTypeID;
        mesRohIn.BusinessType = rohIn.FBusinessType;//业务类型
        mesRohIn.DocumentType = rohIn.FBusinessType;//业务类型
        mesRohIn.MBillNo = $"{rohIn.FBillNo}-{rohIn.FBillTypeID}";//组合单号:组合单号:单号-单别
        mesRohIn.NumberType= rohIn.FBillTypeID;//单据类型:330:采购单、331:采购补货单、332:手工采购单
        return mesRohIn;
    }
@@ -331,9 +334,15 @@
                DemandSource = s.FDEMANDTYPE,
                DemandDocumentId = s.FDEMANDBILLNO,
                OrderLineId = s.FDEMANDBILLENTRYSEQ,
                DemandOrg = s.FRequireOrgId,
                ReceivingOrg = s.FReceiveOrgId,
                SettlementOrg = s.FEntrySettleOrgId,
                //需求组织默认为1
                DemandOrg = string.IsNullOrEmpty(s.FRequireOrgId) ? "1" : s.FRequireOrgId,
                //DemandOrg = s.FRequireOrgId,
                //收料组织默认为1
                ReceivingOrg = string.IsNullOrEmpty(s.FEntrySettleOrgId) ? "1" : s.FEntrySettleOrgId,
                //ReceivingOrg = s.FReceiveOrgId,
                //结算组织默认为1
                SettlementOrg = string.IsNullOrEmpty(s.FEntrySettleOrgId) ? "1" : s.FEntrySettleOrgId,
                //SettlementOrg = s.FEntrySettleOrgId,
                PurchaseOrderLineNumber = s.FSEQ,
                Demand = s.FRequireOrgId,
                Receiving = s.FReceiveOrgId,
MES.Service/service/WomcaaManager.cs
@@ -3,9 +3,12 @@
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 增、删、查、改的方法
@@ -324,51 +327,51 @@
        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
@@ -397,4 +400,36 @@
            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);
        }
    }
}