HandTaskApp.cs
8.38 KB
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
using Infrastructure;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using WebRepository;
namespace WebApp
{
/// <summary>
/// 立库任务表
/// </summary>
public partial class HandTaskApp
{
private IUnitWork _unitWork;
public IRepository<Task> _app;
public IRepository<Container> _appc;
public IRepository<Inventory> _appi;
public IRepository<Location> _appl;
public IRepository<ReceiptDetail> _apprd;
public IRepository<ReceiptHeader> _apprh;
public IRepository<ShipmentHeader> _apph;
public IRepository<ShipmentDetail> _appsd;
public IRepository<TaskDetail> _apptd;
public IRepository<InventoryTransaction> _appit;
private BaseDBContext _context;
private static IHostingEnvironment _hostingEnvironment;
private IAuth _auth;
ExcelHelper imp = new ExcelHelper(_hostingEnvironment);
public HandTaskApp(IUnitWork unitWork, IAuth auth, IRepository<Inventory> inventory, IRepository<InventoryTransaction> inventoryTransaction, IRepository<Container> Icontainer, IRepository<ReceiptHeader> receiptHeader, IRepository<ReceiptDetail> receiptDetail, IRepository<Task> repository, IRepository<Location> repositoryl, IRepository<ShipmentHeader> repositoryh, IRepository<TaskDetail> repositorytd, IRepository<ShipmentDetail> repositorysd, IHostingEnvironment hostingEnvironment, BaseDBContext context)
{
_unitWork = unitWork;
_app = repository;
_appl = repositoryl;
_apph = repositoryh;
_appsd = repositorysd;
_apptd = repositorytd;
_apprd = receiptDetail;
_apprh = receiptHeader;
_appc = Icontainer;
_appi = inventory;
_appit = inventoryTransaction;
_hostingEnvironment = hostingEnvironment;
_context = context;
_auth = auth;
}
public HandTaskApp SetLoginInfo(LoginInfo loginInfo)
{
_app._loginInfo = loginInfo;
_appl._loginInfo = loginInfo;
_apph._loginInfo = loginInfo;
_appsd._loginInfo = loginInfo;
_apptd._loginInfo = loginInfo;
_appc._loginInfo = loginInfo;
_apprd._loginInfo = loginInfo;
_apprh._loginInfo = loginInfo;
_appi._loginInfo = loginInfo;
_appit._loginInfo = loginInfo;
return this;
}
public TableData Load(PageReq pageRequest, Task entity)
{
var result = new TableData();
var data = _app.Find(EntityToExpression<Task>.GetExpressions(entity));
data = data.Where(u => u.LastStatus != TaskStatus.已经完成);
GetData(data, result, pageRequest);
result.count = data.Count();
return result;
}
public void Ins(Task entity)
{
_app.Add(entity);
}
public void Upd(Task entity)
{
_app.Update(entity);
}
public Task FindSingle(Expression<Func<Task, bool>> exp)
{
return _app.FindSingle(exp);
}
public IQueryable<Task> Find(Expression<Func<Task, bool>> exp)
{
return _app.Find(exp);
}
public Response ImportIn(IFormFile excelfile)
{
Response result = new Infrastructure.Response();
List<Task> exp = imp.ConvertToModel<Task>(excelfile);
string sErrorMsg = "";
for (int i = 0; i < exp.Count; i++)
{
try
{
Task e = exp[i];
e.Id = null;
_app.Add(e);
}
catch (Exception ex)
{
sErrorMsg += "第" + (i + 2) + "行:" + ex.Message + "<br>";
result.Message = sErrorMsg;
break;
}
}
if (sErrorMsg.Equals(string.Empty))
{
if (exp.Count == 0)
{
sErrorMsg += "没有发现有效数据, 请确定模板是否正确, 或是否有填充数据!";
result.Message = sErrorMsg;
}
else
{
result.Message = "导入完成";
}
}
else
{
result.Status = false;
result.Message = result.Message;
}
return result;
}
public TableData ExportData(Task entity)
{
return _app.ExportData(entity);
}
public TableData Query(Task entity)
{
var result = new TableData();
var data = _app.Find(EntityToExpression<Task>.GetExpressions(entity));
GetData(data, result);
result.count = data.Count();
return result;
}
public void GetData(IQueryable<Task> data, TableData result, PageReq pageRequest = null)
{
_app.GetData(data, result, pageRequest);
}
//设备异常恢复
public Response AbnormalRepairApp(string code, string type)
{
Response<AbType> response = new Response<AbType>();
try
{
ApiRequest apiRequest = new ApiRequest("WCS");
AbType abType = new AbType
{
code = code,
type = type
};
response = apiRequest.Post<Response<AbType>>(JsonHelper.Instance.Serialize(abType), "WcsWebApi/AbnormalRepair", "任务下发");
if (response.Code != 200)
{
response.Code = 300;
response.Message = response.Message;
}
}
catch (Exception ex)
{
response.Code = 300;
response.Message = ex.Message;
}
return response;
}
//请求站台数据
public TableData RequestStation()
{
TableData tab = new TableData();
try
{
List <Station> station = _unitWork.Find<Station>(n => n.Containercode != "").ToList();
if (station == null)
{
tab.code = 300;
tab.msg = "没有被托盘占用的站台!!";
}
else
{
tab.code = 200;
tab.data = station;
}
}
catch (Exception ex)
{
tab.code = 500;
tab.msg = ex.Message;
return tab;
}
return tab;
}
//清空站台数据
public TableData EmptyStation(string code,string Name)
{
TableData tab = new TableData();
try
{
Station station = _unitWork.Find<Station>(n => n.Code == code).FirstOrDefault();
if (station == null)
{
tab.code = 500;
tab.msg = "没有找到该站台!!";
return tab;
}
else
{
TaskDetailHistory taskDetail = new TaskDetailHistory
{
TaskNo = Name + "手动清除站台:" + station.Code,
ContainerCode = station.Containercode,
OrderCode = Name + "手动清除站台:" + station.Code,
Station = station.Code,
Error = Name + "手动清除站台:" + station.Code,
CreateTime = DateTime.Now,
CreateBy = Name
};
_unitWork.Add(taskDetail);
station.Containercode = "";
_unitWork.Update(station);
tab.code = 200;
tab.msg = "清除站台成功";
}
}
catch (Exception ex)
{
tab.code = 500;
tab.msg = ex.Message;
return tab;
}
return tab;
}
}
}