Selaa lähdekoodia

optimization: reorg code and remove duplicate files

YaoH 2 viikkoa sitten
vanhempi
commit
4485662ccf
93 muutettua tiedostoa jossa 131 lisäystä ja 1981 poistoa
  1. 42 45
      CMakeLists.txt
  2. 1 1
      PageWidget.h
  3. 0 0
      QframeTest01.pro
  4. 1 1
      address/addressfactory.cpp
  5. 1 1
      address/addressfactory.h
  6. 2 2
      address/addresspage.cpp
  7. 2 3
      address/addresspage.h
  8. 0 0
      address/addresspage.ui
  9. 5 5
      blastJob/blastopepage.cpp
  10. 4 4
      blastJob/blastopepage.h
  11. 0 0
      blastJob/blastopepage.ui
  12. 0 0
      blastJob/blastoperationfactory.cpp
  13. 1 1
      blastJob/blastoperationfactory.h
  14. 0 0
      blastJob/countdownwidget.cpp
  15. 0 0
      blastJob/countdownwidget.h
  16. 4 4
      blastProject/blastprojectpage.cpp
  17. 1 2
      blastProject/blastprojectpage.h
  18. 2 2
      blastProject/hprojectdao.cpp
  19. 3 2
      blastProject/projectdialog.cpp
  20. 0 1
      blastProject/projectdialog.h
  21. 2 2
      blastRecord/blastrecord.cpp
  22. 2 2
      blastRecord/blastrecord.h
  23. 0 5
      blastprojectfactory.cpp
  24. 0 55
      btnserialthread.cpp
  25. 0 30
      btnserialthread.h
  26. 0 77
      btnserialtool.cpp
  27. 0 62
      clickabletableview.cpp
  28. 0 16
      clickabletableview.h
  29. 0 0
      components/buttondelegate.cpp
  30. 0 0
      components/buttondelegate.h
  31. 1 1
      components/loadingWidget.cpp
  32. 0 0
      components/loadingWidget.h
  33. 0 88
      des3encryption.cpp
  34. 0 29
      des3encryption.h
  35. 2 2
      detInfo/detinfopage.h
  36. 1 1
      equipment/equipmentpage.cpp
  37. 1 2
      equipment/equipmentpage.h
  38. 0 5
      equipmentfactory.cpp
  39. 0 12
      equipmentfactory.h
  40. 0 96
      equipmentpage.cpp
  41. 0 21
      equipmentpage.h
  42. 0 135
      equipmentpage.ui
  43. 0 135
      equipmnentpage.ui
  44. 4 239
      fireWidget/firingwidget.cpp
  45. 3 15
      fireWidget/firingwidget.h
  46. 0 9
      hblastrecorddao.h
  47. 1 1
      homepage/homepage.cpp
  48. 0 0
      homepage/homepage.h
  49. 0 0
      homepage/homepage.ui
  50. 0 0
      homepage/homepagefactory.cpp
  51. 1 2
      homepage/homepagefactory.h
  52. 0 101
      hproject.cpp
  53. 0 124
      hproject.h
  54. 0 174
      hprojectdao.cpp
  55. 0 47
      hprojectdao.h
  56. 2 1
      login/loginwindow.cpp
  57. 1 2
      login/loginwindow.h
  58. 0 110
      loginwindow.cpp
  59. 0 30
      loginwindow.h
  60. 5 7
      main.cpp
  61. 8 7
      mainwindow/mainwindow.cpp
  62. 12 12
      mainwindow/mainwindow.h
  63. 0 0
      mainwindow/mainwindow.ui
  64. 2 2
      mqtt/mqttclient.cpp
  65. 0 3
      mqttclient.cpp
  66. 0 9
      regex.h
  67. 0 3
      registrymanager.cpp
  68. 0 0
      serial/paregnrmc.cpp
  69. 0 0
      serial/paregnrmc.h
  70. 2 1
      serial/serialgps.cpp
  71. 1 1
      serial/serialgps.h
  72. 0 0
      serial/serialgpsthread.cpp
  73. 1 1
      serial/serialgpsthread.h
  74. 2 2
      serial/serialtool.cpp
  75. 0 48
      serialgps.cpp
  76. 0 38
      serialgps.h
  77. 0 97
      serialtool.cpp
  78. 0 37
      serialtool.h
  79. 2 2
      tests/test_database.cpp
  80. 0 0
      utils/backendapimanager.cpp
  81. 0 0
      utils/backendapimanager.h
  82. 1 1
      utils/databasemanager.cpp
  83. 0 0
      utils/databasemanager.h
  84. 2 2
      utils/global.cpp
  85. 2 2
      utils/global.h
  86. 0 0
      utils/httpClient.h
  87. 1 1
      utils/httpclient.cpp
  88. 0 0
      utils/jobs.cpp
  89. 0 0
      utils/jobs.h
  90. 0 0
      utils/logger.cpp
  91. 0 0
      utils/logger.h
  92. 0 0
      utils/timeupdatethread.cpp
  93. 0 0
      utils/timeupdatethread.h

+ 42 - 45
CMakeLists.txt

@@ -31,10 +31,10 @@ find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Widgets  Mqtt Sq
 # 定义源文件列表
 set(SOURCES
     PageWidget.cpp
-    blastoperationfactory.cpp
-    blastopepage.cpp
-    addressfactory.cpp
-    addresspage.cpp
+    blastJob/blastoperationfactory.cpp
+    blastJob/blastopepage.cpp
+    address/addressfactory.cpp
+    address/addresspage.cpp
     pagefactory.cpp
     components/MultiSelectComboBox.cpp
     blastProject/blastprojectfactory.cpp
@@ -42,20 +42,20 @@ set(SOURCES
     blastProject/projectdialog.cpp
     blastProject/hproject.cpp
     blastProject/hprojectdao.cpp
-    buttondelegate.cpp
-    databasemanager.cpp
+    components/buttondelegate.cpp
+    utils/databasemanager.cpp
     detInfo/detinfofactory.cpp
     detInfo/detinfopage.cpp
     detInfo/detdialog.cpp
     equipment/equipmentfactory.cpp
     equipment/equipmentpage.cpp
-    global.cpp
-    httpclient.cpp
-    jobs.cpp
-    logger.cpp
+    utils/global.cpp
+    utils/httpclient.cpp
+    utils/logger.cpp
     login/loginwindow.cpp
     main.cpp
-    mainwindow.cpp
+    mainwindow/mainwindow.cpp
+    utils/jobs.cpp
     registryManager/registrymanager.cpp
     mqtt/mqttclient.cpp
     blastRecord/blastrecordfactory.cpp
@@ -68,26 +68,25 @@ set(SOURCES
     blastRegRecord/hblastregrecorddao.cpp
     fireWidget/firingwidget.cpp
     fireWidget/navprogress.cpp
-    des3encryption.cpp
-    countdownwidget.cpp
+    blastJob/countdownwidget.cpp
     serial/serialtool.cpp
     serial/serialgps.cpp
-    paregnrmc.cpp
-    serialgpsthread.cpp
+    serial/serialgpsthread.cpp
+    serial/paregnrmc.cpp
     worker/timeupdatethread.cpp
-    loadingWidget.cpp
-    backendapimanager.cpp
-    homepage.cpp
-    homepagefactory.cpp
+    components/loadingWidget.cpp
+    utils/backendapimanager.cpp
+    homepage/homepage.cpp
+    homepage/homepagefactory.cpp
 )
 
 # 定义头文件列表
 set(HEADERS
     PageWidget.h
-    blastoperationfactory.h
-    blastopepage.h
-    addressfactory.h
-    addresspage.h
+    blastJob/blastoperationfactory.h
+    blastJob/blastopepage.h
+    address/addressfactory.h
+    address/addresspage.h
     pagefactory.h
     components/MultiSelectComboBox.h
     blastProject/blastprojectfactory.h
@@ -95,22 +94,21 @@ set(HEADERS
     blastProject/hproject.h
     blastProject/hprojectdao.h
     blastProject/projectdialog.h
-    buttondelegate.h
-    databasemanager.h
+    components/components/
+    utils/databasemanager.h
     detInfo/detinfofactory.h
     detInfo/detinfopage.h
     detInfo/detdialog.h
     equipment/equipmentfactory.h
     equipment/equipmentpage.h
-    global.h
-    httpclient.h
-    jobs.h
-    logger.h
+    utils/global.h
+    utils/httpclient.h
+    utils/logger.h
     login/loginwindow.h
-    mainwindow.h
+    mainwindow/mainwindow.h
+    utils/jobs.h
     registryManager/registrymanager.h
     mqtt/mqttclient.h
-    regex.h
     blastRecord/blastrecordfactory.h
     blastRecord/blastrecord.h
     blastRecord/hblastrecord.h
@@ -121,31 +119,30 @@ set(HEADERS
     blastRegRecord/hblastregrecorddao.h
     fireWidget/firingwidget.h
     fireWidget/navprogress.h
-    des3encryption.h
-    countdownwidget.h
+    blastJob/countdownwidget.h
     serial/serialtool.h
     serial/serialgps.h
-    paregnrmc.h
-    serialgpsthread.h
+    serial/serialgpsthread.h
+    serial/paregnrmc.h
+    homepage/homepage.h
     worker/timeupdatethread.h
-    loadingWidget.h
-    backendapimanager.h
-    homepage.h
+    components/loadingWidget.h
+    utils/backendapimanager.h
 )
 
 # 定义 UI 文件列表
 set(FORMS
-    homepage.ui
+    homepage/homepage.ui
     PageWidget.ui
-    addresspage.ui
+    address/addresspage.ui
     blastProject/blastprojectpage.ui
     detInfo/detinfopage.ui
     detInfo/detdialog.ui
     equipment/equipmentpage.ui
     login/loginwindow.ui
-    mainwindow.ui
+    mainwindow/mainwindow.ui
     blastProject/projectdialog.ui
-    blastopepage.ui
+    blastJob/blastopepage.ui
     blastRecord/blastrecord.ui
     fireWidget/firingwidget.ui
 )
@@ -167,9 +164,9 @@ add_executable(${PROJECT_NAME}
 
 # 创建测试可执行文件
 add_executable(test_database
-    test_database.cpp
-    databasemanager.cpp
-    logger.cpp
+    tests/test_database.cpp
+    utils/databasemanager.cpp
+    utils/logger.cpp
 )
 
 # 链接测试可执行文件的库

+ 1 - 1
PageWidget.h

@@ -5,7 +5,7 @@
 #include <QList>
 #include <QWidget>
 
-#include "databasemanager.h"
+#include "utils/databasemanager.h"
 
 class QLabel;
 class QEvent;

+ 0 - 0
QframeTest01.pro


+ 1 - 1
addressfactory.cpp → address/addressfactory.cpp

@@ -1,4 +1,4 @@
-#include "addressfactory.h"
+#include "./addressfactory.h"
 
 AddressFactory::AddressFactory() {}
 

+ 1 - 1
addressfactory.h → address/addressfactory.h

@@ -1,6 +1,6 @@
 #ifndef ADDRESSFACTORY_H
 #define ADDRESSFACTORY_H
-#include "PageFactory.h"
+#include "../PageFactory.h"
 #include "addresspage.h"
 
 class AddressFactory : public PageFactory {

+ 2 - 2
addresspage.cpp → address/addresspage.cpp

@@ -6,8 +6,8 @@
 #include <QJsonObject>
 #include <QUrl>
 
-#include "global.h"
-#include "httpclient.h"
+#include "../utils/global.h"
+#include "../utils/httpClient.h"
 #include "ui_addresspage.h"
 AddressPage::AddressPage(QWidget* parent) : QWidget(parent), ui(new Ui::AddressPage) {
     ui->setupUi(this);

+ 2 - 3
addresspage.h → address/addresspage.h

@@ -5,9 +5,8 @@
 #include <QStandardItemModel>
 #include <QWidget>
 
-#include "HttpClient.h"
-#include "PageWidget.h"
-#include "buttondelegate.h"
+#include "../PageWidget.h"
+#include "../utils/httpClient.h"
 
 class QJsonArray;
 class QTableView;

+ 0 - 0
addresspage.ui → address/addresspage.ui


+ 5 - 5
blastopepage.cpp → blastJob/blastopepage.cpp

@@ -4,12 +4,12 @@
 #include <QProcessEnvironment>
 #include <QWebEngineSettings>
 
+#include "../components/loadingwidget.h"
+#include "../login/loginwindow.h"
+#include "../registryManager/registrymanager.h"
+#include "../utils/global.h"
+#include "../utils/logger.h"
 #include "countdownwidget.h"
-#include "global.h"
-#include "loadingwidget.h"
-#include "logger.h"
-#include "loginwindow.h"
-#include "registryManager/registrymanager.h"
 #include "ui_blastopepage.h"
 
 const int ColIndexBlastStatus = 7;

+ 4 - 4
blastopepage.h → blastJob/blastopepage.h

@@ -16,11 +16,11 @@
 #include <QWebEngineView>
 #include <QWidget>
 
-#include "./serial/serialtool.h"
-#include "PageWidget.h"
+#include "../PageWidget.h"
+#include "../blastProject/hprojectdao.h"
+#include "../fireWidget/firingwidget.h"  // 包含 firingWidget 头文件
+#include "../serial/serialtool.h"
 #include "countdownwidget.h"
-#include "fireWidget/firingwidget.h"  // 包含 firingWidget 头文件
-#include "hprojectdao.h"
 
 // 自定义结构体
 struct ProgressBarTriple {

+ 0 - 0
blastopepage.ui → blastJob/blastopepage.ui


+ 0 - 0
blastoperationfactory.cpp → blastJob/blastoperationfactory.cpp


+ 1 - 1
blastoperationfactory.h → blastJob/blastoperationfactory.h

@@ -1,6 +1,6 @@
 #ifndef BLASTOPERATIONFACTORY_H
 #define BLASTOPERATIONFACTORY_H
-#include "PageFactory.h"
+#include "../PageFactory.h"
 #include "blastopepage.h"
 
 class BlastOperationFactory : public PageFactory {

+ 0 - 0
countdownwidget.cpp → blastJob/countdownwidget.cpp


+ 0 - 0
countdownwidget.h → blastJob/countdownwidget.h


+ 4 - 4
blastProject/blastprojectpage.cpp

@@ -3,9 +3,10 @@
 #include <QUrl>
 #include <iostream>
 
-#include "../backendapimanager.h"
-#include "../databasemanager.h"
-#include "../global.h"
+#include "../components/buttondelegate.h"
+#include "../utils/backendapimanager.h"
+#include "../utils/databasemanager.h"
+#include "../utils/global.h"
 #include "ui_blastprojectpage.h"
 
 #define BLASTER_ROLE_ID 4
@@ -49,7 +50,6 @@ void BlastProjectPage::refreshData() {
 
 void BlastProjectPage::loadDataFromSource(int currentPage, int pageSize) {
     PaginatedHProjectResult result = dao.getAllHProjects(currentPage, pageSize);
-    qDebug() << "loadDataFromSource: currentPage=" << currentPage << ", pageSize=" << pageSize << result.totalCount;
 
     QList<QSharedPointer<HProject>> projectList = result.projects;
 

+ 1 - 2
blastProject/blastprojectpage.h

@@ -6,10 +6,9 @@
 #include <QStandardItemModel>
 #include <QWidget>
 
-#include "../HttpClient.h"
 #include "../PageWidget.h"
-#include "../buttondelegate.h"
 #include "../mqtt/mqttclient.h"
+#include "../utils/httpClient.h"
 #include "hprojectdao.h"
 #include "projectdialog.h"
 

+ 2 - 2
blastProject/hprojectdao.cpp

@@ -1,6 +1,6 @@
 #include "HProjectDao.h"
 
-#include "../global.h"
+#include "../utils/global.h"
 
 HProjectDao::HProjectDao(QSqlDatabase db) : database(db) {}
 
@@ -33,7 +33,7 @@ bool HProjectDao::addHProject(const HProject &project) {
     query.bindValue(":blastCount", project.getBlastCount());
     query.bindValue(":createdAt", project.getCreatedAt().toString(Qt::ISODateWithMs));
     query.bindValue(":updatedAt", project.getUpdatedAt().toString(Qt::ISODateWithMs));
-    query.bindValue(":deletedAt", QVariant(QVariant::String)); // 这里可以设置为NULL或当前时间
+    query.bindValue(":deletedAt", QVariant(QVariant::String));  // 这里可以设置为NULL或当前时间
     query.bindValue(":createBy", project.getCreateBy());
     query.bindValue(":updateBy", project.getUpdateBy());
     if (!query.exec()) {

+ 3 - 2
blastProject/projectdialog.cpp

@@ -4,12 +4,13 @@
 
 #include <QCheckBox>
 #include <QListView>
+#include <QMessageBox>
 #include <QPushButton>
 #include <QStandardItemModel>
 
 #include "../components/MultiSelectComboBox.h"
+#include "../utils/logger.h"
 #include "ui_projectdialog.h"
-#include "../logger.h"
 
 ProjectDialog::ProjectDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ProjectDialog) {
     ui->setupUi(this);
@@ -269,7 +270,7 @@ void ProjectDialog::setFormData(const HProject &Project) {
                 qDebug() << "未找到选项 " << addressVariables[2];
             }
         }
-    } catch (const std::exception& e) {
+    } catch (const std::exception &e) {
         Logger::getInstance().error(QString("设置表单数据时发生异常: %1").arg(e.what()));
         QMessageBox::warning(this, "错误", "无法设置表单数据,请检查数据格式是否正确。");
     }

+ 0 - 1
blastProject/projectdialog.h

@@ -8,7 +8,6 @@
 #include <QStandardItem>
 
 #include "../components/MultiSelectComboBox.h"
-#include "../regex.h"
 #include "hproject.h"
 
 namespace Ui {

+ 2 - 2
blastRecord/blastrecord.cpp

@@ -1,7 +1,7 @@
 #include "blastrecord.h"
 
-#include "../backendapimanager.h"
-#include "../loadingWidget.h"
+#include "../components/loadingWidget.h"
+#include "../utils/backendapimanager.h"
 #include "ui_blastrecord.h"
 
 BlastRecord::BlastRecord(QWidget* parent)

+ 2 - 2
blastRecord/blastrecord.h

@@ -9,8 +9,8 @@
 #include <QWidget>
 
 #include "../PageWidget.h"
-#include "../global.h"
-#include "../httpclient.h"
+#include "../utils/global.h"
+#include "../utils/httpClient.h"
 #include "hblastrecorddao.h"
 namespace Ui {
 class BlastRecord;

+ 0 - 5
blastprojectfactory.cpp

@@ -1,5 +0,0 @@
-#include "blastprojectfactory.h"
-
-BlastProjectFactory::BlastProjectFactory() {}
-
-QWidget *BlastProjectFactory::createPage(QWidget *parent) const { return new BlastProjectPage(parent); }

+ 0 - 55
btnserialthread.cpp

@@ -1,55 +0,0 @@
-#include "btnserialthread.h"
-
-BtnSerialThread::BtnSerialThread(QObject *parent) : QThread(parent) {
-    btnSerialTool = nullptr;
-    connect(this, &BtnSerialThread::destroySerialTool, this, &BtnSerialThread::onDestroySerialTool,
-            Qt::QueuedConnection);
-}
-
-BtnSerialThread::~BtnSerialThread() {
-    qDebug() << "SerialToolThread:";
-    // emit destroySerialTool();
-    // // if (isRunning()) {
-    // //     qDebug() << "SerialToolT:" ;
-    // //     quit();
-    // //     wait();
-    // // }
-    qDebug() << "Current thread in run():" << QThread::currentThread();
-    qDebug() << "SerialToolThread object is in thread:" << this->thread();
-    qDebug() << "SerialTool object is in thread:" << btnSerialTool->thread();
-}
-
-void BtnSerialThread::run() {
-    btnSerialTool = new BtnSerialTool();
-    emit serialToolCreated();
-
-    qDebug() << "SerialToolThread object is in thread:" << this->thread();
-    qDebug() << "SerialTool object is in thread:" << btnSerialTool->thread();
-    qDebug() << "Current thread in run():" << QThread::currentThread();
-    // 连接信号
-
-    connect(this, &BtnSerialThread::sendDataRequest, btnSerialTool, &BtnSerialTool::handleSendDataReques,
-            Qt::QueuedConnection);
-    connect(btnSerialTool, &BtnSerialTool::dataReceived, this, &BtnSerialThread::handleReceivedData,
-            Qt::QueuedConnection);
-    // 启动事件循环
-    exec();
-}
-
-// 处理接收到的数据
-void BtnSerialThread::handleReceivedData(const QByteArray &data) {
-    // 这里可以添加具体的处理逻辑,例如打印接收到的数据
-    qDebug() << "Received data:" << data;
-
-    // 可以将接收到的数据通过信号发送出去
-    emit dataReceived(data);
-}
-
-void BtnSerialThread::onDestroySerialTool() {
-    qDebug() << "触发信号";
-    if (btnSerialTool) {
-        qDebug() << "delete serialTool";
-        delete btnSerialTool;
-        btnSerialTool = nullptr;
-    }
-}

+ 0 - 30
btnserialthread.h

@@ -1,30 +0,0 @@
-#ifndef BTNSERIALTHREAD_H
-#define BTNSERIALTHREAD_H
-
-#include <QByteArray>
-#include <QThread>
-
-#include "btnserialtool.h"
-
-class BtnSerialThread : public QThread {
-    Q_OBJECT
-   public:
-    BtnSerialThread(QObject *parent = nullptr);
-    ~BtnSerialThread();  // 声明析构函数
-   signals:
-    void dataReceived(const QByteArray &data);
-    void sendDataRequest(const QByteArray &data);
-    void serialToolCreated();
-    void destroySerialTool();
-   private slots:
-    void handleReceivedData(const QByteArray &data);
-    void onDestroySerialTool();
-
-   protected:
-    void run() override;
-
-   private:
-    BtnSerialTool *btnSerialTool;
-};
-
-#endif  // BTNSERIALTHREAD_H

+ 0 - 77
btnserialtool.cpp

@@ -1,77 +0,0 @@
-#include "btnserialtool.h"
-
-BtnSerialTool::BtnSerialTool(QObject *parent) : QObject(parent) { setupSerialPort(); }
-
-// 打开串口的函数
-void BtnSerialTool::openSerialPort() {
-    const QString portName = "COM8";
-    const qint32 baudRate = 9600;
-
-    if (!serialPort.isOpen()) {
-        serialPort.setPortName(portName);
-        serialPort.setBaudRate(baudRate);
-
-        // 设置数据位,通常为 8 位
-        serialPort.setDataBits(QSerialPort::Data8);
-
-        // 设置停止位,这里设置为 1 位停止位
-        serialPort.setStopBits(QSerialPort::OneStop);
-
-        // 设置校验位,这里设置为无校验
-        serialPort.setParity(QSerialPort::NoParity);
-
-        if (serialPort.open(QIODevice::ReadWrite)) {
-            emit openCloseButtonTextChanged("关闭串口");
-        } else {
-            emit openError();
-        }
-    }
-}
-
-// 关闭串口的函数
-void BtnSerialTool::closeSerialPort() {
-    if (serialPort.isOpen()) {
-        serialPort.close();
-        emit openCloseButtonTextChanged("打开串口");
-    }
-}
-
-bool BtnSerialTool::sendData(const QByteArray &data) {
-    if (serialPort.isOpen()) {
-        qint64 bytesWritten = serialPort.write(data);
-        return bytesWritten == data.size();
-    }
-    return false;
-}
-
-void BtnSerialTool::handleSendDataReques(const QByteArray &data) { sendData(data); }
-
-void BtnSerialTool::readData() {
-    QByteArray newData = serialPort.readAll();
-    buffer.append(newData);
-
-    // 查找完整的命令
-    int startIndex = buffer.indexOf("\\r\\n");
-    while (startIndex != -1) {
-        int endIndex = buffer.indexOf("\\r\\n", startIndex + 4);
-        if (endIndex != -1) {
-            // 提取完整的命令
-            QByteArray command = buffer.mid(startIndex + 4, endIndex - startIndex - 4);
-            emit dataReceived(newData);
-            qDebug() << "Complete command:" << command;
-
-            // 移除已处理的部分
-            buffer = buffer.mid(endIndex + 4);
-        } else {
-            break;
-        }
-        startIndex = buffer.indexOf("\\r\\n");
-    }
-
-    qDebug() << "Received data:" << newData;
-}
-
-void BtnSerialTool::setupSerialPort() {
-    openSerialPort();
-    connect(&serialPort, &QSerialPort::readyRead, this, &BtnSerialTool::readData);
-}

+ 0 - 62
clickabletableview.cpp

@@ -1,62 +0,0 @@
-#include "clickabletableview.h"
-
-ClickableTableView::ClickableTableView(QWidget *parent) : QTableView(parent) {
-    // 构造函数的实现
-    // // 设置背景颜色
-    // QPalette palette = this->palette();
-    // palette.setColor(QPalette::Base, Qt::white);
-    // palette.setColor(QPalette::AlternateBase, Qt::lightGray);
-    // palette.setColor(QPalette::Highlight, QColor(0, 120, 215));
-    // palette.setColor(QPalette::HighlightedText, Qt::white);
-    // this->setPalette(palette);
-
-    // // 设置网格线颜色
-    // this->setGridStyle(Qt::SolidLine);
-    // QColor gridColor(Qt::darkGray);
-    this->setStyleSheet(QString(
-        "QTableView { selection-background-color: blue;}"
-        "QTableView QTableCornerButton::section { background: transparent; } "
-        "QHeaderView::section { background-color: gray; color: white; padding-left: 4px; padding-right: 4px; } "));
-
-    // // 设置边框
-    // this->setFrameShape(QFrame::Box);
-    // this->setLineWidth(1);
-
-    // // 设置单元格内边距
-    // this->verticalHeader()->setDefaultSectionSize(30);
-    // this->horizontalHeader()->setDefaultSectionSize(100);
-    // }
-}
-
-void ClickableTableView::mouseReleaseEvent(QMouseEvent *event) {
-    QModelIndex index = indexAt(event->pos());
-    if (index.isValid() && index.column() == 8) {
-        QRect rect = visualRect(index);
-        QRect firstButtonRect = rect.adjusted(0, 0, -rect.width() / 2, 0);
-        QRect secondButtonRect = rect.adjusted(rect.width() / 2, 0, 0, 0);
-
-        if (firstButtonRect.contains(event->pos())) {
-            // 处理第一个按钮点击事件
-            qDebug() << "Button 1 clicked at row:" << index.row();
-            displayRowData(index.row());
-        } else if (secondButtonRect.contains(event->pos())) {
-            // 处理第二个按钮点击事件
-            qDebug() << "Button 2 clicked at row:" << index.row();
-            displayRowData(index.row());
-        }
-    }
-    QTableView::mouseReleaseEvent(event);
-}
-
-void ClickableTableView::displayRowData(int row) {
-    QAbstractItemModel *model = this->model();
-    if (model) {
-        QString rowData;
-        for (int col = 0; col < model->columnCount(); ++col) {
-            QModelIndex index = model->index(row, col);
-            QVariant data = model->data(index);
-            rowData += QString("Column %1: %2 | ").arg(col).arg(data.toString());
-        }
-        qDebug() << "Row" << row << "Data:" << rowData;
-    }
-}

+ 0 - 16
clickabletableview.h

@@ -1,16 +0,0 @@
-#ifndef CLICKABLETABLEVIEW_H
-#define CLICKABLETABLEVIEW_H
-
-#include <QDebug>
-#include <QMouseEvent>
-#include <QTableView>
-
-class ClickableTableView : public QTableView {
-    Q_OBJECT
-   public:
-    explicit ClickableTableView(QWidget *parent = nullptr);
-    void mouseReleaseEvent(QMouseEvent *event) override;
-    void displayRowData(int row);
-};
-
-#endif  // CLICKABLETABLEVIEW_H

+ 0 - 0
buttondelegate.cpp → components/buttondelegate.cpp


+ 0 - 0
buttondelegate.h → components/buttondelegate.h


+ 1 - 1
loadingWidget.cpp → components/loadingWidget.cpp

@@ -8,7 +8,7 @@
 #include <QScreen>
 #include <QVBoxLayout>
 
-#include "mainwindow.h"
+#include "../mainwindow/mainwindow.h"
 
 LoadingWidget* LoadingWidget::m_instance = nullptr;
 

+ 0 - 0
loadingWidget.h → components/loadingWidget.h


+ 0 - 88
des3encryption.cpp

@@ -1,88 +0,0 @@
-#include "des3encryption.h"
-
-#include <openssl/des.h>
-Des3Encryption::Des3Encryption() {}
-
-QByteArray Des3Encryption::pkcs7Padding(const QByteArray& data, int blockSize) {
-    int padding = blockSize - (data.size() % blockSize);
-    QByteArray paddedData = data;
-    paddedData.append(QByteArray(padding, static_cast<char>(padding)));
-    return paddedData;
-}
-
-// PKCS#7 去填充函数
-QByteArray Des3Encryption::pkcs7Unpadding(const QByteArray& data) {
-    if (data.isEmpty()) {
-        return data;
-    }
-    int padding = static_cast<unsigned char>(data[data.size() - 1]);
-    if (padding > data.size()) {
-        return data;
-    }
-    return data.left(data.size() - padding);
-}
-
-// DES 加密函数
-QByteArray Des3Encryption::desEncrypt(const QByteArray& data, const QByteArray& key) {
-    DES_cblock desKey;
-    memcpy(desKey, key.constData(), 8);
-    DES_key_schedule schedule;
-    DES_set_key(&desKey, &schedule);
-
-    QByteArray encryptedData;
-    for (int i = 0; i < data.size(); i += 8) {
-        DES_cblock inputBlock;
-        memcpy(inputBlock, data.constData() + i, 8);
-        DES_cblock outputBlock;
-        DES_ecb_encrypt(&inputBlock, &outputBlock, &schedule, DES_ENCRYPT);
-        encryptedData.append(reinterpret_cast<const char*>(outputBlock), 8);
-    }
-    return encryptedData;
-}
-
-// DES 解密函数
-QByteArray Des3Encryption::desDecrypt(const QByteArray& data, const QByteArray& key) {
-    DES_cblock desKey;
-    memcpy(desKey, key.constData(), 8);
-    DES_key_schedule schedule;
-    DES_set_key(&desKey, &schedule);
-
-    QByteArray decryptedData;
-    for (int i = 0; i < data.size(); i += 8) {
-        DES_cblock inputBlock;
-        memcpy(inputBlock, data.constData() + i, 8);
-        DES_cblock outputBlock;
-        DES_ecb_encrypt(&inputBlock, &outputBlock, &schedule, DES_DECRYPT);
-        decryptedData.append(reinterpret_cast<const char*>(outputBlock), 8);
-    }
-    return decryptedData;
-}
-
-// 3DES 加密函数
-QByteArray Des3Encryption::des3Encrypt(const QByteArray& data, const QByteArray& key) {
-    // 将密钥填充到 24 字节
-    QByteArray paddedKey = key.leftJustified(24, '\0');
-    // 对数据进行 PKCS#7 填充
-    QByteArray paddedData = pkcs7Padding(data, 8);
-    QByteArray k1 = paddedKey.mid(0, 8);
-    QByteArray k2 = paddedKey.mid(8, 8);
-    QByteArray k3 = paddedKey.mid(16, 8);
-    QByteArray temp1 = desEncrypt(paddedData, k1);
-    QByteArray temp2 = desDecrypt(temp1, k2);
-    QByteArray encrypted = desEncrypt(temp2, k3);
-
-    return encrypted;
-}
-
-// 3DES 解密函数
-QByteArray Des3Encryption::des3Decrypt(const QByteArray& data, const QByteArray& key) {
-    // 将密钥填充到 24 字节
-    QByteArray paddedKey = key.leftJustified(24, '\0');
-    QByteArray k1 = paddedKey.mid(0, 8);
-    QByteArray k2 = paddedKey.mid(8, 8);
-    QByteArray k3 = paddedKey.mid(16, 8);
-    QByteArray temp1 = desDecrypt(data, k3);
-    QByteArray temp2 = desEncrypt(temp1, k2);
-    QByteArray decrypted = desDecrypt(temp2, k1);
-    return pkcs7Unpadding(decrypted);
-}

+ 0 - 29
des3encryption.h

@@ -1,29 +0,0 @@
-#ifndef DES3ENCRYPTION_H
-#define DES3ENCRYPTION_H
-
-#include <QByteArray>
-class Des3Encryption {
-   public:
-    Des3Encryption();
-
-   public:
-    // PKCS#7 填充函数
-    QByteArray pkcs7Padding(const QByteArray& data, int blockSize);
-
-    // PKCS#7 去填充函数
-    QByteArray pkcs7Unpadding(const QByteArray& data);
-
-    // DES 加密函数
-    QByteArray desEncrypt(const QByteArray& data, const QByteArray& key);
-
-    // DES 解密函数
-    QByteArray desDecrypt(const QByteArray& data, const QByteArray& key);
-
-    // 3DES 加密函数
-    QByteArray des3Encrypt(const QByteArray& data, const QByteArray& key);
-
-    // 3DES 解密函数
-    QByteArray des3Decrypt(const QByteArray& data, const QByteArray& key);
-};
-
-#endif  // DES3ENCRYPTION_H

+ 2 - 2
detInfo/detinfopage.h

@@ -14,9 +14,9 @@
 #include <QUrlQuery>
 #include <QWidget>
 
-#include "../HttpClient.h"
 #include "../PageWidget.h"
-#include "../global.h"
+#include "../utils/global.h"
+#include "../utils/httpClient.h"
 #include "detdialog.h"
 
 namespace Ui {

+ 1 - 1
equipment/equipmentpage.cpp

@@ -1,6 +1,6 @@
 #include "equipmentpage.h"
 
-#include "../global.h"
+#include "../utils/global.h"
 #include "ui_equipmentpage.h"
 
 EquipmentPage::EquipmentPage(QWidget* parent) : QWidget(parent), ui(new Ui::EquipmentPage) {

+ 1 - 2
equipment/equipmentpage.h

@@ -7,9 +7,8 @@
 #include <QStandardItemModel>
 #include <QWidget>
 
-#include "../HttpClient.h"
 #include "../PageWidget.h"
-#include "../buttondelegate.h"
+#include "../utils/httpClient.h"
 
 namespace Ui {
 class EquipmentPage;

+ 0 - 5
equipmentfactory.cpp

@@ -1,5 +0,0 @@
-#include "equipmentfactory.h"
-
-EquipmentFactory::EquipmentFactory() {}
-
-QWidget *EquipmentFactory::createPage(QWidget *parent) const { return new EquipmentPage(parent); }

+ 0 - 12
equipmentfactory.h

@@ -1,12 +0,0 @@
-#ifndef EQUIPMENTFACTORY_H
-#define EQUIPMENTFACTORY_H
-#include "PageFactory.h"
-#include "equipmentpage.h"
-
-class EquipmentFactory : public PageFactory {
-   public:
-    EquipmentFactory();
-    QWidget* createPage(QWidget* parent) const override;
-};
-
-#endif  // EQUIPMENTFACTORY_H

+ 0 - 96
equipmentpage.cpp

@@ -1,96 +0,0 @@
-#include "equipmentpage.h"
-
-#include "../global.h"
-#include "ui_equipmentpage.h"
-
-EquipmentPage::EquipmentPage(QWidget* parent) : QWidget(parent), ui(new Ui::EquipmentPage) {
-    ui->setupUi(this);
-    m_pPageWidget = new PageWidget;
-    connect(m_pPageWidget, &PageWidget::currentPageChanged, this, &EquipmentPage::PageChanged);
-    connect(m_pPageWidget->getComboBox(), QOverload<int>::of(&QComboBox::currentIndexChanged), this,
-            &EquipmentPage::onComboBoxIndexChanged);
-    m_httpClient = new HttpClient(this);
-    pageSize = 10;
-    currentPage = 1;
-    ui->verticalLayout_4->addWidget(m_pPageWidget);
-    loadAndRefreshData();
-}
-
-void EquipmentPage::loadAndRefreshData() { loadDataFromSource(currentPage, pageSize); }
-
-void EquipmentPage::loadDataFromSource(int currentPage, int pageSize) {
-    QUrl localUrl("equipment/pc");
-
-    QUrlQuery query;
-    // 添加新的参数到 QUrlQuery
-    query.addQueryItem("pageIndex", QString::number(currentPage));
-    query.addQueryItem("pageSize", QString::number(pageSize));
-
-    // 再次将查询参数设置到 QUrl 对象中
-    localUrl.setQuery(query);
-
-    qDebug() << localUrl.toString();
-    QUrl fullUrl = g_url.resolved(localUrl);
-    m_httpClient->sendHttpGetRequest(fullUrl);
-    // // 连接信号到槽,以便处理请求结果或错误
-    connect(m_httpClient, &HttpClient::httpGetFinished, [this](const QJsonDocument& data) { this->dataTable(data); });
-}
-
-void EquipmentPage::PageChanged(int page) {
-    currentPage = page;
-    loadDataFromSource(currentPage, pageSize);
-}
-
-void EquipmentPage::onComboBoxIndexChanged(int index) {
-    // 获取当前选中的文本
-    QVariant variant = m_pPageWidget->getComboBox()->itemData(index);
-    int value = variant.toInt();
-    pageSize = value;
-    loadDataFromSource(currentPage, pageSize);
-}
-
-void EquipmentPage::dataTable(const QJsonDocument& jsonDoc) {
-    parseJsonString(jsonDoc);
-    model = new QStandardItemModel(this);
-    model->setHorizontalHeaderLabels({"名称", "设备编号", "设备类型", "设备状态", "在线状态", "创建时间"});
-
-    // 遍历 JSON 数组,将其转换为 QStandardItemModel
-    for (const QJsonValue& jsonValue : dataArray) {
-        QJsonObject jsonObj = jsonValue.toObject();
-        QList<QStandardItem*> items = jsonToItem(jsonObj);
-        model->appendRow(items);
-    }
-
-    // // 设置 QTableView 的 model
-    ui->tableView->setModel(model);
-    ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
-    ui->tableView->setAlternatingRowColors(true);  // 启用交替行颜色
-}
-
-QList<QStandardItem*> EquipmentPage::jsonToItem(const QJsonObject& jsonObj) {
-    // 创建一个 QStandardItem
-    QStandardItem* nameItem = new QStandardItem(jsonObj["name"].toString());
-    nameItem->setTextAlignment(Qt::AlignCenter);
-    QStandardItem* equipItem = new QStandardItem(jsonObj["equipmentSn"].toString());
-    QStandardItem* typeItem = new QStandardItem(jsonObj["equipmentTypeName"].toString());
-    QStandardItem* statusItem = new QStandardItem(jsonObj["statusName"].toString());
-    QStandardItem* onlineItem = new QStandardItem(jsonObj["onlineName"].toString());
-    // 处理 createdAt 字段
-    QString createdAtStr = jsonObj["createdAt"].toString();
-    QDateTime createdAt = QDateTime::fromString(createdAtStr, Qt::ISODateWithMs);
-    QString formattedCreatedAt = createdAt.toString("yyyy-MM-dd HH:mm:ss");
-    QStandardItem* createdItem = new QStandardItem(formattedCreatedAt);
-
-    return QList<QStandardItem*>() << nameItem << equipItem << typeItem << statusItem << onlineItem << createdItem;
-}
-
-void EquipmentPage::parseJsonString(const QJsonDocument& jsonDoc) {
-    QJsonObject jsonObj = jsonDoc.object();
-    QJsonObject dataObj = jsonObj["data"].toObject();
-    dataArray = dataObj["list"].toArray();
-    totalCount = dataObj["count"].toInt();
-    m_pPageWidget->setMaxPage(ceil(static_cast<double>(totalCount) / pageSize));
-    // qDebug()<<"Row data"<<dataObj["count"].toInt();
-}
-
-EquipmentPage::~EquipmentPage() { delete ui; }

+ 0 - 21
equipmentpage.h

@@ -1,21 +0,0 @@
-#ifndef EQUIPMENTPAGE_H
-#define EQUIPMENTPAGE_H
-
-#include <QWidget>
-
-namespace Ui {
-class EquipmentPage;
-}
-
-class EquipmentPage : public QWidget {
-    Q_OBJECT
-
-   public:
-    explicit EquipmentPage(QWidget *parent = nullptr);
-    ~EquipmentPage();
-
-   private:
-    Ui::EquipmentPage *ui;
-};
-
-#endif  // EQUIPMENTPAGE_H

+ 0 - 135
equipmentpage.ui

@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>EquipmentPage</class>
- <widget class="QWidget" name="EquipmentPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>700</width>
-    <height>477</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QFrame" name="searchBox">
-     <property name="maximumSize">
-      <size>
-       <width>16777215</width>
-       <height>50</height>
-      </size>
-     </property>
-     <property name="frameShape">
-      <enum>QFrame::Shape::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Shadow::Raised</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QFrame" name="btnBox">
-     <property name="minimumSize">
-      <size>
-       <width>0</width>
-       <height>50</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16777215</width>
-       <height>50</height>
-      </size>
-     </property>
-     <property name="frameShape">
-      <enum>QFrame::Shape::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Shadow::Raised</enum>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Orientation::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>920</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item>
-       <widget class="QPushButton" name="pushButton">
-        <property name="text">
-         <string>创建</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QFrame" name="dataWidget">
-     <property name="frameShape">
-      <enum>QFrame::Shape::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Shadow::Raised</enum>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_3">
-      <item>
-       <widget class="QTableView" name="tableView"/>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QFrame" name="pagination">
-     <property name="minimumSize">
-      <size>
-       <width>0</width>
-       <height>30</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16777215</width>
-       <height>30</height>
-      </size>
-     </property>
-     <property name="frameShape">
-      <enum>QFrame::Shape::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Shadow::Raised</enum>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_4">
-      <property name="spacing">
-       <number>0</number>
-      </property>
-      <property name="leftMargin">
-       <number>0</number>
-      </property>
-      <property name="topMargin">
-       <number>0</number>
-      </property>
-      <property name="rightMargin">
-       <number>0</number>
-      </property>
-      <property name="bottomMargin">
-       <number>0</number>
-      </property>
-     </layout>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>

+ 0 - 135
equipmnentpage.ui

@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>EquipmnentPage</class>
- <widget class="QWidget" name="EquipmnentPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>735</width>
-    <height>473</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QFrame" name="searchBox">
-     <property name="maximumSize">
-      <size>
-       <width>16777215</width>
-       <height>50</height>
-      </size>
-     </property>
-     <property name="frameShape">
-      <enum>QFrame::Shape::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Shadow::Raised</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QFrame" name="btnBox">
-     <property name="minimumSize">
-      <size>
-       <width>0</width>
-       <height>50</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16777215</width>
-       <height>50</height>
-      </size>
-     </property>
-     <property name="frameShape">
-      <enum>QFrame::Shape::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Shadow::Raised</enum>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Orientation::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>920</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item>
-       <widget class="QPushButton" name="pushButton">
-        <property name="text">
-         <string>创建</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QFrame" name="dataWidget">
-     <property name="frameShape">
-      <enum>QFrame::Shape::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Shadow::Raised</enum>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_3">
-      <item>
-       <widget class="QTableView" name="tableView"/>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QFrame" name="pagination">
-     <property name="minimumSize">
-      <size>
-       <width>0</width>
-       <height>30</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16777215</width>
-       <height>30</height>
-      </size>
-     </property>
-     <property name="frameShape">
-      <enum>QFrame::Shape::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Shadow::Raised</enum>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_4">
-      <property name="spacing">
-       <number>0</number>
-      </property>
-      <property name="leftMargin">
-       <number>0</number>
-      </property>
-      <property name="topMargin">
-       <number>0</number>
-      </property>
-      <property name="rightMargin">
-       <number>0</number>
-      </property>
-      <property name="bottomMargin">
-       <number>0</number>
-      </property>
-     </layout>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>

+ 4 - 239
fireWidget/firingwidget.cpp

@@ -13,9 +13,9 @@
 #include <QUrl>
 #include <QUrlQuery>
 
-#include "../backendapimanager.h"
-#include "../global.h"
-#include "../logger.h"
+#include "../utils/backendapimanager.h"
+#include "../utils/global.h"
+#include "../utils/logger.h"
 #include "ui_firingwidget.h"
 
 #define ANSI_COLOR_GREEN "\x1B[32m"
@@ -51,7 +51,6 @@ firingWidget::firingWidget(const int &row, const bool &select, const QString &uu
     connect(m_subscription, &QMqttSubscription::messageReceived, this, &firingWidget::handleProjectFiringMqttMessage);
 
     connect(this, &firingWidget::lastStageChanged, this, &firingWidget::handleFiringStageChanged);
-    connect(this, &firingWidget::updateData, this, &firingWidget::onBlastSuccess);
 }
 
 firingWidget::~firingWidget() {
@@ -114,75 +113,6 @@ void firingWidget::checkBlasterConnection() {
     });
     m_connectionCheckTimer->start(1000);
 }
-void firingWidget::on_pushButton_2_clicked() { emit countdown(m_curProjUuid, m_topic, "message"); }
-
-// NOTE: aborted, changed to upload in the smartmine server side.
-bool firingWidget::uploadToDanLing(const QJsonObject &jsonObj) {
-    QString htid = jsonObj["project_htid"].toString();
-    QString htm = "";  //
-    QString xmbh = jsonObj["project_xmbh"].toString();
-    QString sbbh = jsonObj["equipment_sn"].toString();
-    QString bprysfz = jsonObj["operator_identity"].toString();
-    QString dwdm = jsonObj["company_code"].toString();
-    QString xtm = "";  //
-    QString jd = jsonObj["blast_longitude"].toString();
-    QString bpsj = jsonObj["blast_time"].toString();
-    QString wd = jsonObj["blast_latitude"].toString();
-    QStringList uidList;
-    QJsonArray regs = jsonObj["regs"].toArray();
-    for (const auto &reg : regs) {
-        QJsonObject regObj = reg.toObject();
-        QJsonArray dets = regObj["dets"].toArray();
-        for (const auto &det : dets) {
-            QJsonObject detObj = det.toObject();
-            uidList.append(detObj["uid"].toString());
-        }
-    }
-    QString uid = uidList.join(",");
-
-    QString plainText = QString(
-                            "{\"htid\":\"%1\",\"htm\":\"%2\",\"xmbh\":\"%3\",\"sbbh\":\"%4\","
-                            "\"bprysfz\":\"%5\",\"dwdm\":\"%6\",\"xtm\":\"%7\",\"jd\":\"%8\","
-                            "\"bpsj\":\"%9\",\"wd\":\"%10\",\"uid\":\"%11\"}")
-                            .arg(htid)
-                            .arg(htm)
-                            .arg(xmbh)
-                            .arg(sbbh)
-                            .arg(bprysfz)
-                            .arg(dwdm)
-                            .arg(xtm)
-                            .arg(jd)
-                            .arg(bpsj)
-                            .arg(wd)
-                            .arg(uid);
-    Des3Encryption des3;
-    QByteArray key = "jadl12345678912345678912";
-    QByteArray encryptedData = des3.des3Encrypt(plainText.toUtf8(), key);
-    QByteArray base64Encoded = encryptedData.toBase64();
-    QString encodedJson = QUrl::toPercentEncoding(base64Encoded);
-    QString baseUrl = "http://test.mbdzlg.com/mbdzlgtxzx/servlet/DzlgSysbJsonServlert";
-    QUrl url(baseUrl);
-    QUrlQuery query;
-    query.addQueryItem("param", encodedJson);
-    url.setQuery(query);
-
-    QNetworkAccessManager manager;
-    QNetworkRequest request(url);
-    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
-    QByteArray postData;
-    QNetworkReply *reply = manager.post(request, postData);
-    QEventLoop loop;
-    QObject::connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
-    loop.exec();
-    if (reply->error() == QNetworkReply::NoError) {
-        QByteArray responseData = reply->readAll();
-        qDebug() << "Response:" << QString(responseData);
-    } else {
-        qDebug() << "Error:" << reply->errorString();
-    }
-    reply->deleteLater();
-    return true;
-}
 
 void firingWidget::handleProjectFiringMqttMessage(const QMqttMessage &message) {
     QString msgText = QString("Topic: %1, Message: %2").arg(message.topic().name(), QString(message.payload()));
@@ -302,13 +232,6 @@ void firingWidget::handleProjectFiringMqttMessage(const QMqttMessage &message) {
                 }
             }
         }
-        if (jsonObj.contains("type") && jsonObj["type"].toInt() == MSG_DATA_TYPE_RECORD) {
-            if (jsonObj.contains("data") && jsonObj["data"].isObject()) {
-                QJsonObject dataObject = jsonObj["data"].toObject();
-                emit updateData(dataObject);
-                emit closeFiring(m_curProjUuid, m_row);
-            }
-        }
     }
 }
 
@@ -434,162 +357,4 @@ void firingWidget::sendCancelFiringMsg() {
     QString message = "取消流程";
     QString topic = "hxgc/" + m_curProjUuid + "/P";
     sendMqttMessage(topic, message.toUtf8());
-}
-void firingWidget::on_sendTest_4_clicked() {}
-
-void firingWidget::testOnBlastSuccess(const QJsonObject &jsonObj) { onBlastSuccess(jsonObj); }
-// 处理爆破成功,安全验证装置通过MQTT传回的数据
-void firingWidget::onBlastSuccess(const QJsonObject &jsonObj) {
-    Logger::getInstance("blastRecord.log").info(QJsonDocument(jsonObj).toJson(QJsonDocument::Indented));
-    saveAndUploadRecord(jsonObj);
-}
-
-void firingWidget::saveAndUploadRecord(const QJsonObject &jsonObj) {
-    return;  // changed to use server to save the record
-    QSqlDatabase db = DatabaseManager::getInstance().getDatabase();
-    if (!db.transaction()) {
-        Logger::getInstance().critical(QString("Failed to start DB transaction. Error: %1").arg(db.lastError().text()));
-        return;
-    }
-
-    qDebug() << "Starting transaction for blast record with uuid:" << jsonObj;
-    HBlastRecord *blastRecord = recordBlastProject(jsonObj);
-    if (blastRecord == nullptr) {
-        Logger::getInstance("error_blast_records.log")
-            .error(QString("Failed to create blast record. projectName: %1, ProjectID: %2; "
-                           "rollback transaction: %3")
-                       .arg(jsonObj["project_name"].toString(), jsonObj["project_htid"].toString(),
-                            db.rollback() ? "success" : "failed"));
-        return;
-    }
-    QList<HBlastEquipmentRecord *> blastEquipmentRecords;
-    for (const auto &regValue : jsonObj["regs"].toArray()) {
-        QJsonObject equipmentJsonObject = regValue.toObject();
-        HBlastEquipmentRecord *hBlastEquipmentRecord =
-            recordBlastEquipment(blastRecord->getUuid(), equipmentJsonObject);
-        if (hBlastEquipmentRecord != nullptr) {
-            blastEquipmentRecords.append(hBlastEquipmentRecord);
-        }
-
-        QList<HBlastRecordDet *> hBlastRecordDets = recordBlastProjectDets(
-            blastRecord->getUuid(), hBlastEquipmentRecord->getUuid(), equipmentJsonObject["dets"].toArray());
-        hBlastEquipmentRecord->setDetRecords(hBlastRecordDets);
-    }
-
-    blastRecord->setEquipmentRecords(blastEquipmentRecords);
-
-    if (db.commit()) {
-        Logger::getInstance().info(
-            QString("Transaction committed successfully. blast_uuid: %1").arg(blastRecord->getUuid()));
-    } else {
-        Logger::getInstance().error(QString("Failed to commit transaction: %1. try to rollback: %2")
-                                        .arg(db.lastError().text(), db.rollback() ? "success" : "failed"));
-        return;
-    }
-    uploadBlastRecordToServer(blastRecord);
-}
-
-void firingWidget::uploadBlastRecordToServer(HBlastRecord *blastRecord) {
-    if (blastRecord == nullptr) {
-        return;
-    }
-    if (!backendAPIManager::uploadBlastProjectFull(blastRecord->ToJson())) {
-        Logger::getInstance().error(QString("Failed to upload blast project. data: %1")
-                                        .arg(QJsonDocument(blastRecord->ToJson()).toJson(QJsonDocument::Indented)));
-    }
-    Logger::getInstance().info(
-        QString("Blast project uploaded to server successfully. blast_uuid: %1").arg(blastRecord->getUuid()));
-}
-
-HBlastRecord *firingWidget::recordBlastProject(const QJsonObject &jsonObj) {
-    HBlastRecord *record = new HBlastRecord();
-
-    record->setUuid(QUuid::createUuid().toString(QUuid::WithoutBraces).remove(QRegularExpression("-")));
-    record->setIsOfflineBlast(jsonObj["is_offline_blast"].toString() == "true");
-    record->setProjectName(jsonObj["project_name"].toString());
-    record->setProjectHtid(jsonObj["project_htid"].toString());
-    record->setProjectXmbh(jsonObj["project_xmbh"].toString());
-    record->setOperatorName(jsonObj["operator_name"].toString());
-    record->setPhone(jsonObj["phone"].toString());
-    record->setOperatorIdentity(jsonObj["operator_identity"].toString());
-    record->setEquipmentSn(jsonObj["equipment_sn"].toString());
-    record->setCompanyCode(jsonObj["company_code"].toString());
-    record->setAppVersion(jsonObj["app_version"].toString());
-
-    // TODO: 如何获得坐标
-    record->setLongitude(jsonObj["blast_longitude"].toString().left(10));
-    record->setLatitude(jsonObj["blast_latitude"].toString().left(10));
-
-    record->setRegDetCount(jsonObj["reg_deto_count"].toString().toInt());
-    record->setErrorDetCount(jsonObj["error_deto_count"].toString().toInt());
-    QDateTime blastTime = QDateTime::fromString(jsonObj["blast_time"].toString(), "yyyy-MM-dd hh:mm:ss");
-    record->setBlastAt(blastTime);
-    record->setCreatedAt(QDateTime::currentDateTime());
-
-    if (daoProj.addHBlastRecord(*record)) {
-        qDebug() << "Record inserted successfully.";
-        return record;
-    } else {
-        qDebug() << "Failed to insert record.";
-        delete record;
-        return nullptr;
-    }
-}
-
-HBlastEquipmentRecord *firingWidget::recordBlastEquipment(const QString blastProjectUuid, const QJsonObject &regObj) {
-    HBlastEquipmentRecord *recordReg = new HBlastEquipmentRecord();
-    recordReg->setUuid(QUuid::createUuid().toString(QUuid::WithoutBraces).remove(QRegularExpression("-")));
-    recordReg->setEquipSn(regObj["equipment_sn"].toString());
-    recordReg->setEquipVersion(regObj["equipment_version"].toString());
-    recordReg->setRegDetoCount(regObj["reg_deto_count"].toString().toInt());
-    recordReg->setErrorDetoCount(regObj["error_deto_count"].toString().toInt());
-    recordReg->setAfterTestBusV(regObj["after_test_bus_v"].toString());
-    recordReg->setAfterTestBusI(regObj["after_test_bus_i"].toString());
-    recordReg->setBusLeakageCurrentI(regObj["bus_leakage_current_i"].toString());
-    recordReg->setNetChargedV(regObj["net_charged_v"].toString());
-    recordReg->setNetChargedI(regObj["net_charged_i"].toString());
-    recordReg->setBeforeBlastingV(regObj["before_blasting_v"].toString());
-    recordReg->setBeforeBlastingI(regObj["before_blasting_i"].toString());
-    recordReg->setRecordUuid(blastProjectUuid);
-    recordReg->setCreatedAt(QDateTime::currentDateTime());
-
-    if (!daoReg.saveHBlastRegRecord(*recordReg)) {
-        Logger::getInstance().error(QString("Failed to save HBlastRegRecord: %1").arg(recordReg->getEquipSn()));
-        delete recordReg;
-        return nullptr;
-    }
-    return recordReg;
-}
-
-QList<HBlastRecordDet *> firingWidget::recordBlastProjectDets(const QString projectUuid, const QString equipmentUuid,
-                                                              const QJsonArray detsArray) {
-    QList<HBlastRecordDet *> recordDets;
-
-    for (const auto &detValue : detsArray) {
-        QJsonObject detObj = detValue.toObject();
-        HBlastRecordDet *recordDet = new HBlastRecordDet();
-
-        recordDet->setId(0);
-        recordDet->setUuid(QUuid::createUuid().toString(QUuid::WithoutBraces).remove(QRegularExpression("-")));
-        recordDet->setOutCode(detObj["out_code"].toString());
-        recordDet->setInnerCode(detObj["in_code"].toString());
-        recordDet->setUid(detObj["uid"].toString());
-        recordDet->setStatus(detObj["status"].toString());
-        recordDet->setFreq(detObj["freq"].toString());
-        recordDet->setDelayTime(detObj["delay_time"].toString());
-        recordDet->setTag(detObj["tag"].toString());
-        recordDet->setBlastRecordUuid(projectUuid);
-        recordDet->setEquipmentRecordUuid(equipmentUuid);
-        recordDet->setCreatedAt(QDateTime::currentDateTime());
-
-        if (daoDet.addHBlastRecordDet(*recordDet)) {
-            recordDets.append(recordDet);
-        } else {
-            Logger::getInstance().error(QString("Failed to insert record det. data %1")
-                                            .arg(QJsonDocument(recordDet->ToJson()).toJson(QJsonDocument::Compact)));
-            delete recordDet;
-            continue;
-        }
-    }
-    return recordDets;
-}
+}

+ 3 - 15
fireWidget/firingwidget.h

@@ -6,16 +6,15 @@
 #include <QMqttSubscription>
 #include <QWidget>
 
-#include "../backendapimanager.h"
 #include "../blastRecord/hblastrecord.h"
 #include "../blastRecord/hblastrecorddao.h"
 #include "../blastRecordDet/hblastrecorddetdao.h"
 #include "../blastRegRecord/hblastregrecorddao.h"
-#include "../databasemanager.h"
-#include "../des3encryption.h"
-#include "../logger.h"
 #include "../mqtt/mqttclient.h"
 #include "../serial/serialtool.h"
+#include "../utils/backendapimanager.h"
+#include "../utils/databasemanager.h"
+#include "../utils/logger.h"
 #include "navprogress.h"
 
 /* ref: 起爆器端协议
@@ -48,8 +47,6 @@ class firingWidget : public QWidget {
     void onCountdownFinished(const QString &topic, const QString &message);
 
    private slots:
-    void on_pushButton_2_clicked();
-    void on_sendTest_4_clicked();
     void handleProjectFiringMqttMessage(const QMqttMessage &qmessage);
 
     void onMqttConnected();
@@ -57,7 +54,6 @@ class firingWidget : public QWidget {
     // 双键按下
     void onButtonPressedReceived(const QString &topic, const QString &message);
     void handleFiringStageChanged(int newStage);
-    void onBlastSuccess(const QJsonObject &data);
 
    signals:
     void progressChanged(int value, int row);
@@ -66,20 +62,12 @@ class firingWidget : public QWidget {
     void updatefiringStage(int status, int row);
     void batchFiringSignal(QString uuid);
     void updateProjectStatus(QString uuid, QString status);
-    void updateData(const QJsonObject &jsonObj);
     void safeChecked(const QJsonObject &jsonObj);
     void countdown(QString uuid, const QString &topic, const QString &message);
     void closeFiring(QString uuid, int row);
 
    private:
     void checkBlasterConnection();
-    void uploadBlastRecordToServer(HBlastRecord *blastRecord);
-    HBlastRecord *recordBlastProject(const QJsonObject &jsonObj);
-    HBlastEquipmentRecord *recordBlastEquipment(const QString blastProjectUUID, const QJsonObject &regObj);
-    QList<HBlastRecordDet *> recordBlastProjectDets(const QString projectUUID, const QString equipmentUUID,
-                                                    const QJsonArray regsArray);
-    bool uploadToDanLing(const QJsonObject &jsonObj);
-    void saveAndUploadRecord(const QJsonObject &jsonObj);
     void sendMqttMessage(const QString &topic, const QByteArray &message);
     void onSafeChecked(const QString projectUuid);
 

+ 0 - 9
hblastrecorddao.h

@@ -1,9 +0,0 @@
-#ifndef HBLASTRECORDDAO_H
-#define HBLASTRECORDDAO_H
-
-class HBlastRecordDao {
-   public:
-    HBlastRecordDao();
-};
-
-#endif  // HBLASTRECORDDAO_H

+ 1 - 1
homepage.cpp → homepage/homepage.cpp

@@ -14,7 +14,7 @@
 #include <QtCharts/QChartView>
 #include <QtCharts/QValueAxis>
 
-#include "backendapimanager.h"
+#include "../utils/backendapimanager.h"
 #include "ui_homepage.h"
 
 Homepage::Homepage(QWidget *parent) : QWidget(parent), ui(new Ui::homepage) {

+ 0 - 0
homepage.h → homepage/homepage.h


+ 0 - 0
homepage.ui → homepage/homepage.ui


+ 0 - 0
homepagefactory.cpp → homepage/homepagefactory.cpp


+ 1 - 2
homepagefactory.h → homepage/homepagefactory.h

@@ -1,7 +1,6 @@
 #ifndef HOMEPAGEFACTORY_H
 #define HOMEPAGEFACTORY_H
-#include "PageFactory.h"
-#include "homepage.h"
+#include "../PageFactory.h"
 
 class HomepageFactory : public PageFactory {
    public:

+ 0 - 101
hproject.cpp

@@ -1,101 +0,0 @@
-#include "hproject.h"
-
-HProject::HProject(QObject *parent) : QObject(parent), id(0), createBy(0), updateBy(0) {}
-
-// Getter and Setter implementations
-qint64 HProject::getId() const { return id; }
-
-void HProject::setId(qint64 newId) { id = newId; }
-
-QString HProject::getUuid() const { return uuid; }
-
-void HProject::setUuid(const QString &newUuid) { uuid = newUuid; }
-
-QString HProject::getName() const { return name; }
-
-void HProject::setName(const QString &newName) { name = newName; }
-
-QString HProject::getCompanyCode() const { return companyCode; }
-
-void HProject::setCompanyCode(const QString &newCompanyCode) { companyCode = newCompanyCode; }
-
-QString HProject::getHtid() const { return htid; }
-
-void HProject::setHtid(const QString &newHtid) { htid = newHtid; }
-
-QString HProject::getXmbh() const { return xmbh; }
-
-void HProject::setXmbh(const QString &newXmbh) { xmbh = newXmbh; }
-
-QString HProject::getOperatorName() const { return operatorName; }
-
-void HProject::setOperatorName(const QString &newOperatorName) { operatorName = newOperatorName; }
-
-QString HProject::getOperatorIdentity() const { return operatorIdentity; }
-
-void HProject::setOperatorIdentity(const QString &newOperatorIdentity) { operatorIdentity = newOperatorIdentity; }
-
-QString HProject::getBlasterName() const { return blasterName; }
-
-void HProject::setBlasterName(const QString &newBlasterName) { blasterName = newBlasterName; }
-
-QString HProject::getBlasterIdentity() const { return blasterIdentity; }
-
-void HProject::setBlasterIdentity(const QString &newBlasterIdentity) { blasterIdentity = newBlasterIdentity; }
-
-QString HProject::getAddressUuid() const { return addressUuid; }
-
-void HProject::setAddressUuid(const QString &newAddressUuid) { addressUuid = newAddressUuid; }
-
-QString HProject::getDetSum() const { return detSum; }
-
-void HProject::setDetSum(const QString &newDetSum) { detSum = newDetSum; }
-
-QString HProject::getFileName() const { return fileName; }
-
-void HProject::setFileName(const QString &newFileName) { fileName = newFileName; }
-
-QString HProject::getFileUrl() const { return fileUrl; }
-
-void HProject::setFileUrl(const QString &newFileUrl) { fileUrl = newFileUrl; }
-
-QString HProject::getBlastStatus() const { return blastStatus; }
-
-void HProject::setBlastStatus(const QString &newBlastStatus) { blastStatus = newBlastStatus; }
-
-QDateTime HProject::getCreatedAt() const { return createdAt; }
-
-void HProject::setCreatedAt(const QDateTime &newCreatedAt) { createdAt = newCreatedAt; }
-
-QDateTime HProject::getUpdatedAt() const { return updatedAt; }
-
-void HProject::setUpdatedAt(const QDateTime &newUpdatedAt) { updatedAt = newUpdatedAt; }
-
-QDateTime HProject::getDeletedAt() const { return deletedAt; }
-
-void HProject::setDeletedAt(const QDateTime &newDeletedAt) { deletedAt = newDeletedAt; }
-
-qint64 HProject::getCreateBy() const { return createBy; }
-
-void HProject::setCreateBy(qint64 newCreateBy) { createBy = newCreateBy; }
-
-qint64 HProject::getUpdateBy() const { return updateBy; }
-
-void HProject::setUpdateBy(qint64 newUpdateBy) { updateBy = newUpdateBy; }
-
-QByteArray HProject::ProjectToJson(const HProject &project) {
-    QJsonObject jsonObject;
-    jsonObject["name"] = project.getName();
-    jsonObject["detSum"] = project.getDetSum();
-    jsonObject["blasterName"] = project.getBlasterName();
-    jsonObject["operatorName"] = project.getOperatorName();
-    jsonObject["xmbh"] = project.getXmbh();
-    jsonObject["htid"] = project.getHtid();
-    jsonObject["companyCode"] = project.getCompanyCode();
-    jsonObject["address"] = project.getAddressUuid();
-    jsonObject["blasterIdentity"] = project.getBlasterIdentity();
-    jsonObject["operatorIdentity"] = project.getOperatorIdentity();
-
-    QJsonDocument jsonDoc(jsonObject);
-    return jsonDoc.toJson(QJsonDocument::Compact);
-}

+ 0 - 124
hproject.h

@@ -1,124 +0,0 @@
-#ifndef HPROJECT_H
-#define HPROJECT_H
-
-#include <QDateTime>
-#include <QJsonDocument>
-#include <QJsonObject>
-#include <QString>
-#include <QUuid>
-
-class HProject : public QObject {
-    Q_OBJECT
-    // 定义属性
-    Q_PROPERTY(qint64 id READ getId WRITE setId)
-    Q_PROPERTY(QString uuid READ getUuid WRITE setUuid)
-    Q_PROPERTY(QString name READ getName WRITE setName)
-    Q_PROPERTY(QString companyCode READ getCompanyCode WRITE setCompanyCode)
-    Q_PROPERTY(QString htid READ getHtid WRITE setHtid)
-    Q_PROPERTY(QString xmbh READ getXmbh WRITE setXmbh)
-    Q_PROPERTY(QString operatorName READ getOperatorName WRITE setOperatorName)
-    Q_PROPERTY(QString operatorIdentity READ getOperatorIdentity WRITE setOperatorIdentity)
-    Q_PROPERTY(QString blasterName READ getBlasterName WRITE setBlasterName)
-    Q_PROPERTY(QString blasterIdentity READ getBlasterIdentity WRITE setBlasterIdentity)
-    Q_PROPERTY(QString addressUuid READ getAddressUuid WRITE setAddressUuid)
-    Q_PROPERTY(QString detSum READ getDetSum WRITE setDetSum)
-    Q_PROPERTY(QString fileName READ getFileName WRITE setFileName)
-    Q_PROPERTY(QString fileUrl READ getFileUrl WRITE setFileUrl)
-    Q_PROPERTY(QString blastStatus READ getBlastStatus WRITE setBlastStatus)
-    Q_PROPERTY(QDateTime createdAt READ getCreatedAt WRITE setCreatedAt)
-    Q_PROPERTY(QDateTime updatedAt READ getUpdatedAt WRITE setUpdatedAt)
-    Q_PROPERTY(QDateTime deletedAt READ getDeletedAt WRITE setDeletedAt)
-    Q_PROPERTY(qint64 createBy READ getCreateBy WRITE setCreateBy)
-    Q_PROPERTY(qint64 updateBy READ getUpdateBy WRITE setUpdateBy)
-
-   public:
-    explicit HProject(QObject *parent = nullptr);
-
-    // Getter and Setter methods
-    qint64 getId() const;
-    void setId(qint64 newId);
-
-    QString getUuid() const;
-    void setUuid(const QString &newUuid);
-
-    QString getName() const;
-    void setName(const QString &newName);
-
-    QString getCompanyCode() const;
-    void setCompanyCode(const QString &newCompanyCode);
-
-    QString getHtid() const;
-    void setHtid(const QString &newHtid);
-
-    QString getXmbh() const;
-    void setXmbh(const QString &newXmbh);
-
-    QString getOperatorName() const;
-    void setOperatorName(const QString &newOperatorName);
-
-    QString getOperatorIdentity() const;
-    void setOperatorIdentity(const QString &newOperatorIdentity);
-
-    QString getBlasterName() const;
-    void setBlasterName(const QString &newBlasterName);
-
-    QString getBlasterIdentity() const;
-    void setBlasterIdentity(const QString &newBlasterIdentity);
-
-    QString getAddressUuid() const;
-    void setAddressUuid(const QString &newAddressUuid);
-
-    QString getDetSum() const;
-    void setDetSum(const QString &newDetSum);
-
-    QString getFileName() const;
-    void setFileName(const QString &newFileName);
-
-    QString getFileUrl() const;
-    void setFileUrl(const QString &newFileUrl);
-
-    QString getBlastStatus() const;
-    void setBlastStatus(const QString &newBlastStatus);
-
-    QDateTime getCreatedAt() const;
-    void setCreatedAt(const QDateTime &newCreatedAt);
-
-    QDateTime getUpdatedAt() const;
-    void setUpdatedAt(const QDateTime &newUpdatedAt);
-
-    QDateTime getDeletedAt() const;
-    void setDeletedAt(const QDateTime &newDeletedAt);
-
-    qint64 getCreateBy() const;
-    void setCreateBy(qint64 newCreateBy);
-
-    qint64 getUpdateBy() const;
-    void setUpdateBy(qint64 newUpdateBy);
-
-    QByteArray ProjectToJson(const HProject &project);
-
-   private:
-    qint64 id;
-    QString uuid;
-    QString name;
-    QString companyCode;
-    QString htid;
-    QString xmbh;
-    QString operatorName;
-    QString operatorIdentity;
-    QString blasterName;
-    QString blasterIdentity;
-    QString addressUuid;
-    QString pcSn;
-    QString detSum;
-    QString fileName;
-    QString fileUrl;
-    QString blastStatus;
-    QDateTime createdAt;
-    QDateTime updatedAt;
-    QDateTime deletedAt;
-    qint64 createBy;
-    qint64 updateBy;
-};
-
-#endif  // HPROJECT_H

+ 0 - 174
hprojectdao.cpp

@@ -1,174 +0,0 @@
-#include "HProjectDao.h"
-
-HProjectDao::HProjectDao(QSqlDatabase db) : database(db) {}
-
-bool HProjectDao::addHProject(const HProject &project) {
-    QSqlQuery query;
-    query.prepare(
-        "INSERT INTO h_project (uuid, name, company_code, htid, xmbh, operator_name, "
-        "operator_identity, blaster_identity, address_uuid, pc_sn, det_sum, safetyInspectorIdentity, "
-        "file_name, file_url, blast_status, created_at, updated_at, deleted_at, create_by, update_by) "
-        "VALUES (:uuid, :name, :companyCode, :htid, :xmbh, :operatorIdentity, :safetyInspectorIdentity "
-        ":blasterIdentity, :addressUuid, :pcSn, :detSum, :fileName, :fileUrl, "
-        ":blastStatus, :createdAt, :updatedAt, :deletedAt, :createBy, :updateBy)");
-
-    query.bindValue(":uuid", project.getUuid());
-    query.bindValue(":name", project.getName());
-    query.bindValue(":companyCode", project.getCompanyCode());
-    query.bindValue(":htid", project.getHtid());
-    query.bindValue(":xmbh", project.getXmbh());
-    query.bindValue(":operatorIdentity", project.getOperatorIdentity());
-    query.bindValue(":blasterIdentity", project.getBlasterIdentity());
-    query.bindValue(":safetyInspectorIdentity", project.getBlasterIdentity());
-    query.bindValue(":addressUuid", project.getAddressUuid());
-    query.bindValue(":detSum", project.getDetSum());
-    query.bindValue(":fileName", project.getFileName());
-    query.bindValue(":fileUrl", project.getFileUrl());
-    query.bindValue(":blastStatus", project.getBlastStatus());
-    query.bindValue(":createdAt", project.getCreatedAt().toString(Qt::ISODateWithMs));
-    query.bindValue(":updatedAt", project.getUpdatedAt().toString(Qt::ISODateWithMs));
-    query.bindValue(":deletedAt", project.getDeletedAt().toString(Qt::ISODateWithMs));
-    query.bindValue(":createBy", project.getCreateBy());
-    query.bindValue(":updateBy", project.getUpdateBy());
-
-    qDebug() << "Executing SQL query:" << query.lastQuery();
-    if (!query.exec()) {
-        qCritical() << "Failed to save HProject:" << query.lastError().text();
-        return false;
-    }
-
-    return true;
-}
-
-bool HProjectDao::updateHProject(const HProject &project) {
-    QSqlQuery query;
-    query.prepare(
-        "UPDATE h_project SET "
-        "uuid = :uuid, "
-        "name = :name, "
-        "company_code = :companyCode, "
-        "htid = :htid, "
-        "xmbh = :xmbh, "
-        "operator_name = :operatorName, "
-        "operator_identity = :operatorIdentity, "
-        "blaster_name = :blasterName, "
-        "blaster_identity = :blasterIdentity, "
-        "address_uuid = :addressUuid, "
-        "pc_sn = :pcSn, "
-        "det_sum = :detSum, "
-        "file_name = :fileName, "
-        "file_url = :fileUrl, "
-        "blast_status = :blastStatus, "
-        "created_at = :createdAt, "
-        "updated_at = :updatedAt, "
-        "deleted_at = :deletedAt, "
-        "create_by = :createBy, "
-        "update_by = :updateBy "
-        "WHERE id = :id");
-
-    query.bindValue(":id", project.getId());
-    query.bindValue(":uuid", project.getUuid());
-    query.bindValue(":name", project.getName());
-    query.bindValue(":companyCode", project.getCompanyCode());
-    query.bindValue(":htid", project.getHtid());
-    query.bindValue(":xmbh", project.getXmbh());
-    query.bindValue(":operatorName", project.getOperatorName());
-    query.bindValue(":operatorIdentity", project.getOperatorIdentity());
-    query.bindValue(":blasterName", project.getBlasterName());
-    query.bindValue(":blasterIdentity", project.getBlasterIdentity());
-    query.bindValue(":addressUuid", project.getAddressUuid());
-    query.bindValue(":detSum", project.getDetSum());
-    query.bindValue(":fileName", project.getFileName());
-    query.bindValue(":fileUrl", project.getFileUrl());
-    query.bindValue(":blastStatus", project.getBlastStatus());
-    query.bindValue(":createdAt", project.getCreatedAt().toString(Qt::ISODateWithMs));
-    query.bindValue(":updatedAt", project.getUpdatedAt().toString(Qt::ISODateWithMs));
-    query.bindValue(":deletedAt", project.getDeletedAt().toString(Qt::ISODateWithMs));
-    query.bindValue(":createBy", project.getCreateBy());
-    query.bindValue(":updateBy", project.getUpdateBy());
-
-    qDebug() << "Executing UpdateSQL query:" << query.lastQuery();
-    if (!query.exec()) {
-        qCritical() << "Failed to save HProject:" << query.lastError().text();
-        return false;
-    }
-
-    return true;
-}
-
-bool HProjectDao::deleteHProject(const HProject &project) {
-    QSqlQuery query;
-    qDebug() << "Id" << project.getId();
-    query.prepare("DELETE FROM h_project WHERE id = :id");
-    query.bindValue(":id", project.getId());
-    if (!query.exec()) {
-        qCritical() << "Failed to delete h_project:" << query.lastError().text();
-        return false;
-    }
-    return true;
-}
-
-// HProject HProjectDao::getHProjectById(qint64 id)
-// {
-//     QSqlQuery query;
-//     // query.prepare("SELECT * FROM hproject WHERE id = :id");
-//     // query.bindValue(":id", id);
-//     // if (query.exec() && query.next()) {
-//     //     return recordToProject(query.record());
-//     // }
-//     return HProject();
-// }
-
-PaginatedHProjectResult HProjectDao::getAllHProjects(int page, int pageSize) {
-    QList<QSharedPointer<HProject>> projects;
-    QSqlQuery query(database);
-    int offset = (page - 1) * pageSize;
-    query.prepare("SELECT * FROM h_project ORDER BY created_at desc LIMIT :pageSize OFFSET :offset");
-    query.bindValue(":pageSize", pageSize);
-    query.bindValue(":offset", offset);
-    // while (query.next()) {
-    //     projects.append(recordToProject(query.record()));
-    // }
-
-    // 执行查询并打印SQL
-    if (query.exec()) {
-        qDebug() << "Executed SQL: " << query.executedQuery();
-        while (query.next()) {
-            projects.append(recordToProject(query.record()));
-        }
-    } else {
-        qWarning() << "Query execution failed: " << query.lastError().text();
-    }
-
-    query.prepare("SELECT COUNT(*) FROM h_project");
-    int totalCount = 0;
-    if (query.exec() && query.next()) {
-        totalCount = query.value(0).toInt();
-    }
-    return {projects, totalCount};
-}
-
-QSharedPointer<HProject> HProjectDao::recordToProject(const QSqlRecord &record) {
-    QSharedPointer<HProject> project = QSharedPointer<HProject>::create();
-    project->setId(record.value("id").toInt());
-    project->setUuid(record.value("uuid").toString());
-    project->setName(record.value("name").toString());
-    project->setCompanyCode(record.value("company_code").toString());
-    project->setHtid(record.value("htid").toString());
-    project->setXmbh(record.value("xmbh").toString());
-    project->setOperatorName(record.value("operator_name").toString());
-    project->setOperatorIdentity(record.value("operator_identity").toString());
-    project->setBlasterName(record.value("blaster_name").toString());
-    project->setBlasterIdentity(record.value("blaster_identity").toString());
-    project->setAddressUuid(record.value("address_uuid").toString());
-    project->setDetSum(record.value("det_sum").toString());
-    project->setFileName(record.value("file_name").toString());
-    project->setFileUrl(record.value("file_url").toString());
-    project->setBlastStatus(record.value("blast_status").toString());
-    project->setCreatedAt(QDateTime::fromString(record.value("created_at").toString(), Qt::ISODateWithMs));
-    project->setUpdatedAt(QDateTime::fromString(record.value("updated_at").toString(), Qt::ISODateWithMs));
-    project->setDeletedAt(QDateTime::fromString(record.value("deleted_at").toString(), Qt::ISODateWithMs));
-    project->setCreateBy(record.value("create_by").toInt());
-    project->setUpdateBy(record.value("update_by").toInt());
-    return project;
-}

+ 0 - 47
hprojectdao.h

@@ -1,47 +0,0 @@
-#ifndef HPROJECTDAO_H
-#define HPROJECTDAO_H
-
-#include <QList>
-#include <QObject>
-#include <QRegularExpression>
-#include <QSqlDatabase>
-#include <QSqlError>
-#include <QSqlQuery>
-#include <QSqlRecord>
-
-#include "HProject.h"
-
-struct PaginatedHProjectResult {
-    QList<QSharedPointer<HProject>> projects;
-    int totalCount;
-};
-
-class HProjectDao {
-   public:
-    HProjectDao(QSqlDatabase db);
-
-    // 添加一个新的HProject记录
-    bool addHProject(const HProject &project);
-
-    // 更新现有的HProject记录
-    bool updateHProject(const HProject &project);
-
-    // 删除一个HProject记录
-    bool deleteHProject(const HProject &project);
-
-    // 根据ID获取HProject记录
-    HProject getHProjectById(qint64 id);
-
-    bool updateBlastStatusByUuid(const QString &uuid, const QString &blastStatus);
-
-    PaginatedHProjectResult getAllHProjects(int page, int pageSize);
-
-    PaginatedHProjectResult getAllHProjectsByOpera(int page, int pageSize);
-
-   private:
-    QSqlDatabase database;
-    // 将QSqlRecord转换为HProject对象
-    QSharedPointer<HProject> recordToProject(const QSqlRecord &record);
-};
-
-#endif  // HPROJECTDAO_H

+ 2 - 1
login/loginwindow.cpp

@@ -1,6 +1,7 @@
 #include "loginwindow.h"
 
-#include "../backendapimanager.h"
+#include "../mainwindow/mainwindow.h"
+#include "../utils/backendapimanager.h"
 #include "ui_loginwindow.h"
 
 LoginWindow::LoginWindow(QWidget *parent)

+ 1 - 2
login/loginwindow.h

@@ -7,9 +7,8 @@
 #include <QTimer>
 #include <QWidget>
 
-#include "../global.h"
-#include "../mainwindow.h"
 #include "../registryManager/registrymanager.h"
+#include "../utils/global.h"
 
 namespace Ui {
 class LoginWindow;

+ 0 - 110
loginwindow.cpp

@@ -1,110 +0,0 @@
-#include "loginwindow.h"
-
-#include "global.h"
-#include "ui_loginwindow.h"
-
-LoginWindow::LoginWindow(QWidget *parent)
-    : QWidget(parent), ui(new Ui::LoginWindow), manager(new QNetworkAccessManager(this)) {
-    ui->setupUi(this);
-    ui->username->lineEdit()->setPlaceholderText("请输入用户名");
-    // 设置窗口为无边框样式
-    setWindowFlags(Qt::FramelessWindowHint);
-}
-
-LoginWindow::~LoginWindow() { delete ui; }
-
-void LoginWindow::on_btnLogin_clicked() {
-    QString username = ui->username->currentText();
-    QString password = ui->password->text();
-    if (username.isEmpty() || password.isEmpty()) {
-        qDebug() << "Error: Username or password cannot be empty.";
-        QMessageBox::critical(nullptr, "输入错误", "用户名或密码不能为空,请重新输入。");
-        return;
-    }
-
-    try {
-        // 构造请求数据
-        QJsonObject jsonData;
-        jsonData["username"] = username;
-        jsonData["password"] = password;
-        QJsonDocument doc(jsonData);
-        QByteArray data = doc.toJson();
-
-        QUrl localUrl("login/pc");
-
-        QUrl fullUrl = apiBackendUrl.resolved(localUrl);
-
-        qDebug() << "fullUrl" << fullUrl;
-        // 构造请求
-        // QNetworkRequest request(QUrl("http://localhost:8000/api/v1/login/pc")); //
-        // 替换为实际的服务器接口地址
-        QNetworkRequest request(QUrl("http://localhost:8000/api/v1/login/pc"));  // 替换为实际的服务器接口地址
-        request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
-
-        // 发送 POST 请求
-        QNetworkReply *reply = manager->post(request, data);
-
-        // 处理响应
-        QObject::connect(reply, &QNetworkReply::finished, [reply, this]() {
-            try {
-                if (reply->error() == QNetworkReply::NoError) {
-                    QByteArray responseData = reply->readAll();
-                    qDebug() << "Response:" << QString::fromUtf8(responseData);
-                    // 解析 JSON 响应
-                    QJsonDocument responseDoc = QJsonDocument::fromJson(responseData);
-                    if (!responseDoc.isNull() && responseDoc.isObject()) {
-                        QJsonObject responseObj = responseDoc.object();
-                        if (responseObj.contains("code") && responseObj["code"].isDouble()) {
-                            int code = responseObj["code"].toInt();
-                            // QString Message = responseObj["msg"].toString();
-                            if (code == 500) {
-                                // 使用指针动态分配内存
-                                QMessageBox *msgBox = new QMessageBox;
-                                msgBox->setAttribute(Qt::WA_TranslucentBackground, true);
-                                msgBox->setWindowTitle("");  // 清空窗口标题
-                                msgBox->setText("用户名或密码错误,请重试。");
-                                msgBox->setWindowFlags(msgBox->windowFlags() | Qt::FramelessWindowHint);
-                                msgBox->setStandardButtons(QMessageBox::NoButton);  // 不设置标准按钮
-
-                                // 设置样式表
-                                msgBox->setStyleSheet(
-                                    "QMessageBox {"
-                                    "    border: none; /* 去除边框 */"
-                                    "}"
-                                    "QLabel {"
-                                    "    color: #a94442; /* 标签文字颜色 */"
-                                    "    background-color: transparent; /* 标签背景透明 */"
-                                    "    font-size: 20px; /* 设置字体大小,可根据需要调整 */"
-                                    "}"
-                                    "QPushButton {"
-                                    "    visibility: hidden; /* 隐藏按钮 */"
-                                    "}");
-
-                                // 使用 QTimer 在 3 秒后自动关闭消息框
-                                QTimer::singleShot(1200, msgBox, [msgBox]() {
-                                    msgBox->close();
-                                    delete msgBox;  // 释放内存
-                                });
-                                msgBox->show();
-                            } else if (code == 200) {
-                                // 如果登录成功 存储用户信息 关闭登录接口 打开主界面
-                                this->close();
-                                MainWindow *mainWindow = new MainWindow();
-
-                                mainWindow->show();
-                            }
-                        }
-                    }
-                } else {
-                    qDebug() << "Error:" << reply->errorString();
-                }
-            } catch (const std::exception &e) {
-                qDebug() << "Exception in response handling: " << e.what();
-            }
-            reply->deleteLater();
-        });
-
-    } catch (const std::exception &e) {
-        qDebug() << "Exception in request sending: " << e.what();
-    }
-}

+ 0 - 30
loginwindow.h

@@ -1,30 +0,0 @@
-#ifndef LOGINWINDOW_H
-#define LOGINWINDOW_H
-
-#include <QMessageBox>
-#include <QNetworkAccessManager>
-#include <QTimer>
-#include <QWidget>
-
-#include "mainwindow.h"
-
-namespace Ui {
-class LoginWindow;
-}
-
-class LoginWindow : public QWidget {
-    Q_OBJECT
-
-   public:
-    explicit LoginWindow(QWidget *parent = nullptr);
-    ~LoginWindow();
-
-   private slots:
-    void on_btnLogin_clicked();
-
-   private:
-    Ui::LoginWindow *ui;
-    QNetworkAccessManager *manager;
-};
-
-#endif  // LOGINWINDOW_H

+ 5 - 7
main.cpp

@@ -3,13 +3,11 @@
 #include <QQuickWindow>  // 关键头文件
 #include <QTextStream>
 
-#include "backendapimanager.h"
-#include "fireWidget/firingwidget.h"
-#include "global.h"
-#include "logger.h"
-#include "loginwindow.h"
-#include "mainwindow.h"
-#include "mqtt/mqttclient.h"
+#include "login/loginwindow.h"
+#include "mainwindow/mainwindow.h"
+#include "utils/backendapimanager.h"
+#include "utils/global.h"
+#include "utils/logger.h"
 
 int main(int argc, char* argv[]) {
     QApplication app(argc, argv);

+ 8 - 7
mainwindow.cpp → mainwindow/mainwindow.cpp

@@ -7,13 +7,14 @@
 #include <QPushButton>
 #include <QWidget>
 
-#include "backendapimanager.h"
-#include "global.h"
-#include "jobs.h"
-#include "loadingWidget.h"
-#include "logger.h"
-#include "mqtt/mqttclient.h"
-#include "ui_mainwindow.h"
+#include "../components/loadingWidget.h"
+#include "../mqtt/mqttclient.h"
+#include "../serial/serialgpsthread.h"
+#include "../ui_mainwindow.h"
+#include "../utils/backendapimanager.h"
+#include "../utils/global.h"
+#include "../utils/jobs.h"
+#include "../utils/logger.h"
 
 // 定义 ANzI 转义序列来设置颜色
 #define ANSI_COLOR_GREEN "\x1B[32m"

+ 12 - 12
mainwindow.h → mainwindow/mainwindow.h

@@ -8,18 +8,18 @@
 #include <QPushButton>
 #include <QWidget>
 
-#include "addressfactory.h"
-#include "blastProject/blastprojectfactory.h"
-#include "blastRecord/blastrecordfactory.h"
-#include "blastoperationfactory.h"
-#include "detInfo/detinfofactory.h"
-#include "equipmentfactory.h"
-#include "global.h"
-#include "mqtt/mqttclient.h"
-#include "serial/serialtool.h"
-#include "serialGpsthread.h"
-#include "worker/timeupdatethread.h"
-#include "homepagefactory.h"
+#include "../address/addressfactory.h"
+#include "../blastJob/blastoperationfactory.h"
+#include "../blastProject/blastprojectfactory.h"
+#include "../blastRecord/blastrecordfactory.h"
+#include "../detInfo/detinfofactory.h"
+#include "../equipment/equipmentfactory.h"
+#include "../homepage/homepagefactory.h"
+#include "../mqtt/mqttclient.h"
+#include "../serial/serialgpsthread.h"
+#include "../serial/serialtool.h"
+#include "../utils/global.h"
+#include "../worker/timeupdatethread.h"
 
 QT_BEGIN_NAMESPACE
 namespace Ui {

+ 0 - 0
mainwindow.ui → mainwindow/mainwindow.ui


+ 2 - 2
mqtt/mqttclient.cpp

@@ -5,8 +5,8 @@
 #include <QMessageBox>
 #include <QPushButton>
 
-#include "../global.h"
-#include "../logger.h"
+#include "../utils/global.h"
+#include "../utils/logger.h"
 
 MqttClient::MqttClient(QObject *parent) : QObject(parent), _mqClient(new QMqttClient(this)) {
     // 连接信号和槽

+ 0 - 3
mqttclient.cpp

@@ -1,3 +0,0 @@
-#include "mqttclient.h"
-
-MqttClient::MqttClient() {}

+ 0 - 9
regex.h

@@ -1,9 +0,0 @@
-#ifndef REGEX_H
-#define REGEX_H
-#include <QMessageBox>
-// 定义正则表达式宏
-#define EMAIL_REGEX R"(\S+@\S+\.\S+)"
-#define PHONE_REGEX R"(\d{10})"
-#define DIGITS_ONLY_REGEX R"(\d+)"  // 只允许输入数字
-
-#endif  // REGEX_H

+ 0 - 3
registrymanager.cpp

@@ -1,3 +0,0 @@
-#include "registrymanager.h"
-
-RegistryManager::RegistryManager() {}

+ 0 - 0
paregnrmc.cpp → serial/paregnrmc.cpp


+ 0 - 0
paregnrmc.h → serial/paregnrmc.h


+ 2 - 1
serial/serialgps.cpp

@@ -1,6 +1,7 @@
 #include "serialgps.h"
 
-#include "../global.h"
+#include "../utils/global.h"
+#include "paregnrmc.h"
 
 SerialGPS::SerialGPS(QObject *parent) : QObject(parent) { setupSerialPort(); }
 

+ 1 - 1
serial/serialgps.h

@@ -7,7 +7,7 @@
 #include <QSerialPort>
 #include <QTextEdit>
 
-#include "../paregnrmc.h"
+#include "paregnrmc.h"
 
 class SerialGPS : public QObject {
     Q_OBJECT

+ 0 - 0
serialgpsthread.cpp → serial/serialgpsthread.cpp


+ 1 - 1
serialgpsthread.h → serial/serialgpsthread.h

@@ -3,7 +3,7 @@
 #include <QByteArray>
 #include <QThread>
 
-#include "serial/serialgps.h"
+#include "./serialgps.h"
 class SerialGPSThread : public QThread {
     Q_OBJECT
    public:

+ 2 - 2
serial/serialtool.cpp

@@ -2,8 +2,8 @@
 
 #include <QDebug>
 
-#include "../global.h"
-#include "../logger.h"
+#include "../utils/global.h"
+#include "../utils/logger.h"
 
 // 定义静态成员变量并初始化为 nullptr
 SerialTool *SerialTool::instance = nullptr;

+ 0 - 48
serialgps.cpp

@@ -1,48 +0,0 @@
-#include "serialgps.h"
-
-SerialGPS::SerialGPS() {}
-// 打开串口的函数
-void SerialGPS::openSerialPort() {
-    const QString portName = "COM9";
-    const qint32 baudRate = 9600;
-
-    if (!serialPort.isOpen()) {
-        serialPort.setPortName(portName);
-        serialPort.setBaudRate(baudRate);
-        if (serialPort.open(QIODevice::ReadWrite)) {
-            // 提示打开串口
-        } else {
-            emit openError();
-        }
-    }
-}
-// 关闭串口的函数
-void SerialGPS::closeSerialPort() {
-    if (serialPort.isOpen()) {
-        serialPort.close();
-    }
-}
-
-void SerialGPS::sendData() {
-    if (serialPort.isOpen()) {
-        // serialPort.write(data.toUtf8());
-    }
-}
-
-void SerialGPS::readData() {
-    QByteArray data = serialPort.readAll();
-    emit dataReceived(data);
-    PareGNRMC parser;
-    RMCData m_data = parser.parseRMC(data);
-    storedGNRMCData = m_data;
-    emit gnrmcDataReceived(storedGNRMCData);
-    emit storedGNRMCDataUpdated(storedGNRMCData);  // 发出信号
-    // qDebug() << "storedGNRMCData:" << parser.rmcDataToString(storedGNRMCData);
-}
-
-RMCData SerialGPS::getStoredGNRMCData() const { return storedGNRMCData; }
-
-void SerialGPS::setupSerialPort() {
-    openSerialPort();
-    connect(&serialPort, &QSerialPort::readyRead, this, &SerialTool::readData);
-}

+ 0 - 38
serialgps.h

@@ -1,38 +0,0 @@
-#ifndef SERIALGPS_H
-#define SERIALGPS_H
-#include <QByteArray>
-#include <QLineEdit>
-#include <QObject>
-#include <QPushButton>
-#include <QSerialPort>
-#include <QTextEdit>
-
-#include "paregnrmc.h"
-
-class SerialGPS : public QObject {
-    Q_OBJECT
-   public:
-    SerialGPS(QObject* parent = nullptr);
-    RMCData getStoredGNRMCData() const;
-    void openSerialPort();
-    void closeSerialPort();
-
-   signals:
-    void openCloseButtonTextChanged(const QString& text);
-    void openError();
-    void dataReceived(const QByteArray& data);
-    void gnrmcDataReceived(const RMCData storedGNRMCData);
-    void storedGNRMCDataUpdated(const RMCData& data);  // 新增信号
-
-   private slots:
-    void sendData();
-    void readData();
-
-   private:
-    void setupSerialPort();
-
-    QSerialPort serialPort;
-    RMCData storedGNRMCData;
-};
-
-#endif  // SERIALGPS_H

+ 0 - 97
serialtool.cpp

@@ -1,97 +0,0 @@
-#include "SerialTool.h"
-
-#include <QDebug>
-
-// 定义静态成员变量并初始化为 nullptr
-SerialTool* SerialTool::instance = nullptr;
-SerialTool::SerialTool(QObject* parent) : QObject(parent) {}
-SerialTool::~SerialTool() {
-    if (serialPort.isOpen()) {
-        serialPort.close();
-    }
-}
-
-SerialTool* SerialTool::getInstance(QObject* parent) {
-    if (instance == nullptr) {
-        instance = new SerialTool(parent);
-    }
-    return instance;
-}
-// 打开串口的函数
-void SerialTool::openSerialPort() {
-    const QString portName = "COM8";
-    const qint32 baudRate = 9600;
-
-    if (!serialPort.isOpen()) {
-        serialPort.setPortName(portName);
-        serialPort.setBaudRate(baudRate);
-
-        // 设置数据位,通常为 8 位
-        serialPort.setDataBits(QSerialPort::Data8);
-
-        // 设置停止位,这里设置为 1 位停止位
-        serialPort.setStopBits(QSerialPort::OneStop);
-
-        // 设置校验位,这里设置为无校验
-        serialPort.setParity(QSerialPort::NoParity);
-
-        if (serialPort.open(QIODevice::ReadWrite)) {
-            qDebug() << "serialPortOpened";
-
-            emit serialPortOpened();  // 发射新信号
-        } else {
-            qDebug() << "Failed to open serial port:" << serialPort.errorString();
-            emit openError();
-        }
-    }
-}
-
-// 关闭串口的函数
-void SerialTool::closeSerialPort() {
-    if (serialPort.isOpen()) {
-        serialPort.close();
-        emit openCloseButtonTextChanged("打开串口");
-    }
-}
-
-bool SerialTool::sendData(const QByteArray& data) {
-    if (serialPort.isOpen()) {
-        qint64 bytesWritten = serialPort.write(data);
-        return bytesWritten == data.size();
-    }
-    return false;
-}
-
-void SerialTool::handleSendDataReques(const QByteArray& data) { sendData(data); }
-
-void SerialTool::readData() {
-    QByteArray newData = serialPort.readAll();
-    buffer.append(newData);
-
-    // 查找完整的命令
-    int startIndex = buffer.indexOf("\\r\\n");
-    while (startIndex != -1) {
-        int endIndex = buffer.indexOf("\\r\\n", startIndex + 4);
-        if (endIndex != -1) {
-            // 提取完整的命令
-            QByteArray command = buffer.mid(startIndex + 4, endIndex - startIndex - 4);
-            emit dataReceived(newData);
-            qDebug() << "Complete command:" << command;
-
-            // 移除已处理的部分
-            buffer = buffer.mid(endIndex + 4);
-        } else {
-            break;
-        }
-        startIndex = buffer.indexOf("\\r\\n");
-    }
-
-    qDebug() << "Received data:" << newData;
-}
-
-void SerialTool::setupSerialPort() {
-    openSerialPort();
-    // openCloseSerialPort();
-    qDebug() << "Received data:";
-    connect(&serialPort, &QSerialPort::readyRead, this, &SerialTool::readData);
-}

+ 0 - 37
serialtool.h

@@ -1,37 +0,0 @@
-#ifndef SERIALTOOL_H
-#define SERIALTOOL_H
-
-#include <QByteArray>
-#include <QLineEdit>
-#include <QObject>
-#include <QPushButton>
-#include <QSerialPort>
-#include <QTextEdit>
-class SerialTool : public QObject {
-    Q_OBJECT
-   public:
-    static SerialTool* getInstance(QObject* parent = nullptr);
-    SerialTool(QObject* parent = nullptr);
-    ~SerialTool();
-    static SerialTool* instance;
-    void openSerialPort();
-    void closeSerialPort();
-    void readData();
-
-    bool sendData(const QByteArray& data);
-   signals:
-    void openCloseButtonTextChanged(const QString& text);
-    void openError();
-    void dataReceived(const QByteArray& data);
-    void serialPortOpened();  // 新增信号
-
-   public slots:
-    void handleSendDataReques(const QByteArray& data);
-
-   private:
-    void setupSerialPort();
-    QByteArray buffer;  // 确保这里声明了 buffer 变量
-    QSerialPort serialPort;
-};
-
-#endif  // SERIALTOOL_H

+ 2 - 2
test_database.cpp → tests/test_database.cpp

@@ -5,8 +5,8 @@
 #include <QSqlError>
 #include <QSqlQuery>
 
-#include "databasemanager.h"
-#include "logger.h"
+#include "../utils/databasemanager.h"
+#include "../utils/logger.h"
 
 int main(int argc, char* argv[]) {
     QCoreApplication app(argc, argv);

+ 0 - 0
backendapimanager.cpp → utils/backendapimanager.cpp


+ 0 - 0
backendapimanager.h → utils/backendapimanager.h


+ 1 - 1
databasemanager.cpp → utils/databasemanager.cpp

@@ -7,8 +7,8 @@
 #include <QSqlQuery>
 #include <QStandardPaths>
 
+#include "../utils/logger.h"
 #include "global.h"
-#include "logger.h"
 
 DatabaseManager& DatabaseManager::getInstance() {
     static DatabaseManager instance;

+ 0 - 0
databasemanager.h → utils/databasemanager.h


+ 2 - 2
global.cpp → utils/global.cpp

@@ -26,7 +26,7 @@ void loadConfig() {
     QSettings settings("config.ini", QSettings::IniFormat);
 
     // Remove local variable declarations and assign directly to global variables
-    apiBackendUrl = QUrl(settings.value("api_backend_url", "http://192.168.0.241:8000/api/v1/").toString());
+    apiBackendUrl = QUrl(settings.value("api_backend_url", "http://114.55.233.194:8088/api/v1/").toString());
     firewidgetPort = settings.value("Ports/firewidget_port", "COM1").toString();
     gpsPort = settings.value("Ports/gps_port", "COM3").toString();
     databaseHost = settings.value("Database/host", "127.0.0.1").toString();
@@ -48,4 +48,4 @@ void loadConfig() {
 }
 
 QMutex globalMutex;                    // 全局操作锁
-MqttClient* mainMqttClient = nullptr;  // 定义全局 MQTT 客户端
+MqttClient* mainMqttClient = nullptr;  // 定义全局 MQTT 客户端

+ 2 - 2
global.h → utils/global.h

@@ -5,8 +5,8 @@
 #include <QUrl>
 #include <QUrlQuery>
 
-#include "logger.h"
-#include "mqtt/mqttclient.h"
+#include "../mqtt/mqttclient.h"
+#include "../utils/logger.h"
 
 extern MqttClient* mainMqttClient;
 

+ 0 - 0
HttpClient.h → utils/httpClient.h


+ 1 - 1
httpclient.cpp → utils/httpclient.cpp

@@ -1,4 +1,4 @@
-#include "HttpClient.h"
+#include "httpClient.h"
 
 #include <QDebug>
 #include <QJsonArray>

+ 0 - 0
jobs.cpp → utils/jobs.cpp


+ 0 - 0
jobs.h → utils/jobs.h


+ 0 - 0
logger.cpp → utils/logger.cpp


+ 0 - 0
logger.h → utils/logger.h


+ 0 - 0
timeupdatethread.cpp → utils/timeupdatethread.cpp


+ 0 - 0
timeupdatethread.h → utils/timeupdatethread.h