From a27f32ecbfc7390ceb9e3a8d8651c57ada88bfa0 Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期五, 19 十二月 2025 20:51:42 +0800
Subject: [PATCH] Merge branch 'master' of http://43.142.96.171:8080/r/~tjx/XB_MES_API

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

diff --git a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
index 5bdc57a..f617651 100644
--- a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
+++ b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
@@ -47,7 +47,15 @@
             //    "                        left join mes_items s on s.id = C.daa002" +
             //    "                       where WORKSNO='" + id + "' and DAA018='宸插紑宸�'  order by DAA016 asc";
             //var sql1 = "select DAA001 tickeNo, s.ITEM_NO itemNo, s.ITEM_NAME itemName, s.ITEM_MODEL itemModel, DAA008 plannedNum\r\nfrom  WOMDAA C\r\n         left join mes_items s on s.id = C.daa002\r\nleft join womcaa A on A.caa001=C.daa021\r\nwhere C.DAA015 = '" + LineId + "'\r\n  and DAA018 = '宸插紑宸�' and A.CAA023='2'\r\norder by DAA016 asc";
-            var sql1 = "select DAA001 tickeNo, s.ITEM_NO itemNo, s.ITEM_NAME itemName, s.ITEM_MODEL itemModel, DAA008 plannedNum\r\nfrom  WOMDAA C\r\n         left join mes_items s on s.id = C.daa002\r\nleft join womcaa A on A.caa001=C.daa021\r\nleft join MESPROJECT_LIKE_CCLOGIN pr1 on A.PROJECT=pr1.PROJECT_ID\r\nleft join MESLINE_LIKE_CCLOGIN_WORKS2 pr2 on pr1.id=pr2.LOGINID\r\nwhere C.DAA015 = '" + LineId + "' and pr2.WORKSNO='" + LoginId + "'\r\n  and DAA018 = '宸插紑宸�' and A.CAA023='2'\r\norder by DAA016 asc";
+            var sql1 = "select DAA001 tickeNo, s.ITEM_NO itemNo, s.ITEM_NAME itemName, s.ITEM_MODEL itemModel, DAA008 plannedNum ,PRD.PRD_ID PRDID\r\nfrom  WOMDAA C\r\n         " +
+                "left join mes_items s on s.id = C.daa002\r\n" +
+                 "left join MES_PRD_ID PRD on PRD.ITEM_NO=s.ITEM_NO /*鏌ヨ浜у搧id*/\r\n" +
+                "left join womcaa A on A.caa001=C.daa021\r\n" +
+                "left join MESPROJECT_LIKE_CCLOGIN pr1 on A.PROJECT=pr1.PROJECT_ID\r\n" +
+                "left join MESLINE_LIKE_CCLOGIN_WORKS2 pr2 on pr1.id=pr2.LOGINID\r\n" +
+                "left join MES_LINE_ORDER lo on lo.order_no=c.daa001 " +
+                "where C.DAA015 = '" + LineId + "' and pr2.WORKSNO='" + LoginId + "'\r\n  and DAA018 = '宸插紑宸�' and A.CAA023='2' and lo.line_no='" + LineId + "'\r\n" +
+                "order by DAA016 asc";
             return SQLHelper.ExecuteQuery(sql1);
         }
 
@@ -222,25 +230,40 @@
             try
             {
                 // 1. 涓昏〃鎻掑叆
+                //    var sql1 = @"
+                //INSERT INTO MES_SN_STATUS_DETAILS
+                //   (ID, TICKET_NO, SN_NO, WORKSTATION_NO, SN_STATE, LOGIN_ID, TURNOVER_CODE,LINE_NO)
+                //   VALUES (SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,
+                //           :ticketNo,
+                //           :snNo,
+                //           :workstationNo,
+                //           :snState,
+                //           :loginId,
+                //           :turnoverCode,select nvl(DAA015,'') from WOMDAA where DAA001 = ':ticketNo' and ROWNUM=1)";
+
+                // 1. 涓昏〃鎻掑叆
                 var sql1 = @"
             INSERT INTO MES_SN_STATUS_DETAILS
-               (ID, TICKET_NO, SN_NO, WORKSTATION_NO, SN_STATE, LOGIN_ID, TURNOVER_CODE)
-               VALUES (SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,
-                       :ticketNo,
-                       :snNo,
-                       :workstationNo,
-                       :snState,
-                       :loginId,
-                       :turnoverCode)";
-
+                   (ID, TICKET_NO, SN_NO, WORKSTATION_NO, SN_STATE, LOGIN_ID, TURNOVER_CODE, LINE_NO)
+            SELECT SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,
+                   :ticketNo,
+                   :snNo,
+                   :workstationNo,
+                   :snState,
+                   :loginId,
+                   :turnoverCode,
+                   NVL(DAA015, '')
+              FROM WOMDAA
+             WHERE DAA001 = :ticketNo
+               AND ROWNUM = 1";
                 var parameters1 = new[]
                 {
-            new OracleParameter(":ticketNo", asnInfo.tickeNo ?? (object)DBNull.Value),
-            new OracleParameter(":snNo", asnInfo.snNo ?? (object)DBNull.Value),
-            new OracleParameter(":workstationNo", asnInfo.workstationNo ?? (object)DBNull.Value),
-            new OracleParameter(":snState", asnInfo.snState ?? (object)DBNull.Value),
-            new OracleParameter(":loginId", asnInfo.loginId ?? (object)DBNull.Value),
-            new OracleParameter(":turnoverCode", asnInfo.turnoverCode ?? (object)DBNull.Value)
+            new OracleParameter("ticketNo", asnInfo.tickeNo ?? (object)DBNull.Value),
+            new OracleParameter("snNo", asnInfo.snNo ?? (object)DBNull.Value),
+            new OracleParameter("workstationNo", asnInfo.workstationNo ?? (object)DBNull.Value),
+            new OracleParameter("snState", asnInfo.snState ?? (object)DBNull.Value),
+            new OracleParameter("loginId", asnInfo.loginId ?? (object)DBNull.Value),
+            new OracleParameter("turnoverCode", asnInfo.turnoverCode ?? (object)DBNull.Value)
         };
 
                 int i = sqlHelper.ExecuteNonQueryWithTransaction(sql1, parameters1, connection, transaction);
@@ -264,11 +287,11 @@
 
                         var parameters2 = new[]
                         {
-                    new OracleParameter(":defectIssue", item.DefectIssue ?? (object)DBNull.Value),
-                    new OracleParameter(":rootCause", item.RootCause ?? (object)DBNull.Value),
-                    new OracleParameter(":repairMethod", item.RepairMethod ?? (object)DBNull.Value),
-                    new OracleParameter(":materialHandling", item.MaterialHandling ?? (object)DBNull.Value),
-                    new OracleParameter(":loginId", asnInfo.loginId ?? (object)DBNull.Value)
+                    new OracleParameter("defectIssue", item.DefectIssue ?? (object)DBNull.Value),
+                    new OracleParameter("rootCause", item.RootCause ?? (object)DBNull.Value),
+                    new OracleParameter("repairMethod", item.RepairMethod ?? (object)DBNull.Value),
+                    new OracleParameter("materialHandling", item.MaterialHandling ?? (object)DBNull.Value),
+                    new OracleParameter("loginId", asnInfo.loginId ?? (object)DBNull.Value)
                 };
 
                         sqlHelper.ExecuteNonQueryWithTransaction(sql2, parameters2, connection, transaction);
@@ -289,7 +312,7 @@
                         {
                             // 鏍¢獙
                             var checkSql = "SELECT COUNT(1) FROM MES_SN_PART_BINDING WHERE PART_SN_NO = :partSn";
-                            var checkParams = new[] { new OracleParameter(":partSn", partSn ?? (object)DBNull.Value) };
+                            var checkParams = new[] { new OracleParameter("partSn", partSn ?? (object)DBNull.Value) };
                             var exists = Convert.ToInt32(sqlHelper.ExecuteScalarWithTransaction(connection, transaction, checkSql, checkParams));
 
                             if (exists > 0)
@@ -299,24 +322,25 @@
 
                             // 鎻掑叆缁戝畾
                             var sqlBind = @"
-                        INSERT INTO MES_SN_PART_BINDING
-                           (ID, SN_NO, PART_SN_NO, PART_NAME_CN, CREATE_DATE, CREATE_USER)
-                           VALUES (SEQ_MES_SN_PART_BINDING.NEXTVAL,
-                                   :snNo,
-                                   :partSn,
-                                   :partName,
-                                   SYSDATE,
-                                   :user)";
+    INSERT INTO MES_SN_PART_BINDING
+       (ID, SN_NO, PART_SN_NO, PART_NAME_CN, CREATE_DATE, CREATE_USER)
+       VALUES (SEQ_MES_SN_PART_BINDING.NEXTVAL,
+               :snNo,
+               :partSn,
+               :partName,
+               SYSDATE,
+               :createUser)";
 
                             var bindParams = new[]
                             {
-                        new OracleParameter(":snNo", snNo ?? (object)DBNull.Value),
-                        new OracleParameter(":partSn", partSn ?? (object)DBNull.Value),
-                        new OracleParameter(":partName", partName ?? (object)DBNull.Value),
-                        new OracleParameter(":user", user ?? (object)DBNull.Value)
-                    };
+    new OracleParameter("snNo", snNo ?? (object)DBNull.Value),
+    new OracleParameter("partSn", partSn ?? (object)DBNull.Value),
+    new OracleParameter("partName", partName ?? (object)DBNull.Value),
+    new OracleParameter("createUser", user ?? (object)DBNull.Value)
+};
 
                             sqlHelper.ExecuteNonQueryWithTransaction(sqlBind, bindParams, connection, transaction);
+
 
                             // 鎻掑叆鏃ュ織
                             var sqlLog = @"
@@ -327,7 +351,7 @@
                                    :partSn,
                                    :partName,
                                    SYSDATE,
-                                   :user,
+                                   :createUser,
                                    0)";
 
                             sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, bindParams, connection, transaction);
@@ -342,8 +366,8 @@
 
                             var unbindParams = new[]
                             {
-                        new OracleParameter(":snNo", snNo ?? (object)DBNull.Value),
-                        new OracleParameter(":partSn", partSn ?? (object)DBNull.Value)
+                        new OracleParameter("snNo", snNo ?? (object)DBNull.Value),
+                        new OracleParameter("partSn", partSn ?? (object)DBNull.Value)
                     };
 
                             sqlHelper.ExecuteNonQueryWithTransaction(sqlUnbind, unbindParams, connection, transaction);
@@ -357,15 +381,15 @@
                                    :partSn,
                                    :partName,
                                    SYSDATE,
-                                   :user,
+                                   :Puser,
                                    1)";
 
                             var logParams = new[]
                             {
-                        new OracleParameter(":snNo", snNo ?? (object)DBNull.Value),
-                        new OracleParameter(":partSn", partSn ?? (object)DBNull.Value),
-                        new OracleParameter(":partName", partName ?? (object)DBNull.Value),
-                        new OracleParameter(":user", user ?? (object)DBNull.Value)
+                        new OracleParameter("snNo", snNo ?? (object)DBNull.Value),
+                        new OracleParameter("partSn", partSn ?? (object)DBNull.Value),
+                        new OracleParameter("partName", partName ?? (object)DBNull.Value),
+                        new OracleParameter("Puser", user ?? (object)DBNull.Value)
                     };
 
                             sqlHelper.ExecuteNonQueryWithTransaction(sqlLog, logParams, connection, transaction);
@@ -388,6 +412,7 @@
 
             return result;
         }
+
 
 
         /// <summary>
@@ -725,5 +750,32 @@
             return result;
         }
 
+        /// <summary>
+        /// 鏌ヨ鏍堟澘鐮佺姸鎬�
+        /// </summary>
+        /// <param name="stackCode">鏍堟澘鐮�</param>
+        /// <returns>0-鍏佽瑙g粦锛�1-涓嶅厑璁歌В缁�(宸插叆搴�)</returns>
+        public int GetStackCodeState(string stackCode)
+        {
+            var sqlHelper = new OracleSQLHelper();
+            try
+            {
+                // 鏌ヨ璇ユ爤鏉跨爜鏄惁宸插叆搴� (IS_INBOUND = 1)
+                var sql = @"SELECT COUNT(*) FROM MES_PALLET_BINDING 
+                           WHERE STACKCODE = :stackCode AND IS_INBOUND = 1";
+                var parameters = new[] { new OracleParameter(":stackCode", stackCode ?? (object)DBNull.Value) };
+                
+                var count = Convert.ToInt32(sqlHelper.ExecuteScalar(sql, CommandType.Text, parameters));
+                
+                // 濡傛灉count > 0锛岃鏄庡凡鍏ュ簱锛岃繑鍥�1(涓嶅厑璁歌В缁�)
+                // 鍚﹀垯杩斿洖0(鍏佽瑙g粦)
+                return count > 0 ? 1 : 0;
+            }
+            catch (Exception ex)
+            {
+                throw new Exception($"鏌ヨ鏍堟澘鐮佺姸鎬佸け璐�: {ex.Message}", ex);
+            }
+        }
+
     }
 }

--
Gitblit v1.9.3