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