yl
2022-11-28 695f61f39ad983df2b381402829cbfec2319bf63
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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using VueWebApi.DLL.BLL;
using VueWebApi.Tools;
 
namespace VueWebApi.Controllers
{
    [RoutePrefix(prefix: "api/SystemSetting")]
    [ControllerGroup("系统设置", "在线接口")]
    [ChannelActionFilter]
    public class SystemSettingController : ApiController
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        RedisHelper redis = new RedisHelper();
        string FileIP = System.Configuration.ConfigurationManager.AppSettings["FileIP"];
 
        #region[编码规则查询]
        /// <summary>
        /// 编码规则查询
        /// </summary>
        /// <param name="rightname">编码名称</param>
        /// <param name="prefix">固定字符</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "EncodingRules")]
        [HttpGet]
        public HttpResponseMessage EncodingRules(string rightname = null, string prefix = null, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = SystemSettingBLL.EncodingRules(rightname, prefix,startNum, endNum, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
 
        #region[编码规则编辑保存]
        /// <summary>
        /// 编码规则编辑保存
        /// </summary>
        /// <param name="obj">提交数据对象</param>
        /// <returns></returns>
        [Route(template: "SaveEncodingRules")]
        [HttpPost]
        public HttpResponseMessage SaveEncodingRules([FromBody] JObject obj)
        {
            string rightcode = obj["rightcode"].ToString(); //功能编码
            string rightname = obj["rightname"].ToString(); //功能名称
            string prefix = obj["prefix"].ToString(); //固定字符
            string filingdate = obj["filingdate"].ToString(); //提交日期
            string incbit = obj["incbit"].ToString(); //自增位数  
            var lm_user = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = SystemSettingBLL.SaveEncodingRules(rightcode, rightname,prefix, filingdate, incbit, lm_user);
            return TJson.toJson(mes);
        }
        #endregion
 
        #region[获取规则生成的编码]
        /// <summary>
        /// 获取规则生成的编码
        /// </summary>
        /// <param name="rightcode">功能编码</param>
        /// <returns></returns>
        [Route(template: "NewEncodingRules")]
        [HttpGet]
        public HttpResponseMessage NewEncodingRules(string rightcode=null)
        {
           mes = SystemSettingBLL.NewEncodingRules(rightcode);
           return TJson.toJson(mes);
        }
        #endregion
 
 
 
        #region[车间公告列表]
        /// <summary>
        /// 车间公告列表
        /// </summary>
        /// <param name="wkspcode">车间编码</param>
        /// <param name="ancetitle">公告主题</param>
        /// <param name="ancecont">公告内容</param>
        /// <param name="cancel">是否撤销</param>
        /// <param name="level">公告等级</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "SystemAnnouncementSearch")]
        [HttpGet]
        public HttpResponseMessage SystemAnnouncementSearch(string wkspcode = null, string ancetitle = null,string ancecont=null,string cancel=null,string level=null, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = SystemSettingBLL.SystemAnnouncementSearch(wkspcode, ancetitle, ancecont, cancel, level, startNum, endNum, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
 
        #region[车间公告新增编辑提交]
        /// <summary>
        /// 车间公告新增编辑提交
        /// </summary>
        /// <param name="id">id</param>
        /// <param name="dt">车间集合</param>
        /// <param name="ancetitle">公告主题</param>
        /// <param name="ancecont">公告内容</param>
        /// <param name="level">公告等级</param>
        /// <param name="cancel">是否撤销</param>
        /// <param name="opertype">操作类型</param>
        /// <returns></returns>
        [Route(template: "SystemAnnouncementAddUpdate")]
        [HttpPost]
        public HttpResponseMessage SystemAnnouncementAddUpdate(DataTable dt,string ancetitle,string ancecont,string level,string cancel,string opertype, string id = null)
        {
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = SystemSettingBLL.SystemAnnouncementAddUpdate(id,dt, ancetitle, ancecont, cancel, level, username, opertype);
            return TJson.toJson(mes);
        }
        #endregion
 
        #region[车间公告删除]
        /// <summary>
        /// 车间公告删除
        /// </summary>
        /// <param name="id">id</param>
        /// <returns></returns>
        [Route(template: "SystemAnnouncementDelete")]
        [HttpPost]
        public HttpResponseMessage SystemAnnouncementDelete(string id)
        {
            mes = SystemSettingBLL.SystemAnnouncementDelete(id);
            return TJson.toJson(mes);
        }
        #endregion
 
 
        #region[SOP列表查询]
        /// <summary>
        /// SOP列表查询
        /// </summary>
        /// <param name="search">搜索关键字</param>
        /// <param name="check">是否选中最高版本</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "SystemSopSearch")]
        [HttpGet]
        public HttpResponseMessage SystemSopSearch(string search = null, string check = null,int page = 0, int rows = 0, string prop = null, string order = null)
        {
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = SystemSettingBLL.SystemSopSearch(search, check, startNum, endNum, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
 
        #region[SOP文件上传查找设备类型数据]
        /// <summary>
        /// SOP文件上传查找设备类型数据
        /// </summary>
        /// <returns></returns>
        [Route(template: "SystemSopDeviceSearch")]
        [HttpGet]
        public HttpResponseMessage SystemSopDeviceSearch()
        {
            mes = SystemSettingBLL.SystemSopDeviceSearch();
            return TJson.toJson(mes);
        }
        #endregion
 
        #region[SOP文件作业文件上传获取最大版本号]
        /// <summary>
        /// SOP文件作业文件上传获取最大版本号
        /// </summary>
        /// <param name="devicetypecode">设备类型编号</param>
        /// <param name="filetypecode">文件类型编号</param>
        /// <param name="partcode">物料编码</param>
        /// <returns></returns>
        [Route(template: "SystemSopMaxVersion")]
        [HttpGet]
        public HttpResponseMessage SystemSopMaxVersion(string devicetypecode,string filetypecode,string partcode)
        {
            mes = SystemSettingBLL.SystemSopMaxVersion(devicetypecode, filetypecode, partcode);
            return TJson.toJson(mes);
        }
        #endregion
 
        #region[SOP文件上传提交]
        /// <summary>
        /// SOP文件上传提交
        /// </summary>
        /// <returns></returns>
        [Route(template: "SystemSopSava")]
        [HttpPost]
        public HttpResponseMessage SystemSopSava()
        {
            string savePath = "";
            HttpPostedFile files = HttpContext.Current.Request.Files[0];//获取上传的文件
            string devicetypecode = HttpContext.Current.Request["devicetypecode"].ToString();//设备类型编码
            string partcode = HttpContext.Current.Request["partcode"].ToString();//物料编码
            string filetypecode = HttpContext.Current.Request["filetypecode"].ToString();//文件类型编码
            string fileversion = HttpContext.Current.Request["fileversion"].ToString();//文件版本号
            string defilename = HttpContext.Current.Request["defilename"].ToString();//文件名称
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            if (files == null || files.ContentLength <= 0)
            {
                mes.code = "300";
                mes.Message = "文件不能为空!";
            }
            else
            {
 
                string file_name = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo) + Path.GetFileName(files.FileName); //时间戳加文件名
                int filesize = files.ContentLength;//获取上传文件的大小单位为字节byte
                string fileEx = System.IO.Path.GetExtension(file_name);//获取上传文件的扩展名
                int Maxsize = 40000 * 1024;//定义上传文件的最大空间大小为40M
                string FileType = ".pdf";//定义上传文件的类型字符串
                string FileType1 = ".mp4";//定义上传文件的类型字符串
 
                if (!FileType.Contains(fileEx) && !FileType1.Contains(fileEx))
                {
                    mes.code = "300";
                    mes.Message = "文件类型不对,只能导入pdf格式的文件和mp4格式文件!";
                }
                else
                {
                    if (filesize >= Maxsize)
                    {
                        mes.code = "300";
                        mes.Message = "上传文件超过40M,不能上传!";
                    }
                    else
                    {
                        string path = System.Web.HttpContext.Current.Server.MapPath("/File/DeviceFile/");
 
                        if (Directory.Exists(path) == false)//如果不存在就创建file文件夹
                        {
                            Directory.CreateDirectory(path); //添加文件夹
                        }
                        savePath = Path.Combine(path, file_name);
                        if (Directory.Exists(savePath) == true)  //如果存在重名文件就提示
                        {
                            mes.code = "300";
                            mes.Message = "已存在同名文件!";
                        }
                        else
                        {
                            files.SaveAs(savePath);    //将选择的文件保存到指定文件夹下
                            string FilesName = System.Web.HttpContext.Current.Server.MapPath("/File/DeviceFile/" + file_name);
                            string StrPath = "/File/DeviceFile/" + file_name;
                            mes = SystemSettingBLL.SystemSopSava(devicetypecode, filetypecode, partcode,fileversion,file_name,defilename,username, StrPath);
                        }
                    }
                }
            }
            return TJson.toJson(mes);
        }
        #endregion
 
        #region[SOP文件删除]
        /// <summary>
        /// SOP文件删除
        /// </summary>
        /// <param name="id">文件id</param>
        /// <param name="filepath">文件地址</param>
        /// <returns></returns>
        [Route(template: "SystemSopDelete")]
        [HttpPost]
        public HttpResponseMessage SystemSopDelete(string id,string filepath)
        {
            mes = SystemSettingBLL.SystemSopDelete(id,filepath);
            return TJson.toJson(mes);
        }
        #endregion
 
        #region[SOP文件预览]
        /// <summary>
        /// SOP文件预览
        /// </summary>
        /// <param name="id">文件id</param>
        /// <param name="filepath">文件地址</param>
        /// <returns></returns>
        [Route(template: "SystemSopView")]
        [HttpPost]
        public HttpResponseMessage SystemSopView(string id, string filepath)
        {
            mes.code = "200";
            mes.data = Url.Content(FileIP + filepath);
            return TJson.toJson(mes);
        }
        #endregion
    }
}