| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- #include "DataManager.h"
- #include <QTextCodec>
- #include <QFile>
- #include <QApplication>
- #ifdef Q_OS_WIN
- #pragma execution_character_set("utf-8")
- #endif
- DataManager* DataManager::g_GlobalSingle = NULL;
- std::mutex DataManager::m_Mutex;
- DataManager::DataManager(QObject* parent)
- : QObject(parent)
- {
- InitTestFileData();
- pRunThread = new TaskRunThread(this);
- }
- DataManager& DataManager::instance()
- {
- if (g_GlobalSingle == NULL)
- {
- std::unique_lock<std::mutex> lock(m_Mutex);
- if (g_GlobalSingle == NULL)
- {
- g_GlobalSingle = new (std::nothrow) DataManager();
- }
- }
- return *g_GlobalSingle;
- }
- void DataManager::destroyInstance()
- {
- std::unique_lock<std::mutex> lock(m_Mutex);
- if (g_GlobalSingle)
- {
- delete g_GlobalSingle;
- g_GlobalSingle = NULL;
- }
- }
- std::string DataManager::string_To_UTF8(const std::string& str)
- {
- QTextCodec* codec = QTextCodec::codecForName("GBK"); // 根据实际情况调整源编码
- if (!codec) {
- return str;
- }
- QString unicodeStr = codec->toUnicode(str.c_str());
- QByteArray utf8Data = unicodeStr.toUtf8();
- return std::string(utf8Data.constData(), utf8Data.length());
- }
- std::string DataManager::UTF8_to_string(const std::string& str)
- {
- QTextCodec* utf8Codec = QTextCodec::codecForName("UTF-8");
- if (!utf8Codec) {
- return str;
- }
- QString unicodeStr = utf8Codec->toUnicode(str.c_str());
- QTextCodec* localCodec = QTextCodec::codecForName("GBK"); // 根据实际情况调整目标编码
- if (!localCodec) {
- return str;
- }
- QByteArray localData = localCodec->fromUnicode(unicodeStr);
- return std::string(localData.constData(), localData.length());
- }
- bool DataManager::JsonToStyled(const std::string& str, std::string& strRetrun)
- {
- Json::Reader reader;
- Json::Value root;
- if (reader.parse(str, root))
- {
- return JsonToStyled(root, strRetrun);
- }
- else
- {
- return false;
- }
- }
- bool DataManager::JsonToStyled(Json::Value& jValue, std::string& strRetrun)
- {
- Json::StyledWriter jWriter;
- if (jValue.isNull())
- {
- return false;
- }
- else
- {
- strRetrun = jWriter.write(jValue);
- return true;
- }
- }
- void DataManager::AddHttpLog(LogJson& pNewLog)
- {
- m_vectorLogJson.push_back(pNewLog);
- emit dataChanged(HttpLogList);
- }
- void DataManager::ClearHttpLog()
- {
- m_vectorLogJson.clear();
- emit dataChanged(HttpLogList);
- }
- void DataManager::InitTestFileData()
- {
- QString strPath=QApplication::applicationDirPath()+"/allData.txt";
- QFile pFile(strPath);
- if(pFile.open(QIODevice::ReadOnly|QIODevice::Text))
- {
- strAllDataFile=pFile.readAll();
- };
- SystemData pData;
- pData.nSystemID = 1001;
- pData.nSysType = 1;
- pData.strSysType = "Server";
- pData.strSysName = QString::fromStdString(string_To_UTF8("控制服务器"));
- pData.nStatus = 1;
- m_mapSystemStatus.insert(1001, pData);
- pData.nSystemID = 1002;
- pData.nSysType = 2;
- pData.strSysType = "IO";
- pData.strSysName = QString::fromStdString(string_To_UTF8("IO服务器"));
- pData.nStatus = 0;
- m_mapSystemStatus.insert(1002, pData);
- // pData.nSystemID = 1003;
- // pData.strSysName = QString::fromStdString(string_To_UTF8("信息化服务器"));
- // pData.nStatus = 0;
- // m_mapSystemStatus.insert(1003, pData);
- }
- void DataManager::setEqpmtStatus(int nSysID, int nStatus)
- {
- auto iter = m_mapSystemStatus.find(nSysID);
- if (iter!=m_mapSystemStatus.end())
- {
- iter.value().nStatus = nStatus;
- }
- }
- bool DataManager::addEqpmFault(std::string strEqpmt,int nEqpmtType, int nFaultID)
- {
- auto iters = m_mapEqpmtFault.find(strEqpmt);
- if (iters!=m_mapEqpmtFault.end())
- {
- bool bIsAdded=false;
- for (auto iter =iters.value().begin();iter!=iters.value().end();iter++)
- {
- if (iter->nFaultID==nFaultID)
- {
- bIsAdded = true;
- }
- }
- if (!bIsAdded)
- {
- EqpmtFault pFaultData;
- pFaultData.nFaultID = nFaultID;
- pFaultData.FaultTime = QDateTime::currentDateTime();
- iters.value().push_back(pFaultData);
- }
- }
- else
- {
- QList<EqpmtFault> mList;
- EqpmtFault pFaultData;
- pFaultData.nFaultID = nFaultID;
- pFaultData.FaultTime = QDateTime::currentDateTime();
- mList.push_back(pFaultData);
- m_mapEqpmtFault.insert(strEqpmt, mList);
- m_mapEqpmtType.insert(strEqpmt, nEqpmtType);
- }
- return true;
- }
- bool DataManager::DeleteEqpmtFault(std::string strEqpmt, int nFaultID)
- {
- auto iters = m_mapEqpmtFault.find(strEqpmt);
- if (iters != m_mapEqpmtFault.end())
- {
- for (auto iter = iters.value().begin(); iter != iters.value().end(); iter++)
- {
- if (iter->nFaultID == nFaultID)
- {
- iters.value().erase(iter);
- break;
- }
- }
- }
- else
- {
- return false;
- }
- return true;
- }
- void DataManager::clearEqpmtFault()
- {
- m_mapEqpmtFault.clear();
- m_mapEqpmtType.clear();
- }
|