From ab5a72d56086103154c85570c5bca27b7be6d2b4 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期五, 21 十一月 2025 15:24:11 +0800
Subject: [PATCH] 添加报工备注

---
 Services/MesCutterLedgerManager.cs |  106 +++++++++++++++++++++++-----------------------------
 1 files changed, 47 insertions(+), 59 deletions(-)

diff --git a/Services/MesCutterLedgerManager.cs b/Services/MesCutterLedgerManager.cs
index 148ccd4..68c3e60 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));
 
@@ -55,24 +58,32 @@
     /// <param name="type">鎿嶄綔绫诲瀷锛堜笂鍒�銆佷笅鍒�锛�</param>
     /// <param name="useLimit">浣跨敤涓婇檺</param>
     /// <returns>瀛樺偍杩囩▼鎵ц缁撴灉</returns>
-    public object SubmitToolAction(string workOrderNo, string machineNo, string toolNo, string type, int? useLimit, decimal? sdjs = null, decimal? xdjs = null)
+    public object SubmitToolAction(
+        string workOrderNo,
+        string machineNo,
+        string toolNo,
+        string type,
+        int? useLimit,
+        decimal? sdjs = null,
+        decimal? xdjs = null,
+        decimal? modlLifeWorning = null) // 鏂板锛氬鍛芥瘮棰勮鍊�(0~1鐨勫皬鏁�)
     {
         var parameters = new[]
         {
-            new SugarParameter("V_WORK_ORDER_NO", workOrderNo),
-            new SugarParameter("V_MACHINE_NO", machineNo),
-            new SugarParameter("V_TOOL_NO", toolNo),
-            new SugarParameter("V_TYPE", type),
-            new SugarParameter("V_USE_LIMIT", useLimit ?? (object)DBNull.Value),
-            new SugarParameter("V_SDJS", sdjs ?? (object)DBNull.Value),
-            new SugarParameter("V_XDJS", xdjs ?? (object)DBNull.Value),
-            new SugarParameter("PO_OUTMSG", null) { Direction = ParameterDirection.Output, DbType = System.Data.DbType.String, Size = 200 },
-            new SugarParameter("PO_OUTSUM", null) { Direction = ParameterDirection.Output, DbType = System.Data.DbType.Int32 }
-        };
+        new SugarParameter("V_WORK_ORDER_NO", workOrderNo),
+        new SugarParameter("V_MACHINE_NO", machineNo),
+        new SugarParameter("V_TOOL_NO", toolNo),
+        new SugarParameter("V_TYPE", type),
+        new SugarParameter("V_USE_LIMIT", useLimit ?? (object)DBNull.Value),
+        new SugarParameter("V_SDJS", sdjs ?? (object)DBNull.Value),
+        new SugarParameter("V_XDJS", xdjs ?? (object)DBNull.Value),
+        new SugarParameter("PO_OUTMSG", null) { Direction = ParameterDirection.Output, DbType = System.Data.DbType.String, Size = 200 },
+        new SugarParameter("PO_OUTSUM", null) { Direction = ParameterDirection.Output, DbType = System.Data.DbType.Int32 },
+        new SugarParameter("V_MODL_LIFE_WORNING", modlLifeWorning ?? (object)DBNull.Value) // 鏂板
+    };
         try
         {
-            Db.Ado.UseStoredProcedure().SqlQuery<object>(
-                "PROC_TOOL_ACTION", parameters);
+            Db.Ado.UseStoredProcedure().SqlQuery<object>("PROC_TOOL_ACTION", parameters);
             var outMsg = parameters[7].Value?.ToString();
             var outSum = parameters[8].Value;
             // 杩欓噷 outMsg 宸茬粡鍖呭惈浜嗗瓨鍌ㄨ繃绋嬫瘡姝ML鐨勮缁嗛敊璇俊鎭�
@@ -86,77 +97,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