过站记录数据上传测试完成
This commit is contained in:
parent
dda7303aa5
commit
2cca46b104
@ -85,7 +85,7 @@ namespace DOAN.Model.Bydlms
|
||||
/// <summary>
|
||||
/// 是否产出。0表示产出,1表示非产出
|
||||
/// </summary>
|
||||
public int? IsProduc { get; set; }
|
||||
public int? IsProduct { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 过站类型(1表示进站;2表示出站)
|
||||
|
||||
@ -43,7 +43,7 @@ namespace DOAN.Model.Bydlms.Dto
|
||||
|
||||
public string StationCode { get; set; }
|
||||
|
||||
public int? IsProduc { get; set; }
|
||||
public int? IsProduct { get; set; }
|
||||
|
||||
public int? ReqType { get; set; }
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ using DOAN.Service.Bydlms.IBydlmsService;
|
||||
using Infrastructure;
|
||||
using Newtonsoft.Json;
|
||||
using System.Text;
|
||||
using Azure;
|
||||
|
||||
namespace DOAN.Tasks.TaskScheduler
|
||||
{
|
||||
@ -42,7 +43,7 @@ namespace DOAN.Tasks.TaskScheduler
|
||||
/// <returns></returns>
|
||||
public async Task Run()
|
||||
{
|
||||
await Task.Delay(1000 * 10);
|
||||
await Task.Delay(1000 * 60);
|
||||
//TODO 业务逻辑
|
||||
//var db = DbScoped.SugarScope;
|
||||
|
||||
@ -51,13 +52,10 @@ namespace DOAN.Tasks.TaskScheduler
|
||||
|
||||
try
|
||||
{
|
||||
Console.WriteLine("后台任务执行!");
|
||||
|
||||
|
||||
// TODO 过站信息转发
|
||||
await ProcessStationPasses(_BaseUrl + _StationPassesUrl);
|
||||
// 报警信息转发
|
||||
await ProcessAlarms(_BaseUrl + _AlarmsUrl);
|
||||
// await ProcessAlarms(_BaseUrl + _AlarmsUrl);
|
||||
|
||||
// TODO 设备数采信息转发
|
||||
// await ProcessDeviceDataCollection(BaseUrl + DeviceDataCollectionUrl);
|
||||
@ -95,7 +93,6 @@ namespace DOAN.Tasks.TaskScheduler
|
||||
Console.WriteLine($"本次报警未上传信息,数据大小为{list.Count}");
|
||||
if (list.Count > 0)
|
||||
{
|
||||
|
||||
// 发送HTTP请求并获取响应内容
|
||||
AlarmUploadData uploadData =
|
||||
new()
|
||||
@ -105,10 +102,14 @@ namespace DOAN.Tasks.TaskScheduler
|
||||
data = list
|
||||
};
|
||||
string responseBody = await SendRequestAsync(url, uploadData);
|
||||
|
||||
|
||||
// 标记报警信息已上传
|
||||
foreach (var item in list)
|
||||
{
|
||||
item.IsUpload = 1;
|
||||
}
|
||||
var updateRes = db.Updateable(list)
|
||||
.UpdateColumns(it => it.IsUpload == 1)
|
||||
.UpdateColumns(it => new { it.IsUpload })
|
||||
// .UpdateColumns(it => new { it.IsUpload })
|
||||
.ExecuteCommand();
|
||||
if (updateRes == 0)
|
||||
@ -138,7 +139,7 @@ namespace DOAN.Tasks.TaskScheduler
|
||||
/// <returns>表示异步操作的任务。</returns>
|
||||
private async Task ProcessStationPasses(string url)
|
||||
{
|
||||
|
||||
Console.WriteLine($"执行过站信息上传!================================");
|
||||
try
|
||||
{
|
||||
var db = DbScoped.SugarScope;
|
||||
@ -149,7 +150,6 @@ namespace DOAN.Tasks.TaskScheduler
|
||||
Console.WriteLine($"本次过站未上传信息,数据大小为{list.Count}");
|
||||
if (list.Count > 0)
|
||||
{
|
||||
|
||||
// 发送HTTP请求并获取响应内容
|
||||
ProductionStationUploadData uploadData =
|
||||
new()
|
||||
@ -167,9 +167,13 @@ namespace DOAN.Tasks.TaskScheduler
|
||||
data = list
|
||||
};
|
||||
string responseBody = await SendRequestAsync(url, uploadData);
|
||||
|
||||
// 标记信息已上传
|
||||
var updateRes = db.Updateable(list).UpdateColumns(it => it.IsUpload == 1)
|
||||
foreach (var item in list)
|
||||
{
|
||||
item.IsUpload = 1;
|
||||
}
|
||||
var updateRes = db.Updateable(list)
|
||||
.UpdateColumns(it => new { it.IsUpload })
|
||||
// .UpdateColumns(it => new { it.IsUpload })
|
||||
.ExecuteCommand();
|
||||
if (updateRes == 0)
|
||||
@ -189,6 +193,7 @@ namespace DOAN.Tasks.TaskScheduler
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("过站信息上传出现异常!======== " + ex.Message);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@ -200,28 +205,35 @@ namespace DOAN.Tasks.TaskScheduler
|
||||
/// <returns>API响应的内容字符串。</returns>
|
||||
private async Task<string> SendRequestAsync(string url, object data)
|
||||
{
|
||||
if (data == null) {
|
||||
throw new HttpRequestException($"请求发送失败: 请求体data为空");
|
||||
}
|
||||
// 将数据对象序列化为JSON字符串
|
||||
var jsonData = JsonConvert.SerializeObject(data);
|
||||
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
|
||||
|
||||
// 创建HTTP请求消息
|
||||
using (var request = new HttpRequestMessage(HttpMethod.Post, url))
|
||||
{
|
||||
request.Content = content; // 设置请求体内容
|
||||
request.Headers.Add("appId", "61320D6EEF5A48B7C32149DF991BED41"); // 添加请求头
|
||||
request.Headers.Add("appKey", "85725BB0BCCEE8DB1AE2D5A48D393ABE"); // 添加请求头
|
||||
// 添加请求头
|
||||
request.Headers.Add("appId", "7A5D0E17337C574DA1B6BAE22AC8B635");
|
||||
request.Headers.Add("appKey", "501546E35229E5725B9765568B461BB2");
|
||||
using HttpClient client = new HttpClient();
|
||||
// 发送HTTP请求并获取响应
|
||||
HttpResponseMessage response = await client.SendAsync(request);
|
||||
|
||||
string responseBody = await response.Content.ReadAsStringAsync();
|
||||
// 确保响应状态码成功
|
||||
if (!response.IsSuccessStatusCode)
|
||||
if (!response.IsSuccessStatusCode || response == null)
|
||||
{
|
||||
throw new HttpRequestException($"请求发送失败: {response.StatusCode};url={url}");
|
||||
Console.WriteLine($"==1===请求响应失败,状态码: {response.StatusCode}");
|
||||
Console.WriteLine($"==2===请求响应失败,发送url: {url}");
|
||||
Console.WriteLine($"==3===请求响应失败,发送body内容: {jsonData}");
|
||||
Console.WriteLine($"==4===请求响应失败,请求内容: {response.RequestMessage}");
|
||||
Console.WriteLine($"==5===请求响应失败,返回内容Content: {responseBody}");
|
||||
throw new HttpRequestException($"请求发送失败: {responseBody}");
|
||||
}
|
||||
|
||||
// 读取并返回响应内容
|
||||
return await response.Content.ReadAsStringAsync();
|
||||
return responseBody;
|
||||
}
|
||||
}
|
||||
|
||||
@ -231,6 +243,7 @@ namespace DOAN.Tasks.TaskScheduler
|
||||
/// <param name="exception">捕获的HttpRequestException异常。</param>
|
||||
private void HandleHttpRequestException(HttpRequestException exception)
|
||||
{
|
||||
Console.WriteLine("exception" + exception);
|
||||
Console.WriteLine($"HTTP Request Error: {exception.Message}");
|
||||
// 可以在这里添加日志记录或其他处理逻辑
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user