From 94d0b18fa47a92a1cb4d1fef4520d35ef2c2c322 Mon Sep 17 00:00:00 2001
From: wbc <2597324127@qq.com>
Date: 星期二, 16 十二月 2025 21:56:49 +0800
Subject: [PATCH] 产能排产相关后端更新

---
 WebApi/Gs.Sys/Services/FmController.cs | 1248 +++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 702 insertions(+), 546 deletions(-)

diff --git a/WebApi/Gs.Sys/Services/FmController.cs b/WebApi/Gs.Sys/Services/FmController.cs
index 03165bf..447358a 100644
--- a/WebApi/Gs.Sys/Services/FmController.cs
+++ b/WebApi/Gs.Sys/Services/FmController.cs
@@ -2,7 +2,6 @@
 using System.Data;
 using System.Data.SqlClient;
 using System.Dynamic;
-using System.Text;
 using Gs.Toolbox;
 using Gs.Toolbox.ApiCore.Abstract.Mvc;
 using Gs.Toolbox.ApiCore.Common.Mvc;
@@ -13,61 +12,590 @@
 using Newtonsoft.Json.Linq;
 using static Gs.Toolbox.UtilityHelper;
 
-namespace Gs.Sys.Services;
-
-[ApiGroup(ApiGroupNames.FM)]
-public class FmController : IRomteService
+namespace Gs.Sys.Services
 {
-    private readonly IHttpContextAccessor _http;
-    private readonly string _userCode, _userGuid, _orgFids;
-
-    public FmController(IHttpContextAccessor httpContextAccessor)
-    {
-        _http = httpContextAccessor;
-        (_userCode, _userGuid, _orgFids) =
-            GetUserGuidAndOrgGuid(_http);
-    }
-
-    private int? chkAdmin()
-    {
-        int? isAdmin = 0;
-        var _sb = new StringBuilder();
-        _sb.Append("select count(1) from [dbo].[SYS_USER] where GUID='" +
-                   _userGuid + "' and  IS_SYS=1");
-        var _obj = DbHelperSQL.GetSingle(_sb.ToString());
-        if (_obj == null)
-            isAdmin = 0;
-        else
-            isAdmin = ToInt(_obj.ToString());
-        return isAdmin;
-    }
-
-    #region 鐗堥潰
-
     /// <summary>
-    ///     澧炲姞
+    /// 琛ㄥ崟绠$悊鎺у埗鍣�
+    /// 璐熻矗绠$悊鍓嶇琛ㄥ崟鐨刄I甯冨眬閰嶇疆锛堟爣鍑嗙増/涓汉鐗堬級銆丒RP鏁版嵁鍚屾鎺ㄩ�併�佸姩鎬佹煡璇㈤厤缃瓑鍔熻兘
     /// </summary>
-    /// <param name="model"></param>
-    /// <returns></returns>
-    [RequestMethod(RequestMethods.POST)]
-    public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
+    [ApiGroup(ApiGroupNames.FM)]
+    public class FmController : IRomteService
     {
-        var applyUserGuid = "";
-        string formPath = model.formPath;
-        int intType = model.intType;
-        dynamic m = new ExpandoObject();
-        m.outMsg = "";
-        var SQLStringList = new Hashtable();
-        var _groupGuid = Guid.NewGuid().ToString();
-        //鍙湁瓒呯骇绠$悊鍛樻潈闄�
-        if (intType == 1 || intType == 3)
+        private readonly IHttpContextAccessor _http;
+        /// <summary>
+        /// 褰撳墠鐢ㄦ埛缂栫爜
+        /// </summary>
+        private readonly string _userCode;
+        /// <summary>
+        /// 褰撳墠鐢ㄦ埛GUID
+        /// </summary>
+        private readonly string _userGuid;
+        /// <summary>
+        /// 褰撳墠鐢ㄦ埛鎵�灞炵粍缁嘑ID璺緞
+        /// </summary>
+        private readonly string _orgFids;
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁帮紝浠嶩TTP涓婁笅鏂囦腑鎻愬彇褰撳墠鐢ㄦ埛淇℃伅
+        /// </summary>
+        /// <param name="httpContextAccessor">HTTP涓婁笅鏂囪闂櫒</param>
+        public FmController(IHttpContextAccessor httpContextAccessor)
         {
+            _http = httpContextAccessor;
+            (_userCode, _userGuid, _orgFids) =
+                GetUserGuidAndOrgGuid(_http);
+        }
+
+        #region 甯冨眬閰嶇疆
+
+        /// <summary>
+        /// 淇濆瓨鎴栨竻绌鸿〃鍗曞竷灞�閰嶇疆
+        /// </summary>
+        /// <param name="model">鍖呭惈浠ヤ笅瀛楁鐨勫姩鎬佸璞★細
+        /// - formPath: 琛ㄥ崟璺緞鏍囪瘑
+        /// - intType: 鎿嶄綔绫诲瀷锛�1=淇濆瓨鏍囧噯鐗堬紝2=淇濆瓨涓汉鐗堬紝3=娓呯┖鏍囧噯鐗堬紝4=娓呯┖涓汉鐗堬級
+        /// - xmlList: UI鎺т欢閰嶇疆鍒楄〃锛圝Array鏍煎紡锛夛紝姣忎釜鍖呭惈idName銆乮dXml銆乮dType銆乻plitterPosition
+        /// </param>
+        /// <returns>杩斿洖鎿嶄綔缁撴灉锛屽寘鍚玱utMsg娑堟伅瀛楁</returns>
+        /// <remarks>
+        /// 鏍囧噯鐗堝竷灞�锛氭墍鏈夌敤鎴峰叡浜紝闇�瑕佺鐞嗗憳鏉冮檺鎿嶄綔
+        /// 涓汉鐗堝竷灞�锛氱敤鎴风鏈夛紝浼樺厛绾ч珮浜庢爣鍑嗙増
+        /// 甯冨眬鏁版嵁瀛樺偍鍦‵M_LAYOUT琛紝閫氳繃groupGuid杩涜鎵归噺鍏宠仈
+        /// </remarks>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
+        {
+            string applyUserGuid = "";
+            string formPath = model.formPath;
+            int intType = model.intType;
+            // intType鍚箟锛�1=淇濆瓨鏍囧噯鐗堬紝2=淇濆瓨涓汉鐗堬紝3=娓呯┖鏍囧噯鐗堬紝4=娓呯┖涓汉鐗�
+            dynamic m = new ExpandoObject();
+            m.outMsg = "";
+            // 鏀堕泦鎵归噺SQL璇彞锛岀敤浜庝簨鍔℃�ф墽琛屼繚瀛樺竷灞�鎿嶄綔
+            Hashtable SQLStringList = new Hashtable();
+            string _groupGuid = Guid.NewGuid().ToString();
+            // 鏍囧噯鐗堝竷灞�鎿嶄綔闇�瑕佽秴绾х鐞嗗憳鏉冮檺楠岃瘉
+            if (intType == 1 || intType == 3)
+            {
+                // 楠岃瘉褰撳墠鐢ㄦ埛鏄惁鍏锋湁绠$悊鍛樻潈闄愶紝浠ユ搷浣滄爣鍑嗙増甯冨眬
+                int? isAdmin = 0;
+                try
+                {
+                    isAdmin = chkAdmin();
+                    if (isAdmin <= 0)
+                    {
+                        m.outMsg = "浣犱笉鏄鐞嗗憳锛屾搷浣滃け璐ワ紒";
+                        return ReturnDto<dynamic>.QuickReturn(m,
+                            ReturnCode.Default, "鎿嶄綔鎴愬姛锛�");
+                    }
+                }
+                catch (Exception ex)
+                {
+                    Gs.Toolbox.LogHelper.Debug(this.ToString(),
+                        "EditModel isAdmin error锛�" + ex.Message);
+                }
+            }
+
+            // 淇濆瓨鏍囧噯鐗堝竷灞�锛氭竻闄ゆ棫鐨勬爣鍑嗙増鏁版嵁锛宎pplyUserGuid涓簄ull琛ㄧず鍏ㄥ眬鍏变韩
+            if (intType == 1)
+            {
+                // 淇濈暀鏂版壒娆″竷灞�閰嶇疆锛屽垹闄ゅ悓涓�琛ㄥ崟璺緞涓嬬殑鏃ф爣鍑嗙増甯冨眬
+                applyUserGuid = null;
+                Gs.Toolbox.DbHelperSQL.ExecuteSql(
+                    "delete from [FM_LAYOUT] where groupGuid<>'" + _groupGuid +
+                    "' and [formPath]=@formPath and applyUserGuid is null",
+                    new SqlParameter[]
+                        { new SqlParameter("@formPath", formPath) });
+                // SQLStringList.Add("delete from [FM_LAYOUT] where groupGuid<>'" + _groupGuid + "' and [formPath]=@formPath and applyUserGuid is null", new SqlParameter[] { new SqlParameter("@formPath", formPath) });
+            }
+
+            // 淇濆瓨涓汉鐗堝竷灞�锛氭竻闄ゅ綋鍓嶇敤鎴锋棫鐨勪釜浜虹増鏁版嵁锛宎pplyUserGuid涓虹敤鎴稧UID
+            if (intType == 2)
+            {
+                // 淇濆瓨璋冪敤鑰呯殑涓汉甯冨眬鍓湰锛岄�氳繃鐢ㄦ埛GUID闄愬畾浣滅敤鍩�
+                applyUserGuid = _userGuid;
+                Gs.Toolbox.DbHelperSQL.ExecuteSql(
+                    "delete from [FM_LAYOUT] where  groupGuid<>'" + _groupGuid +
+                    "' and [formPath]=@formPath and applyUserGuid =@applyUserGuid",
+                    new SqlParameter[]
+                    {
+                        new SqlParameter("@formPath", formPath),
+                        new SqlParameter("@applyUserGuid", applyUserGuid)
+                    });
+                //SQLStringList.Add("delete from [FM_LAYOUT] where  groupGuid<>'" + _groupGuid + "' and [formPath]=@formPath and applyUserGuid =@applyUserGuid", new SqlParameter[] { new SqlParameter("@formPath", formPath), new SqlParameter("@applyUserGuid", applyUserGuid) });
+            }
+
+            // 娓呯┖鏍囧噯鐗堝竷灞�锛氱鐞嗗憳鍙互瀹屽叏娓呴櫎鍏变韩鐨勬爣鍑嗙増甯冨眬
+            if (intType == 3)
+            {
+                // 绠$悊鍛樺彲浠ュ畬鍏ㄥ垹闄ゅ叡浜殑鏍囧噯鐗堝竷灞�锛屾仮澶嶅埌鏈厤缃姸鎬�
+                applyUserGuid = null;
+                SQLStringList.Add(
+                    "delete from [FM_LAYOUT] where [formPath]=@formPath and applyUserGuid is null",
+                    new SqlParameter[]
+                        { new SqlParameter("@formPath", formPath) });
+                Gs.Toolbox.DbHelperSQL.ExecuteSqlTranRtn(SQLStringList);
+                m.outMsg = "娓呯┖鏍囧噯鐗堥厤缃垚鍔燂紒";
+                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
+                    "鎿嶄綔鎴愬姛锛�");
+            }
+
+            // 娓呯┖涓汉鐗堝竷灞�锛氬垹闄ゅ綋鍓嶇敤鎴风殑涓汉鐗堝竷灞�锛屼繚鐣欐爣鍑嗙増涓嶅彈褰卞搷
+            if (intType == 4)
+            {
+                // 绉婚櫎璋冪敤鑰呯殑涓汉甯冨眬锛屼繚鐣欏叡浜爣鍑嗙増涓嶅彉
+                applyUserGuid = _userGuid;
+                SQLStringList.Add(
+                    "delete from [FM_LAYOUT] where [formPath]=@formPath and applyUserGuid =@applyUserGuid",
+                    new SqlParameter[]
+                    {
+                        new SqlParameter("@formPath", formPath),
+                        new SqlParameter("@applyUserGuid", applyUserGuid)
+                    });
+                Gs.Toolbox.DbHelperSQL.ExecuteSqlTranRtn(SQLStringList);
+                m.outMsg = "娓呯┖涓汉鐗堥厤缃垚鍔燂紒";
+                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
+                    "鎿嶄綔鎴愬姛锛�");
+            }
+
+            // 閬嶅巻鎵�鏈塙I鎺т欢閰嶇疆锛坓ridview銆乴ayout銆亁ml绛夛級锛屾壒閲忔彃鍏ユ暟鎹簱
+            JArray jArray = model.xmlList;
+            try
+            {
+                foreach (var jsonitem in jArray)
+                {
+                    JObject job = (JObject)jsonitem;
+                    if (job["idName"] != null)
+                    {
+                        // 涓烘瘡涓猆I鎺т欢锛堢綉鏍笺�佸竷灞�闈㈡澘銆佸垎鍓插櫒绛夛級鏋勫缓鎻掑叆璇彞
+                        string idName = job["idName"].ToString();
+                        string idXml = job["idXml"].ToString();
+                        string idType = job["idType"].ToString();
+                        string _splitterPosition =
+                            job["splitterPosition"].ToString();
+                        string splitterPosition =
+                            string.IsNullOrEmpty(_splitterPosition)
+                                ? "0"
+                                : _splitterPosition;
+                        System.Text.StringBuilder _sql =
+                            new System.Text.StringBuilder();
+                        _sql.Append(
+                            " INSERT INTO [dbo].[FM_LAYOUT] ([guid] ,[applyUserGuid] ,[formPath] ,[controlId],[controlHeight],[lastUpdateBy],[lastUpdateDate],controlXml,controlType,groupGuid,splitterPosition)");
+                        _sql.Append(
+                            "values(newid(),@applyUserGuid,@formPath,@controlId,@controlHeight,@lastUpdateBy,getdate(),@controlXml,'" +
+                            idType + "','" + _groupGuid + "'," +
+                            splitterPosition + ")");
+                        SQLStringList.Add(_sql, new SqlParameter[]
+                        {
+                            new SqlParameter("@formPath", formPath),
+                            new SqlParameter("@controlId", idName),
+                            new SqlParameter("@controlHeight", "0"),
+                            new SqlParameter("@lastUpdateBy", _userCode),
+                            new SqlParameter("@applyUserGuid", applyUserGuid),
+                            new SqlParameter("@controlXml", idXml)
+                        });
+                    }
+                }
+
+                // 浜嬪姟鎬ф墽琛屾墍鏈塖QL璇彞锛岀‘淇濇暟鎹竴鑷存��
+                Gs.Toolbox.DbHelperSQL.ExecuteSqlTranRtn(SQLStringList);
+                m.outMsg = "淇濆瓨" + (intType == 1 ? "鏍囧噯鐗�" : "涓汉鐗�") + "閰嶇疆鎴愬姛锛�";
+                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
+                    "鎿嶄綔鎴愬姛锛�");
+            }
+            catch (Exception ex)
+            {
+                // 鎹曡幏淇濆瓨甯冨眬閰嶇疆鏃剁殑寮傚父锛屽苟灏嗕俊鎭繑鍥炵粰鍓嶇
+                m.outMsg = "鎿嶄綔澶辫触:" + ex.Message;
+                Gs.Toolbox.LogHelper.Debug(this.ToString(),
+                    "EditModel error锛�" + ex.Message);
+            }
+
+            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
+                "鎿嶄綔鎴愬姛锛�");
+        }
+
+
+        /// <summary>
+        /// 璇诲彇琛ㄥ崟甯冨眬閰嶇疆锛堟爣鍑嗙増+涓汉鐗堬級
+        /// </summary>
+        /// <param name="model">鍖呭惈formPath瀛楁鐨勫姩鎬佸璞�</param>
+        /// <returns>杩斿洖涓や釜鍒楄〃锛歭ist涓烘爣鍑嗙増甯冨眬鏁版嵁锛宭ist2涓哄綋鍓嶇敤鎴风殑涓汉鐗堝竷灞�鏁版嵁</returns>
+        /// <remarks>
+        /// 閫氳繃瀛樺偍杩囩▼fm_get_layout鍚屾椂杩斿洖鍏变韩甯冨眬鍜岀敤鎴蜂釜浜哄竷灞�瑕嗙洊
+        /// 鍓嶇浼樺厛浣跨敤涓汉鐗堝竷灞�锛屽鏃犲垯浣跨敤鏍囧噯鐗�
+        /// </remarks>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
+        {
+            string formPath = model.formPath.ToString();
+            dynamic m = new ExpandoObject();
+            m.list = new List<dynamic>();
+            m.list2 = new List<dynamic>();
+            SqlParameter[] parameters =
+            {
+                new("@formPath", formPath),
+                new("@userGuid", _userGuid),
+            };
+            var dset = new DataSet();
+            try
+            {
+                // 瀛樺偍杩囩▼杩斿洖鏍囧噯鐗堝竷灞�鏁版嵁锛圱able[0]锛夊拰鐢ㄦ埛涓汉甯冨眬蹇収锛圱able[1]锛�
+                dset = DbHelperSQL.RunProcedure("[fm_get_layout]", parameters,
+                    "0");
+                if (dset != null && dset.Tables.Count > 0
+                   )
+                {
+                    // Table[0]琛ㄧず鏍囧噯鐗堝畾涔夛紱Table[1]淇濆瓨鐢ㄦ埛鐨勪釜浜虹増甯冨眬蹇収
+                    var _tb = dset.Tables[0].TableToDynamicList();
+                    m.list = _tb;
+                    var _tb2 = dset.Tables[1].TableToDynamicList();
+                    m.list2 = _tb2;
+                }
+            }
+            catch (Exception ex)
+            {
+                // 璁板綍璇诲彇澶辫触浣嗙户缁繑鍥為粯璁ょ粨鏋滅粰璋冪敤鑰�
+                LogHelper.Debug(ToString(), ex.Message);
+            }
+
+            if (m != null)
+                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
+                    "璇诲彇鎴愬姛锛�");
+            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
+                "璇诲彇澶辫触锛�");
+        }
+
+
+        /// <summary>
+        /// 鏍规嵁鐗堟湰璇诲彇搴忓垪鍖栫殑甯冨眬瀛楃涓�
+        /// </summary>
+        /// <param name="model">鍖呭惈formPath瀛楁鐨勫姩鎬佸璞�</param>
+        /// <returns>杩斿洖鏈�鏂颁繚瀛樼増鏈紙鏍囧噯鐗堟垨涓汉鐗堬級鐨勫簭鍒楀寲甯冨眬瀛楃涓�</returns>
+        /// <remarks>
+        /// 閫氳繃瀛樺偍杩囩▼fm_get_layout_ver鑾峰彇鏈�鏂板竷灞�蹇収
+        /// 鏍规嵁formPath鍜岀敤鎴蜂綔鐢ㄥ煙杩斿洖搴忓垪鍖栫殑甯冨眬瀛楃涓�
+        /// </remarks>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<string> GetModelByVersion([FromBody] dynamic model)
+        {
+            string formPath = model.formPath.ToString();
+            string strMsg = "";
+            SqlParameter[] parameters =
+            {
+                new("@formPath", formPath),
+                new("@userGuid", _userGuid),
+            };
+            var dset = new DataSet();
+            try
+            {
+                // 瀛樺偍杩囩▼鏆撮湶鍩轰簬formPath鍜岀敤鎴蜂綔鐢ㄥ煙鐨勬渶鏂板簭鍒楀寲甯冨眬蹇収
+                dset = DbHelperSQL.RunProcedure("[fm_get_layout_ver]",
+                    parameters, "0");
+                if (dset != null && dset.Tables.Count > 0
+                   )
+                {
+                    strMsg = dset.Tables[0].Rows[0][0].ToString();
+                }
+            }
+            catch (Exception ex)
+            {
+                // 鎹曡幏璇诲彇甯冨眬鐗堟湰澶辫触鐨勪笂涓嬫枃淇℃伅锛屽府鍔╄瘖鏂幆澧冪壒瀹氶棶棰�
+                LogHelper.Debug(ToString(),
+                    ex.Message + ",formPath:" + formPath + ",_userGuid:" +
+                    _userGuid);
+            }
+
+            return ReturnDto<string>.QuickReturn(strMsg, ReturnCode.Success,
+                "璇诲彇鎴愬姛锛�");
+        }
+
+        #endregion
+
+        /// <summary>
+        /// 妫�鏌ュ綋鍓嶇敤鎴锋槸鍚︿负绠$悊鍛�
+        /// </summary>
+        /// <returns>绠$悊鍛樿繑鍥�1锛岄潪绠$悊鍛樿繑鍥�0</returns>
+        /// <remarks>浣跨敤SYS_USER.IS_SYS鏍囧織鍒ゆ柇璋冪敤鑰呮槸鍚︽嫢鏈夌鐞嗗憳鏉冮檺</remarks>
+        private int? chkAdmin()
+        {
+            int? isAdmin = 0;
+            System.Text.StringBuilder _sb = new System.Text.StringBuilder();
+            // 閫氳繃SYS_USER.IS_SYS鏍囧織鍒ゆ柇璋冪敤鑰呮槸鍚︽嫢鏈夌鐞嗗憳鏉冮檺
+            _sb.Append("select count(1) from [dbo].[SYS_USER] where GUID='" +
+                       _userGuid + "' and  IS_SYS=1");
+            object _obj = Gs.Toolbox.DbHelperSQL.GetSingle(_sb.ToString());
+            if (_obj == null)
+            {
+                isAdmin = 0;
+            }
+            else
+                isAdmin = Gs.Toolbox.UtilityHelper.ToInt(_obj.ToString());
+
+            return isAdmin;
+        }
+
+        #region 鍙戦�乪rp鏂扮増鏈�
+
+        /// <summary>
+        /// 鍙戦�佹暟鎹埌ERP绯荤粺
+        /// </summary>
+        /// <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)
+        {
+            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; // 浠呭湪鏇存柊宸ュ崟鐘舵�佹椂浣跨敤
+                string keyUrl = model.keyUrl;
+                if (string.IsNullOrEmpty(idtype))
+                {
+                    // 甯歌鎺ュ彛锛氭寜鎿嶄綔绫诲瀷鎺ㄩ�佸崟鏉′笟鍔℃暟鎹�
+                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson,
+                        keyUserGuid, keyGuid, keyNo, 0, keyUrl);
+                }
+                else
+                {
+                    // 甯dtype鐨勮姹傜敤浜庣壒娈婃祦绋嬶紙濡傚叧闂�佸弽鍏抽棴锛夛紝ERP闇�瑕侀澶栫殑鐘舵�佹爣璁�
+                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson,
+                        keyUserGuid, keyGuid, keyNo, 2, keyUrl);
+                }
+            }
+            catch (Exception ex)
+            {
+                // 璁板綍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鍙傛暟锛堝唴閮ㄦ柟娉曪級
+        /// </summary>
+        /// <param name="model">鍖呭惈涓氬姟鍙傛暟鐨勫姩鎬佸璞�</param>
+        /// <returns>JSON鏍煎紡鐨凟RP鍙傛暟瀛楃涓�</returns>
+        /// <remarks>
+        /// 璋冪敤涓氬姟瀹氫箟鐨勫瓨鍌ㄨ繃绋嬪皢MES鏁版嵁鎵撳寘缁橢RP
+        /// 鏍规嵁keyMeth锛堟搷浣滄柟娉曪級鍜宨dtype鍐冲畾杩斿洖鏁版嵁缁撴瀯
+        /// </remarks>
+        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())
+                // 鍒犻櫎鎿嶄綔鏃犻渶鍚慐RP鎺ㄩ�佹暟鎹紝鍙渶杩斿洖绌轰覆
+                return "";
+            try
+            {
+                System.Data.DataSet dset = new System.Data.DataSet();
+                SqlParameter[] parameters =
+                {
+                    new("@inOrderGuid", keyGuid),
+                    new("@inEdtUserGuid", keyUserGuid),
+                    new("@keyMeth", keyMeth.ToLower()),
+                };
+                // 璋冪敤涓氬姟瀹氫箟鐨勫瓨鍌ㄨ繃绋嬶紝灏哅ES鏁版嵁鎵撳寘缁橢RP
+                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)
+                    {
+                        // 澶氳〃杩斿洖鏃讹紝闇�瑕佹妸瀛愯〃闆嗗悎鎸傚埌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;
+                        }
+                    }
+                    else if (dset.Tables.Count == 1)
+                    {
+                        _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);
+                return JsonConvert.SerializeObject(_datajson22);
+            }
+            catch (Exception ex)
+            {
+                // 璁板綍ERP鏁版嵁杞崲寮傚父锛屼究浜庡畾浣嶅瓨鍌ㄨ繃绋嬫垨搴忓垪鍖栭棶棰�
+                Gs.Toolbox.LogHelper.Debug(this.ToString(), ex.Message);
+                throw ex;
+            }
+        }
+
+        #endregion
+
+
+        #region 鏌ヨ
+
+        /// <summary>
+        /// 璇诲彇鏌ヨ閰嶇疆
+        /// </summary>
+        /// <param name="model">鍖呭惈formPath鍜宭ist锛堝垪瀹氫箟鏁扮粍锛夌殑鍔ㄦ�佸璞�</param>
+        /// <returns>杩斿洖4涓垪琛細list=鏌ヨ鏉′欢閰嶇疆锛宭ist2=缁撴灉瀛楁閰嶇疆锛宭ist3=鎺掑簭閰嶇疆锛宭ist4=鍏朵粬閰嶇疆</returns>
+        /// <remarks>
+        /// 灏嗗垪鍚嶅拰鏄剧ず鏍囬鎷兼垚"~"鍒嗛殧鐨勫弬鏁帮紝浼犵粰瀛樺偍杩囩▼fm_set_query鐢熸垚鏌ヨ閰嶇疆
+        /// 瀛樺偍杩囩▼杩斿洖澶氬紶閰嶇疆琛ㄧ敤浜庡姩鎬佹煡璇㈡瀯寤�
+        /// </remarks>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<ExpandoObject> GetQuery([FromBody] dynamic model)
+        {
+            dynamic m = new ExpandoObject();
+            m.list = new List<dynamic>();
+            m.list2 = new List<dynamic>();
+            m.list3 = new List<dynamic>();
+            m.list4 = new List<dynamic>();
+            var _split = "|";
+            string formPath = model.formPath.ToString();
+            System.Text.StringBuilder _sb = new System.Text.StringBuilder();
+            foreach (var _obj in model.list)
+            {
+                var _line =
+                        _obj.colName + _split
+                                     + _obj.colCap + _split
+                    ;
+                if (_sb.Length > 0)
+                    _sb.Append("~");
+                _sb.Append(_line);
+            }
+
+            ;
+            var lst = new List<dynamic>();
+            // 灏嗗垪鍚嶅拰鏄剧ず鏍囬鎷兼垚"~"鍒嗛殧鐨勫弬鏁帮紝浼犵粰瀛樺偍杩囩▼鐢熸垚鏌ヨ閰嶇疆
+            SqlParameter[] parameters =
+            {
+                new("@formPath", formPath),
+                new("@colArray", _sb.ToString()),
+            };
+            var dset = new DataSet();
+            try
+            {
+                // fm_set_query浼氳繑鍥炴煡璇㈡潯浠躲�佺粨鏋滃瓧娈点�佹帓搴忕瓑澶氬紶閰嶇疆琛�
+                dset = DbHelperSQL.RunProcedure("[fm_set_query]", parameters,
+                    "0");
+                if (dset != null && dset.Tables.Count > 0)
+                {
+                    m.list = dset.Tables[0].TableToDynamicList();
+                    m.list2 = dset.Tables[1].TableToDynamicList();
+                    m.list3 = dset.Tables[2].TableToDynamicList();
+                    m.list4 = dset.Tables[3].TableToDynamicList();
+                }
+            }
+            catch (Exception ex)
+            {
+                // 璁板綍鏌ヨ閰嶇疆璇诲彇寮傚父
+                LogHelper.Debug(ToString(), ex.Message);
+            }
+
+            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
+                "璇诲彇鎴愬姛锛�");
+        }
+
+        /// <summary>
+        /// 缂栬緫鏌ヨ鏁版嵁婧愯〃閰嶇疆
+        /// </summary>
+        /// <param name="model">鍖呭惈formPath鍜宭ist锛堣〃鍚嶆暟缁勶級鐨勫姩鎬佸璞�</param>
+        /// <returns>鎿嶄綔缁撴灉锛屽寘鍚玱utMsg娑堟伅</returns>
+        /// <remarks>
+        /// 浠呯鐞嗗憳鍙搷浣滐紝鐢ㄤ簬閰嶇疆鏌ヨ鐨勬暟鎹潵婧愯〃
+        /// 鍏堟竻绌哄師鏈夐厤缃紝鍐嶆壒閲忔彃鍏ユ渶鏂拌〃閰嶇疆鍒癋M_QUERY_TABLE
+        /// </remarks>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<ExpandoObject> EditQuery([FromBody] dynamic model)
+        {
+            dynamic m = new ExpandoObject();
+            m.outMsg = "";
+            string formPath = model.formPath;
+            ArrayList arrayList = new ArrayList();
+            string _groupGuid = Guid.NewGuid().ToString();
             int? isAdmin = 0;
             try
             {
                 isAdmin = chkAdmin();
                 if (isAdmin <= 0)
                 {
+                    // 鏌ヨ閰嶇疆浠呴檺绠$悊鍛樻搷浣滐紝浠ヤ繚鎶ゅ叡浜厓鏁版嵁
                     m.outMsg = "浣犱笉鏄鐞嗗憳锛屾搷浣滃け璐ワ紒";
                     return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                         "鎿嶄綔鎴愬姛锛�");
@@ -75,519 +603,147 @@
             }
             catch (Exception ex)
             {
-                LogHelper.Debug(ToString(),
+                // 璁板綍绠$悊鍛樻潈闄愭鏌ュ紓甯�
+                Gs.Toolbox.LogHelper.Debug(this.ToString(),
                     "EditModel isAdmin error锛�" + ex.Message);
             }
-        }
 
-        //淇濆瓨鏍囧噯鐗�
-        if (intType == 1)
-        {
-            applyUserGuid = null;
-            DbHelperSQL.ExecuteSql(
-                "delete from [FM_LAYOUT] where groupGuid<>'" + _groupGuid +
-                "' and [formPath]=@formPath and applyUserGuid is null",
-                new SqlParameter("@formPath", formPath));
-            // SQLStringList.Add("delete from [FM_LAYOUT] where groupGuid<>'" + _groupGuid + "' and [formPath]=@formPath and applyUserGuid is null", new SqlParameter[] { new SqlParameter("@formPath", formPath) });
-        }
-
-        //淇濆瓨涓汉鐗堟湰
-        if (intType == 2)
-        {
-            applyUserGuid = _userGuid;
-            DbHelperSQL.ExecuteSql(
-                "delete from [FM_LAYOUT] where  groupGuid<>'" + _groupGuid +
-                "' and [formPath]=@formPath and applyUserGuid =@applyUserGuid",
-                new SqlParameter("@formPath", formPath),
-                new SqlParameter("@applyUserGuid", applyUserGuid));
-            //SQLStringList.Add("delete from [FM_LAYOUT] where  groupGuid<>'" + _groupGuid + "' and [formPath]=@formPath and applyUserGuid =@applyUserGuid", new SqlParameter[] { new SqlParameter("@formPath", formPath), new SqlParameter("@applyUserGuid", applyUserGuid) });
-        }
-
-        //娓呯┖鏍囧噯鐗堟湰
-        if (intType == 3)
-        {
-            applyUserGuid = null;
-            SQLStringList.Add(
-                "delete from [FM_LAYOUT] where [formPath]=@formPath and applyUserGuid is null",
-                new[] { new SqlParameter("@formPath", formPath) });
-            DbHelperSQL.ExecuteSqlTranRtn(SQLStringList);
-            m.outMsg = "娓呯┖鏍囧噯鐗堥厤缃垚鍔燂紒";
-            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
-                "鎿嶄綔鎴愬姛锛�");
-        }
-
-        //娓呯┖涓汉鐗堟湰
-        if (intType == 4)
-        {
-            applyUserGuid = _userGuid;
-            SQLStringList.Add(
-                "delete from [FM_LAYOUT] where [formPath]=@formPath and applyUserGuid =@applyUserGuid",
-                new[]
+            try
+            {
+                // 鍏堟竻绌哄師鏈夋煡璇㈡潵婧愯〃锛屽啀鎵归噺鎻掑叆鏈�鏂伴厤缃�
+                Gs.Toolbox.DbHelperSQL.ExecuteSql(
+                    "delete from [FM_QUERY_TABLE] where formPath=@formPath ",
+                    new SqlParameter[]
+                        { new SqlParameter("@formPath", formPath) });
+                foreach (var _obj in model.list)
                 {
-                    new SqlParameter("@formPath", formPath),
-                    new SqlParameter("@applyUserGuid", applyUserGuid)
-                });
-            DbHelperSQL.ExecuteSqlTranRtn(SQLStringList);
-            m.outMsg = "娓呯┖涓汉鐗堥厤缃垚鍔燂紒";
-            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
-                "鎿嶄綔鎴愬姛锛�");
-        }
-
-        //杩欐槸鎵�鏈夌殑gridview,lay xml
-        JArray jArray = model.xmlList;
-        try
-        {
-            foreach (var jsonitem in jArray)
-            {
-                var job = (JObject)jsonitem;
-                if (job["idName"] != null)
-                {
-                    var idName = job["idName"].ToString();
-                    var idXml = job["idXml"].ToString();
-                    var idType = job["idType"].ToString();
-                    var _splitterPosition = job["splitterPosition"].ToString();
-                    var splitterPosition =
-                        string.IsNullOrEmpty(_splitterPosition)
-                            ? "0"
-                            : _splitterPosition;
-                    var _sql = new StringBuilder();
-                    _sql.Append(
-                        " INSERT INTO [dbo].[FM_LAYOUT] ([guid] ,[applyUserGuid] ,[formPath] ,[controlId],[controlHeight],[lastUpdateBy],[lastUpdateDate],controlXml,controlType,groupGuid,splitterPosition)");
-                    _sql.Append(
-                        "values(newid(),@applyUserGuid,@formPath,@controlId,@controlHeight,@lastUpdateBy,getdate(),@controlXml,'" +
-                        idType + "','" + _groupGuid + "'," + splitterPosition +
-                        ")");
-                    SQLStringList.Add(_sql, new[]
-                    {
-                        new SqlParameter("@formPath", formPath),
-                        new SqlParameter("@controlId", idName),
-                        new SqlParameter("@controlHeight", "0"),
-                        new SqlParameter("@lastUpdateBy", _userCode),
-                        new SqlParameter("@applyUserGuid", applyUserGuid),
-                        new SqlParameter("@controlXml", idXml)
-                    });
-                }
-            }
-
-            DbHelperSQL.ExecuteSqlTranRtn(SQLStringList);
-            m.outMsg = "淇濆瓨" + (intType == 1 ? "鏍囧噯鐗�" : "涓汉鐗�") + "閰嶇疆鎴愬姛锛�";
-            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
-                "鎿嶄綔鎴愬姛锛�");
-        }
-        catch (Exception ex)
-        {
-            m.outMsg = "鎿嶄綔澶辫触:" + ex.Message;
-            LogHelper.Debug(ToString(), "EditModel error锛�" + ex.Message);
-        }
-
-        //杩欐槸鎵�鏈夌殑
-        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "鎿嶄綔鎴愬姛锛�");
-    }
-
-
-    /// <summary>
-    ///     璇诲彇
-    /// </summary>
-    /// <param name="guid"></param>
-    /// <returns></returns>
-    [RequestMethod(RequestMethods.POST)]
-    public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
-    {
-        string formPath = model.formPath.ToString();
-        dynamic m = new ExpandoObject();
-        m.list = new List<dynamic>();
-        m.list2 = new List<dynamic>();
-        SqlParameter[] parameters =
-        {
-            new("@formPath", formPath),
-            new("@userGuid", _userGuid)
-        };
-        var dset = new DataSet();
-        try
-        {
-            dset = DbHelperSQL.RunProcedure("[fm_get_layout]", parameters, "0");
-            if (dset != null && dset.Tables.Count > 0
-               )
-            {
-                var _tb = dset.Tables[0].TableToDynamicList();
-                m.list = _tb;
-                var _tb2 = dset.Tables[1].TableToDynamicList();
-                m.list2 = _tb2;
-            }
-        }
-        catch (Exception ex)
-        {
-            LogHelper.Debug(ToString(), ex.Message);
-        }
-
-        if (m != null)
-            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
-                "璇诲彇鎴愬姛锛�");
-        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
-            "璇诲彇澶辫触锛�");
-    }
-
-
-    /// <summary>
-    ///     璇诲彇
-    /// </summary>
-    /// <param name="guid"></param>
-    /// <returns></returns>
-    [RequestMethod(RequestMethods.POST)]
-    public ReturnDto<string> GetModelByVersion([FromBody] dynamic model)
-    {
-        string formPath = model.formPath.ToString();
-        var strMsg = "";
-        SqlParameter[] parameters =
-        {
-            new("@formPath", formPath),
-            new("@userGuid", _userGuid)
-        };
-        var dset = new DataSet();
-        try
-        {
-            dset = DbHelperSQL.RunProcedure("[fm_get_layout_ver]", parameters,
-                "0");
-            if (dset != null && dset.Tables.Count > 0
-               )
-                strMsg = dset.Tables[0].Rows[0][0].ToString();
-        }
-        catch (Exception ex)
-        {
-            LogHelper.Debug(ToString(), ex.Message);
-        }
-
-        return ReturnDto<string>.QuickReturn(strMsg, ReturnCode.Success,
-            "璇诲彇鎴愬姛锛�");
-    }
-
-    #endregion
-
-    #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;鍗曟嵁缂栧彿
-        var _rtnInt = 0;
-        var _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; //杩欎釜浠呬粎鏄洿鏂板伐鍗曠姸鎬佺殑鏃跺�欐湁
-            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)
-        {
-            LogHelper.Debug(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
-        {
-            var dset = new 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))
-            {
-                var _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();
-                        var _lst = dset.Tables[1].TableToDynamicList();
-                        ((IDictionary<string, object>)_datajson)[keyChild] =
-                            _lst;
-                    }
+                    System.Text.StringBuilder _sb =
+                        new System.Text.StringBuilder();
+                    _sb.Append(
+                        "INSERT INTO [dbo].[FM_QUERY_TABLE]([guid],[formPath] ,[tableName] ,[lastUpdateBy] ,[lastUpdateDate],[tableOtherName])");
+                    _sb.Append(" values(newid(),'" + formPath + "','" +
+                               _obj.tableName + "','',getdate(),'" +
+                               _obj.tableOtherName + "')");
+                    arrayList.Add(_sb.ToString());
                 }
 
-                var _obj = new
-                {
-                    mesid = _mesGuid,
-                    taskname = keyTaskName,
-                    optype = keyMeth,
-                    datajson = JsonConvert.SerializeObject(_datajson)
-                };
-                return JsonConvert.SerializeObject(_obj);
+                Gs.Toolbox.DbHelperSQL.ExecuteSqlTran(arrayList);
             }
-
-            //杩欐槸璁㈠崟鍥炰紶鏍囪瘑
-            var _datajson22 = new List<dynamic>();
-            dynamic _ob = new ExpandoObject();
-            _ob.ENTRY = dset.Tables[0].TableToDynamicList();
-            _datajson22.Add(_ob);
-            var _obj22 = new
+            catch (Exception ex)
             {
-                taskname = keyTaskName,
-                idtype,
-                datajson = JsonConvert.SerializeObject(_datajson22)
-            };
-            return JsonConvert.SerializeObject(_obj22);
-        }
-        catch (Exception ex)
-        {
-            LogHelper.Debug(ToString(), ex.Message);
-            throw ex;
-        }
-    }
-
-    #endregion
-
-
-    #region 鏌ヨ
-
-    /// <summary>
-    ///     璇诲彇
-    /// </summary>
-    /// <param name="model"></param>
-    /// <returns></returns>
-    [RequestMethod(RequestMethods.POST)]
-    public ReturnDto<ExpandoObject> GetQuery([FromBody] dynamic model)
-    {
-        dynamic m = new ExpandoObject();
-        m.list = new List<dynamic>();
-        m.list2 = new List<dynamic>();
-        m.list3 = new List<dynamic>();
-        m.list4 = new List<dynamic>();
-        var _split = "|";
-        string formPath = model.formPath.ToString();
-        var _sb = new StringBuilder();
-        foreach (var _obj in model.list)
-        {
-            var _line =
-                    _obj.colName + _split
-                                 + _obj.colCap + _split
-                ;
-            if (_sb.Length > 0)
-                _sb.Append("~");
-            _sb.Append(_line);
-        }
-
-        ;
-        var lst = new List<dynamic>();
-        SqlParameter[] parameters =
-        {
-            new("@formPath", formPath),
-            new("@colArray", _sb.ToString())
-        };
-        var dset = new DataSet();
-        try
-        {
-            dset = DbHelperSQL.RunProcedure("[fm_set_query]", parameters, "0");
-            if (dset != null && dset.Tables.Count > 0)
-            {
-                m.list = dset.Tables[0].TableToDynamicList();
-                m.list2 = dset.Tables[1].TableToDynamicList();
-                m.list3 = dset.Tables[2].TableToDynamicList();
-                m.list4 = dset.Tables[3].TableToDynamicList();
-            }
-        }
-        catch (Exception ex)
-        {
-            LogHelper.Debug(ToString(), ex.Message);
-        }
-
-        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "璇诲彇鎴愬姛锛�");
-    }
-
-    /// <summary>
-    ///     缂栬緫琛�
-    /// </summary>
-    /// <param name="model"></param>
-    /// <returns></returns>
-    [RequestMethod(RequestMethods.POST)]
-    public ReturnDto<ExpandoObject> EditQuery([FromBody] dynamic model)
-    {
-        dynamic m = new ExpandoObject();
-        m.outMsg = "";
-        string formPath = model.formPath;
-        var arrayList = new ArrayList();
-        var _groupGuid = Guid.NewGuid().ToString();
-        int? isAdmin = 0;
-        try
-        {
-            isAdmin = chkAdmin();
-            if (isAdmin <= 0)
-            {
-                m.outMsg = "浣犱笉鏄鐞嗗憳锛屾搷浣滃け璐ワ紒";
+                // 鎹曡幏淇濆瓨鏌ヨ閰嶇疆鏃剁殑寮傚父锛屽苟灏嗕俊鎭繑鍥炵粰鍓嶇
+                m.outMsg = ex.Message;
                 return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
-                    "鎿嶄綔鎴愬姛锛�");
-            }
-        }
-        catch (Exception ex)
-        {
-            LogHelper.Debug(ToString(),
-                "EditModel isAdmin error锛�" + ex.Message);
-        }
-
-        try
-        {
-            DbHelperSQL.ExecuteSql(
-                "delete from [FM_QUERY_TABLE] where formPath=@formPath ",
-                new SqlParameter("@formPath", formPath));
-            foreach (var _obj in model.list)
-            {
-                var _sb = new StringBuilder();
-                _sb.Append(
-                    "INSERT INTO [dbo].[FM_QUERY_TABLE]([guid],[formPath] ,[tableName] ,[lastUpdateBy] ,[lastUpdateDate],[tableOtherName])");
-                _sb.Append(" values(newid(),'" + formPath + "','" +
-                           _obj.tableName + "','',getdate(),'" +
-                           _obj.tableOtherName + "')");
-                arrayList.Add(_sb.ToString());
+                    ex.Message);
             }
 
-            DbHelperSQL.ExecuteSqlTran(arrayList);
-        }
-        catch (Exception ex)
-        {
-            m.outMsg = ex.Message;
+            m.outMsg = "鎿嶄綔鎴愬姛锛�";
             return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
-                ex.Message);
-        }
-
-        m.outMsg = "鎿嶄綔鎴愬姛锛�";
-        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "鎿嶄綔鎴愬姛锛�");
-    }
-
-    /// <summary>
-    ///     鍒犻櫎琛�
-    /// </summary>
-    /// <param name="model"></param>
-    /// <returns></returns>
-    [RequestMethod(RequestMethods.POST)]
-    public ReturnDto<int?> DeleteQuery([FromBody] dynamic model)
-    {
-        int? rtnInt = (int)ReturnCode.Default;
-        int? isAdmin = 0;
-        try
-        {
-            isAdmin = chkAdmin();
-            if (isAdmin <= 0)
-                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Default,
-                    "浣犱笉鏄鐞嗗憳锛屾搷浣滃け璐ワ紒");
-        }
-        catch (Exception ex)
-        {
-            LogHelper.Debug(ToString(),
-                "EditModel isAdmin error锛�" + ex.Message);
-        }
-
-        Guid? guid = model.guid;
-        var stringBuilder = new StringBuilder();
-        stringBuilder.Append("delete from FM_QUERY_TABLE where guid='" + guid +
-                             "'");
-        rtnInt = DbHelperSQL.ExecuteSql(stringBuilder.ToString());
-        if (rtnInt <= 0)
-            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,
-                "鎿嶄綔澶辫触锛�");
-        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, "鎿嶄綔鎴愬姛锛�");
-    }
-
-    /// <summary>
-    ///     缂栬緫鍒�
-    /// </summary>
-    /// <param name="model"></param>
-    /// <returns></returns>
-    [RequestMethod(RequestMethods.POST)]
-    public ReturnDto<int?> EditCol([FromBody] dynamic model)
-    {
-        int? rtnInt = (int)ReturnCode.Default;
-        int? isAdmin = 0;
-        try
-        {
-            isAdmin = chkAdmin();
-            if (isAdmin <= 0)
-                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Default,
-                    "浣犱笉鏄鐞嗗憳锛屾搷浣滃け璐ワ紒");
-        }
-        catch (Exception ex)
-        {
-            LogHelper.Debug(ToString(),
-                "EditModel isAdmin error锛�" + ex.Message);
-        }
-
-        Guid? guid = model.guid;
-        string sqlField = model.sqlField;
-        string sqlFieldType = model.sqlFieldType;
-        string fType = model.fType;
-        var stringBuilder = new StringBuilder();
-        if (fType == "1")
-            stringBuilder.Append("update  FM_QUERY set sqlFieldType='" +
-                                 sqlFieldType +
-                                 "', lastUpdateDate=getdate() where guid='" +
-                                 guid + "'");
-        else
-            stringBuilder.Append("update  FM_QUERY set sqlField='" + sqlField +
-                                 "', lastUpdateDate=getdate() where guid='" +
-                                 guid + "'");
-        rtnInt = DbHelperSQL.ExecuteSql(stringBuilder.ToString());
-        if (rtnInt <= 0)
-            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,
                 "鎿嶄綔鎴愬姛锛�");
-        return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, "鎿嶄綔澶辫触锛�");
-    }
+        }
 
-    #endregion
+        /// <summary>
+        /// 鍒犻櫎鏌ヨ鏁版嵁婧愯〃閰嶇疆
+        /// </summary>
+        /// <param name="model">鍖呭惈guid瀛楁鐨勫姩鎬佸璞�</param>
+        /// <returns>鎿嶄綔缁撴灉鐮�</returns>
+        /// <remarks>浠呯鐞嗗憳鍙搷浣滐紝閲囩敤GUID绮剧‘鍒犻櫎鎸囧畾鐨勬煡璇㈡暟鎹簮璁板綍</remarks>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<int?> DeleteQuery([FromBody] dynamic model)
+        {
+            int? rtnInt = (int)ReturnCode.Default;
+            int? isAdmin = 0;
+            try
+            {
+                isAdmin = chkAdmin();
+                if (isAdmin <= 0)
+                {
+                    // 鍒犻櫎鏌ヨ閰嶇疆鍚屾牱闇�瑕佺鐞嗗憳鏉冮檺
+                    return ReturnDto<int>.QuickReturn(rtnInt,
+                        ReturnCode.Default, "浣犱笉鏄鐞嗗憳锛屾搷浣滃け璐ワ紒");
+                }
+            }
+            catch (Exception ex)
+            {
+                // 璁板綍绠$悊鍛樻潈闄愭鏌ュ紓甯�
+                Gs.Toolbox.LogHelper.Debug(this.ToString(),
+                    "EditModel isAdmin error锛�" + ex.Message);
+            }
+
+            Guid? guid = model.guid;
+            System.Text.StringBuilder stringBuilder =
+                new System.Text.StringBuilder();
+            // 閲囩敤GUID绮剧‘鍒犻櫎鎸囧畾鐨勬煡璇㈡暟鎹簮璁板綍
+            stringBuilder.Append("delete from FM_QUERY_TABLE where guid='" +
+                                 guid + "'");
+            rtnInt =
+                Gs.Toolbox.DbHelperSQL.ExecuteSql(stringBuilder.ToString());
+            if (rtnInt <= 0)
+                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,
+                    "鎿嶄綔澶辫触锛�");
+            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success,
+                "鎿嶄綔鎴愬姛锛�");
+        }
+
+        /// <summary>
+        /// 缂栬緫鏌ヨ鍒楀瓧娈甸厤缃�
+        /// </summary>
+        /// <param name="model">鍖呭惈浠ヤ笅瀛楁鐨勫姩鎬佸璞★細
+        /// - guid: 璁板綍GUID
+        /// - sqlField: SQL瀛楁鍚�
+        /// - sqlFieldType: SQL瀛楁绫诲瀷
+        /// - fType: 鎿嶄綔绫诲瀷锛�1=鏇存柊瀛楁绫诲瀷锛屽叾浠�=鏇存柊瀛楁鍚嶏級
+        /// </param>
+        /// <returns>鎿嶄綔缁撴灉鐮�</returns>
+        /// <remarks>浠呯鐞嗗憳鍙搷浣滐紝鐢ㄤ簬璋冩暣鏌ヨ鍒楀瓧娈垫槧灏�</remarks>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<int?> EditCol([FromBody] dynamic model)
+        {
+            int? rtnInt = (int)ReturnCode.Default;
+            int? isAdmin = 0;
+            try
+            {
+                isAdmin = chkAdmin();
+                if (isAdmin <= 0)
+                {
+                    // 鍙湁绠$悊鍛樻墠鑳借皟鏁存煡璇㈠垪瀛楁鏄犲皠
+                    return ReturnDto<int>.QuickReturn(rtnInt,
+                        ReturnCode.Default, "浣犱笉鏄鐞嗗憳锛屾搷浣滃け璐ワ紒");
+                }
+            }
+            catch (Exception ex)
+            {
+                // 璁板綍绠$悊鍛樻潈闄愭鏌ュ紓甯�
+                Gs.Toolbox.LogHelper.Debug(this.ToString(),
+                    "EditModel isAdmin error锛�" + ex.Message);
+            }
+
+            Guid? guid = model.guid;
+            string sqlField = model.sqlField;
+            string sqlFieldType = model.sqlFieldType;
+            string fType = model.fType;
+            System.Text.StringBuilder stringBuilder =
+                new System.Text.StringBuilder();
+            // 鏍规嵁fType鍐冲畾鏇存柊瀛楁绫诲瀷杩樻槸瀛楁鍚�
+            if (fType == "1")
+                stringBuilder.Append("update  FM_QUERY set sqlFieldType='" +
+                                     sqlFieldType +
+                                     "', lastUpdateDate=getdate() where guid='" +
+                                     guid + "'");
+            else
+                stringBuilder.Append("update  FM_QUERY set sqlField='" +
+                                     sqlField +
+                                     "', lastUpdateDate=getdate() where guid='" +
+                                     guid + "'");
+            rtnInt =
+                Gs.Toolbox.DbHelperSQL.ExecuteSql(stringBuilder.ToString());
+            if (rtnInt <= 0)
+                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,
+                    "鎿嶄綔鎴愬姛锛�");
+            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success,
+                "鎿嶄綔澶辫触锛�");
+        }
+
+        #endregion
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3