From c8ec9ec6d9d149eaac6ad78bedd980c3be1c3b5f Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期六, 23 八月 2025 14:58:49 +0800
Subject: [PATCH] 产测解绑sn代码提交

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

diff --git a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
index b389e65..920f28d 100644
--- a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
+++ b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
@@ -3,6 +3,7 @@
 using MES.Service.Dto.service;
 using MES.Service.Modes;
 using MES.Service.service.BasicData;
+using Oracle.ManagedDataAccess.Client;
 using System;
 using System.Collections.Generic;
 using System.Data;
@@ -465,5 +466,91 @@
         }
 
 
+        /// <summary>
+        /// 澶勭悊瑙g粦 / 鎾ら攢瑙g粦
+        /// </summary>
+        public bool ProcessSn(UnbindAsnInfoDto dto)
+        {
+            if (dto == null || dto.snList == null || dto.snList.Count == 0)
+                throw new ArgumentException("杈撳叆鍙傛暟鏃犳晥");
+
+            var sqlHelper = new OracleSQLHelper();
+            bool result = true;
+            var (connection, transaction) = sqlHelper.BeginTransaction();
+
+            try
+            {
+                foreach (var sn in dto.snList)
+                {
+                    if (dto.ActionType == 0) // 瑙g粦
+                    {
+                        string sql = @"
+                            UPDATE MES_SN_STATUS_DETAILS
+                               SET IS_UNBIND   = 1,
+                                   UNBIND_DATE = SYSDATE,
+                                   UNBIND_USER = :LoginId
+                             WHERE TICKET_NO   = :TicketNo
+                               AND SN_NO       = :SnNo
+                               AND NVL(IS_UNBIND, 0) = 0";
+
+                        var parameters = new[]
+                        {
+                            new OracleParameter(":LoginId", dto.loginId),
+                            new OracleParameter(":TicketNo", sn.tickeNo),
+                            new OracleParameter(":SnNo", sn.snNo)
+                        };
+
+                        int rows = sqlHelper.ExecuteNonQueryWithTransaction(sql, parameters, connection, transaction);
+                        if (rows == 0)
+                        {
+                            throw new Exception($"瑙g粦澶辫触: 宸ュ崟[{sn.tickeNo}], SN[{sn.snNo}] 鏈壘鍒板彲瑙g粦璁板綍鎴栧凡瑙g粦锛�");
+                        }
+                    }
+                    else if (dto.ActionType == 1) // 鎾ら攢瑙g粦
+                    {
+                        string sql = @"
+                            UPDATE MES_SN_STATUS_DETAILS
+                               SET IS_UNBIND   = 0,
+                                   UNBIND_DATE = NULL,
+                                   UNBIND_USER = NULL
+                             WHERE TICKET_NO   = :TicketNo
+                               AND SN_NO       = :SnNo
+                               AND NVL(IS_UNBIND, 0) = 1";
+
+                        var parameters = new[]
+                        {
+                            new OracleParameter(":TicketNo", sn.tickeNo),
+                            new OracleParameter(":SnNo", sn.snNo)
+                        };
+
+                        int rows = sqlHelper.ExecuteNonQueryWithTransaction(sql, parameters, connection, transaction);
+                        if (rows == 0)
+                        {
+                            throw new Exception($"鎾ら攢瑙g粦澶辫触: 宸ュ崟[{sn.tickeNo}], SN[{sn.snNo}] 鏈壘鍒板凡瑙g粦璁板綍锛�");
+                        }
+                    }
+                    else
+                    {
+                        throw new Exception("鏃犳晥鐨勬搷浣滅被鍨嬶紒鍙兘鏄� 0=瑙g粦 鎴� 1=鎾ら攢瑙g粦");
+                    }
+                }
+
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                result = false;
+                // 寤鸿杩欓噷鍐欐棩蹇� ex.Message
+                throw;
+            }
+            finally
+            {
+                connection.Close();
+            }
+
+            return result;
+        }
+
     }
 }

--
Gitblit v1.9.3