add ledger update
This commit is contained in:
@@ -676,7 +676,7 @@ bool parseJsonMessageUD(const std::string& json_str, const std::string& output_d
|
||||
send_reply_to_queue(guid, "1", "收到台账更新指令");
|
||||
|
||||
if (code_str == "add_terminal" || code_str == "ledger_modify") {
|
||||
std::cout << "add or update ledger" << std::endl;
|
||||
std::cout << "add or modify ledger" << std::endl;
|
||||
|
||||
if (messageBody.contains("data") && messageBody["data"].is_array()) {
|
||||
for (const auto& item : messageBody["data"]) {
|
||||
@@ -696,6 +696,9 @@ bool parseJsonMessageUD(const std::string& json_str, const std::string& output_d
|
||||
int procNo = item.value("processNo", -1);
|
||||
json_data.processNo = std::to_string(procNo);
|
||||
|
||||
//int procNum = item.value("maxProcessNum", -1);
|
||||
//json_data.maxProcessNum = std::to_string(procNum);
|
||||
|
||||
//json_data.addr_str = item.value("ip", "");
|
||||
//json_data.port = item.value("port", "");
|
||||
//json_data.timestamp = item.value("updateTime", "");
|
||||
@@ -713,19 +716,53 @@ bool parseJsonMessageUD(const std::string& json_str, const std::string& output_d
|
||||
m.logical_device_seq = monitor_item.value("lineNo", "");
|
||||
m.terminal_connect = monitor_item.value("ptType", "");
|
||||
//m.timestamp = json_data.timestamp;
|
||||
m.terminal_id = json_data.terminal_id;
|
||||
m.terminal_id = monitor_item.value("deviceId", json_data.terminal_id);
|
||||
m.CT1 = monitor_item.value("CT1", "");
|
||||
m.CT2 = monitor_item.value("CT2", "");
|
||||
m.PT1 = monitor_item.value("PT1", "");
|
||||
m.PT2 = monitor_item.value("PT2", "");
|
||||
}
|
||||
}
|
||||
|
||||
print_terminal(json_data);
|
||||
|
||||
std::string xmlContent = prepare_update(code_str, json_data, guid);
|
||||
/*std::string xmlContent = prepare_update(code_str, json_data, guid);
|
||||
if (!xmlContent.empty()) {
|
||||
char nodeid[20];
|
||||
std::sprintf(nodeid, "%u", g_node_id);
|
||||
std::string file_name = output_dir + "/" + nodeid + "_" + std::to_string(g_front_seg_index) + "_" + json_data.terminal_id + "_" + code_str + ".xml";
|
||||
writeToFile(file_name, xmlContent);
|
||||
}
|
||||
}*/
|
||||
if(code_str == "add_terminal"){
|
||||
init_loggers_bydevid(target_dev.terminal_id);
|
||||
terminal_devlist.push_back(json_data);
|
||||
|
||||
//调用接口添加到通讯列表
|
||||
DeviceInfo device = make_device_from_terminal(json_data);
|
||||
ClientManager::instance().add_device(device);
|
||||
|
||||
send_reply_to_queue(new_dev.guid, "2",
|
||||
"终端 id: " + new_dev.terminal_id + " 台账添加成功");
|
||||
}
|
||||
else if(code_str == "ledger_modify"){
|
||||
|
||||
if(erase_one_terminals_by_id(json_data.terminal_id) == 1){
|
||||
init_loggers_bydevid(target_dev.terminal_id);
|
||||
terminal_devlist.push_back(json_data);
|
||||
|
||||
//调用接口添加到通讯列表
|
||||
DeviceInfo device = make_device_from_terminal(json_data);
|
||||
ClientManager::instance().add_device(device);
|
||||
|
||||
send_reply_to_queue(del_dev.guid, "2",
|
||||
"终端 id: " + del_dev.terminal_id + " 台账修改成功");
|
||||
}
|
||||
else{
|
||||
send_reply_to_queue(del_dev.guid, "2",
|
||||
"终端 id: " + del_dev.terminal_id + " 台账修改失败");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
} else if (code_str == "delete_terminal") {
|
||||
@@ -736,13 +773,25 @@ bool parseJsonMessageUD(const std::string& json_str, const std::string& output_d
|
||||
auto id = item.value("id", "");
|
||||
json_data.terminal_id = id;
|
||||
|
||||
std::string xmlContent = prepare_update(code_str, json_data, guid);
|
||||
/*std::string xmlContent = prepare_update(code_str, json_data, guid);
|
||||
if (!xmlContent.empty()) {
|
||||
char nodeid[20];
|
||||
std::sprintf(nodeid, "%u", g_node_id);
|
||||
std::string file_name = output_dir + "/" + nodeid + "_" + std::to_string(g_front_seg_index) + "_" + json_data.terminal_id + "_delete_terminal.xml";
|
||||
writeToFile(file_name, xmlContent);
|
||||
}
|
||||
}*/
|
||||
|
||||
//直接加锁删除
|
||||
std::lock_guard<std::mutex> lock(ledgermtx);
|
||||
if(erase_one_terminals_by_id(json_data.terminal_id) == 1){
|
||||
lientManager::instance().remove_device(json_data.terminal_id);
|
||||
send_reply_to_queue(del_dev.guid, "2",
|
||||
"终端 id: " + del_dev.terminal_id + " 台账删除成功");
|
||||
}
|
||||
else{
|
||||
send_reply_to_queue(del_dev.guid, "2",
|
||||
"终端 id: " + del_dev.terminal_id + " 台账删除失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -1081,48 +1130,51 @@ std::string prepare_update(const std::string& code_str, const terminal_dev& json
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<id>" << json_data.terminal_id << "</id>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<ip>" << json_data.addr_str << "</ip>" << std::endl; // Assuming `addr_str` for IP
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<ip>" << json_data.addr_str << "</ip>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<devType>" << json_data.dev_type << "</devType>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<maintName>" << json_data.maint_name << "</maintName>" << std::endl;
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<maintName>" << json_data.maint_name << "</maintName>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<orgName>" << json_data.org_name << "</orgName>" << std::endl;
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<orgName>" << json_data.org_name << "</orgName>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<port>" << json_data.port << "</port>" << std::endl;
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<port>" << json_data.port << "</port>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<stationName>" << json_data.station_name << "</stationName>" << std::endl;
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<stationName>" << json_data.station_name << "</stationName>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<terminalCode>" << json_data.terminal_name << "</terminalCode>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<updateTime>" << json_data.timestamp << "</updateTime>" << std::endl; // Assuming `timestamp`
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<updateTime>" << json_data.timestamp << "</updateTime>" << std::endl; // Assuming `timestamp`
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<manufacturer>" << json_data.tmnl_factory << "</manufacturer>" << std::endl;
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<manufacturer>" << json_data.tmnl_factory << "</manufacturer>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<status>" << json_data.tmnl_status << "</status>" << std::endl;
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<status>" << json_data.tmnl_status << "</status>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<series>" << json_data.dev_series << "</series>" << std::endl;
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<series>" << json_data.dev_series << "</series>" << std::endl;
|
||||
|
||||
//lnk20250210
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<processNo>" << json_data.processNo << "</processNo>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<devKey>" << json_data.dev_key << "</devKey>" << std::endl;
|
||||
xmlStream << "<Righttime>" << json_data.Righttime << "</Righttime>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<mac>" << json_data.mac << "</mac>" << std::endl;
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<devKey>" << json_data.dev_key << "</devKey>" << std::endl;
|
||||
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<mac>" << json_data.mac << "</mac>" << std::endl;
|
||||
|
||||
// monitorData 部分
|
||||
for (int i = 0; json_data.line[i].monitor_id[0] != '\0'; i++) {
|
||||
@@ -1147,8 +1199,8 @@ std::string prepare_update(const std::string& code_str, const terminal_dev& json
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<ptType>" << monitor.terminal_connect << "</ptType>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<timestamp>" << monitor.timestamp << "</timestamp>" << std::endl;
|
||||
//add_indent(xmlStream, indentLevel);
|
||||
//xmlStream << "<timestamp>" << monitor.timestamp << "</timestamp>" << std::endl;
|
||||
|
||||
add_indent(xmlStream, indentLevel);
|
||||
xmlStream << "<terminal_id>" << monitor.terminal_id << "</terminal_id>" << std::endl;
|
||||
@@ -2016,4 +2068,7 @@ void connect_status_update(const std::string& id, int status)
|
||||
|
||||
// 调试打印
|
||||
std::cout << "[connect_status_update] queued JSON:\n" << j.dump(4) << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user