fix ledger update
This commit is contained in:
@@ -5119,11 +5119,17 @@ void enqueue_realtime_pq(const RealtagPqDate_float& realdata,
|
|||||||
std::lock_guard<std::mutex> lk(g_last_ts_mtx);
|
std::lock_guard<std::mutex> lk(g_last_ts_mtx);
|
||||||
auto it = g_last_ts_by_devid.find(devid);
|
auto it = g_last_ts_by_devid.find(devid);
|
||||||
if (it != g_last_ts_by_devid.end() && it->second == data_time) {
|
if (it != g_last_ts_by_devid.end() && it->second == data_time) {
|
||||||
|
|
||||||
|
std::cout << "[enqueue_realtime_pq] duplicate timestamp, devid="
|
||||||
|
<< devid << " time=" << data_time << std::endl;
|
||||||
// 同一设备与上次时间相同 → 丢弃本次
|
// 同一设备与上次时间相同 → 丢弃本次
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 记录本次时间
|
// 记录本次时间
|
||||||
g_last_ts_by_devid[devid] = data_time;
|
g_last_ts_by_devid[devid] = data_time;
|
||||||
|
|
||||||
|
std::cout << "[enqueue_realtime_pq] record timestamp, devid="
|
||||||
|
<< devid << " time=" << data_time << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<DataArrayItem> arr;
|
std::vector<DataArrayItem> arr;
|
||||||
|
|||||||
@@ -516,7 +516,7 @@ int get_max_stat_data_index(const std::string& filepath) {
|
|||||||
|
|
||||||
while (std::getline(file, line)) {
|
while (std::getline(file, line)) {
|
||||||
// 查找符合要求的行
|
// 查找符合要求的行
|
||||||
if (line.find("pt61850netd_pqfe -d cfg_stat_data -s") != std::string::npos) {
|
if (line.find("cloud-front") != std::string::npos) {
|
||||||
// 找到 -s 参数位置
|
// 找到 -s 参数位置
|
||||||
std::size_t pos = line.find("-s");
|
std::size_t pos = line.find("-s");
|
||||||
if (pos != std::string::npos) {
|
if (pos != std::string::npos) {
|
||||||
|
|||||||
@@ -682,7 +682,7 @@ bool parseJsonMessageUD(const std::string& json_str, const std::string& output_d
|
|||||||
if (messageBody.contains("data") && messageBody["data"].is_array()) {
|
if (messageBody.contains("data") && messageBody["data"].is_array()) {
|
||||||
|
|
||||||
for (const auto& item : messageBody["data"]) {
|
for (const auto& item : messageBody["data"]) {
|
||||||
terminal_dev json_data;
|
terminal_dev json_data{};
|
||||||
|
|
||||||
json_data.terminal_id = item.value("id", "");
|
json_data.terminal_id = item.value("id", "");
|
||||||
json_data.terminal_name = item.value("name", "");
|
json_data.terminal_name = item.value("name", "");
|
||||||
@@ -695,7 +695,11 @@ bool parseJsonMessageUD(const std::string& json_str, const std::string& output_d
|
|||||||
//json_data.dev_key = item.value("devKey", "");
|
//json_data.dev_key = item.value("devKey", "");
|
||||||
//json_data.dev_series = item.value("series", "");
|
//json_data.dev_series = item.value("series", "");
|
||||||
|
|
||||||
int procNo = item.value("processNo", -1);
|
int procNo = -1; // 兼容 item.processNo 类型
|
||||||
|
if (item.contains("processNo")) {
|
||||||
|
if (item["processNo"].is_number_integer()) procNo = item["processNo"].get<int>();
|
||||||
|
else if (item["processNo"].is_string()) { try { procNo = std::stoi(item["processNo"].get<std::string>()); } catch(...) { procNo = -1; } }
|
||||||
|
}
|
||||||
json_data.processNo = std::to_string(procNo);
|
json_data.processNo = std::to_string(procNo);
|
||||||
|
|
||||||
//int procNum = item.value("maxProcessNum", -1);
|
//int procNum = item.value("maxProcessNum", -1);
|
||||||
@@ -707,9 +711,10 @@ bool parseJsonMessageUD(const std::string& json_str, const std::string& output_d
|
|||||||
json_data.Righttime = item.value("Righttime", "");
|
json_data.Righttime = item.value("Righttime", "");
|
||||||
|
|
||||||
if (item.contains("monitorData") && item["monitorData"].is_array()) {
|
if (item.contains("monitorData") && item["monitorData"].is_array()) {
|
||||||
int j = 0;
|
size_t j = 0;
|
||||||
|
constexpr size_t kMaxLines = std::extent<decltype(terminal_dev::line)>::value; // 如果是 C 数组
|
||||||
for (const auto& monitor_item : item["monitorData"]) {
|
for (const auto& monitor_item : item["monitorData"]) {
|
||||||
if (j >= 10) break;
|
if (j >= kMaxLines) break;
|
||||||
auto& m = json_data.line[j++];
|
auto& m = json_data.line[j++];
|
||||||
m.monitor_id = monitor_item.value("id", "");
|
m.monitor_id = monitor_item.value("id", "");
|
||||||
m.monitor_name = monitor_item.value("name", "");
|
m.monitor_name = monitor_item.value("name", "");
|
||||||
@@ -1645,7 +1650,7 @@ void rocketmq_test_rt(Front* front)//用来测试实时数据
|
|||||||
|
|
||||||
data.strText = std::string(buffer.str());
|
data.strText = std::string(buffer.str());
|
||||||
data.mp_id = "123123";
|
data.mp_id = "123123";
|
||||||
data.tag = G_ROCKETMQ_TAG_TEST;
|
data.tag = FRONT_INST;
|
||||||
data.key = G_ROCKETMQ_KEY_TEST;
|
data.key = G_ROCKETMQ_KEY_TEST;
|
||||||
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
||||||
queue_data_list.push_back(data);
|
queue_data_list.push_back(data);
|
||||||
@@ -1669,7 +1674,7 @@ void rocketmq_test_ud(Front* front)//用来测试台账更新
|
|||||||
|
|
||||||
data.strText = std::string(buffer.str());
|
data.strText = std::string(buffer.str());
|
||||||
data.mp_id = "123123";
|
data.mp_id = "123123";
|
||||||
data.tag = G_ROCKETMQ_TAG_TEST;
|
data.tag = FRONT_INST;
|
||||||
data.key = G_ROCKETMQ_KEY_TEST;
|
data.key = G_ROCKETMQ_KEY_TEST;
|
||||||
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
||||||
queue_data_list.push_back(data);
|
queue_data_list.push_back(data);
|
||||||
@@ -1693,7 +1698,7 @@ void rocketmq_test_set(Front* front)//用来测试进程控制脚本
|
|||||||
|
|
||||||
data.strText = std::string(buffer.str());
|
data.strText = std::string(buffer.str());
|
||||||
data.mp_id = "123123";
|
data.mp_id = "123123";
|
||||||
data.tag = G_ROCKETMQ_TAG_TEST;
|
data.tag = FRONT_INST;
|
||||||
data.key = G_ROCKETMQ_KEY_TEST;
|
data.key = G_ROCKETMQ_KEY_TEST;
|
||||||
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
||||||
queue_data_list.push_back(data);
|
queue_data_list.push_back(data);
|
||||||
@@ -1717,7 +1722,7 @@ void rocketmq_test_rc(Front* front)//用来测试补招
|
|||||||
|
|
||||||
data.strText = std::string(buffer.str());
|
data.strText = std::string(buffer.str());
|
||||||
data.mp_id = "123123";
|
data.mp_id = "123123";
|
||||||
data.tag = G_ROCKETMQ_TAG_TEST;
|
data.tag = FRONT_INST;
|
||||||
data.key = G_ROCKETMQ_KEY_TEST;
|
data.key = G_ROCKETMQ_KEY_TEST;
|
||||||
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
||||||
queue_data_list.push_back(data);
|
queue_data_list.push_back(data);
|
||||||
|
|||||||
Reference in New Issue
Block a user