SServerManager.cs
9.3 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
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary
{
public class SServerManager
{
//是否测值:
//http://10.85.17.233/ESMTCommonInterface/CommonService.asmx?op=VMICheckRLC
//结果上传:
//http://10.85.17.233/ReturnOne/WebServiceF.asmx?op=Return_Material
private static string Addr_VMICheckRLC = "/ESMTCommonInterface/CommonService.asmx?op=VMICheckRLC";
private static string Addr_Return_Material = "/ReturnOne/WebServiceF.asmx?op=Return_Material";
public static string Get_VMICheckRLC(string deviceName, string codeStr, out bool need)
{
need = false;
string msg = "";
try
{
if (String.IsNullOrEmpty(codeStr))
{
return msg = deviceName + "未扫到条码";
}
Dictionary<string, string> paramMap = new Dictionary<string, string>();
paramMap.Add("barcode", codeStr);// barcode = 扫到的条码
string server = GetAddr(Addr_VMICheckRLC, paramMap);
DateTime startTime = DateTime.Now;
string resultStr = HttpHelper.Post(server, "");
LogUtil.info("Get_VMICheckRLC " + FormUtil.GetSpanStr(DateTime.Now - startTime) + " 【" + server + "】【" + resultStr + "】");
//返回: { "code": 0, "msg":"ok", data: 7}
ServerData serverResult = JsonHelper.DeserializeJsonToObject<ServerData>(resultStr);
}
catch (Exception ex)
{
LogUtil.error(deviceName + " ", ex);
}
return "";
}
public static string Return_Material(string deviceName, string barcode, int count)
{
string msg = "";
try
{
if (String.IsNullOrEmpty(barcode))
{
return msg;
}
Dictionary<string, string> paramMap = new Dictionary<string, string>();
paramMap.Add("barcode", barcode);
paramMap.Add("count", count.ToString());
string server = GetAddr(Addr_Return_Material, paramMap);
DateTime startTime = DateTime.Now;
string resultStr = HttpHelper.Post(server, "");
LogUtil.info("Return_Material " + FormUtil.GetSpanStr(DateTime.Now - startTime) + " 【" + server + "】【" + resultStr + "】");
// 返回: { "code": 0, "msg":"ok", "data":""}
ServerData serverResult = JsonHelper.DeserializeJsonToObject<ServerData>(resultStr);
if (!msg.Equals(""))
{
LogUtil.error(msg);
}
}
catch (Exception ex)
{
LogUtil.error(deviceName + " ", ex);
}
return msg;
}
private static string GetAddr(string addr, Dictionary<string, string> paramsMap)
{
string server = ConfigAppSettings.GetValue(Setting_Init.ServerAddr);
if (server.EndsWith("/"))
{
server = server.Substring(0, server.Length - 1);
}
string path = server + addr.Trim() + "?";
foreach (string paramName in paramsMap.Keys)
{
string par = System.Web.HttpUtility.UrlEncode(paramsMap[paramName], System.Text.Encoding.UTF8);
path += paramName + "=" + par + "&";
}
path = path.Substring(0, path.Length - 1);
return path;
}
private static string spiltStr = "##";
public static string ProcessCodeList(List<string> codeList)
{
string codeStr = "";
List<string> list = new List<string>();
foreach (string str in codeList)
{
if (list.Contains(str.Trim()) || String.IsNullOrEmpty(str.Trim()))
{
continue;
}
codeStr = codeStr + str.Trim() + spiltStr;
}
return codeStr;
}
//// 分盘料/紧急料放上料串或料架时调用 /rest/api/qisda/device/afterPutCut
//private static string Addr_afterPutCut = "/rest/api/qisda/device/afterPutCut";
//public static string afterPutCut(string deviceName, string rfid, string barcode, string cid, int rfidLoc, out TaskData afterData)
//{
// afterData = null;
// string msg = "";
// try
// {
// //参数:
// //cid: 料仓cid,流水线可传入空
// //barcode : 条码
// //rfid : RFID
// //rfidLoc: 料架位置,流水线可传-1
// Dictionary<string, string> paramMap = new Dictionary<string, string>();
// paramMap.Add("barcode", barcode); // 参数: barcode=料盘的条码
// paramMap.Add("rfid", rfid); // rfid = 料架的RFID信息
// paramMap.Add("rfidLoc", rfidLoc.ToString()); // rfidLoc=料架的架位信息
// paramMap.Add("cid", cid); // 料仓cid,流水线可传入空
// string server = GetAddr(Addr_afterPutCut, paramMap);
// DateTime startTime = DateTime.Now;
// string resultStr = HttpHelper.Post(server, "");
// if (barcode != "")
// {
// LogUtil.info(deviceName + "afterPutCut " + FormUtil.GetSpanStr(DateTime.Now - startTime) + " 【" + server + "】【" + resultStr + "】");
// }
// else
// {
// LogUtil.debug(deviceName + "afterPutCut " + FormUtil.GetSpanStr(DateTime.Now - startTime) + " 【" + server + "】【" + resultStr + "】");
// }
// //> 返回:
// //>>` {"code": 0, "msg":"ok", "data":{"cutPackageTask":"0","urgentPackageTask":"20","cutTask":"21","urgentTask":"22"}} `
// //>>
// //>> - code: 0为正常,其他为异常,
// //>> - msg:消息,
// //>> - data:为包装料仓的空闲仓位数(key为与客户端一致的料仓标识, value为空闲仓位)
// //>> - cutPackageTask: 表示当前包装仓的分盘任务数
// //>> - urgentPackageTask: 表示当前包装仓的紧急料任务数
// //>> - cutTask: 表示流水线分盘任务数
// //>> - urgentTask: 表示流水线紧急料任务数
// AfterPutData serverResult = JsonHelper.DeserializeJsonToObject<AfterPutData>(resultStr);
// if (serverResult == null)
// {
// return msg = deviceName + "afterPutCut【 " + barcode + "】【" + rfid + "】【" + rfidLoc + "】没有收到服务器反馈";
// }
// else if (serverResult.code.Equals(0).Equals(false))
// {
// return msg = deviceName + " afterPutCut【 " + barcode + "】【" + rfid + "】【" + rfidLoc + "】 :" + serverResult.msg;
// }
// afterData = serverResult.data;
// return "";
// }
// catch (Exception ex)
// {
// LogUtil.error(deviceName + " " + ex.ToString());
// }
// return msg;
//}
}
public class ServerData
{
//{"code":0,"msg":"ok","data":"7"}
public int code { get; set; }
public string msg { get; set; }
public string data { get; set; }
}
//public class AfterPutData
//{
// //>>` {"code": 0, "msg":"ok", "data":{"cutPackageTask":"0","urgentPackageTask":"20","cutTask":"21","urgentTask":"22"}} `
// //>>
// //>> - code: 0为正常,其他为异常,
// //>> - msg:消息,
// //>> - data:为包装料仓的空闲仓位数(key为与客户端一致的料仓标识, value为空闲仓位)
// //>> - cutPackageTask: 表示当前包装仓的分盘任务数
// //>> - urgentPackageTask: 表示当前包装仓的紧急料任务数
// //>> - cutTask: 表示流水线分盘任务数
// //>> - urgentTask: 表示流水线紧急料任务数
// public int code { get; set; }
// public string msg { get; set; }
// public TaskData data { get; set; }
//}
//public class TaskData
//{
// /// <summary>
// /// urgentPackageTask: 表示当前包装仓的紧急料任务数
// /// </summary>
// public int urgentPackageTask { get; set; }
// /// <summary>
// /// cutPackageTask: 表示当前包装仓的分盘任务数
// /// </summary>
// public int cutPackageTask { get; set; }
// /// <summary>
// /// cutTask: 表示流水线分盘任务数
// /// </summary>
// public int cutTask { get; set; }
// /// <summary>
// /// urgentTask: 表示流水线紧急料任务数
// /// </summary>
// public int urgentTask { get; set; }
// public string ToStr()
// {
// return "[分盘料=" + cutTask + "][紧急料=" + urgentTask+"]";
// }
//}
}