zjh
2025-09-18 31c9cb02f04a654d3517237860464c75f6bfdbc4
StandardPda/MES.Service/service/QC/LljService.cs
@@ -6,6 +6,7 @@
using MES.Service.util;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json;
using Oracle.ManagedDataAccess.Client;
using SqlSugar;
using System.Data;
using System.Security.Cryptography;
@@ -1502,29 +1503,97 @@
        return SQLHelper.ExecuteQuery(sql1);
    }
    //public void saveYzxBDlist(string id, DataTable DB)
    //{
    //    OracleSQLHelper SQLHelper = new();
    //    //先把结果清空
    //    var sql1 =
    //        string.Format(
    //            @"update MES_IQC_CONSISTENCY_ck set ISCHACK=0 where PID='" +
    //            id + "' ");
    //    SQLHelper.ExecuteQuery(sql1);
    //    var rowId = "";
    //    for (var i = 0; i < DB.Rows.Count; i++)
    //        rowId += "'" + DB.Rows[i]["id"] + "',";
    //    rowId = rowId.Substring(0, rowId.Length - 1);
    //    //修改结果
    //    var sql2 =
    //        string.Format(
    //            @"update MES_IQC_CONSISTENCY_ck set ISCHACK=1 where PID='" +
    //            id + "'and id in(" + rowId + ") ");
    //    SQLHelper.ExecuteQuery(sql2);
    //}
    public void saveYzxBDlist(string id, DataTable DB)
    {
        OracleSQLHelper SQLHelper = new();
        //先把结果清空
        var sql1 =
            string.Format(
                @"update MES_IQC_CONSISTENCY_ck set ISCHACK=0 where PID='" +
                id + "' ");
        SQLHelper.ExecuteQuery(sql1);
        var rowId = "";
        for (var i = 0; i < DB.Rows.Count; i++)
            rowId += "'" + DB.Rows[i]["id"] + "',";
        rowId = rowId.Substring(0, rowId.Length - 1);
        var sqlHelper = new OracleSQLHelper();
        using (var connection = new OracleConnection(AppsettingsUtility.Settings.DataBaseConn))
        {
            connection.Open();
            using (var transaction = connection.BeginTransaction())
            {
                try
                {
                    // 1. 清空 ISCHACK
                    var sql1 = @"UPDATE MES_IQC_CONSISTENCY_ck
                             SET ISCHACK = 0
                             WHERE PID = :pid";
        //修改结果
        var sql2 =
            string.Format(
                @"update MES_IQC_CONSISTENCY_ck set ISCHACK=1 where PID='" +
                id + "'and id in(" + rowId + ") ");
        SQLHelper.ExecuteQuery(sql2);
                    using (var cmd1 = new OracleCommand(sql1, connection))
                    {
                        cmd1.Transaction = transaction;
                        cmd1.Parameters.Add(new OracleParameter(":pid", id));
                        cmd1.ExecuteNonQuery();
                    }
                    // 2. 如果 DataTable 里有要更新的 id
                    if (DB != null && DB.Rows.Count > 0)
                    {
                        // 拼接 in 条件(参数化)
                        var inParams = new List<string>();
                        var parameters = new List<OracleParameter>
                    {
                        new OracleParameter(":pid", id)
                    };
                        for (int i = 0; i < DB.Rows.Count; i++)
                        {
                            string paramName = ":id" + i;
                            inParams.Add(paramName);
                            parameters.Add(new OracleParameter(paramName, DB.Rows[i]["id"]));
                        }
                        var sql2 = $@"
                        UPDATE MES_IQC_CONSISTENCY_ck
                           SET ISCHACK = 1
                         WHERE PID = :pid
                           AND id IN ({string.Join(",", inParams)})";
                        using (var cmd2 = new OracleCommand(sql2, connection))
                        {
                            cmd2.Transaction = transaction;
                            cmd2.Parameters.AddRange(parameters.ToArray());
                            cmd2.ExecuteNonQuery();
                        }
                    }
                    // 全部成功,提交
                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    // 出错回滚
                    transaction.Rollback();
                    throw new Exception("执行 saveYzxBDlist 出错: " + ex.Message, ex);
                }
            }
        }
    }
    public string[] YzxImgVerify(string id)
    {
        var msgStr = new string[2];