如洲 陈
5 天以前 fba48d2d676cd9b6d493163aef9d87f6e5090aee
MES.Service/service/QC/XJService.cs
@@ -3,6 +3,8 @@
using MES.Service.Modes;
using MES.Service.util;
using SqlSugar;
using System.Data;
using System.Data.Common;
namespace MES.Service.service.QC;
@@ -496,11 +498,75 @@
                    .Where(s => s.Id == detail.Gid)
                    .ExecuteCommand();
            });
            // 新增:如果判定结果为不合格,调用存储过程生成异常处置单
            if (FcheckResu.Equals("不合格"))
            {
                CallXJUnqualifiedStoredProcedure(detail.Gid, detail.CreateBy);
            }
        }
        return useTransactionWithOracle;
    }
    /// <summary>
    /// 调用巡检不合格处理存储过程生成异常处置单
    /// </summary>
    /// <param name="gid">巡检主表ID</param>
    /// <param name="createBy">操作人</param>
    private void CallXJUnqualifiedStoredProcedure(decimal? gid, string createBy)
    {
        try
        {
            var db = SqlSugarHelper.GetInstance();
            // 获取巡检单信息
            var xjInfo = db.Queryable<QsQaItemXj>()
                .Where(s => s.Id == gid)
                .First();
            if (xjInfo == null) return;
            // 定义输出参数
            var outputResult = new SugarParameter("o_Result", null,
                System.Data.DbType.Int32, ParameterDirection.Output, 4000);
            var outputMessage = new SugarParameter("o_Msg", null,
                System.Data.DbType.String, ParameterDirection.Output, 4000);
            // 定义输入参数
            var parameters = new List<SugarParameter>
            {
                new("p_Gid", gid, System.Data.DbType.Decimal, ParameterDirection.Input),
                new("p_Bill_No", xjInfo.BillNo, System.Data.DbType.String, ParameterDirection.Input),
                new("p_User", createBy, System.Data.DbType.String, ParameterDirection.Input),
                outputResult,
                outputMessage
            };
            // 执行存储过程生成异常处置单
            db.Ado.ExecuteCommand(
                "BEGIN PRC_XJ_EXCEPTION_ORDER(:p_Gid, :p_Bill_No, :p_User, :o_Result, :o_Msg); END;",
                parameters.ToArray());
            // 获取输出参数的值
            var resultValue = outputResult.Value?.ToString();
            var messageValue = outputMessage.Value?.ToString();
            if ("1".Equals(resultValue))
            {
                throw new Exception($"巡检异常处置单生成失败: {messageValue}");
            }
        }
        catch (Exception ex)
        {
            // 记录日志但不影响主流程
            Console.WriteLine($"巡检异常处置单生成存储过程调用失败: {ex.Message}");
            // 可以根据需要决定是否抛出异常
            // throw new Exception($"巡检异常处置单生成失败: {ex.Message}");
        }
    }
    public int UpdateQSItemDetail(QsQaItemXj02 detail)
    {
        var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>