From 1cb5959adf96911101864488a67e8b31b8de658f Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期五, 08 八月 2025 15:31:38 +0800
Subject: [PATCH] 产测中箱码、栈板码绑定sn添加日志表记录

---
 StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs |  226 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 150 insertions(+), 76 deletions(-)

diff --git a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
index b0d1277..b85f6cd 100644
--- a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
+++ b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
@@ -137,77 +137,112 @@
         }
 
         /// <summary>
-        /// 璁剧疆涓鐮�
+        /// 璁剧疆涓鐮侊紙缁戝畾/瑙g粦 SN锛�
         /// </summary>
-        /// <param name="mesMiddleBox"></param>
-        /// <returns></returns>
+        /// <param name="mesMiddleBox">涓鐮佸強SN鏁版嵁</param>
+        /// <returns>杩斿洖鎵ц鐘舵��</returns>
         public string[] SetMediumBoxCode(MesMiddleBox mesMiddleBox)
         {
             var sqlHelper = new OracleSQLHelper();
-            string[] msg= new string[2];
+            string[] msg = new string[2];
             msg[0] = "true";
-            //
+
             var (connection, transaction) = sqlHelper.BeginTransaction();
 
             try
             {
-                if (mesMiddleBox.type.ToUpper() =="A") {
+                if (mesMiddleBox.type.ToUpper() == "A") // 缁戝畾
+                {
                     if (mesMiddleBox.SnList.Count > 0)
                     {
-                        string sql1 = "select count(*) count  from MES_MIDDLE_BOX where MEDIUMBOXCODE='"+ mesMiddleBox.MediumBoxCode + "'";
-                        DataTable data= sqlHelper.ExecuteQuery(sql1);
-                        if (data.Rows[0]["COUNT"].ToString() != "0") {
+                        string sql1 = $"select count(*) count from MES_MIDDLE_BOX where MEDIUMBOXCODE = '{mesMiddleBox.MediumBoxCode}'";
+                        DataTable data = sqlHelper.ExecuteQuery(sql1);
+
+                        if (data.Rows[0]["COUNT"].ToString() != "0")
+                        {
                             msg[0] = "false";
                             msg[1] = "璇ヤ腑绠辩爜宸茬粡缁戝畾SN鏁版嵁锛屽闇�鍐嶆缁戝畾璇峰厛瑙g粦锛佷腑绠辩爜锛�" + mesMiddleBox.MediumBoxCode;
                             transaction.Rollback();
-                           
                             return msg;
                         }
+
                         foreach (var item in mesMiddleBox.SnList)
                         {
-                            var sql2 = $@"INSERT INTO MES_MIDDLE_BOX
-                                    (
-                                        ID,
-                                        MEDIUMBOXCODE,
-                                        LOGIN_ID,
-                                        SN_NO,
-                                        TICKET_NO,
-                                        CREATE_DATE,
-                                        CREATED_BY
-                                    )
-                                    VALUES
-                                    (
-                                        SEQ_MES_MIDDLE_BOX_ID.NEXTVAL, -- 搴忓垪鐢熸垚涓婚敭
-                                        '{mesMiddleBox.MediumBoxCode.ToString()}',                 -- 涓鐮�
-                                        '{mesMiddleBox.LoginId}',                       -- 鐧诲綍鍙�
-                                        '{item.SnNo}',                          -- SN鍙�
-                                        '{item.TicketNo}',                      -- 宸ュ崟鍗曞彿
-                                        SYSDATE,                         -- 鍒涘缓鏃堕棿
-                                        '{mesMiddleBox.LoginId}'                       -- 鍒涘缓浜�
-                                    )
-                                    ";
+                            string sqlInsert = $@"
+                        INSERT INTO MES_MIDDLE_BOX (
+                            ID, MEDIUMBOXCODE, LOGIN_ID, SN_NO, TICKET_NO, CREATE_DATE, CREATED_BY
+                        ) VALUES (
+                            SEQ_MES_MIDDLE_BOX_ID.NEXTVAL,
+                            '{mesMiddleBox.MediumBoxCode}',
+                            '{mesMiddleBox.LoginId}',
+                            '{item.SnNo}',
+                            '{item.TicketNo}',
+                            SYSDATE,
+                            '{mesMiddleBox.LoginId}'
+                        )";
 
-                            sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sql2);
+                            sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sqlInsert);
+
+                            // 鏃ュ織璁板綍鎻掑叆锛氭搷浣滅被鍨� 0锛堢粦瀹氾級
+                            string logInsert = $@"
+                        INSERT INTO MES_MIDDLE_BOX_LOG (
+                            ID, MEDIUMBOXCODE, LOGIN_ID, SN_NO, TICKET_NO, CREATE_DATE, CREATED_BY, OPERATION_TYPE
+                        ) VALUES (
+                            MES_MIDDLE_BOX_LOG_ID.NEXTVAL,
+                            '{mesMiddleBox.MediumBoxCode}',
+                            '{mesMiddleBox.LoginId}',
+                            '{item.SnNo}',
+                            '{item.TicketNo}',
+                            SYSDATE,
+                            '{mesMiddleBox.LoginId}',
+                            '0'
+                        )";
+                            sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, logInsert);
                         }
                     }
                     else
                     {
                         msg[0] = "false";
+                        msg[1] = "SN鏄庣粏涓虹┖锛屾棤娉曠粦瀹氾紒";
                     }
-                } else if(mesMiddleBox.type.ToUpper() == "F") {
-                    //瑙g粦锛屾牴鎹腑绠辩爜鍏ㄩ儴鍒犻櫎
-                    var sql2 = $@"delete MES_MIDDLE_BOX where MEDIUMBOXCODE='{mesMiddleBox.MediumBoxCode}'";
+                }
+                else if (mesMiddleBox.type.ToUpper() == "F") // 瑙g粦
+                {
+                    // 鏌ヨ瑕佽В缁戠殑璁板綍
+                    string sqlSelect = $@"
+                SELECT * FROM MES_MIDDLE_BOX WHERE MEDIUMBOXCODE = '{mesMiddleBox.MediumBoxCode}'";
 
-                    sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sql2);
+                    DataTable dt = sqlHelper.ExecuteQuery(sqlSelect);
+
+                    foreach (DataRow row in dt.Rows)
+                    {
+                        // 鎻掑叆瑙g粦鏃ュ織锛氭搷浣滅被鍨� 1锛堣В缁戯級
+                        string logInsert = $@"
+                    INSERT INTO MES_MIDDLE_BOX_LOG (
+                        ID, MEDIUMBOXCODE, LOGIN_ID, SN_NO, TICKET_NO, CREATE_DATE, CREATED_BY, OPERATION_TYPE
+                    ) VALUES (
+                        MES_MIDDLE_BOX_LOG_ID.NEXTVAL,
+                        '{row["MEDIUMBOXCODE"]}',
+                        '{row["LOGIN_ID"]}',
+                        '{row["SN_NO"]}',
+                        '{row["TICKET_NO"]}',
+                        SYSDATE,
+                        '{mesMiddleBox.LoginId}',
+                        '1'
+                    )";
+                        sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, logInsert);
+                    }
+
+                    // 鎵ц瑙g粦锛堝垹闄わ級
+                    string sqlDelete = $@"DELETE FROM MES_MIDDLE_BOX WHERE MEDIUMBOXCODE = '{mesMiddleBox.MediumBoxCode}'";
+                    sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sqlDelete);
                 }
                 else
                 {
-                    msg[1] = "SN鏄庣粏涓虹┖锛岃纭锛�";
                     msg[0] = "false";
+                    msg[1] = "鏃犳晥鐨勬搷浣滅被鍨嬶紒";
                 }
-               
 
-                // 鍏ㄩ儴鎴愬姛鎻愪氦
                 transaction.Commit();
             }
             catch (Exception ex)
@@ -226,77 +261,115 @@
         }
 
 
+
+        /// <summary>
+        /// 璁剧疆鏍堟澘鐮侊紙缁戝畾/瑙g粦 SN锛�
+        /// </summary>
+        /// <param name="mesPalletBinding">缁戝畾鍙傛暟</param>
+        /// <returns>杩斿洖缁戝畾缁撴灉</returns>
         public string[] SetStackCode(MesPalletBinding mesPalletBinding)
         {
             var sqlHelper = new OracleSQLHelper();
             string[] msg = new string[2];
             msg[0] = "true";
-            //
+
             var (connection, transaction) = sqlHelper.BeginTransaction();
 
             try
             {
-                //缁戝畾
-                if (mesPalletBinding.Type.ToUpper() == "A") {
+                // 缁戝畾
+                if (mesPalletBinding.Type.ToUpper() == "A")
+                {
                     if (mesPalletBinding.SnList.Count > 0)
                     {
-                        string sql1 = "select count(*) count  from MES_PALLET_BINDING where STACKCODE='" + mesPalletBinding.StackCode + "'";
+                        string sql1 = $"SELECT COUNT(*) COUNT FROM MES_PALLET_BINDING WHERE STACKCODE = '{mesPalletBinding.StackCode}'";
                         DataTable data = sqlHelper.ExecuteQuery(sql1);
+
                         if (data.Rows[0]["COUNT"].ToString() != "0")
                         {
                             msg[0] = "false";
                             msg[1] = "璇ユ爤鏉跨爜宸茬粡缁戝畾SN鏁版嵁锛屽闇�鍐嶆缁戝畾璇峰厛瑙g粦锛佹爤鏉跨爜锛�" + mesPalletBinding.StackCode;
                             transaction.Rollback();
-
                             return msg;
                         }
+
                         foreach (var item in mesPalletBinding.SnList)
                         {
-                            var sql2 = $@"INSERT INTO MES_PALLET_BINDING
-                            (
-                                ID,
-                                STACKCODE,
-                                LOGIN_ID,
-                                SN_NO,
-                                TICKET_NO,
-                                MEDIUMBOXCODE,
-                                CREATE_DATE,
-                                CREATED_BY
-                            )
-                            VALUES
-                            (
-                                SEQ_MES_PALLET_BINDING_ID.NEXTVAL, -- 搴忓垪鐢熸垚涓婚敭
-                                '{mesPalletBinding.StackCode}',                        -- 鏍堟澘鐮�
-                                '{mesPalletBinding.LoginId}',                          -- 鐧诲綍鍙�
-                                '{item.SnNo}',                             -- SN鍙�
-                                '{item.TicketNo}',                         -- 宸ュ崟鍗曞彿
-                                '{item.MediumBoxCode}',                     -- 涓鐮�
-                                SYSDATE,                            -- 鍒涘缓鏃堕棿
-                                '{mesPalletBinding.LoginId}'                          -- 鍒涘缓浜�
-                            )
+                            string sqlInsert = $@"
+                        INSERT INTO MES_PALLET_BINDING (
+                            ID, STACKCODE, LOGIN_ID, SN_NO, TICKET_NO, MEDIUMBOXCODE, CREATE_DATE, CREATED_BY
+                        ) VALUES (
+                            SEQ_MES_PALLET_BINDING_ID.NEXTVAL,
+                            '{mesPalletBinding.StackCode}',
+                            '{mesPalletBinding.LoginId}',
+                            '{item.SnNo}',
+                            '{item.TicketNo}',
+                            '{item.MediumBoxCode}',
+                            SYSDATE,
+                            '{mesPalletBinding.LoginId}'
+                        )";
 
-                                    ";
+                            sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sqlInsert);
 
-                            sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sql2);
+                            // 鎻掑叆缁戝畾鏃ュ織锛堟搷浣滅被鍨� 0锛�
+                            string logInsert = $@"
+                        INSERT INTO MES_PALLET_BINDING_LOG (
+                            ID, STACKCODE, LOGIN_ID, SN_NO, TICKET_NO, MEDIUMBOXCODE, CREATE_DATE, CREATED_BY, OPERATION_TYPE
+                        ) VALUES (
+                            MES_PALLET_BINDING_LOG_ID.NEXTVAL,
+                            '{mesPalletBinding.StackCode}',
+                            '{mesPalletBinding.LoginId}',
+                            '{item.SnNo}',
+                            '{item.TicketNo}',
+                            '{item.MediumBoxCode}',
+                            SYSDATE,
+                            '{mesPalletBinding.LoginId}',
+                            '0'
+                        )";
+
+                            sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, logInsert);
                         }
                     }
                     else
                     {
-                        msg[1] = "SN鏄庣粏涓虹┖锛岃纭锛�";
                         msg[0] = "false";
+                        msg[1] = "SN鏄庣粏涓虹┖锛岃纭锛�";
                     }
                 }
-                //瑙g粦
-                else if(mesPalletBinding.Type.ToUpper() == "F")
+                // 瑙g粦
+                else if (mesPalletBinding.Type.ToUpper() == "F")
                 {
-                    //瑙g粦锛屾牴鎹腑绠辩爜鍏ㄩ儴鍒犻櫎
-                    var sql2 = $@"delete MES_PALLET_BINDING where STACKCODE='" + mesPalletBinding.StackCode + "'";
+                    // 鍏堟煡璇㈢粦瀹氱殑璁板綍
+                    string sqlSelect = $"SELECT * FROM MES_PALLET_BINDING WHERE STACKCODE = '{mesPalletBinding.StackCode}'";
+                    DataTable dt = sqlHelper.ExecuteQuery( sqlSelect);
 
-                    sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sql2);
+                    foreach (DataRow row in dt.Rows)
+                    {
+                        // 鎻掑叆瑙g粦鏃ュ織锛堟搷浣滅被鍨� 1锛�
+                        string logInsert = $@"
+                    INSERT INTO MES_PALLET_BINDING_LOG (
+                        ID, STACKCODE, LOGIN_ID, SN_NO, TICKET_NO, MEDIUMBOXCODE, CREATE_DATE, CREATED_BY, OPERATION_TYPE
+                    ) VALUES (
+                        MES_PALLET_BINDING_LOG_ID.NEXTVAL,
+                        '{row["STACKCODE"]}',
+                        '{row["LOGIN_ID"]}',
+                        '{row["SN_NO"]}',
+                        '{row["TICKET_NO"]}',
+                        '{row["MEDIUMBOXCODE"]}',
+                        SYSDATE,
+                        '{mesPalletBinding.LoginId}',
+                        '1'
+                    )";
+
+                        sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, logInsert);
+                    }
+
+                    // 鍒犻櫎缁戝畾璁板綍
+                    string sqlDelete = $"DELETE FROM MES_PALLET_BINDING WHERE STACKCODE = '{mesPalletBinding.StackCode}'";
+                    sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sqlDelete);
                 }
-                
 
-                // 鍏ㄩ儴鎴愬姛鎻愪氦
+                // 鎻愪氦浜嬪姟
                 transaction.Commit();
             }
             catch (Exception ex)
@@ -314,5 +387,6 @@
             return msg;
         }
 
+
     }
 }

--
Gitblit v1.9.3