12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418 |
- #include "FromWebAPI.h"
- #include <QVector>
- #include <QString>
- #include <QUuid>
- #include <QApplication>
- #include "LHQLogAPI.h"
- #include "TransmitterSwitchInfo.h"
- #include "lhhttpapi.h"
- FromWebAPI::FromWebAPI()
- {
-
- }
- FromWebAPI::~FromWebAPI()
- {
- if(m_httpApi != nullptr)
- {
- delete m_httpApi;
- m_httpApi = nullptr;
- }
- }
- /* 初始化WebApi */
- bool FromWebAPI::initWebApi(const QString& url, const QString& serverID, const QString& serverKey)
- {
- if(m_httpApi == nullptr)
- {
- m_httpApi = new lhhttpapi;
- }
- #if defined(Q_OS_WIN)
- #ifdef QT_DEBUG
- QString libFile = QString("%1/LHSqlWebInterfaced.dll").arg(QApplication::applicationDirPath());
- #else
- QString libFile = QString("%1/LHSqlWebInterface.dll").arg(QApplication::applicationDirPath());
- #endif
- #elif defined(Q_OS_LINUX)
- #ifdef QT_DEBUG
- QString libFile = QString("%1/libLHSqlWebInterface.so").arg(QApplication::applicationDirPath());
- #else
- QString libFile = QString("%1/libLHSqlWebInterface.so").arg(QApplication::applicationDirPath());
- #endif
- #endif
- if(!m_httpApi->Load(libFile))
- {
- LH_WRITE_ERROR("Load WebAPI failed");
- return false;
- }
- LH_WRITE_LOG_DEBUG(QString("URL:%1").arg(url));
- LH_WRITE_LOG_DEBUG(QString("ServerID:%1").arg(serverID));
- LH_WRITE_LOG_DEBUG(QString("ServerKey:%1").arg(serverKey));
- auto pHttp = m_httpApi->DBInit(url.toStdString().c_str(), true);
-
- int ret = 0;
- #ifdef QT_DEBUG
- /* 获取服务器列表 */
- char serverList[8192]={0};
- ret = m_httpApi->DBGetServerList(serverList, 8192-1);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("Get server list failed:%1, error info:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- // LH_WRITE_LOG(QString("\nGet server list success:%1").arg(serverList));
- #endif
- /* 登录,第二个参数是限制的服务 */
- // ret = m_httpApi->DBLogin("", serverID, serverKey, m_userToken, true, pHttp);
- ret = m_httpApi->DBLogin("", serverID, "ESM8C", m_userToken, true, pHttp);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("Login failed:%1, error info:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- LH_WRITE_LOG("\n");
- LH_WRITE_LOG("WebAPI Login success!");
- return true;
- }
- /* 获取设备信息 */
- bool FromWebAPI::getDeviceInfo(QMap<QString, DeviceInfo>& mapDevice)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
-
- nJson json0;
- json0["opName"] = "ESM8C_GetDevice";
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("从数据库获取设备失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- /* 解析获取到的JSON数据 */
- // LH_WRITE_LOG_DEBUG(strRet);
- try
- {
- nJson json1 = nJson::parse(strRet.toStdString());
- int retCode = json1["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取设备数据失败");
- return false;
- }
- nJson result = json1["result"];
- for(auto& it : result)
- {
- DeviceInfo DevInfo;
- QString devName = QString::fromStdString(it["dname"].get<std::string>());
- DevInfo.devName = devName;
- DevInfo.DID = it["did"].is_null() ? -1 : it["did"].get<int>();
- DevInfo.DTID = it["dtid"].is_null() ? -1 : it["dtid"].get<int>();
- DevInfo.MPID = it["mpid"].is_null() ? -1 : it["mpid"].get<int>();
- DevInfo.PTTypeCode = it["pttypecode"].is_null() ? -1 : it["pttypecode"].get<int>();
- DevInfo.ChannelID = it["chnid"].is_null() ? -1 : it["chnid"].get<int>();
- if(DevInfo.ChannelID <= 0)
- {
- // LH_WRITE_LOG_DEBUG(QString("通道ID错误:%1").arg(DevInfo.ChannelID));
- continue;
- }
- /* 查找对应的设备类型,根据PTTypeCode来查找,这个是唯一的 */
- auto devType = DevTypeContainer.getDevType(DevInfo.PTTypeCode);
- if(devType.PTTypeCode < 0)
- {
- // LH_WRITE_LOG_DEBUG(QString("未找到设备类型:%1").arg(DevInfo.PTTypeCode));
- continue;
- }
- DevInfo.DevType = devType;
- /* 检查有没有设置主备 */
- int devMB = it["dClass"].is_null() ? -1 : it["dClass"].get<int>();
- if(devMB < 0)
- {
- LH_WRITE_ERROR(QString("设备类型:%1《主/备》 类型为空").arg(DevInfo.DevType.PTTypeCode));
- continue;
- }
- mapDevice.insert(DevInfo.devName, DevInfo);
- }
- LH_WRITE_LOG(QString("获取设备数据成功,设备数目:%1").arg(mapDevice.size()));
- } catch (const nJson::parse_error& e) {
- LH_WRITE_ERROR("解析ESM-8C设备数据失败");
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR("解析ESM-8C设备数据失败");
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析ESM-8C设备数据失败");
- return false;
- }
- return true;
- }
- /* 获取频率信息 */
- bool FromWebAPI::getChannelInfo(QMap<int, ChannelInfo>& mapFreq)
- {
- /* 测试,创建几个频率 */
- // for(int i = 0; i < 12; i++)
- // {
- // ChannelInfo freqInfo;
- // freqInfo.ChannelID = i + 1;
- // freqInfo.ChannelName = QString("频率%1").arg(freqInfo.ChannelID);
- // mapFreq.insert(freqInfo.ChannelID, freqInfo);
- // }
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0;
- json0["opName"] = "ESM8C_GetChannel";
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("从数据库获取频率信息失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- try
- {
- nJson json1 = nJson::parse(strRet.toStdString());
- int retCode = json1["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取频率数据失败");
- return false;
- }
- nJson result = json1["result"];
- for(auto& it : result)
- {
- ChannelInfo freqInfo;
- freqInfo.ChannelID = it["chnid"].is_null() ? -1 : it["chnid"].get<int>();
- if(freqInfo.ChannelID <= 0)
- {
- LH_WRITE_LOG_DEBUG(QString("通道ID错误:%1").arg(freqInfo.ChannelID));
- continue;
- }
- freqInfo.ChannelName = QString::fromStdString(it["chnname"].get<std::string>());
- mapFreq.insert(freqInfo.ChannelID, freqInfo);
- }
- }
- catch (const nJson::parse_error& e) {
- LH_WRITE_ERROR("解析频率信息数据失败");
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR("解析频率信息数据失败");
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析频率信息数据失败");
- return false;
- }
- LH_WRITE_LOG_DEBUG(QString("获取频率数据成功,频率数目:%1").arg(mapFreq.size()));
- return true;
- }
- /**
- * @brief 将数据写入EQM数据库
- *
- * @param chnID 频率ID
- * @param list
- * @return true
- * @return false
- */
- bool FromWebAPI::insertData(int chnID, QList<OnePlanItemInfo>& list)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- /* 先删除表格中的数据 */
- deleteOneChnPlan(chnID);
- QDate zeroDate(1970,1,1);
- /* 写入数据 */
- nJson json0 = nJson::array();
- try{
- for(auto& it : list)
- {
- nJson json1;
- json1["opName"] = "ESM8C_InsertDataToExecPlan";
- json1["Key"] = QUuid::createUuid().toString().toStdString();
- nJson json2;
- json2["channelID"] = it.ChannelID;
- json2["channelName"] = it.ChannelName.toStdString();
- json2["onWeekDay"] = it.onWeekDay;
- json2["onDate"] = it.onDateTime.date().toString("yyyy-MM-dd").toStdString();
- json2["onTime"] = it.onDateTime.time().toString("hh:mm:ss").toStdString();
- json2["offWeekDay"] = it.offWeekDay;
- json2["offDate"] = it.offDateTime.date().toString("yyyy-MM-dd").toStdString();
- json2["offTime"] = it.offDateTime.time().toString("hh:mm:ss").toStdString();
- json1["paramList"] = json2;
- json0.push_back(json1);
- }
- }catch (const nJson::parse_error& e) {
- SPDLOG_ERROR("生成json数据失败:{}", e.what());
- return false;
- }
- catch (const nJson::exception& e)
- {
- SPDLOG_ERROR("生成json数据失败:{}", e.what());
- return false;
- }
- catch (...)
- {
- SPDLOG_ERROR("生成json数据失败");
- return false;
- }
- /* 将json写入本地文件 */
- #ifdef C_DEBUG
- QString fileJson(QString::fromStdString(json0.dump(4)));
- // LH_WRITE_LOG_DEBUG("\n" + fileJson);
-
- // QString filePath = QApplication::applicationDirPath() + QString("ExecPlanData.json");
- // SPDLOG_LOGGER_DEBUG(m_logger,"To EQM Json写入文件:{}", filePath.toStdString());
- // QFile file(filePath);
- // if(file.open(QIODevice::WriteOnly | QIODevice::Truncate))
- // {
- // file.write(fileJson.toUtf8());
- // file.close();
- // }else {
- // SPDLOG_LOGGER_ERROR(m_logger,"打开文件失败:{}", filePath.toStdString());
- // }
- #endif
- /* 写入EQM数据库 */
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_BatchTransAction, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("写入EQM数据库失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- // LH_WRITE_LOG(QString("计划写入EQM数据库成功, 计划数目:%1").arg(QString::number(list.size())));
- return true;
- }
- /**
- * @brief 获取tExecPlan表格数据,获取到的数据会根据设备名查找对应的设备信息,如果没有查找到,就抛弃这个计划
- *
- * @param chnID 频率ID
- * @param mapPlan
- * @return true
- * @return false
- */
- bool FromWebAPI::getExecPlanData(int chnID, QList<OnePlanItemInfo>& list)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0;
- json0["opName"] = "ESM8C_GetOneChnPlan";
- nJson json1;
- json1["channelID"] = chnID;
- json0["paramList"] = json1;
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("从EQM获取tExecPlan表格数据失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- /* 解析获取到的JSON数据 */
- // SPDLOG_LOGGER_DEBUG(m_logger,"获取执行计划:\n{}",strRet.toStdString());
- try
- {
- nJson json2 = nJson::parse(strRet.toStdString());
- int retCode = json2["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取tExecPlan表格数据失败");
- return false;
- }
- nJson result = json2["result"];
- for(auto& it : result)
- {
- OnePlanItemInfo info;
- info.ChannelID = chnID;
- info.ChannelName = QString::fromStdString(it["channelName"].get<std::string>());
- info.onWeekDay = static_cast<enum_WeekDay>(it["onWeekDay"].get<int>());
- info.onDateTime.setDate(QDate::fromString(QString::fromStdString(it["onDate"].get<std::string>()), "yyyy-MM-dd"));
- info.onDateTime.setTime(QTime::fromString(QString::fromStdString(it["onTime"].get<std::string>()), "hh:mm:ss"));
- info.offWeekDay = static_cast<enum_WeekDay>(it["offWeekDay"].get<int>());
- info.offDateTime.setDate(QDate::fromString(QString::fromStdString(it["offDate"].get<std::string>()), "yyyy-MM-dd"));
- info.offDateTime.setTime(QTime::fromString(QString::fromStdString(it["offTime"].get<std::string>()), "hh:mm:ss"));
- list.append(info);
- }
- } catch (const nJson::parse_error& e) {
- LH_WRITE_ERROR(QString("解析 tExecPlan 表格数据失败:%1").arg(e.what()));
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR(QString("解析 tExecPlan 表格数据失败:%1").arg(e.what()));
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析 tExecPlan 表格数据失败");
- return false;
- }
- // LH_WRITE_LOG_DEBUG(QString("从 EQM.tExecPlan 表格获取数据成功,计划数目:%1").arg(list.size()));
- return true;
- }
- bool FromWebAPI::getExecPlanData(QMap<int, QList<OnePlanItemInfo>>& mapPlan)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0;
- json0["opName"] = "ESM8C_GetExecPlan";
- nJson json1;
- json0["paramList"] = json1;
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("从EQM获取tExecPlan表格数据失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- /* 解析获取到的JSON数据 */
- // SPDLOG_LOGGER_DEBUG(m_logger,"获取执行计划:\n{}",strRet.toStdString());
- try
- {
- nJson json2 = nJson::parse(strRet.toStdString());
- int retCode = json2["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取tExecPlan表格数据失败");
- return false;
- }
- nJson result = json2["result"];
- for(auto& it : result)
- {
- OnePlanItemInfo info;
- info.ChannelID = it["channelID"].is_null() ? -1 : it["channelID"].get<int>();
- info.ChannelName = QString::fromStdString(it["channelName"].get<std::string>());
- info.onWeekDay = static_cast<enum_WeekDay>(it["onWeekDay"].get<int>());
- info.onDateTime.setDate(QDate::fromString(QString::fromStdString(it["onDate"].get<std::string>()), "yyyy-MM-dd"));
- info.onDateTime.setTime(QTime::fromString(QString::fromStdString(it["onTime"].get<std::string>()), "hh:mm:ss"));
- info.offWeekDay = static_cast<enum_WeekDay>(it["offWeekDay"].get<int>());
- info.offDateTime.setDate(QDate::fromString(QString::fromStdString(it["offDate"].get<std::string>()), "yyyy-MM-dd"));
- info.offDateTime.setTime(QTime::fromString(QString::fromStdString(it["offTime"].get<std::string>()), "hh:mm:ss"));
- /* 查找对应的设备列表 */
- auto list = mapPlan.find(info.ChannelID);
- if(list == mapPlan.end())
- {
- /* 创建一个新的列表 */
- QList<OnePlanItemInfo> listPlan;
- listPlan.append(info);
- mapPlan.insert(info.ChannelID, listPlan);
- }else {
- /* 找到对应的列表 */
- list->append(info);
- }
- }
- } catch (const nJson::parse_error& e) {
- LH_WRITE_ERROR(QString("解析 tExecPlan 表格数据失败:%1").arg(e.what()));
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR(QString("解析 tExecPlan 表格数据失败:%1").arg(e.what()));
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析 tExecPlan 表格数据失败");
- return false;
- }
- return true;
- }
- /* 删除所有行 */
- bool FromWebAPI::deleteAllRow()
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0;
- json0["opName"] = "ESM8C_DeleteAllRow";
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Delete, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("删除所有行失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
-
- return true;
- }
- /* 删除一个发射机计划 */
- bool FromWebAPI::deleteOneChnPlan(int chnID)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- /* 查找出有多少发射机类型 */
- QList<int> listPttypeCodeID;
- for(auto& it : DevTypeContainer.getMapDevType())
- {
- listPttypeCodeID.append(it.PTTypeCode);
- }
- nJson json0;
- json0["opName"] = "ESM8C_DeleteOneChnPlan";
- json0["paramList"].clear();
- nJson json1;
- json1["channelID"] = chnID;
- json0["paramList"].push_back(json1);
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Delete, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("删除频率: %3 计划失败: %1, 错误信息: %2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)).arg(chnID));
- }else {
- // LH_WRITE_LOG(QString("删除频率: %1 计划成功!").arg(chnID));
- }
- return true;
- }
- /**
- * @brief 将页面的配置写入数据库,主要是默认计划和执行模式
- *
- * @param mapConfig
- * @return true
- * @return false
- */
- bool FromWebAPI::insertConfigData(QMap<int, ConfigData>& list)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- deleteConfigData(list);
- nJson json0 = nJson::array();
- try{
- for(auto begin = list.begin(), end = list.end(); begin != end; begin++)
- {
- nJson json1;
- json1["opName"] = "ESM8C_InsertExecPlanConfig";
- json1["Key"] = QUuid::createUuid().toString().toStdString();
- nJson json2;
- json2["keyWord"] = begin->key;
- json2["value1"] = begin->value;
- json2["updateTime"] = begin->updateTime.toString("yyyy-MM-dd hh:mm:ss").toStdString();
- json2["notes"] = begin->notes.toStdString();
- json1["paramList"] = json2;
- json0.push_back(json1);
- }
- }catch (const nJson::parse_error& e) {
- SPDLOG_ERROR("生成json数据失败:{}", e.what());
- return false;
- }
- catch (const nJson::exception& e)
- {
- SPDLOG_ERROR("生成json数据失败:{}", e.what());
- return false;
- }
- catch (...)
- {
- SPDLOG_ERROR("生成json数据失败");
- return false;
- }
- /* 写入EQM数据库 */
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_BatchTransAction, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("写入tExecPlanConfig失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- LH_WRITE_LOG_DEBUG(QString("页面配置写入tExecPlanConfig成功, 数目:%1").arg(QString::number(list.size())));
- return true;
- }
- /* 删除配置数据 */
- bool FromWebAPI::deleteConfigData(QMap<int, ConfigData>& list)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0 = nJson::array();
- try{
- for(auto begin = list.begin(), end = list.end(); begin != end; begin++)
- {
- nJson json1;
- json1["opName"] = "ESM8C_DeleteExecPlanConfig";
- json1["Key"] = QUuid::createUuid().toString().toStdString();
- nJson json2;
- json2["keyWord"] = begin->key;
- json1["paramList"] = json2;
- json0.push_back(json1);
- }
- }catch (const nJson::parse_error& e) {
- SPDLOG_ERROR("生成json数据失败:{}", e.what());
- return false;
- }
- catch (const nJson::exception& e)
- {
- SPDLOG_ERROR("生成json数据失败:{}", e.what());
- return false;
- }
- catch (...)
- {
- SPDLOG_ERROR("生成json数据失败");
- return false;
- }
- /* 写入EQM数据库 */
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_BatchTransAction, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("删除tExecPlanConfig表格数据失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- LH_WRITE_LOG_DEBUG(QString("删除tExecPlanConfig表格数据成功, 计划数目:%1").arg(QString::number(list.size())));
- return true;
- }
- /* 获取配置数据 */
- bool FromWebAPI::getConfigData(QMap<int, ConfigData>& list)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0;
- json0["opName"] = "ESM8C_GetExecPlanConfig";
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("获取tExecPlanConfig表格数据失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- /* 解析获取到的JSON数据 */
- // LH_WRITE_LOG_DEBUG(QString("Ret:%1").arg(ret));
- // LH_WRITE_LOG_DEBUG(strRet);
- try{
- nJson json1 = nJson::parse(strRet.toStdString());
- int retCode = json1["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取tExecPlanConfig失败");
- return false;
- }
- nJson result = json1["result"];
- for(auto& it : result)
- {
- ConfigData data;
- data.key = it["keyWord"].get<int>();
- data.value = it["value1"].get<int>();
- data.updateTime = QDateTime::fromString(QString::fromStdString(it["updateTime"].get<std::string>()),"yyyy-MM-dd hh:mm:ss");
- data.notes = QString::fromStdString(it["notes"].get<std::string>());
- list.insert(data.key, data);
- }
- } catch (const nJson::parse_error& e) {
- LH_WRITE_ERROR(QString("解析tExecPlanConfig数据失败:%1").arg(e.what()));
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR(QString("解析tExecPlanConfig数据失败:%1").arg(e.what()));
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析tExecPlanConfig数据失败");
- return false;
- }
- LH_WRITE_LOG_DEBUG(QString("获取tExecPlanConfig表格数据成功,数据数目:%1").arg(list.size()));
-
- return true;
- }
- /* 单独获取某个关键字的数据 */
- bool FromWebAPI::getConfigData(int key, ConfigData& data)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0;
- json0["opName"] = "ESM8C_GetExecPlanConfigOfKeyWord";
- nJson json1;
- json1["keyWord"] = key;
- json0["paramList"] = json1;
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("获取tExecPlanConfig表格数据失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- /* 解析获取到的JSON数据 */
- LH_WRITE_LOG_DEBUG(strRet);
- try{
- nJson json1 = nJson::parse(strRet.toStdString());
- int retCode = json1["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取tExecPlanConfig失败");
- return false;
- }
- nJson result = json1["result"];
- for(auto& it : result)
- {
- data.key = it["keyWord"].get<int>();
- if(data.key != key)
- {
- LH_WRITE_ERROR("获取到的数据和传入的关键字不匹配");
- continue;
- }
- data.value = it["value1"].get<int>();
- data.updateTime = QDateTime::fromString(QString::fromStdString(it["updateTime"].get<std::string>()),"yyyy-MM-dd hh:mm:ss");
- data.notes = QString::fromStdString(it["notes"].get<std::string>());
- break;
- }
- } catch (const nJson::parse_error& e) {
- LH_WRITE_ERROR(QString("解析tExecPlanConfig数据失败:%1").arg(e.what()));
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR(QString("解析tExecPlanConfig数据失败:%1").arg(e.what()));
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析tExecPlanConfig数据失败");
- return false;
- }
- if(data.key != key)
- {
- LH_WRITE_ERROR("获取到的数据和传入的关键字不匹配");
- return false;
- }
- return true;
- }
- /* 获取EQM数据库中的模版编号 */
- bool FromWebAPI::getEQMTemplateID(QList<int>& listId)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0;
- json0["opName"] = "ESMC_GetTemplateNumFromExecPlan";
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("从EQM获取模版编号失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- /* 解析获取到的JSON数据 */
- LH_WRITE_LOG_DEBUG(strRet);
- try
- {
- nJson json1 = nJson::parse(strRet.toStdString());
- int retCode = json1["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取模版编号失败");
- return false;
- }
- nJson result = json1["result"];
- for(auto& it : result)
- {
- if(it["templateNum"].is_null())
- {
- LH_WRITE_ERROR("模版编号为空");
- continue;
- }
- auto id = it["templateNum"].get<int>();
- if(listId.contains(id))
- {
- continue;
- }
- listId.append(id);
- }
- } catch (const nJson::parse_error& e) {
- LH_WRITE_ERROR(QString("解析模版编号失败:%1").arg(e.what()));
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR(QString("解析模版编号失败:%1").arg(e.what()));
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析模版编号失败");
- return false;
- }
- return true;
- }
- /* 保存到模板 */
- bool FromWebAPI::saveTemplate(const QString& templateName, QList<OnePlanItemInfo>& list)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0 = nJson::array();
- for(const auto& it : list)
- {
- nJson json1;
- json1["opName"] = "TMS_InsertToExecPlanTemplate";
- json1["Key"] = QUuid::createUuid().toString().toStdString();
- nJson json2;
- json2["templateName"] = templateName.toStdString();
- json2["channelID"] = it.ChannelID;
- json2["channelName"] = it.ChannelName.toStdString();
- json2["onWeekDay"] = it.onWeekDay;
- json2["onDate"] = it.onDateTime.date().toString("yyyy-MM-dd").toStdString();
- json2["onTime"] = it.onDateTime.time().toString("hh:mm:ss").toStdString();
- json2["offWeekDay"] = it.offWeekDay;
- json2["offDate"] = it.offDateTime.date().toString("yyyy-MM-dd").toStdString();
- json2["offTime"] = it.offDateTime.time().toString("hh:mm:ss").toStdString();
- json1["paramList"] = json2;
- json0.push_back(json1);
- }
- /* 将json写入本地文件 */
- #ifdef C_DEBUG
- // QString fileJson(QString::fromStdString(json0.dump(4)));
- // LH_WRITE_LOG_DEBUG("\n" + fileJson);
- #endif
- /* 写入EQM数据库 */
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_BatchTransAction, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("保存到模板失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- // LH_WRITE_LOG("保存到模板成功,模板名称:" + templateName + ", 计划数目:" + QString::number(list.size()));
- return true;
-
- }
- /* 批量写入模版数据 */
- bool FromWebAPI::saveTemplateList(const QMap<OneTemplateInfo, QList<OnePlanItemInfo>>& mapTemplate)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
-
- nJson json0 = nJson::array();
- try
- {
- for(auto list = mapTemplate.begin(), end = mapTemplate.end(); list != end; list++)
- {
- for(auto& item : *list)
- {
- nJson json1;
- json1["opName"] = "TMS_InsertToExecPlanTemplate";
- json1["Key"] = QUuid::createUuid().toString().toStdString();
- nJson json2;
- json2["templateName"] = list.key().templateName.toStdString();
- json2["channelID"] = item.ChannelID;
- json2["channelName"] = item.ChannelName.toStdString();
- json2["onWeekDay"] = item.onWeekDay;
- json2["onDate"] = item.onDateTime.date().toString("yyyy-MM-dd").toStdString();
- json2["onTime"] = item.onDateTime.time().toString("hh:mm:ss").toStdString();
- json2["offWeekDay"] = item.offWeekDay;
- json2["offDate"] = item.offDateTime.date().toString("yyyy-MM-dd").toStdString();
- json2["offTime"] = item.offDateTime.time().toString("hh:mm:ss").toStdString();
- json1["paramList"] = json2;
- json0.push_back(json1);
- }
- }
- }
- catch(...)
- {
- LH_WRITE_ERROR("生成json数据失败");
- return false;
- }
- /* 写入EQM数据库 */
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_BatchTransAction, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("保存到模板失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- // LH_WRITE_LOG("保存到模板成功,模板名称:" + templateName + ", 计划数目:" + QString::number(list.size()));
- return true;
- }
- /* 获取模板内容 */
- bool FromWebAPI::getOneTemplateData(OneTemplateInfo tmpInfo, QList<OnePlanItemInfo>& list)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0;
- json0["opName"] = "TMS_GetExecPlanTemplateData";
- nJson json1;
- json1["templateName"] = tmpInfo.templateName.toStdString();
- json1["channelID"] = tmpInfo.channelInfo.ChannelID;
- json0["paramList"] = json1;
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("获取模板失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- /* 解析获取到的JSON数据 */
- try
- {
- nJson json2 = nJson::parse(strRet.toStdString());
- int retCode = json2["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取模板失败");
- return false;
- }
- nJson result = json2["result"];
- for(auto& it : result)
- {
- OnePlanItemInfo info;
-
- info.ChannelID = it["channelID"].is_null() ? -1 : it["channelID"].get<int>();
- info.ChannelName = QString::fromStdString(it["channelName"].get<std::string>());
- info.onWeekDay = static_cast<enum_WeekDay>(it["onWeekDay"].get<int>());
- info.onDateTime.setDate(QDate::fromString(QString::fromStdString(it["onDate"].get<std::string>()), "yyyy-MM-dd"));
- info.onDateTime.setTime(QTime::fromString(QString::fromStdString(it["onTime"].get<std::string>()), "hh:mm:ss"));
- info.offWeekDay = static_cast<enum_WeekDay>(it["offWeekDay"].get<int>());
- info.offDateTime.setDate(QDate::fromString(QString::fromStdString(it["offDate"].get<std::string>()), "yyyy-MM-dd"));
- info.offDateTime.setTime(QTime::fromString(QString::fromStdString(it["offTime"].get<std::string>()), "hh:mm:ss"));
- list.append(info);
- }
- LH_WRITE_LOG_DEBUG(QString("获取模板数据成功,数据数目:%1").arg(list.size()));
- }
- catch (const nJson::parse_error& e)
- {
- LH_WRITE_ERROR(QString("解析模板失败:%1").arg(e.what()));
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR(QString("解析模板失败:%1").arg(e.what()));
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析模板失败");
- return false;
- }
- return true;
- }
- /* 获取多个模板的内容 */
- bool FromWebAPI::getTemplateData(QList<OneTemplateInfo>& listTemplate, QMap<int, QList<OnePlanItemInfo>>& mapPlan)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0 = nJson::array();
- for(auto& it : listTemplate)
- {
- nJson json1;
- json1["opName"] = "TMS_GetExecPlanTemplateData";
- /* 这里的Key使用频率ID,方便后面区分是哪个频率的数据 */
- json1["Key"] = it.channelInfo.ChannelID;
- nJson json2;
- json2["templateName"] = it.templateName.toStdString();
- json2["channelID"] = it.channelInfo.ChannelID;
- json1["paramList"] = json2;
- json0.push_back(json1);
- }
-
- /* 打印生成的JSON */
- // LH_WRITE_LOG_DEBUG(QString::fromStdString(json0.dump(4)));
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_BatchTransAction, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("获取模板失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- LH_WRITE_LOG_DEBUG(QString("获取到的json数据的大小:%1").arg(strRet.size()));
- /* 解析获取到的JSON数据 */
- try
- {
- nJson jsonRet = nJson::parse(strRet.toStdString());
- // LH_WRITE_LOG_DEBUG(QString("\n: %1").arg(QString::fromStdString(jsonRet.dump(4))));
- int retCode = jsonRet["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取模板数据失败");
- return false;
- }
- nJson data = jsonRet["data"];
- for(auto& it : data)
- {
- /* 逐步获取对应频率的计划信息 */
- int retChnID = QString::fromStdString(it["key"].get<std::string>()).toInt();
- if(retChnID == 0)
- {
- LH_WRITE_ERROR("获取到的频率ID为0");
- continue;
- }
- nJson value = it["value"];
- if(value.is_null())
- {
- LH_WRITE_ERROR("获取到的值为空");
- continue;
- }
- int retCode1 = value["code"].get<int>();
- if(retCode1 != 0)
- {
- LH_WRITE_ERROR(QString("获取模板:%1数据失败").arg(retChnID));
- continue;
- }
- nJson result = value["result"];
- QList<OnePlanItemInfo> listPlan;
- for(auto& plan : result)
- {
-
- OnePlanItemInfo info;
-
- info.ChannelID = plan["channelID"].is_null() ? -1 : plan["channelID"].get<int>();
- info.ChannelName = plan["channelName"].is_null() ? "" : QString::fromStdString(plan["channelName"].get<std::string>());
- info.onWeekDay = static_cast<enum_WeekDay>(plan["onWeekDay"].get<int>());
- info.onDateTime.setDate(QDate::fromString(QString::fromStdString(plan["onDate"].get<std::string>()), "yyyy-MM-dd"));
- info.onDateTime.setTime(QTime::fromString(QString::fromStdString(plan["onTime"].get<std::string>()), "hh:mm:ss"));
- info.offWeekDay = static_cast<enum_WeekDay>(plan["offWeekDay"].get<int>());
- info.offDateTime.setDate(QDate::fromString(QString::fromStdString(plan["offDate"].get<std::string>()), "yyyy-MM-dd"));
- info.offDateTime.setTime(QTime::fromString(QString::fromStdString(plan["offTime"].get<std::string>()), "hh:mm:ss"));
- listPlan.append(info);
- }
- mapPlan.insert(retChnID, listPlan);
- }
- }
- catch (const nJson::parse_error& e)
- {
- LH_WRITE_ERROR(QString("解析模板失败:%1").arg(e.what()));
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR(QString("解析模板失败:%1").arg(e.what()));
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析模板失败");
- return false;
- }
- LH_WRITE_LOG_DEBUG(QString("获取多个频率模板成功,频率数目:%1").arg(mapPlan.size()));
- return true;
- }
- /* 获取模板列表 */
- bool FromWebAPI::getTemplateList(QMultiMap<int, OneTemplateInfo>& mapTemplate)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0;
- json0["opName"] = "TMS_GetExecPlanTemplateList";
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("获取模板列表失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- /* 解析获取到的JSON数据 */
- // LH_WRITE_LOG_DEBUG(strRet);
- try
- {
- nJson json1 = nJson::parse(strRet.toStdString());
- int retCode = json1["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取模板列表失败");
- return false;
- }
- nJson result = json1["result"];
- for(auto& it : result)
- {
- OneTemplateInfo info;
- info.channelInfo.ChannelID = it["channelID"].get<int>();
- info.templateName = QString::fromStdString(it["templateName"].get<std::string>());
- mapTemplate.insert(info.channelInfo.ChannelID, info);
- }
- } catch (const nJson::parse_error& e) {
- LH_WRITE_ERROR(QString("解析模板列表失败:%1").arg(e.what()));
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR(QString("解析模板列表失败:%1").arg(e.what()));
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析模板列表失败");
- return false;
- }
- // for(auto it = list.begin(); it != list.end(); it++)
- // {
- // LH_WRITE_LOG_DEBUG(QString("模板名称:%1, 类型:%2").arg(it.key()).arg(it.value()));
- // }
- return true;
- }
- /* 获取某个频率的模版列表 */
- bool FromWebAPI::getTemplateList(int chnID, QList<OneTemplateInfo>& listTemplate)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0;
- json0["opName"] = "TMS_GetExecPlanOneTemplateList";
- nJson jsonParam;
- jsonParam["channelID"] = chnID;
- json0["paramList"] = jsonParam;
- /* 发送请求 */
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Select, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("获取模板列表失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- /* 解析获取到的JSON数据 */
- // LH_WRITE_LOG_DEBUG(strRet);
- try
- {
- nJson json1 = nJson::parse(strRet.toStdString());
- int retCode = json1["code"].get<int>();
- if(retCode != 0)
- {
- LH_WRITE_ERROR("获取模板列表失败");
- return false;
- }
- nJson result = json1["result"];
- for(auto& it : result)
- {
- OneTemplateInfo info;
- info.channelInfo.ChannelID = it["channelID"].get<int>();
- info.templateName = QString::fromStdString(it["templateName"].get<std::string>());
- listTemplate.append(info);
- }
- } catch (const nJson::parse_error& e) {
- LH_WRITE_ERROR(QString("解析模板列表失败:%1").arg(e.what()));
- return false;
- }
- catch (const nJson::exception& e)
- {
- LH_WRITE_ERROR(QString("解析模板列表失败:%1").arg(e.what()));
- return false;
- }
- catch(...)
- {
- LH_WRITE_ERROR("解析模板列表失败");
- return false;
- }
- return true;
- }
- /* 删除一个模板 */
- bool FromWebAPI::deleteTemplate(const OneTemplateInfo& info)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
-
- nJson json0;
- json0["opName"] = "TMS_DeleteExecPlanTemplate";
- nJson json1;
- json1["channelID"] = info.channelInfo.ChannelID;
- json1["templateName"] = info.templateName.toStdString();
- json0["paramList"] = json1;
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_Delete, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("删除模板失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- return true;
- }
- /* 一次删除多个模版 */
- bool FromWebAPI::deleteTemplateList(const QList<OneTemplateInfo>& listTemplate)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0 = nJson::array();
- for(auto& it : listTemplate)
- {
- nJson json1;
- json1["opName"] = "TMS_DeleteExecPlanTemplate";
- json1["Key"] = QUuid::createUuid().toString().toStdString();
- nJson json2;
- json2["channelID"] = it.channelInfo.ChannelID;
- json2["templateName"] = it.templateName.toStdString();
- json1["paramList"] = json2;
- json0.push_back(json1);
- }
- /* 打印生成的JSON */
- // LH_WRITE_LOG_DEBUG(QString::fromStdString(json0.dump(4)));
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_BatchTransAction, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("获取模板失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- // LH_WRITE_LOG_DEBUG(strRet);
- return true;
- }
- /**
- * @brief 修改模版,先删除该频率相同名称的模版,再插入新的模版
- *
- * @param info
- * @param list 新的模版计划
- * @return true
- * @return false
- */
- bool FromWebAPI::modifyTemplate(const OneTemplateInfo& info, QList<OnePlanItemInfo>& list)
- {
- if(deleteTemplate(info) == false)
- {
- LH_WRITE_ERROR("删除模版失败");
- return false;
- }
- if(saveTemplate(info.templateName, list) == false)
- {
- LH_WRITE_ERROR("保存模版失败");
- return false;
- }
- return true;
- }
- /* 批量修改模版 */
- bool FromWebAPI::modifyTemplateList(const QMap<OneTemplateInfo, QList<OnePlanItemInfo>>& mapTemplate)
- {
- /* 先批量删除模版 */
- if(deleteTemplateList(mapTemplate.keys()) == false)
- {
- LH_WRITE_ERROR("批量删除模版失败");
- return false;
- }
- /* 再批量插入模版 */
- if(!saveTemplateList(mapTemplate))
- {
- LH_WRITE_ERROR("批量插入模版失败");
- return false;
- }
- return true;
- }
- /**
- * @brief 更新模板名称
- *
- * @param mapTemplateName
- * @return true
- * @return false
- */
- bool FromWebAPI::updateTemplateName(const QMap<OneTemplateInfo, QString>& mapTemplateName)
- {
- if(m_httpApi == nullptr)
- {
- LH_WRITE_ERROR("WebAPI is nullptr");
- return false;
- }
- nJson json0 = nJson::array();
- for(auto it = mapTemplateName.begin(), end = mapTemplateName.end(); it != end; it++)
- {
- nJson json1;
- json1["opName"] = "TMS_UpdateExecPlanTemplateName";
- json1["Key"] = QUuid::createUuid().toString().toStdString();
- nJson json2;
- json2["channelID"] = it.key().channelInfo.ChannelID;
- json2["oldTemplateName"] = it.key().templateName.toStdString();
- json2["newTemplateName"] = it.value().toStdString();
- json1["paramList"] = json2;
- json0.push_back(json1);
- }
- /* 打印生成的JSON */
- // LH_WRITE_LOG_DEBUG(QString::fromStdString(json0.dump(4)));
- QString strCmd = QString::fromStdString(json0.dump());
- QString strRet;
- auto ret = m_httpApi->DBDoInterface(enDBOperatorType::EDBOT_BatchTransAction, strCmd, strRet, true);
- if(ret != 0)
- {
- LH_WRITE_ERROR(QString("更新模板名称失败:%1, 错误信息:%2").arg(ret).arg(m_httpApi->DoGetLastError(&ret)));
- return false;
- }
- // LH_WRITE_LOG_DEBUG(strRet);
- return true;
- }
|