赖素文
authored
|
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
|
using Hh.Mes.Common.Infrastructure;
using Hh.Mes.Common.log;
using Hh.Mes.Common.Request;
using Hh.Mes.POJO.Entity;
using Hh.Mes.POJO.Response;
using Hh.Mes.Service.Repository;
using SqlSugar;
using System;
using System.Linq;
using System.Linq.Expressions;
using System.Data;
using System.IO;
namespace Hh.Mes.Service.Base
{
public class SysFileService : RepositorySqlSugar<sys_File>
{
/// <summary>
/// 文件存储路径
/// </summary>
private readonly string FileNamePath = "\\wwwroot\\Document";
public dynamic Load(PageReq pageReq, sys_File entity)
{
return ExceptionsHelp.Instance.ExecuteT(() =>
{
var result = new Response();
var expression = LinqWhere(entity);
//先组合查询表达式
|
赖素文
authored
|
30
|
var query = Context.Queryable<sys_File, base_equipment_type>((x, y) => new JoinQueryInfos(JoinType.Left, x.targetId == y.code))
|
赖素文
authored
|
31
|
.Where(expression);
|
赖素文
authored
|
32
33
|
|
赖素文
authored
|
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
|
//Exel为ture就不分页,因为导出的话是全部导出
if (pageReq != null)
{
int total = 0;
result.Result = query.Select((x, y) => new
{
x.fileName,
x.id,
x.targetId,
x.host,
x.url,
x.size,
x.suffix,
x.remark,
targetName = y.name,
x.createBy,
x.createTime
})
.ToOffsetPage(pageReq.page, pageReq.limit, ref total);
result.Count = total;
}
else
{
result.Result = query.ToList();
result.Count = result.Result.Count();
}
return result;
}, catchRetrunValue: "list");
}
public dynamic DelByIds(int[] ids)
{
return ExceptionsHelp.Instance.ExecuteT(() =>
{
var response = new Response();
var docs = Context.Queryable<sys_File>().Where(x => ids.Contains(x.id)).ToList();
docs.ForEach((item) =>
{
DeleteDocument(item.url);
});
Context.Deleteable<sys_File>(t => ids.Contains(t.id)).ExecuteCommand();
return response;
});
}
/// <summary>
/// 删除服务器内文件
/// </summary>
/// <param name="fileName"></param>
private void DeleteDocument(string fileName)
{
string path = $"{Directory.GetCurrentDirectory()}{FileNamePath}\\{fileName}";
if (File.Exists(path))
{
File.Delete(path);
}
}
public dynamic AddOrUpdate(sys_File entity)
{
return ExceptionsHelp.Instance.ExecuteT<dynamic>(() =>
{
var response = new Response();
|
赖素文
authored
|
99
100
101
102
103
104
105
106
107
108
109
110
111
|
string fileEmptyErrorMessage = "上传文件数据时,文件不能为空!";
if (entity.excelfile == null || entity.excelfile.Count == 0)
{
return response.ResponseError(fileEmptyErrorMessage);
}
if (string.IsNullOrEmpty(entity.targetId))
{
return response.ResponseError("适用的设备Code不能为空!");
}
foreach (var file in entity.excelfile)
|
赖素文
authored
|
112
|
{
|
赖素文
authored
|
113
|
if (file == null || file.Length == 0)
|
赖素文
authored
|
114
|
{
|
赖素文
authored
|
115
|
return response.ResponseError(fileEmptyErrorMessage);
|
赖素文
authored
|
116
|
}
|
赖素文
authored
|
117
118
119
120
121
122
123
124
125
126
127
128
129
|
switch (entity.targetTableName)
{
case "eqType":
entity.targetTableName = "base_equipment_type";
break;
case "eq":
entity.targetTableName = "base_equipment";
break;
}
var uploadPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "Document");
if (!Directory.Exists(uploadPath))
|
赖素文
authored
|
130
|
{
|
赖素文
authored
|
131
|
Directory.CreateDirectory(uploadPath);
|
赖素文
authored
|
132
|
}
|
赖素文
authored
|
133
134
135
136
|
var suffix = Path.GetExtension(file.FileName);
var fileName = Path.GetFileNameWithoutExtension(file.FileName);
var newFileName = $"{fileName}_{DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")}{suffix}";
|
赖素文
authored
|
137
138
|
long size;
|
赖素文
authored
|
139
|
using (var fs = File.Create(Path.Combine(uploadPath, newFileName)))
|
赖素文
authored
|
140
|
{
|
赖素文
authored
|
141
|
file.CopyTo(fs);
|
赖素文
authored
|
142
143
|
size = fs.Length / 1024;
}
|
赖素文
authored
|
144
|
|
赖素文
authored
|
145
|
entity.size = size > 1024 ? $"{size / 1024:N1}M" : $"{size:N1}Kb";
|
赖素文
authored
|
146
|
entity.suffix = suffix;
|
赖素文
authored
|
147
148
149
150
|
entity.fileName = fileName;
entity.url = newFileName;
entity.createBy = sysWebUser.Account;
entity.createTime = DateTime.Now;
|
赖素文
authored
|
151
|
|
赖素文
authored
|
152
153
154
155
156
157
158
159
160
161
162
163
164
|
Context.Insertable(entity).ExecuteCommand();
}
return response;
});
}
public Expression<Func<sys_File, bool>> LinqWhere(sys_File model)
{
try
{
var exp = Expressionable.Create<sys_File>();
//数据过滤条件
|
赖素文
authored
|
165
166
|
//根节点
if (!string.IsNullOrWhiteSpace(model.targetTableName) && model.targetTableName != "root")
|
赖素文
authored
|
167
168
169
170
171
172
173
174
175
176
177
|
{
exp.And(x => x.targetTableName.Contains(model.targetTableName));
}
if (!string.IsNullOrWhiteSpace(model.fileCode))
{
exp.And(x => x.fileCode.Contains(model.fileCode));
}
if (!string.IsNullOrWhiteSpace(model.host))
{
exp.And(x => x.host.Contains(model.host));
}
|
赖素文
authored
|
178
179
|
//根节点
if (!string.IsNullOrEmpty(model.targetId)&&model.targetId!="r-1")
|
赖素文
authored
|
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
{
exp.And(x => x.targetId.Equals(model.targetId));
}
if (!string.IsNullOrWhiteSpace(model.fileName))
{
exp.And(x => x.fileName.Contains(model.fileName));
}
return exp.ToExpression();//拼接表达式
}
catch (Exception ex)
{
throw new Exception($"{ex.Message}");
}
}
/// <summary>
/// /左侧列表 仓库+设备类型
/// </summary>
public DataTable GetTreeList()
{
return ExceptionsHelp.Instance.ExecuteT(() =>
{
string sql = $@"
|
赖素文
authored
|
204
205
206
207
208
209
|
select id = newid(),
name = '根节点',
keys = 'r-1',
parentId = '0',
isok = '',
code = 'root'
|
赖素文
authored
|
210
|
union all
|
赖素文
authored
|
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
select id = newid(),
name = Name,
keys = e.code,
parentId = 'r-1',
isok = 'true',
code='eqType'
from base_equipment_type e
union all
select id = newid(),
name = e.equipmentName,
keys=e.equipmentCode,
parentId =( select base_equipment_type.code from base_equipment_type where code=e.equipmentTypeCode ),
isok = 'true',
code='eq'
from base_equipment e";
|
赖素文
authored
|
226
227
228
229
230
231
232
|
var dt = base.Context.Ado.GetDataTableAsync(sql).Result;
return dt == null || dt.Rows.Count == 0 ? null : dt;
});
}
}
}
|