From a4501b0013153ee105d65a8b9ae34f3998d60904 Mon Sep 17 00:00:00 2001
From: huawei <huawei@2214094776>
Date: 星期一, 01 十二月 2025 15:16:41 +0800
Subject: [PATCH] Merge branch 'master' of http://43.142.96.171:8080/r/~cnf/JH/JH_MesService

---
 WebApi/Gs.Sys/Services/FmController.cs |  106 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 94 insertions(+), 12 deletions(-)

diff --git a/WebApi/Gs.Sys/Services/FmController.cs b/WebApi/Gs.Sys/Services/FmController.cs
index 88a8cc0..d0374b1 100644
--- a/WebApi/Gs.Sys/Services/FmController.cs
+++ b/WebApi/Gs.Sys/Services/FmController.cs
@@ -1,4 +1,4 @@
-锘縰sing Gs.Toolbox;
+锘匡豢锘匡豢锘匡豢锘縰sing Gs.Toolbox;
 using Gs.Toolbox.ApiCore.Abstract.Mvc;
 using Gs.Toolbox.ApiCore.Common.Mvc;
 using Gs.Toolbox.ApiCore.Group;
@@ -257,6 +257,14 @@
                 string keyGuid = model.keyGuid;
                 string keyNo = model.keyNo;
                 string idtype = model.idtype;//杩欎釜浠呬粎鏄洿鏂板伐鍗曠姸鎬佺殑鏃跺�欐湁
+                string keyMeth = model.keyMeth;
+
+                // 鐗规畩澶勭悊锛歞elete鎿嶄綔浣跨敤TestErpUrl101鎺ュ彛
+                if (keyMeth != null && keyMeth.Equals("delete", StringComparison.OrdinalIgnoreCase))
+                {
+                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo, 101);
+                }
+                else
                 if (string.IsNullOrEmpty(idtype))
                 {
                     (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo);
@@ -286,6 +294,7 @@
             {
                 Gs.Toolbox.LogHelper.Debug(this.ToString(), "Fm SendErp:" + ex.Message);
                 return "鍙戦�乪rp澶辫触:" + ex.Message;
+         
             }
             if (_rtnInt <= 0)
             {
@@ -309,17 +318,16 @@
             string keyMeth = model.keyMeth;
             string keyNo = model.keyNo;
             string idtype = model.idtype;//杩欎釜浠呬粎鏄洿鏂板伐鍗曠姸鎬佺殑鏃跺�欐湁
-            if (keyMeth.ToUpper() == "delete".ToUpper())
-                return "";
+ 
             try
             {
                 System.Data.DataSet dset = new System.Data.DataSet();
                 SqlParameter[] parameters =
                       {
-                       new("@inOrderGuid", keyGuid),
-                       new("@inEdtUserGuid", keyUserGuid),
-                       new("@keyMeth", keyMeth.ToLower()),
-                   };
+               new("@inOrderGuid", keyGuid),
+               new("@inEdtUserGuid", keyUserGuid),
+               new("@keyMeth", keyMeth.ToLower()),
+           };
                 dset = DbHelperSQL.RunProcedure(keyProduce, parameters, "0");
                 if (dset == null)
                     return "";
@@ -327,12 +335,82 @@
                     return "";
                 if (dset.Tables[0].Rows.Count <= 0)
                     return "";
-                //杩欐槸鏅�氱殑鎺ュ彛
+
+                // 杩欐槸鏅�氱殑鎺ュ彛
                 string _mesGuid = dset.Tables[0].Rows[0][0].ToString();
                 dynamic _datajson = new ExpandoObject();
-                if (dset.Tables.Count > 1)
+
+               // delete鏂规硶涓撳睘澶勭悊閫昏緫
+                 if (keyMeth.Equals("delete", StringComparison.OrdinalIgnoreCase))
+                 {
+                     try
+                     {
+                         _datajson = new ExpandoObject();
+                         List<string> deleteLst = new List<string>();
+                         
+                         // 鎻愬彇billType
+                         try
+                         {
+                             if (dset.Tables.Count > 0 && dset.Tables[0]?.Rows.Count > 0)
+                             {
+                                 string billType = dset.Tables[0].Rows[0][0]?.ToString() ?? "";
+                                 ((IDictionary<string, object>)_datajson)["billType"] = billType;
+                             }
+                         }
+                         catch (Exception ex)
+                         {
+                             Gs.Toolbox.LogHelper.Debug(this.ToString(), $"鎻愬彇billType寮傚父锛歿ex.Message}");
+                         }
+                         
+                         // 鎻愬彇BILLNO鍒楄〃
+                         if (dset.Tables.Count > 1 && dset.Tables[1]?.Rows.Count > 0)
+                         {
+                             DataTable table1 = dset.Tables[1];
+                             string targetColumn = "BILLNO";
+                             bool hasColumn = table1.Columns.Contains(targetColumn);
+
+                             foreach (DataRow row in table1.Rows)
+                             {
+                                 if (row == null) continue;
+                                 
+                                 string billNo = "";
+                                 try
+                                 {
+                                     if (hasColumn)
+                                     {
+                                         billNo = row[targetColumn]?.ToString()?.Trim() ?? "";
+                                     }
+                                     else if (table1.Columns.Count > 0)
+                                     {
+                                         billNo = row[table1.Columns[0].ColumnName]?.ToString()?.Trim() ?? "";
+                                     }
+                                 }
+                                 catch { }
+                                 
+                                 if (!string.IsNullOrEmpty(billNo))
+                                 {
+                                     deleteLst.Add(billNo);
+                                 }
+                             }
+                         }
+
+                         // 鎸傝浇鍒発eyChild鎴栭粯璁ら敭
+                         string targetKey = !string.IsNullOrEmpty(keyChild) ? keyChild : "billItems";
+                         ((IDictionary<string, object>)_datajson)[targetKey] = deleteLst;
+                         
+                       //  Gs.Toolbox.LogHelper.Debug(this.ToString(), $"delete鍒嗘敮锛氭彁鍙杮deleteLst.Count}鏉℃暟鎹�");
+                     }
+                     catch (Exception ex)
+                     {
+                         Gs.Toolbox.LogHelper.Debug(this.ToString(), $"delete鍒嗘敮寮傚父锛歿ex.Message}");
+                         _datajson = new ExpandoObject();
+                     }
+                 }
+ 
+                // 鍘熸湁閫昏緫锛氶潪delete鏂规硶锛屾墽琛屽巻鍙叉嫾鎺ラ�昏緫 
+                else if (dset.Tables.Count > 1)
                 {
-                    //杩欐槸杩欐槸鏅�氱殑鎺ュ彛閲岀殑缁撴锛岀粨鏋勫拰鍏跺畠涓嶄竴鏍�
+                    // 杩欐槸鏅�氱殑鎺ュ彛閲岀殑缁撴锛岀粨鏋勫拰鍏跺畠涓嶄竴鏍�
                     if (keyMeth.ToLower() == "toclose".ToLower() || keyMeth.ToLower() == "closure".ToLower() || keyMeth.ToLower() == "unfinish")
                     {
                         _datajson = dset.Tables[1].Rows[0].RowToDynamic();
@@ -344,8 +422,10 @@
                         ((IDictionary<string, object>)_datajson)[keyChild] = _lst;
                     }
                 }
-                return JsonConvert.SerializeObject(_datajson); 
-                //杩欐槸璁㈠崟鍥炰紶鏍囪瘑
+
+                return JsonConvert.SerializeObject(_datajson);
+
+                // 杩欐槸璁㈠崟鍥炰紶鏍囪瘑锛堝師鏈夋敞閲婁唬鐮佸畬鍏ㄤ繚鐣欙級
                 /*List<dynamic> _datajson22 = new List<dynamic>();
                 dynamic _ob = new ExpandoObject();
                 _ob.ENTRY = dset.Tables[0].TableToDynamicList();
@@ -357,6 +437,8 @@
                     datajson = JsonConvert.SerializeObject(_datajson22),
                 };
                 return JsonConvert.SerializeObject(_obj22);*/
+            
+            
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3