diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..a3621d6 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -1905,6 +1906,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..a3621d6 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -1905,6 +1906,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index a132816..bf0f724 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -967,6 +967,8 @@ static bool DeleteCheckProgramManage(QString id); // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 static bool InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment); +// 自动核查-根据 设备id查询核查件设备信息 + static CheckAndTestedDevice getCheckAndTestedDeviceById(QString deviceId); //自动核查--结果保存-设备与装置-标准装置管理-多功能校准源 static bool InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator); //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index a37cc89..c716d8f 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -7,6 +7,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +#INCLUDEPATH += $$quote(D:/work/OpenSSL-Win64/include/) +#LIBS += -L"D:/work/OpenSSL-Win64/lib" +#LIBS += -L"D:/work/OpenSSL-Win64/lib/VC/x64/MD" -llibcrypto # The following define makes your compiler emit warnings if you use diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 08eeaf5..a3621d6 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -6,6 +6,7 @@ #include + BaseCommonApi::BaseCommonApi() { @@ -1905,6 +1906,33 @@ } return isSuccess; } +// 自动核查-根据 设备id查询核查件设备信息 +CheckAndTestedDevice BaseCommonApi::getCheckAndTestedDeviceById(QString deviceId) +{ + CheckAndTestedDevice result; + QSqlQuery query; + query.prepare("SELECT bei.id , bei.equipment_name , bei.model , bei.manufacture_no ," + " bei.manufacturer FROM biz_equipment_info bei WHERE bei.id = :deviceId " + " UNION ALL " + " SELECT eei.id , eei.equipment_name , eei.model, eei.manufacture_no , eei.manufacturer " + " FROM eqpt_equipment_info eei LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id WHERE eei.id = :deviceId"); + query.bindValue(":deviceId", deviceId); + bool isSuccess = query.exec(); + if (isSuccess) { + while (query.next()) { + CheckAndTestedDevice device; + device.id = query.value("id").toString(); + device.equipment_name = query.value("equipment_name").toString(); + device.model = query.value("model").toString(); + device.manufacture_no = query.value("manufacture_no").toString(); + device.manufacturer = query.value("manufacturer").toString(); + result=device; + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 bool BaseCommonApi::InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index a132816..bf0f724 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -967,6 +967,8 @@ static bool DeleteCheckProgramManage(QString id); // 设备与装置-标准装置管理-核查数据基本信息关联的核查标准设备,即给设备做核查的设备 static bool InsertStandCheckInfoEquipent(StandCheckInfoEquipent equiment); +// 自动核查-根据 设备id查询核查件设备信息 + static CheckAndTestedDevice getCheckAndTestedDeviceById(QString deviceId); //自动核查--结果保存-设备与装置-标准装置管理-多功能校准源 static bool InsertStandCheckDataCalibrator(StandCheckDataCalibrator calibrator); //自动核查-结果保存-设备与装置-标准装置管理-核查数据管理0.02级活塞式压力计数据表 diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 207da0a..4610d40 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -6,7 +6,57 @@ #include "infomanageview.h" #include "datasyncview.h" #include "QMessageBox" +#include "QDebug" +//#include + +//#include + +//#include + +//#include + +//QString md5HashBySlat(const QString &input) { +// unsigned char result[MD5_DIGEST_LENGTH]; +// MD5((unsigned char*)input.toUtf8().constData(), input.toUtf8().length(), result); + +// // 将结果转换为 32 位小写格式的字符串 +// QString hash; +// for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) { +// // 直接转换为小写十六进制字符串并添加到哈希中 +// hash.append(QString::number(result[i], 16).toLower()); +// } + +// // 确保哈希是 32 位长,如果不是,则前面补 0 +//// while (hash.length() < 32) { +//// hash.prepend("0"); +//// } + +// return hash; +//} +//// 辅助函数:将字节数组转换为十六进制字符串 +//QString byteArrayToHex(const QByteArray &ba) { +// QString hex; +// for (char c : ba) { +// hex += QString::number(static_cast(c), 16).toUpper().rightJustified(2, '0'); +// } +// return hex; +//} + +//// 迭代 MD5 哈希函数 +//QString iterativeMd5Hash(const QString &password, const QString &salt, int iterations) { +// QByteArray passwordBytes = password.toUtf8(); +// QByteArray saltBytes = salt.toUtf8(); +// QByteArray combinedBytes = passwordBytes + saltBytes; + +// for (int i = 0; i < iterations; ++i) { +// unsigned char md5Digest[MD5_DIGEST_LENGTH]; +// MD5((unsigned char*)combinedBytes.data(), combinedBytes.size(), md5Digest); +// combinedBytes = QByteArray((char*)md5Digest, MD5_DIGEST_LENGTH); +// } + +// return byteArrayToHex(combinedBytes); +//} int main(int argc, char *argv[]) @@ -23,6 +73,20 @@ //IndexWindow w; //TestView w; //w.thread->start(); +// QString input = "gph2o"; +// QString md5Hash = md5HashBySlat(input); +// qDebug() << "32-bit lowercase MD5 Hash of" << input << "is" << md5Hash; + +// QString password1 = "1234567"; +// QString md5HashBypassword = md5HashBySlat(password1); +// qDebug() << "md5HashBypassword:" << password1 << "is" << md5HashBypassword; + + +// QString password = "1234567"; +// QString salt = md5Hash; +// int iterations = 1000; +// QString hashedPassword = iterativeMd5Hash(password, salt, iterations); +// qDebug() << "Hashed Password:" << hashedPassword;