From bd18a149bfd83807d7cbcf80a2384ef502184a96 Mon Sep 17 00:00:00 2001
From: kyy <3283105747@qq.com>
Date: 星期一, 15 十二月 2025 17:35:55 +0800
Subject: [PATCH] 接口改为富达模式

---
 WebApi/Gs.Sys/Services/FmController.cs |  266 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 219 insertions(+), 47 deletions(-)

diff --git a/WebApi/Gs.Sys/Services/FmController.cs b/WebApi/Gs.Sys/Services/FmController.cs
index 30c7db4..0e4add0 100644
--- a/WebApi/Gs.Sys/Services/FmController.cs
+++ b/WebApi/Gs.Sys/Services/FmController.cs
@@ -228,59 +228,214 @@
             return isAdmin;
         }
 
+        /*       #region 鍙戦�乪rp鏂扮増鏈�
+
+               /// <summary>
+               /// 
+               /// </summary>
+               /// <param name="model">keyType:1瀹℃牳锛�0鍙嶅鏍�</param>
+               /// <returns></returns>
+               [RequestMethod(RequestMethods.POST)]
+               public string SendErp([FromBody] dynamic model)
+               {
+                   //string keyGuid = model.keyGuid; 鍘熺敓涓婚敭
+                   //string keyUserGuid = model.keyUserGuid;鎿嶄綔鐢ㄦ埛
+                   //string keyProduce = model.keyProduce;瀛樺偍杩囩▼鍚�
+                   //string keyTaskName = model.keyTaskName;浠诲姟鍚�
+                   //string keyChild = model.keyChild;浠诲姟瀛愯妭鐐瑰悕
+                   //string keyMeth = model.keyMeth;鏂规硶鍚�
+                   //string keyNo = model.keyNo;鍗曟嵁缂栧彿
+                   int _rtnInt = 0;
+                   string _rtnStr = "";
+                   try
+                   {
+                       string _erpJson = GetErpParam(model);
+                       if (_erpJson.Length <= 0)
+                           return "-1璇诲彇erp鍙傛暟澶辫触锛�";
+                       string keyUserGuid = model.keyUserGuid;
+                       string keyGuid = model.keyGuid;
+                       string keyNo = model.keyNo;
+                       string idtype = model.idtype;//2浠呬粎鏄洿鏂板伐鍗曠姸鎬佺殑鏃跺�欐湁
+
+                       if (keyGuid.Length != 36)
+                           keyGuid = "00000000-0000-0000-0000-000000000000";
+                       if (string.IsNullOrEmpty(idtype))
+                           (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo);
+                       else
+                           (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo, 2);
+                   }
+                   catch (Exception ex)
+                   {
+                       Gs.Toolbox.LogHelper.Debug(this.ToString(), "Fm SendErp:" + ex.Message);
+                       return "鍙戦�乪rp澶辫触:" + ex.Message;
+                   }
+                   if (_rtnInt <= 0)
+                   {
+                       return "鍙戦�乪rp澶辫触:" + _rtnStr;
+                   }
+                   return _rtnStr;
+               }
+
+               /// <summary>
+               /// 鏋勫缓erp鍙傛暟
+               /// </summary>
+               /// <param name="model"></param>
+               /// <returns></returns>
+               private string GetErpParam(dynamic model)
+               {
+                   string keyGuid = model.keyGuid;
+                   string keyUserGuid = model.keyUserGuid;
+                   string keyProduce = model.keyProduce;
+                   string keyTaskName = model.keyTaskName;
+                   string keyChild = model.keyChild;
+                   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()),
+                          };
+                       dset = DbHelperSQL.RunProcedure(keyProduce, parameters, "0");
+                       if (dset == null)
+                           return "";
+                       if (dset.Tables.Count <= 0)
+                           return "";
+                       if (dset.Tables[0].Rows.Count <= 0)
+                           return "";
+                       //杩欐槸鏅�氱殑鎺ュ彛
+                       if (string.IsNullOrEmpty(idtype))
+                       {
+                           string _mesGuid = dset.Tables[0].Rows[0][0].ToString();
+                           dynamic _datajson = new ExpandoObject();
+                           if (dset.Tables.Count > 1)
+                           {
+                               //杩欐槸杩欐槸鏅�氱殑鎺ュ彛閲岀殑缁撴锛岀粨鏋勫拰鍏跺畠涓嶄竴鏍�
+                               if (keyMeth.ToLower() == "toclose".ToLower() || keyMeth.ToLower() == "closure".ToLower() || keyMeth.ToLower() == "unfinish")
+                               {
+                                   _datajson = dset.Tables[1].Rows[0].RowToDynamic();
+                               }
+                               else
+                               {
+                                   _datajson = dset.Tables[0].Rows[0].RowToDynamic();
+                                   List<dynamic> _lst = dset.Tables[1].TableToDynamicList();
+                                   ((IDictionary<string, object>)_datajson)[keyChild] = _lst;
+                               }
+                           }
+                           var _obj = new
+                           {
+                               mesid = _mesGuid,
+                               taskname = keyTaskName,
+                               optype = keyMeth,
+                               datajson = JsonConvert.SerializeObject(_datajson),
+                           };
+                           return JsonConvert.SerializeObject(_obj);
+                       }
+                       //杩欐槸璁㈠崟鍥炰紶鏍囪瘑
+                       List<dynamic> _datajson22 = new List<dynamic>();
+                       dynamic _ob = new ExpandoObject();
+                       _ob.ENTRY = dset.Tables[0].TableToDynamicList();
+                       _datajson22.Add(_ob);
+                       var _obj22 = new
+                       {
+                           taskname = keyTaskName,
+                           idtype = idtype,
+                           datajson = JsonConvert.SerializeObject(_datajson22),
+                       };
+                       return JsonConvert.SerializeObject(_obj22);
+                   }
+                   catch (Exception ex)
+                   {
+                       Gs.Toolbox.LogHelper.Debug(this.ToString(), ex.Message);
+                       throw ex;
+                   }
+               }
+               #endregion
+       */
+
         #region 鍙戦�乪rp鏂扮増鏈�
 
         /// <summary>
-        /// 
+        /// 鍙戦�佹暟鎹埌ERP绯荤粺
         /// </summary>
-        /// <param name="model">keyType:1瀹℃牳锛�0鍙嶅鏍�</param>
-        /// <returns></returns>
+        /// <param name="model">鍖呭惈浠ヤ笅瀛楁鐨勫姩鎬佸璞★細
+        /// - keyGuid: 鍘熺敓涓婚敭
+        /// - keyUserGuid: 鎿嶄綔鐢ㄦ埛GUID
+        /// - keyProduce: 瀛樺偍杩囩▼鍚�
+        /// - keyTaskName: 浠诲姟鍚�
+        /// - keyChild: 浠诲姟瀛愯妭鐐瑰悕
+        /// - keyMeth: 鏂规硶鍚嶏紙濡俛dd銆乽pdate銆乨elete銆乼oclose绛夛級
+        /// - keyNo: 鍗曟嵁缂栧彿
+        /// - keyUrl: 鎺ュ彛鍦板潃
+        /// - idtype: 鐗规畩鎿嶄綔绫诲瀷鏍囪瘑锛堝宸ュ崟鐘舵�佹洿鏂帮級
+        /// - keyType: 鎿嶄綔绫诲瀷锛�1=瀹℃牳锛�0=鍙嶅鏍革級
+        /// </param>
+        /// <returns>鎴愬姛杩斿洖ERP鍝嶅簲娑堟伅锛屽け璐ヨ繑鍥為敊璇弿杩�</returns>
+        /// <remarks>
+        /// 灏哅ES鏁版嵁鎵撳寘鎴怑RP杞借嵎骞舵牴鎹姹傜殑鎿嶄綔绫诲瀷鎺ㄩ��
+        /// 閫氳繃瀛樺偍杩囩▼杞崲涓氬姟鏁版嵁锛岃皟鐢↖nterfaceUtil鎺ㄩ�佸埌ERP
+        /// </remarks>
         [RequestMethod(RequestMethods.POST)]
         public string SendErp([FromBody] dynamic model)
         {
-            //string keyGuid = model.keyGuid; 鍘熺敓涓婚敭
-            //string keyUserGuid = model.keyUserGuid;鎿嶄綔鐢ㄦ埛
-            //string keyProduce = model.keyProduce;瀛樺偍杩囩▼鍚�
-            //string keyTaskName = model.keyTaskName;浠诲姟鍚�
-            //string keyChild = model.keyChild;浠诲姟瀛愯妭鐐瑰悕
-            //string keyMeth = model.keyMeth;鏂规硶鍚�
-            //string keyNo = model.keyNo;鍗曟嵁缂栧彿
             int _rtnInt = 0;
             string _rtnStr = "";
             try
             {
+                // 鏋勫缓ERP璇锋眰鍙傛暟
                 string _erpJson = GetErpParam(model);
                 if (_erpJson.Length <= 0)
                     return "-1璇诲彇erp鍙傛暟澶辫触锛�";
                 string keyUserGuid = model.keyUserGuid;
                 string keyGuid = model.keyGuid;
                 string keyNo = model.keyNo;
-                string idtype = model.idtype;//2浠呬粎鏄洿鏂板伐鍗曠姸鎬佺殑鏃跺�欐湁
-
-                if (keyGuid.Length != 36)
-                    keyGuid = "00000000-0000-0000-0000-000000000000";
+                string idtype = model.idtype; // 浠呭湪鏇存柊宸ュ崟鐘舵�佹椂浣跨敤
+                string keyUrl = model.keyUrl;
                 if (string.IsNullOrEmpty(idtype))
-                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo);
+                {
+                    // 甯歌鎺ュ彛锛氭寜鎿嶄綔绫诲瀷鎺ㄩ�佸崟鏉′笟鍔℃暟鎹�
+                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson,
+                        keyUserGuid, keyGuid, keyNo, 0, keyUrl);
+                }
                 else
-                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo, 2);
+                {
+                    // 甯dtype鐨勮姹傜敤浜庣壒娈婃祦绋嬶紙濡傚叧闂�佸弽鍏抽棴锛夛紝ERP闇�瑕侀澶栫殑鐘舵�佹爣璁�
+                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson,
+                        keyUserGuid, keyGuid, keyNo, 2, keyUrl);
+                }
             }
             catch (Exception ex)
             {
-                Gs.Toolbox.LogHelper.Debug(this.ToString(), "Fm SendErp:" + ex.Message);
+                // 璁板綍ERP鏁版嵁杞崲寮傚父锛屼究浜庡畾浣嶅瓨鍌ㄨ繃绋嬫垨搴忓垪鍖栭棶棰�
+                Gs.Toolbox.LogHelper.Debug(this.ToString(),
+                    "Fm SendErp:" + ex.Message);
                 return "鍙戦�乪rp澶辫触:" + ex.Message;
             }
+
             if (_rtnInt <= 0)
             {
                 return "鍙戦�乪rp澶辫触:" + _rtnStr;
             }
+
             return _rtnStr;
         }
 
         /// <summary>
-        /// 鏋勫缓erp鍙傛暟
+        /// 鏋勫缓ERP鍙傛暟锛堝唴閮ㄦ柟娉曪級
         /// </summary>
-        /// <param name="model"></param>
-        /// <returns></returns>
+        /// <param name="model">鍖呭惈涓氬姟鍙傛暟鐨勫姩鎬佸璞�</param>
+        /// <returns>JSON鏍煎紡鐨凟RP鍙傛暟瀛楃涓�</returns>
+        /// <remarks>
+        /// 璋冪敤涓氬姟瀹氫箟鐨勫瓨鍌ㄨ繃绋嬪皢MES鏁版嵁鎵撳寘缁橢RP
+        /// 鏍规嵁keyMeth锛堟搷浣滄柟娉曪級鍜宨dtype鍐冲畾杩斿洖鏁版嵁缁撴瀯
+        /// </remarks>
         private string GetErpParam(dynamic model)
         {
             string keyGuid = model.keyGuid;
@@ -290,19 +445,20 @@
             string keyChild = model.keyChild;
             string keyMeth = model.keyMeth;
             string keyNo = model.keyNo;
-            string idtype = model.idtype;//杩欎釜浠呬粎鏄洿鏂板伐鍗曠姸鎬佺殑鏃跺�欐湁
-
+            string idtype = model.idtype; // 浠呭湪鏇存柊宸ュ崟鐘舵�佹椂浣跨敤
             if (keyMeth.ToUpper() == "delete".ToUpper())
+                // 鍒犻櫎鎿嶄綔鏃犻渶鍚慐RP鎺ㄩ�佹暟鎹紝鍙渶杩斿洖绌轰覆
                 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()),
+                };
+                // 璋冪敤涓氬姟瀹氫箟鐨勫瓨鍌ㄨ繃绋嬶紝灏哅ES鏁版嵁鎵撳寘缁橢RP
                 dset = DbHelperSQL.RunProcedure(keyProduce, parameters, "0");
                 if (dset == null)
                     return "";
@@ -310,53 +466,69 @@
                     return "";
                 if (dset.Tables[0].Rows.Count <= 0)
                     return "";
-                //杩欐槸鏅�氱殑鎺ュ彛
+                // 甯歌鎺ュ彛澶勭悊閫昏緫
                 if (string.IsNullOrEmpty(idtype))
                 {
+                    // 甯歌鍑哄弬锛氱涓�寮犺〃鏄富鏁版嵁锛岀浜屽紶琛紙鑻ュ瓨鍦級鏄瓙琛ㄩ泦鍚�
                     string _mesGuid = dset.Tables[0].Rows[0][0].ToString();
                     dynamic _datajson = new ExpandoObject();
                     if (dset.Tables.Count > 1)
                     {
-                        //杩欐槸杩欐槸鏅�氱殑鎺ュ彛閲岀殑缁撴锛岀粨鏋勫拰鍏跺畠涓嶄竴鏍�
-                        if (keyMeth.ToLower() == "toclose".ToLower() || keyMeth.ToLower() == "closure".ToLower() || keyMeth.ToLower() == "unfinish")
+                        // 澶氳〃杩斿洖鏃讹紝闇�瑕佹妸瀛愯〃闆嗗悎鎸傚埌datajson涓�
+                        // 缁撴鎿嶄綔鐨勭粨鏋勪笌鍏朵粬涓嶄竴鏍凤紝鐗规畩澶勭悊
+                        if (keyMeth.ToLower() == "toclose".ToLower() ||
+                            keyMeth.ToLower() == "closure".ToLower() ||
+                            keyMeth.ToLower() == "unfinish")
                         {
                             _datajson = dset.Tables[1].Rows[0].RowToDynamic();
                         }
                         else
                         {
                             _datajson = dset.Tables[0].Rows[0].RowToDynamic();
-                            List<dynamic> _lst = dset.Tables[1].TableToDynamicList();
-                            ((IDictionary<string, object>)_datajson)[keyChild] = _lst;
+                            List<dynamic> _lst =
+                                dset.Tables[1].TableToDynamicList();
+                            ((IDictionary<string, object>)_datajson)[keyChild] =
+                                _lst;
                         }
                     }
-                    var _obj = new
+                    else if (dset.Tables.Count == 1)
                     {
-                        mesid = _mesGuid,
-                        taskname = keyTaskName,
-                        optype = keyMeth,
-                        datajson = JsonConvert.SerializeObject(_datajson),
-                    };
-                    return JsonConvert.SerializeObject(_obj);
+                        _datajson = dset.Tables[0].Rows[0].RowToDynamic();
+                    }
+
+                    // var _obj = new
+                    // {
+                    //     mesid = _mesGuid,
+                    //     taskname = keyTaskName,
+                    //     optype = keyMeth,
+                    //     datajson = JsonConvert.SerializeObject(_datajson),
+                    // };
+                    // return JsonConvert.SerializeObject(_obj);
+                    return JsonConvert.SerializeObject(_datajson);
                 }
-                //杩欐槸璁㈠崟鍥炰紶鏍囪瘑
+
+                // 璁㈠崟鍥炰紶鏍囪瘑澶勭悊閫昏緫锛堝甫idtype锛�
                 List<dynamic> _datajson22 = new List<dynamic>();
                 dynamic _ob = new ExpandoObject();
                 _ob.ENTRY = dset.Tables[0].TableToDynamicList();
                 _datajson22.Add(_ob);
-                var _obj22 = new
-                {
-                    taskname = keyTaskName,
-                    idtype = idtype,
-                    datajson = JsonConvert.SerializeObject(_datajson22),
-                };
-                return JsonConvert.SerializeObject(_obj22);
+                // var _obj22 = new
+                // {
+                //     taskname = keyTaskName,
+                //     idtype = idtype,
+                //     datajson = JsonConvert.SerializeObject(_datajson22),
+                // };
+                // return JsonConvert.SerializeObject(_obj22);
+                return JsonConvert.SerializeObject(_datajson22);
             }
             catch (Exception ex)
             {
+                // 璁板綍ERP鏁版嵁杞崲寮傚父锛屼究浜庡畾浣嶅瓨鍌ㄨ繃绋嬫垨搴忓垪鍖栭棶棰�
                 Gs.Toolbox.LogHelper.Debug(this.ToString(), ex.Message);
                 throw ex;
             }
         }
+
         #endregion
 
 

--
Gitblit v1.9.3