|
@@ -170,23 +170,28 @@ bool ToEQMDataBase::getAlgorithmInfo(std::vector<AlgorithmInfo>& vecInfo)
|
|
|
}
|
|
|
/* 解析获取到的JSON数据 */
|
|
|
// SPDLOG_LOGGER_DEBUG(m_logger,"\n{}",strRet.toStdString());
|
|
|
- nJson json1 = nJson::parse(strRet.toStdString());
|
|
|
- int retCode = json1["code"].get<int>();
|
|
|
- if(retCode != 0)
|
|
|
- {
|
|
|
- SPDLOG_LOGGER_ERROR(m_logger,"获取tAction失败");
|
|
|
+ try {
|
|
|
+ nJson json1 = nJson::parse(strRet.toStdString());
|
|
|
+ int retCode = json1["code"].get<int>();
|
|
|
+ if(retCode != 0)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"获取tAction失败");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ nJson result = json1["result"];
|
|
|
+ for(auto& it : result)
|
|
|
+ {
|
|
|
+ AlgorithmInfo info;
|
|
|
+ info.ActionID = it["actionId"].is_null() ? "" : it["actionId"].get<std::string>();
|
|
|
+ info.ActionName = it["actionName"].get<std::string>();
|
|
|
+ info.ActionTaskID = it["actionTaskid"].get<int>();
|
|
|
+ // SPDLOG_LOGGER_DEBUG(m_logger,"ActionID:{}, ActionName:{}, ActionTaskID:{}",info.ActionID,info.ActionName,info.ActionTaskID);
|
|
|
+ vecInfo.push_back(info);
|
|
|
+ }
|
|
|
+ } catch (const nJson::parse_error& e) {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"解析tAction数据失败:{}",e.what());
|
|
|
return false;
|
|
|
}
|
|
|
- nJson result = json1["result"];
|
|
|
- for(auto& it : result)
|
|
|
- {
|
|
|
- AlgorithmInfo info;
|
|
|
- info.ActionID = it["actionId"].is_null() ? "" : it["actionId"].get<std::string>();
|
|
|
- info.ActionName = it["actionName"].get<std::string>();
|
|
|
- info.ActionTaskID = it["actionTaskid"].get<int>();
|
|
|
- // SPDLOG_LOGGER_DEBUG(m_logger,"ActionID:{}, ActionName:{}, ActionTaskID:{}",info.ActionID,info.ActionName,info.ActionTaskID);
|
|
|
- vecInfo.push_back(info);
|
|
|
- }
|
|
|
|
|
|
return true;
|
|
|
}
|
|
@@ -210,14 +215,15 @@ bool ToEQMDataBase::insertDeviceInfo(std::vector<DeviceInfo>& vecInfo)
|
|
|
nJson json0;
|
|
|
json0["opName"] = "SPSS_InsertToCamerInfo";
|
|
|
nJson json1;
|
|
|
+ /* 这里不知道是不是“?”运算符的等级是不是不够,不加括号会报错 */
|
|
|
json1["camerID"] = it.DeviceID;
|
|
|
- json1["camerName"] = it.DeviceName.empty() ? nullptr : it.DeviceName;
|
|
|
- json1["camerIP"] = it.DeviceIP.empty() ? nullptr : it.DeviceIP;
|
|
|
+ json1["camerName"] = it.DeviceName;
|
|
|
+ json1["camerIP"] = it.DeviceIP;
|
|
|
json1["camerPort"] = it.DevicePort;
|
|
|
- json1["camerUser"] = it.UserAccount.empty() ? nullptr : it.UserAccount;
|
|
|
- json1["camerPwd"] = it.UserPassword.empty() ? nullptr : it.UserPassword;
|
|
|
- json1["camerType"] = it.DeviceType.empty() ? nullptr : it.DeviceType;
|
|
|
- json1["camerSerial"] = it.DeviceSerial.empty() ? nullptr : it.DeviceSerial;
|
|
|
+ json1["camerUser"] = it.UserAccount;
|
|
|
+ json1["camerPwd"] = it.UserPassword;
|
|
|
+ json1["camerType"] = it.DeviceType;
|
|
|
+ json1["camerSerial"] = it.DeviceSerial;
|
|
|
json1["camerChannel"] = nullptr;
|
|
|
json1["camerUrl"] = nullptr;
|
|
|
|
|
@@ -230,7 +236,29 @@ bool ToEQMDataBase::insertDeviceInfo(std::vector<DeviceInfo>& vecInfo)
|
|
|
SPDLOG_LOGGER_DEBUG(m_logger,"插入设备信息失败:{}, 错误信息:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
|
|
|
isSuccess = false;
|
|
|
}
|
|
|
- SPDLOG_LOGGER_DEBUG(m_logger,"插入数据 {} 到 CamerInfo 成功!", it.DeviceID);
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"插入ID {} 信息到 CamerInfo 成功!", it.DeviceID);
|
|
|
+ }
|
|
|
+ /* 插入信息到tActionCamer表 */
|
|
|
+ for(const auto& it0 : vecInfo)
|
|
|
+ {
|
|
|
+ for(const auto& it1 : it0.vecAlgorithmInfo)
|
|
|
+ {
|
|
|
+ nJson json0;
|
|
|
+ json0["opName"] = "SPSS_InsertToActionCamer";
|
|
|
+ nJson json1;
|
|
|
+ json1["actionID"] = it1.ActionID;
|
|
|
+ json1["camerID"] = it0.DeviceID;
|
|
|
+ json0["paramList"] = json1;
|
|
|
+ QString strCmd = QString::fromStdString(json0.dump());
|
|
|
+ QString strRet;
|
|
|
+ auto ret = m_httpApi->DBQDoInterface(enDBOperatorType::EDBOT_Insert, strCmd, strRet);
|
|
|
+ if(ret < 0)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"插入设备信息到tActionCamer失败:{}, 错误信息:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
|
|
|
+ isSuccess = false;
|
|
|
+ }
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"插入DeviceID {} 和 ActionID {} 到 ActionCamer 成功!", it0.DeviceID, it1.ActionID);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return isSuccess;
|
|
@@ -257,13 +285,13 @@ bool ToEQMDataBase::updateDeviceInfo(std::vector<DeviceInfo>& vecUpdateInfo)
|
|
|
json0["opName"] = "SPSS_UpdateToCamerInfo";
|
|
|
nJson json1;
|
|
|
json1["camerID"] = it.DeviceID;
|
|
|
- json1["camerName"] = it.DeviceName.empty() ? nullptr : it.DeviceName;
|
|
|
- json1["camerIP"] = it.DeviceIP.empty() ? nullptr : it.DeviceIP;
|
|
|
+ json1["camerName"] = it.DeviceName;
|
|
|
+ json1["camerIP"] = it.DeviceIP;
|
|
|
json1["camerPort"] = it.DevicePort;
|
|
|
- json1["camerUser"] = it.UserAccount.empty() ? nullptr : it.UserAccount;
|
|
|
- json1["camerPwd"] = it.UserPassword.empty() ? nullptr : it.UserPassword;
|
|
|
- json1["camerType"] = it.DeviceType.empty() ? nullptr : it.DeviceType;
|
|
|
- json1["camerSerial"] = it.DeviceSerial.empty() ? nullptr : it.DeviceSerial;
|
|
|
+ json1["camerUser"] = it.UserAccount;
|
|
|
+ json1["camerPwd"] = it.UserPassword;
|
|
|
+ json1["camerType"] = it.DeviceType;
|
|
|
+ json1["camerSerial"] = it.DeviceSerial;
|
|
|
json1["camerChannel"] = nullptr;
|
|
|
json1["camerUrl"] = nullptr;
|
|
|
|
|
@@ -276,7 +304,7 @@ bool ToEQMDataBase::updateDeviceInfo(std::vector<DeviceInfo>& vecUpdateInfo)
|
|
|
SPDLOG_LOGGER_DEBUG(m_logger,"更新设备信息失败:{}, 错误信息:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
|
|
|
isSuccess = false;
|
|
|
}
|
|
|
- SPDLOG_LOGGER_DEBUG(m_logger,"更新数据 {} 到 CamerInfo 成功!", it.DeviceID);
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"更新ID {} 信息到 CamerInfo 成功!", it.DeviceID);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -342,32 +370,232 @@ bool ToEQMDataBase::getDeviceInfo(std::vector<DeviceInfo>& vecInfo)
|
|
|
}
|
|
|
|
|
|
/* 解析信息 */
|
|
|
- nJson json1 = nJson::parse(strRet.toStdString());
|
|
|
- int retCode = json1["code"].get<int>();
|
|
|
- if(retCode != 0)
|
|
|
+ try {
|
|
|
+ nJson json1 = nJson::parse(strRet.toStdString());
|
|
|
+ int retCode = json1["code"].get<int>();
|
|
|
+ if(retCode != 0)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"获取CamerInfo失败");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ nJson result = json1["result"];
|
|
|
+ if(result.empty())
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ for(const auto& it : result)
|
|
|
+ {
|
|
|
+ // SPDLOG_LOGGER_DEBUG(m_logger,"camerID:{}",it["camerId"].get<int>());
|
|
|
+ DeviceInfo info;
|
|
|
+ info.DeviceID = it["camerId"].get<int>();
|
|
|
+ info.DeviceName = it["camerName"].is_null() ? "" : it["camerName"].get<std::string>();
|
|
|
+ info.DeviceIP = it["camerIp"].is_null() ? "" : it["camerIp"].get<std::string>();
|
|
|
+ info.DevicePort = it["camerPort"].is_null() ? 0 : it["camerPort"].get<int>();
|
|
|
+ info.UserAccount = it["camerUsr"].is_null() ? "" : it["camerUsr"].get<std::string>();
|
|
|
+ info.UserPassword = it["camerPwd"].is_null() ? "" : it["camerPwd"].get<std::string>();
|
|
|
+ info.DeviceType = it["camerType"].is_null() ? "" : it["camerType"].get<std::string>();
|
|
|
+ info.DeviceSerial = it["camerSerial"].is_null() ? "" : it["camerSerial"].get<std::string>();
|
|
|
+
|
|
|
+
|
|
|
+ vecInfo.push_back(info);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (const nJson::parse_error& e) {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"解析CamerInfo数据失败:{}, 错误ID:{}",e.what(), e.id);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ catch (const nJson::type_error& e) {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"解析CamerInfo数据失败:{}, 错误ID:{}",e.what(), e.id);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+/* 插入设备和算法关联信息 */
|
|
|
+bool ToEQMDataBase::insertDeviceAlgorithmInfo(std::vector<DeviceInfo>& vecInfo)
|
|
|
+{
|
|
|
+ if(m_httpApi == nullptr)
|
|
|
{
|
|
|
- SPDLOG_LOGGER_ERROR(m_logger,"获取CamerInfo失败");
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"WebApi is nullptr");
|
|
|
return false;
|
|
|
}
|
|
|
- nJson result = json1["result"];
|
|
|
- if(result.empty())
|
|
|
+ /* 插入信息到tActionCamer表 */
|
|
|
+ bool isSuccess = true;
|
|
|
+ for(const auto& it0 : vecInfo)
|
|
|
{
|
|
|
+ for(const auto& it1 : it0.vecAlgorithmInfo)
|
|
|
+ {
|
|
|
+ nJson json0;
|
|
|
+ json0["opName"] = "SPSS_InsertToActionCamer";
|
|
|
+ nJson json1;
|
|
|
+ json1["actionID"] = it1.ActionID;
|
|
|
+ json1["camerID"] = it0.DeviceID;
|
|
|
+ json0["paramList"] = json1;
|
|
|
+ QString strCmd = QString::fromStdString(json0.dump());
|
|
|
+ QString strRet;
|
|
|
+ auto ret = m_httpApi->DBQDoInterface(enDBOperatorType::EDBOT_Insert, strCmd, strRet);
|
|
|
+ if(ret < 0)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"插入设备信息到tActionCamer失败:{}, 错误信息:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
|
|
|
+ isSuccess = false;
|
|
|
+ }
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"插入DeviceID {} 和 ActionID {} 到 ActionCamer 成功!", it0.DeviceID, it1.ActionID);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+/* 更新设备和算法关联表 */
|
|
|
+bool ToEQMDataBase::updateDeviceAlgorithmInfo(std::vector<DeviceInfo>& vecInfo)
|
|
|
+{
|
|
|
+ if(m_httpApi == nullptr)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"WebApi is nullptr");
|
|
|
return false;
|
|
|
}
|
|
|
- for(const auto& it : result)
|
|
|
+ /* 更新之前先删除相关的信息 */
|
|
|
+ for(const auto& it : vecInfo)
|
|
|
{
|
|
|
- // SPDLOG_LOGGER_DEBUG(m_logger,"camerID:{}",it["camerId"].get<int>());
|
|
|
- DeviceInfo info;
|
|
|
- info.DeviceID = it["camerId"].get<int>();
|
|
|
- info.DeviceName = it["camerName"].is_null() ? "" : it["camerName"].get<std::string>();
|
|
|
- info.DeviceIP = it["camerIp"].is_null() ? "" : it["camerIp"].get<std::string>();
|
|
|
- info.DevicePort = it["camerPort"].is_null() ? 0 : it["camerPort"].get<int>();
|
|
|
- info.UserAccount = it["camerUsr"].is_null() ? "" : it["camerUsr"].get<std::string>();
|
|
|
- info.UserPassword = it["camerPwd"].is_null() ? "" : it["camerPwd"].get<std::string>();
|
|
|
- info.DeviceType = it["camerType"].is_null() ? "" : it["camerType"].get<std::string>();
|
|
|
- info.DeviceSerial = it["camerSerial"].is_null() ? "" : it["camerSerial"].get<std::string>();
|
|
|
+ nJson json0;
|
|
|
+ json0["opName"] = "SPSS_DeleteFromActionCamer";
|
|
|
+ nJson json1;
|
|
|
+ json1["camerID"] = it.DeviceID;
|
|
|
+ json0["paramList"] = json1;
|
|
|
+ QString strCmd = QString::fromStdString(json0.dump());
|
|
|
+ QString strRet;
|
|
|
+ auto ret = m_httpApi->DBQDoInterface(enDBOperatorType::EDBOT_Delete, strCmd, strRet);
|
|
|
+ if(ret < 0)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"删除设备信息到tActionCamer失败:{}, 错误信息:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
|
|
|
+ // return false;
|
|
|
+ }
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"从 ActionCamer 删除DeviceID {} 成功!", it.DeviceID);
|
|
|
+ }
|
|
|
+ /* 插入信息到tActionCamer表 */
|
|
|
+ bool isSuccess = true;
|
|
|
+ for(const auto& it0 : vecInfo)
|
|
|
+ {
|
|
|
+ for(const auto& it1 : it0.vecAlgorithmInfo)
|
|
|
+ {
|
|
|
+ nJson json0;
|
|
|
+ json0["opName"] = "SPSS_InsertToActionCamer";
|
|
|
+ nJson json1;
|
|
|
+ json1["actionID"] = it1.ActionID;
|
|
|
+ json1["camerID"] = it0.DeviceID;
|
|
|
+ json0["paramList"] = json1;
|
|
|
+ QString strCmd = QString::fromStdString(json0.dump());
|
|
|
+ QString strRet;
|
|
|
+ auto ret = m_httpApi->DBQDoInterface(enDBOperatorType::EDBOT_Insert, strCmd, strRet);
|
|
|
+ if(ret < 0)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"插入设备信息到tActionCamer失败:{}, 错误信息:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
|
|
|
+ isSuccess = false;
|
|
|
+ }
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"插入DeviceID {} 和 ActionID {} 到 ActionCamer 成功!", it0.DeviceID, it1.ActionID);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- vecInfo.push_back(info);
|
|
|
+
|
|
|
+ return isSuccess;
|
|
|
+}
|
|
|
+
|
|
|
+/* 删除设备和算法关联表 */
|
|
|
+bool ToEQMDataBase::deleteDeviceAlgorithmInfo(std::vector<DeviceInfo>& vecInfo)
|
|
|
+{
|
|
|
+ if(m_httpApi == nullptr)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"WebApi is nullptr");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ bool isSuccess = true;
|
|
|
+ /* 更新之前先删除相关的信息 */
|
|
|
+ for(const auto& it : vecInfo)
|
|
|
+ {
|
|
|
+ nJson json0;
|
|
|
+ json0["opName"] = "SPSS_DeleteFromActionCamer";
|
|
|
+ nJson json1;
|
|
|
+ json1["camerID"] = it.DeviceID;
|
|
|
+ json0["paramList"] = json1;
|
|
|
+ QString strCmd = QString::fromStdString(json0.dump());
|
|
|
+ QString strRet;
|
|
|
+ auto ret = m_httpApi->DBQDoInterface(enDBOperatorType::EDBOT_Delete, strCmd, strRet);
|
|
|
+ if(ret < 0)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"删除设备信息到tActionCamer失败:{}, 错误信息:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
|
|
|
+ // return false;
|
|
|
+ isSuccess = false;
|
|
|
+ }
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"从 ActionCamer 删除DeviceID {} 成功!", it.DeviceID);
|
|
|
+ }
|
|
|
+
|
|
|
+ return isSuccess;
|
|
|
+}
|
|
|
+
|
|
|
+/* 获取设备和算法信息关联表,需要先从EQM数据库中获取到设备信息 */
|
|
|
+bool ToEQMDataBase::getDeviceAlgorithmInfo(std::vector<DeviceInfo>& vecInfo)
|
|
|
+{
|
|
|
+ if(m_httpApi == nullptr)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"WebApi is nullptr");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(vecInfo.empty())
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_WARN(m_logger,"Device info is empty");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ nJson json0;
|
|
|
+ json0["opName"] = "SPSS_SelectFromActionCamer";
|
|
|
+ QString strCmd = QString::fromStdString(json0.dump());
|
|
|
+ QString strRet;
|
|
|
+ auto ret = m_httpApi->DBQDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet);
|
|
|
+ if(ret < 0)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_DEBUG(m_logger,"获取ActionCamer失败:{}, 错误信息:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ /* 解析信息 */
|
|
|
+ try {
|
|
|
+ nJson json1 = nJson::parse(strRet.toStdString());
|
|
|
+ int retCode = json1["code"].get<int>();
|
|
|
+ if(retCode != 0)
|
|
|
+ {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"获取ActionCamer失败");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ nJson result = json1["result"];
|
|
|
+ if(result.empty())
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ /* 根据缓存中的设备ID解析json字符串 */
|
|
|
+ for(auto& it0 : vecInfo)
|
|
|
+ {
|
|
|
+ for(auto& it1 : result)
|
|
|
+ {
|
|
|
+ /* 对比设备ID */
|
|
|
+ if(it0.DeviceID == it1["camerId"].get<int>())
|
|
|
+ {
|
|
|
+ AlgorithmInfo info;
|
|
|
+ info.ActionID = it1["actionId"].is_null() ? "" : it1["actionId"].get<std::string>();
|
|
|
+ info.ActionName = it1["actionName"].is_null() ? "" : it1["actionName"].get<std::string>();
|
|
|
+ info.ActionTaskID = it1["actionTaskid"].is_null() ? 0 : it1["actionTaskid"].get<int>();
|
|
|
+
|
|
|
+ it0.vecAlgorithmInfo.push_back(info);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (const nJson::parse_error& e) {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"解析ActionCamer数据失败:{}, 错误ID:{}",e.what(), e.id);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ catch (const nJson::type_error& e) {
|
|
|
+ SPDLOG_LOGGER_ERROR(m_logger,"解析ActionCamer数据失败:{}, 错误ID:{}",e.what(), e.id);
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
|