上传系统接口增加token

This commit is contained in:
hehaibing-1996
2025-03-03 11:23:07 +08:00
parent bd8337bed2
commit 84aa11ef30
4 changed files with 81 additions and 16 deletions

View File

@ -12,5 +12,7 @@ namespace WCS.BLL.Config
/// 0x02绿色 0x04蓝色
/// </summary>
public static byte CurrentOutStoreColor = 0x02;
public static string WMSToken = string.Empty;
}
}

View File

@ -26,22 +26,22 @@ namespace WCS.BLL.Manager
public static void InitBackgroundThread()
{
#region WMS接口获取具体的库存列表并展示在液晶标签上
Task.Run(() =>
{
while (true)
{
//每5秒同步一次
Thread.Sleep(5000);
try
{
//Task.Run(() =>
//{
// while (true)
// {
// //每5秒同步一次
// Thread.Sleep(5000);
// try
// {
}
catch (Exception ex)
{
Logs.Write("【定时任务】刷新库存显示时发生异常!" + ex.Message);
}
}
});
// }
// catch (Exception ex)
// {
// Logs.Write("【定时任务】刷新库存显示时发生异常!" + ex.Message);
// }
// }
//});
#endregion
#region WMS系统
@ -51,6 +51,38 @@ namespace WCS.BLL.Manager
{
//回传数据的时间间隔
Thread.Sleep(2000);
//先判断是否需要获取token
if (string.IsNullOrEmpty(LocalStatic.WMSToken))
{
try
{
Logs.Write($"【定时任务回传数据至WMS系统】token为空 开始获取token", LogsType.Info);
#region token
var request = new LoginRequest()
{
userName = "cmeimZtwcs",
password = "Cmeim@ztwcs2024!@#"
};
var result = ApiHelp.GetDataFromHttpShortTime<LoginResponse>(@"http://10.41.235.10:18989/login", request, "POST", true);
if (result != null && (result.code == 200))
{
//获取到最新的token
LocalStatic.WMSToken = result.data;
Logs.Write($"【定时任务回传数据至WMS系统】调用接口获取token成功token为{result.data}", LogsType.Info);
}
else if (result != null && (result.code == 500) && result.message.Contains("未查询到条码信息【"))
{
Logs.Write($"【定时任务回传数据至WMS系统】调用接口获取token失败", LogsType.Info);
}
#endregion
}
catch (Exception ex)
{
Logs.Write($"【定时任务回传数据至WMS系统】获取token异常" + ex.Message, LogsType.Info);
Logs.Write($"【定时任务回传数据至WMS系统】获取token异常" + ex.StackTrace, LogsType.Info);
}
}
try
{
//获取已完成未提交的任务
@ -142,6 +174,22 @@ namespace WCS.BLL.Manager
DbHelp.db.Insertable(uploadedTask).ExecuteCommand();
DbHelp.db.Deleteable(finishedTask).ExecuteCommand();
}
else if (result != null && (result.code == 10000) &&
(result.message.Contains("token") || result.message.Contains("请重新登录") || result.message.Contains("无token") || result.message.Contains("无效token") || result.message.Contains("token校验失败"))
)
{
Logs.Write($"【定时任务回传数据至WMS系统】根据wms接口返回 token已过期或者错误清空token。", LogsType.Info);
LocalStatic.WMSToken = string.Empty;
break;
}
else if (result != null && (result.code == 500) &&
(result.message.Contains("token") || result.message.Contains("请重新登录") || result.message.Contains("无token") || result.message.Contains("无效token") || result.message.Contains("token校验失败"))
)
{
Logs.Write($"【定时任务回传数据至WMS系统】根据wms接口返回 token已过期或者错误清空token。", LogsType.Info);
LocalStatic.WMSToken = string.Empty;
break;
}
#endregion
//为了调试

View File

@ -12,6 +12,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using WCS.BLL;
using WCS.BLL.Config;
using WCS.Model;
namespace WCS.BLL.Tool
@ -280,6 +281,7 @@ namespace WCS.BLL.Tool
if (isSaveLog)
Logs.Write($"【{guid}】开始请求调用接口 url{url} 请求方式:{httpMethod} 数据:{data}", LogsType.Api);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Headers.Add("token",LocalStatic.WMSToken);//智能制造要求请求增加token
request.Method = httpMethod;
request.ContentType = "application/json";
request.Timeout = 10000;
@ -324,7 +326,7 @@ namespace WCS.BLL.Tool
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = httpMethod;
request.ContentType = "application/json";
request.Timeout = 2000;
request.Timeout = 3000;
if (!string.IsNullOrEmpty(data))
{

View File

@ -10,4 +10,17 @@ namespace WCS.Model.ApiModel.MKYBackgroundThread
public string message { get; set; }
public object data { get; set; }
}
public class LoginRequest
{
public string userName { get; set; } = "cmeimZtwcs";
public string password { get; set; } = "Cmeim@ztwcs2024!@#";
}
public class LoginResponse
{
public int code { get; set; }
public string message { get; set; }
public string data { get; set; }
}
}