From a619299816f2f632c7c6ba3a1bb869e2c212797d Mon Sep 17 00:00:00 2001
From: fcx <2246384483@qq.com>
Date: 星期五, 19 十二月 2025 14:12:33 +0800
Subject: [PATCH] 对添加巡检单物料编码进行去重

---
 StandardPda/MES.Service/service/QC/LljService.cs |  107 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 89 insertions(+), 18 deletions(-)

diff --git a/StandardPda/MES.Service/service/QC/LljService.cs b/StandardPda/MES.Service/service/QC/LljService.cs
index 9ec05f4..6deba4d 100644
--- a/StandardPda/MES.Service/service/QC/LljService.cs
+++ b/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;
@@ -345,6 +346,8 @@
                 DbType.String, ParameterDirection.Input),
             new("PI_REMARK", sysSubmit.PI_REMARK,
                 DbType.String, ParameterDirection.Input),
+               new("PI_SAMPLE_QTY", sysSubmit.PI_SAMPLE_QTY,
+                DbType.String, ParameterDirection.Input),
             outputResult,
             outputMessage
         };
@@ -353,7 +356,7 @@
 
         // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
         db.Ado.ExecuteCommand(
-            "BEGIN PRC_MES_IQC_QC_SYSSUBMIT(:PI_BILLNO,:PI_USER,:PI_SAMPLE_STATUS,:PI_SAMPLE_TYPE,:PI_SAMPLE_REASON,:PI_INSPECT_TYPE,:PI_SAMPLE_PREPARATION,:PI_URGENCY,:PI_FIRMWAREVERSION,:PI_HARDWAREVERSION,:PI_REMARK, :o_Result, :o_Msg); END;",
+            "BEGIN PRC_MES_IQC_QC_SYSSUBMIT(:PI_BILLNO,:PI_USER,:PI_SAMPLE_STATUS,:PI_SAMPLE_TYPE,:PI_SAMPLE_REASON,:PI_INSPECT_TYPE,:PI_SAMPLE_PREPARATION,:PI_URGENCY,:PI_FIRMWAREVERSION,:PI_HARDWAREVERSION,:PI_REMARK,:PI_SAMPLE_QTY, :o_Result, :o_Msg); END;",
             parameters.ToArray());
 
         // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
@@ -1502,29 +1505,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];

--
Gitblit v1.9.3