yusijie
2025-02-20 5fccb067ad7dc2dbcdacf8db642aa471488cd8f0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
using DBUtility;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
using System.Threading.Tasks;
using DLL;
 
namespace WebAPI.Controllers.系统管理.表头自动加载
{
    public class Xt_DefineBillMainSetController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        public DAL.ClsXt_DefineBillMainSet BillOld = new DAL.ClsXt_DefineBillMainSet();
        public DAL.ClsXt_DefineBillMainSet BillNew0 = new DAL.ClsXt_DefineBillMainSet();
 
        #region 自动加载页面表头
        /// <summary>
        /// 返回项目阶段列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Xt_DefineBillMainSet/getDefineBillMainSet")]
        [HttpGet]
        public object getDefineBillMainSet(string HModName, string user)
        {
            try
            {
                string sql = "select * from h_v_Xt_DefineBillMainSet_AutoLoadList where HModName ='" + HModName + "' and HUser ='" + user + "' order by HArrangeOrder,HArrangeOrderSub";
                ds = oCN.RunProcReturn(sql, "Xt_DefineBillMainSet");
 
                if(ds!=null && ds.Tables[0].Rows.Count == 0)
                {
                    sql = "select * from h_v_Xt_DefineBillMainSet_AutoLoadList where HModName ='" + HModName + "' and HUser ='admin' order by HArrangeOrder,HArrangeOrderSub";
                    ds = oCN.RunProcReturn(sql, "h_v_Xt_DefineBillMainSet_AutoLoadList");
                }
 
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
 
        #region 根据主表名或视图名,获取字段列表
        [Route("Xt_DefineBillMainSet/getColsListByName")]
        [HttpGet]
        public object getColsListByName(string HName)
        {
            try
            {
                List<object> columnNameList = new List<object>();
 
                string sql = "select * from " + HName + " where 1=0";
                ds = oCN.RunProcReturn(sql, "HName");
 
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
 
 
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
 
        #region 表头自动加载保存 新增/编辑
        [Route("Xt_DefineBillMainSet/SaveXt_DefineBillMainSet")]
        [HttpPost]
        public object SaveXt_DefineBillMainSet([FromBody] JObject msg)
        {
            var _value = msg["msg"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();                             //表头数据
            string msg3 = sArray[1].ToString();                             //子表1数据
            string msg4 = sArray[2].ToString();                             //用户
 
            ListModels oListModels = new ListModels();
            try
            {
                ////编辑权限
                //if (!DBUtility.ClsPub.Security_Log_second("Xt_DefineBillMainSet_Edit", 1, false, msg4))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无保存权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
 
                DAL.ClsXt_DefineBillMainSet oBill = new DAL.ClsXt_DefineBillMainSet();
 
                //表头数据
                List<Model.ClsXt_DefineBillMainSetMain> lsmain = new List<Model.ClsXt_DefineBillMainSetMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");
                lsmain = oListModels.getObjectByJson_Xt_DefineBillMainSetMain(msg2);
                foreach (Model.ClsXt_DefineBillMainSetMain oItem in lsmain)
                {
                    oItem.HMaker = msg4;
                    oItem.HUpDater = msg4;
 
                    oBill.omodel = oItem;
                }
 
                //表体数据
                msg3 = msg3.Substring(1, msg3.Length - 2);
                msg3 = msg3.Replace("\\", "");
                msg3 = msg3.Replace("\n", "");
                List<Model.ClsXt_DefineBillMainSetSub> ls = new List<Model.ClsXt_DefineBillMainSetSub>();
                ls = oListModels.getObjectByJson_Xt_DefineBillMainSetSub(msg3);
                foreach (Model.ClsXt_DefineBillMainSetSub oItemSub in ls)
                {
                    if ((oItemSub.HElementID == null || oItemSub.HElementID == "")&&oItemSub.HElementIDAdditionalName!="")
                    {
                        oItemSub.HElementID = oItemSub.HElementIDAdditionalName;
                    }
                    oBill.DetailColl.Add(oItemSub);
                }
 
 
                //保存
                //保存完毕后处理
                bool bResult;
                if (oBill.omodel.HInterID == 0)
                {
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if (oBill.omodel.HInterID > 0)
                {
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
                    bResult = false;
                }
 
 
                //string message = "msg2:【" + msg2 + "】;msg3:【" + msg3 + "】;msg4:【" + msg4 + "】";
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
    }
}