From 9f815134b902d19605c753616765cedb598e323f Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期六, 18 十月 2025 14:30:33 +0800
Subject: [PATCH] 逻辑回调
---
Services/MesCutterLedgerManager.cs | 72 +++++++++++++-----------------------
1 files changed, 26 insertions(+), 46 deletions(-)
diff --git a/Services/MesCutterLedgerManager.cs b/Services/MesCutterLedgerManager.cs
index 148ccd4..02b21ce 100644
--- a/Services/MesCutterLedgerManager.cs
+++ b/Services/MesCutterLedgerManager.cs
@@ -23,6 +23,7 @@
/// <summary>
/// 鍒�鍏锋煡璇紙鏀寔缂栧彿鎴栧悕绉版ā绯婃煡璇級
+ /// 涓婃満銆佹姤搴熴�佺淮淇嚭搴撲笉鏌ヨ
/// </summary>
/// <param name="searchKey">鏌ヨ鍏抽敭瀛�</param>
/// <param name="pageIndex">椤电爜</param>
@@ -30,7 +31,9 @@
/// <returns>鍒�鍏锋煡璇㈢粨鏋�</returns>
public MesCutterLedger QueryTools(string searchKey, int pageIndex, int pageSize)
{
+ var excludeTypes = new[] { "涓婃満", "鎶ュ簾", "缁翠慨鍑哄簱" };
var query = Db.Queryable<MesCutterLedger>()
+ .Where(t => !excludeTypes.Contains(t.CutterType))
.WhereIF(!string.IsNullOrEmpty(searchKey),
t => t.CutterId.Contains(searchKey) || t.CutterName.Contains(searchKey));
@@ -86,77 +89,54 @@
}
/// <summary>
- /// 鑾峰彇宸ュ崟琛ㄥ崟鏁版嵁锛堥�氳繃宸ュ崟缂栧彿鍜屾満鍙扮紪鍙锋煡璇級銆�
- /// 鐩存帴浣跨敤 Oracle.ManagedDataAccess.Client 璋冪敤瀛樺偍杩囩▼骞惰鍙� REF CURSOR锛岄伩鍏嶅弬鏁扮粦瀹氫笉鍖归厤銆�
+ /// 鑾峰彇宸ュ崟琛ㄥ崟鏁版嵁锛堥�氳繃宸ュ崟缂栧彿鍜屾満鍙扮紪鍙锋煡璇級銆�
+ /// 浣跨敤 Oracle.ManagedDataAccess.Client 璋冪敤瀛樺偍杩囩▼骞惰鍙� REF CURSOR锛岃繑鍥炲姩鎬佸璞″垪琛ㄣ��
/// </summary>
- /// <param name="workOrderNo">宸ュ崟缂栧彿</param>
- /// <param name="machineNo">鏈哄彴缂栧彿</param>
- /// <returns>琛ㄥ崟鏁版嵁鐨勫姩鎬佸垪琛�</returns>
public List<dynamic> GetFormData(string workOrderNo, string machineNo)
{
- // 浠� SqlSugar 鑾峰彇搴曞眰杩炴帴锛堢‘淇濆搴旂殑鏄� OracleConnection锛�
- using var conn = Db.Ado.Connection;
- if (conn == null) throw new Exception("鏃犳硶鑾峰彇鏁版嵁搴撹繛鎺ャ��");
+ var result = new List<dynamic>();
- // 灏濊瘯灏嗚繛鎺ヨ浆鎹负 OracleConnection
- if (conn is not OracleConnection oracleConn)
- {
- // 濡傛灉涓嶆槸 OracleConnection锛屽皾璇曢�氳繃 ConnectionString 鏋勫缓鏂扮殑 OracleConnection
- oracleConn = new OracleConnection(Db.Ado.Connection.ConnectionString);
- }
+ var connStr = Db.Ado.Connection?.ConnectionString;
+ if (string.IsNullOrEmpty(connStr)) throw new Exception("鏃犳硶鑾峰彇鏁版嵁搴撹繛鎺ュ瓧绗︿覆銆�");
- var resultList = new List<dynamic>();
try
{
+ using var oracleConn = new OracleConnection(connStr);
using var cmd = oracleConn.CreateCommand();
cmd.CommandText = "PROC_GET_FORM_DATA";
cmd.CommandType = CommandType.StoredProcedure;
- // 娉ㄦ剰锛氬弬鏁板悕绉颁笌瀛樺偍杩囩▼绛惧悕蹇呴』瀹屽叏涓�鑷达紙椤哄簭涔熷緢閲嶈锛�
- var pWorkOrder = new OracleParameter("V_WORK_ORDER_NO", OracleDbType.Varchar2, ParameterDirection.Input)
- {
- Value = string.IsNullOrEmpty(workOrderNo) ? (object)DBNull.Value : workOrderNo
- };
- var pMachine = new OracleParameter("V_MACHINE_NO", OracleDbType.Varchar2, ParameterDirection.Input)
- {
- Value = string.IsNullOrEmpty(machineNo) ? (object)DBNull.Value : machineNo
- };
- var pCursor = new OracleParameter("PO_CURSOR", OracleDbType.RefCursor, ParameterDirection.Output);
+ cmd.Parameters.Add("V_WORK_ORDER_NO", OracleDbType.Varchar2).Value =
+ string.IsNullOrEmpty(workOrderNo) ? (object)DBNull.Value : workOrderNo;
+ cmd.Parameters.Add("V_MACHINE_NO", OracleDbType.Varchar2).Value =
+ string.IsNullOrEmpty(machineNo) ? (object)DBNull.Value : machineNo;
+ var pCursor = cmd.Parameters.Add("PO_CURSOR", OracleDbType.RefCursor);
+ pCursor.Direction = ParameterDirection.Output;
- cmd.Parameters.Add(pWorkOrder);
- cmd.Parameters.Add(pMachine);
- cmd.Parameters.Add(pCursor);
-
- var mustOpen = oracleConn.State != ConnectionState.Open;
- if (mustOpen) oracleConn.Open();
-
+ oracleConn.Open();
using var reader = cmd.ExecuteReader();
- var dt = new DataTable();
- dt.Load(reader);
- foreach (DataRow row in dt.Rows)
+ while (reader.Read())
{
- IDictionary<string, object> expando = new ExpandoObject();
- foreach (DataColumn col in dt.Columns)
+ IDictionary<string, object> row = new ExpandoObject();
+ for (int i = 0; i < reader.FieldCount; i++)
{
- expando[col.ColumnName] = row[col] == DBNull.Value ? null : row[col];
+ var name = reader.GetName(i);
+ var val = reader.IsDBNull(i) ? null : reader.GetValue(i);
+ row[name] = val;
}
- resultList.Add(expando);
+ result.Add(row);
}
- return resultList;
+ return result;
}
catch (OracleException oex)
{
- throw new Exception($"璋冪敤瀛樺偍杩囩▼ PROC_GET_FORM_DATA 澶辫触锛圤racleException锛�: {oex.Message}");
+ throw new Exception($"璋冪敤瀛樺偍杩囩▼ PROC_GET_FORM_DATA 澶辫触锛圤racleException锛夛細{oex.Message}");
}
catch (Exception ex)
{
- throw new Exception($"璋冪敤瀛樺偍杩囩▼ PROC_GET_FORM_DATA 澶辫触: {ex.Message}");
- }
- finally
- {
- try { if (oracleConn.State == ConnectionState.Open) oracleConn.Close(); } catch { }
+ throw new Exception($"璋冪敤瀛樺偍杩囩▼ PROC_GET_FORM_DATA 澶辫触锛歿ex.Message}");
}
}
}
\ No newline at end of file
--
Gitblit v1.9.3