yhj
2025-05-20 8aa883ebdf2e3a636aa639d3e918bd65edd0cfd1
gdbg/gdbg/Controllers/PrintController.cs
@@ -23,8 +23,12 @@
            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 " +
                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";
@@ -99,7 +103,7 @@
        }
        private static string ExtractErrorMessage(string oracleMessage)
       /* private static string ExtractErrorMessage(string oracleMessage)
        {
            // 匹配 "ORA-20002:" 后的具体错误信息
            string pattern = @"ORA-20002:.*?:\s(.*?)(\n|$)";
@@ -112,8 +116,26 @@
            // 如果无法匹配,则返回完整错误信息
            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;
        }
    }
}