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