sjz
2025-11-16 190aef7767ac9122e6bc975f5ddba8d3625be90d
WebApi/Gs.Sys/Services/FmController.cs
@@ -1,15 +1,16 @@
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using Gs.Toolbox;
using Gs.Toolbox;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
using Gs.Toolbox.ApiCore.Common.Mvc;
using Gs.Toolbox.ApiCore.Group;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NetTaste;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.Sys.Services
@@ -24,8 +25,7 @@
        public FmController(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
            (_userCode, _userGuid, _orgFids) =
                GetUserGuidAndOrgGuid(_http);
            (_userCode, _userGuid, _orgFids) = GetUserGuidAndOrgGuid(_http);
        }
        #region 版面
@@ -176,6 +176,39 @@
                "读取失败!");
        }
        /// <summary>
        ///     读取
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        [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
            {
                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
        private int? chkAdmin()
@@ -210,25 +243,48 @@
            //string keyChild = model.keyChild;任务子节点名
            //string keyMeth = model.keyMeth;方法名
            //string keyNo = model.keyNo;单据编号
            //string idtype = model.idtype;推送类型
            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;//这个仅仅是更新工单状态的时候有
                if (string.IsNullOrEmpty(idtype))
                {
                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo);
                else
                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo,2);
                }
                else if(idtype=="2")
                {
                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo, 2);
                }
                else if(idtype == "3")
                {
                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo, 3);
                }
                else if (idtype == "4")
                {
                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo, 4);
                }
                else if (idtype == "5")
                {
                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo, 5);
                }
                else if (idtype == "6")
                {
                    (_rtnInt, _rtnStr) = InterfaceUtil.HttpPostErp(_erpJson, keyUserGuid, keyGuid, keyNo, 6);
                }
            }
            catch (Exception ex)
            {
                Gs.Toolbox.LogHelper.Debug(this.ToString(), "SendErp:" + ex.Message);
                Gs.Toolbox.LogHelper.Debug(this.ToString(), "Fm SendErp:" + ex.Message);
                return "发送erp失败:" + ex.Message;
            }
            if (_rtnInt <= 0)
@@ -253,8 +309,8 @@
            string keyMeth = model.keyMeth;
            string keyNo = model.keyNo;
            string idtype = model.idtype;//这个仅仅是更新工单状态的时候有
            //if (keyMeth.ToUpper() == "delete".ToUpper())
            //    return "";
            if (keyMeth.ToUpper() == "delete".ToUpper())
                return "";
            try
            {
                System.Data.DataSet dset = new System.Data.DataSet();
@@ -272,47 +328,35 @@
                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)
                {
                    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")
                    {
                        //这是结案,结构和其它不一样
                        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;
                        }
                        _datajson = dset.Tables[1].Rows[0].RowToDynamic();
                    }
                    var _obj = new
                    else
                    {
                        mesid = _mesGuid,
                        taskname = keyTaskName,
                        optype = keyMeth,
                        datajson = JsonConvert.SerializeObject(_datajson),
                       // datajson = (_datajson),
                    };
                    return JsonConvert.SerializeObject(_obj);
                        _datajson = dset.Tables[0].Rows[0].RowToDynamic();
                        List<dynamic> _lst = dset.Tables[1].TableToDynamicList();
                        ((IDictionary<string, object>)_datajson)[keyChild] = _lst;
                    }
                }
                return JsonConvert.SerializeObject(_datajson);
                //这是订单回传标识
                List<dynamic> _datajson22 = new List<dynamic>();
                dynamic _ob= new ExpandoObject();
                /*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(_obj22);*/
            }
            catch (Exception ex)
            {
@@ -350,7 +394,8 @@
                if (_sb.Length > 0)
                    _sb.Append("~");
                _sb.Append(_line);
            };
            }
            ;
            var lst = new List<dynamic>();
            SqlParameter[] parameters =
            {
@@ -403,15 +448,23 @@
            {
                Gs.Toolbox.LogHelper.Debug(this.ToString(), "EditModel isAdmin error:" + ex.Message);
            }
            Gs.Toolbox.DbHelperSQL.ExecuteSql("delete from [FM_QUERY_TABLE] where formPath=@formPath ", new SqlParameter[] { new SqlParameter("@formPath", formPath) });
            foreach (var _obj in model.list)
            try
            {
                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());
                Gs.Toolbox.DbHelperSQL.ExecuteSql("delete from [FM_QUERY_TABLE] where formPath=@formPath ", new SqlParameter[] { new SqlParameter("@formPath", formPath) });
                foreach (var _obj in model.list)
                {
                    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());
                }
                Gs.Toolbox.DbHelperSQL.ExecuteSqlTran(arrayList);
            }
            Gs.Toolbox.DbHelperSQL.ExecuteSqlTran(arrayList);
            catch (Exception ex)
            {
                m.outMsg = ex.Message;
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, ex.Message);
            }
            m.outMsg = "操作成功!";
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "操作成功!");
        }