diff --git a/DOAN.Model/Bydlms/BydProductionStation.cs b/DOAN.Model/Bydlms/BydProductionStation.cs
index a5cf59e..b7fc2fe 100644
--- a/DOAN.Model/Bydlms/BydProductionStation.cs
+++ b/DOAN.Model/Bydlms/BydProductionStation.cs
@@ -85,7 +85,7 @@ namespace DOAN.Model.Bydlms
///
/// 是否产出。0表示产出,1表示非产出
///
- public int? IsProduc { get; set; }
+ public int? IsProduct { get; set; }
///
/// 过站类型(1表示进站;2表示出站)
diff --git a/DOAN.Model/Bydlms/Dto/BydProductionStationDto.cs b/DOAN.Model/Bydlms/Dto/BydProductionStationDto.cs
index bda4358..3d15025 100644
--- a/DOAN.Model/Bydlms/Dto/BydProductionStationDto.cs
+++ b/DOAN.Model/Bydlms/Dto/BydProductionStationDto.cs
@@ -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; }
diff --git a/DOAN.Tasks/TaskScheduler/Job_SyncForward.cs b/DOAN.Tasks/TaskScheduler/Job_SyncForward.cs
index 847f897..9616cb2 100644
--- a/DOAN.Tasks/TaskScheduler/Job_SyncForward.cs
+++ b/DOAN.Tasks/TaskScheduler/Job_SyncForward.cs
@@ -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
///
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
/// 表示异步操作的任务。
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
/// API响应的内容字符串。
private async Task 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
/// 捕获的HttpRequestException异常。
private void HandleHttpRequestException(HttpRequestException exception)
{
+ Console.WriteLine("exception" + exception);
Console.WriteLine($"HTTP Request Error: {exception.Message}");
// 可以在这里添加日志记录或其他处理逻辑
}