From 711fd971275401adc48b6a25865ea4594bc7fb75 Mon Sep 17 00:00:00 2001
From: hao <1836460075@qq.com>
Date: 星期三, 21 五月 2025 16:31:36 +0800
Subject: [PATCH] Merge branch 'master' of http://43.142.96.171:8080/r/~yhj/XM_GK_HD

---
 gdbg/gdbg/Controllers/PrintController.cs |   63 +++++++++++++++++++++++++++----
 1 files changed, 54 insertions(+), 9 deletions(-)

diff --git a/gdbg/gdbg/Controllers/PrintController.cs b/gdbg/gdbg/Controllers/PrintController.cs
index 2c41b38..6115c16 100644
--- a/gdbg/gdbg/Controllers/PrintController.cs
+++ b/gdbg/gdbg/Controllers/PrintController.cs
@@ -1,9 +1,10 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
-using System.Threading.Tasks;
+锘縰sing gdbg.Models;
 using gdbg.Services;
-using System.Collections.Generic;
+using Microsoft.AspNetCore.Mvc;
 using Oracle.ManagedDataAccess.Client;
-using gdbg.Models;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
 
 namespace gdbg.Controllers
 {
@@ -23,9 +24,13 @@
             try
             {
                 // 淇敼 SQL 鏌ヨ浠ヨ繑鍥炴洿澶氬瓧娈�
-                string query = "SELECT ITEM_BARCODE, TO_CHAR(a.CREATE_DATE, 'YYYY-MM-DD HH24:MI:SS') AS PRINT_DATE, b.STAFF_NAME,a.quantity " +
-                    "FROM MES_INV_ITEM_BARCODES a left join MES_STAFF b on a.CREATE_BY=b.STAFF_NO " +
-                    "WHERE BILL_NO = :orderNo  and TO_CHAR(a.CREATE_DATE, 'YYYY-MM-DD')=to_char(SYSDATE,'YYYY-MM-DD') " +
+                string query = 
+
+                   " SELECT a.ITEM_BARCODE, TO_CHAR(a.CREATE_DATE, 'YYYY-MM-DD HH24:MI:SS') AS PRINT_DATE, bgr.bgr, a.quantity                   " +
+                   " FROM MES_INV_ITEM_BARCODES a left join(select case when sta.STAFF_NAME is null then a.CREATE_BY  else sta.STAFF_NAME end bgr,a.ITEM_BARCODE      " +
+                   " from MES_WORK_PROD_C_DETAILS a  left join mes_staff sta on a.CREATE_BY = sta.STAFF_NO) bgr on bgr.ITEM_BARCODE = a.ITEM_BARCODE                  " +
+                        "     left join MES_STAFF b on a.CREATE_BY = b.STAFF_NO                                                                                       " +
+                    "WHERE BILL_NO = :orderNo  and TO_CHAR(a.CREATE_DATE, 'YYYY-MM-DD')<=to_char(SYSDATE,'YYYY-MM-DD') and TO_CHAR(a.CREATE_DATE, 'YYYY-MM-DD')>=to_char(SYSDATE-2,'YYYY-MM-DD') " +
                     "order by a.CREATE_DATE desc";
 
 
@@ -89,7 +94,8 @@
                 // 鍏朵粬 Oracle 閿欒
                 return StatusCode(500, new
                 {
-                    message = "鏁版嵁搴撻敊璇細" + ex.Message
+                   // message = "鏁版嵁搴撻敊璇細" + ex.Message
+                    message = ExtractErrorMessage(ex.Message)
                 });
             }
             catch (Exception ex)
@@ -99,7 +105,7 @@
 
         }
 
-        private static string ExtractErrorMessage(string oracleMessage)
+       /* private static string ExtractErrorMessage(string oracleMessage)
         {
             // 鍖归厤 "ORA-20002:" 鍚庣殑鍏蜂綋閿欒淇℃伅
             string pattern = @"ORA-20002:.*?:\s(.*?)(\n|$)";
@@ -112,8 +118,47 @@
 
             // 濡傛灉鏃犳硶鍖归厤锛屽垯杩斿洖瀹屾暣閿欒淇℃伅
             return oracleMessage;
+        }*/
+ /*       private static string ExtractErrorMessage(string oracleMessage)
+        {
+            // 鍖归厤澶氫釜 ORA-20002: 鍚庣殑娈佃惤锛屾彁鍙栨渶鍚庝竴涓�
+            var matches = System.Text.RegularExpressions.Regex.Matches(
+                oracleMessage,
+                @"ORA-20002:(.*?)(?=ORA-\d{5}:|$)"
+            );
+
+            if (matches.Count > 0)
+            {
+                // 鎻愬彇鏈�鍚庝竴涓尮閰嶉」锛屽幓闄ゆ崲琛屽拰澶氫綑绌烘牸
+                return matches[matches.Count - 1].Groups[1].Value.Trim();
+            }
+
+            // 榛樿杩斿洖鍘熷閿欒
+            return oracleMessage;
+        }*/
+
+
+        private static string ExtractErrorMessage(string oracleMessage)
+        {
+            // 鍖归厤鎵�鏈� ORA-20002: 閿欒娈�
+            var matches = Regex.Matches(oracleMessage, @"ORA-20002:\s*(.*?)(?=(ORA-\d{5}:|$))", RegexOptions.Singleline);
+
+            if (matches.Count > 0)
+            {
+                // 杩斿洖鏈�閲岄潰涓�鏉★紙鏈�鍚庝竴涓級
+                string raw = matches[matches.Count - 1].Groups[1].Value;
+
+                // 鍘绘帀绫讳技 "Error in PrintAndUpdate procedure:" 寮�澶�
+                string cleaned = Regex.Replace(raw, @"^Error.*?:", "", RegexOptions.IgnoreCase).Trim();
+
+                return string.IsNullOrWhiteSpace(cleaned) ? raw.Trim() : cleaned;
+            }
+
+            return oracleMessage; // fallback
         }
 
 
+
+
     }
 }

--
Gitblit v1.9.3