瀏覽代碼

V1.1.1
1、添加了导入模板时的筛选功能,正常日和特殊日分开
2、修复了所有的计划都清空后,写入数据库失败的问题

Apple 1 月之前
父節點
當前提交
1785cd7b6d

+ 9 - 8
SwitchOnOff.sql

@@ -26,6 +26,7 @@ DROP TABLE IF EXISTS "EQM_CESHI"."tExecPlanTemplate";
 CREATE TABLE IF NOT EXISTS "EQM_CESHI"."tExecPlanTemplate"
 (
     "TemplateName" VARCHAR(255),
+    "TemplateType" INT,
     "ExecDate" VARCHAR(255),
     "ExecTime" VARCHAR(255),
     "DeviceName" VARCHAR(255),
@@ -38,10 +39,10 @@ CREATE TABLE IF NOT EXISTS "EQM_CESHI"."tExecPlanTemplate"
 SELECT *
 FROM tExecPlanTemplate;
 
-#获取模板名称,去掉重复的
-SELECT "TemplateName"
-FROM tExecPlanTemplate
-GROUP BY "TemplateName";
+#获取模板名称和模版类型,去掉重复的
+SELECT EP."TemplateName", EP."TemplateType"
+FROM tExecPlanTemplate AS EP
+GROUP BY EP."TemplateName", EP."TemplateType";
 
 #通过模板名称获取模板数据
 SELECT *
@@ -53,11 +54,11 @@ FROM TMONITORPIN;
 
 
 #插入数据
-INSERT INTO tExecPlanTemplate (TemplateName, ExecDate, ExecTime, DeviceName, ActionName, ActionID)
-VALUES ('模版1', '2025-02-09', '09:00:00', '发射机1', '开机', 1);
+INSERT INTO tExecPlanTemplate (TemplateName, TemplateType, ExecDate, ExecTime, DeviceName, ActionName, ActionID)
+VALUES ('模版1', '0', '2025-02-09', '09:00:00', '发射机1', '开机', 1);
 #插入数据,使用参数
-INSERT INTO tExecPlanTemplate ("TemplateName", "ExecDate", "ExecTime", "DeviceName", "ActionName", "ActionID")
-VALUES (:templateName, :execDate, :execTime, :deviceName, :actionName, :actionID);
+INSERT INTO tExecPlanTemplate ("TemplateName", "TemplateType", "ExecDate", "ExecTime", "DeviceName", "ActionName", "ActionID")
+VALUES (:templateName, :templateType, :execDate, :execTime, :deviceName, :actionName, :actionID);
 
 
 #删除模版

+ 1 - 1
TransmitterSwitch/CMakeLists.txt

@@ -85,7 +85,7 @@ target_include_directories(${lib_name} PRIVATE
 target_link_libraries(${lib_name} PRIVATE
     Qt5::Widgets
     Qt5::Core
-    # Qt5::Network
+    Qt5::Network
 )
 
 #链接外部库

+ 16 - 4
TransmitterSwitch/Template/importtemplate.cpp

@@ -14,7 +14,7 @@
 #include "OneShadowEffect.h"
 #include "TransmitterSwitchInfo.h"
 
-ImportTemplate::ImportTemplate(QStringList& tabList,QWidget *parent) :
+ImportTemplate::ImportTemplate(QMap<QString, int> tabList, int type, QWidget *parent) :
     QDialog(parent),
     ui(new Ui::ImportTemplate)
 {
@@ -83,11 +83,23 @@ ImportTemplate::ImportTemplate(QStringList& tabList,QWidget *parent) :
     connect(ui->tableWidget,SIGNAL(cellClicked(int,int)),this,SLOT(do_seletctRow(int,int)));
 
 
+    m_type = type;
+    /* 取出当前可用的模版,主要是区分正常日和特殊日 */
+    QStringList list;
+    for(auto begin = tabList.begin(); begin != tabList.end(); begin++)
+    {
+        LH_WRITE_LOG_DEBUG(QString("模版名称:%1, 类型:%2").arg(begin.key()).arg(begin.value()));
+        if(begin.value() != m_type)
+        {
+            continue;
+        }
+        list.append(begin.key());
+    }
     /* 先设置表格的行数 */
-    ui->tableWidget->setRowCount(tabList.count());
-    for(int i = 0;i < tabList.count();i++)
+    ui->tableWidget->setRowCount(list.count());
+    for(int i = 0;i < list.count();i++)
     {
-        createRow(i, i + 1, tabList.at(i));
+        createRow(i, i + 1, list.at(i));
     }
 
     /* 注册事件过滤器 */

+ 2 - 1
TransmitterSwitch/Template/importtemplate.h

@@ -15,7 +15,7 @@ class ImportTemplate : public QDialog
     Q_OBJECT
 
 public:
-    explicit ImportTemplate(QStringList& tabList,QWidget *parent = nullptr);
+    explicit ImportTemplate(QMap<QString, int> tabList, int type, QWidget *parent = nullptr);
     ~ImportTemplate();
 
     void createRow(int row,int num,const QString& text);                    /* 创建一行数据 */
@@ -56,6 +56,7 @@ private:
 
     bool m_isOk = false;                                                    /* 是否点下了OK */
     QString m_templateName;                                                 /* 模版名称 */
+    int m_type = -1;                                                        /* 模版类型 */
     // OneShadow* m_shadow = nullptr;                                          /* 阴影 */
 
     QPoint m_lastPos;                       /* 鼠标点击的位置 */

+ 1 - 1
TransmitterSwitch/Template/savetotemplate.cpp

@@ -71,7 +71,7 @@ void SaveToTemplate::setItemEmpty(bool flag)
 
 
 /* 传入所有的模板名称 */
-void SaveToTemplate::setTemplateName(const QStringList &list)
+void SaveToTemplate::setTemplateName(const QMap<QString, int> list)
 {
     m_templateNameList = list;
 }

+ 3 - 2
TransmitterSwitch/Template/savetotemplate.h

@@ -3,6 +3,7 @@
 
 #include <QDialog>
 #include <qchar.h>
+#include <QMap>
 
 class OneShadow;
 
@@ -25,7 +26,7 @@ public:
     /* 传入计划项是否为空 */
     void setItemEmpty(bool flag);
     /* 传入所有的模板名称 */
-    void setTemplateName(const QStringList &list);
+    void setTemplateName(const QMap<QString, int> list);
 
     /* 获取是否点击了确定 */
     bool isOk() { return m_isOk; }
@@ -61,7 +62,7 @@ private:
 
     bool m_itemEmpty;                       /* 计划项是否为空 */
     int m_weekDay;                          /* 周几 */
-    QStringList m_templateNameList;         /* 所有的模板名称 */
+    QMap<QString, int> m_templateNameList;         /* 所有的模板名称 */
 
     bool m_isOk = false;                    /* 是否点击了确定 */
     QString m_templateName;                 /* 模板名称 */

+ 6 - 7
TransmitterSwitch/WebAPI/FromWebAPI.cpp

@@ -39,7 +39,7 @@ bool FromWebAPI::initWebApi(const QString& url, const QString& serverID, const Q
     #endif
 #elif defined(Q_OS_LINUX)
     #ifdef QT_DEBUG
-    QString libFile = QString("%1/libLHSqlWebInterfaced.so").arg(QApplication::applicationDirPath());
+    QString libFile = QString("%1/libLHSqlWebInterface.so").arg(QApplication::applicationDirPath());
     #else
     QString libFile = QString("%1/libLHSqlWebInterface.so").arg(QApplication::applicationDirPath());
     #endif
@@ -477,7 +477,7 @@ bool FromWebAPI::deleteAllTransmitterPlan()
 
 
 /* 保存到模板 */
-bool FromWebAPI::saveTemplate(const QString& templateName, QList<ExecPlanItemInfo>& list)
+bool FromWebAPI::saveTemplate(const QString& templateName, const int type, QList<ExecPlanItemInfo>& list)
 {
     if(m_httpApi == nullptr)
     {
@@ -494,6 +494,7 @@ bool FromWebAPI::saveTemplate(const QString& templateName, QList<ExecPlanItemInf
         nJson json2;
 
         json2["templateName"] = templateName.toStdString();
+        json2["type"] = type;
         json2["execDate"] = it.date.toString("yyyy-MM-dd").toStdString();
         json2["execTime"] = it.execTime.toString("hh:mm:ss").toStdString();
         json2["deviceName"] = it.devName.toStdString();
@@ -600,7 +601,7 @@ bool FromWebAPI::getTemplate(QString templateName, QList<ExecPlanItemInfo>& list
 }
 
 /* 获取模板列表 */
-bool FromWebAPI::getTemplateList(QStringList& list)
+bool FromWebAPI::getTemplateList(QMap<QString, int>& list)
 {
     if(m_httpApi == nullptr)
     {
@@ -638,11 +639,12 @@ bool FromWebAPI::getTemplateList(QStringList& list)
                 continue;
             }
             auto name = QString::fromStdString(it["templateName"].get<std::string>());
+            int type = it["templateType"].is_null() ? -1 : it["templateType"].get<int>();
             if(list.contains(name))
             {
                 continue;
             }
-            list.append(name);
+            list.insert(name, type);
         }
 
     } catch (const nJson::parse_error& e) {
@@ -660,9 +662,6 @@ bool FromWebAPI::getTemplateList(QStringList& list)
         return false;
     }
 
-    /* 对模版按照名称排序 */
-    list.sort();
-
     return true;
 }
 

+ 2 - 2
TransmitterSwitch/WebAPI/FromWebAPI.h

@@ -31,11 +31,11 @@ public:
     bool deleteAllTransmitterPlan();
 
     /* 保存到模板 */
-    bool saveTemplate(const QString& templateName, QList<ExecPlanItemInfo>& list);
+    bool saveTemplate(const QString& templateName, const int type, QList<ExecPlanItemInfo>& list);
     /* 获取模板内容 */
     bool getTemplate(QString templateName, QList<ExecPlanItemInfo>& list);
     /* 获取模板列表 */
-    bool getTemplateList(QStringList& list);
+    bool getTemplateList(QMap<QString, int>& list);
     /* 删除一个模板 */
     bool deleteTemplate(const QString& name);
 

+ 1 - 1
TransmitterSwitch/common/LHHTTPAPI/src/lhhttpapi.h

@@ -106,7 +106,7 @@ public:
 
     int DBGetServerList(char *pszList, int nSize,bool bismulti = false, void* phttpip=nullptr);
     int DBGetChannelList(const char* pSerid,char *pszList, int nSize,bool bismulti = false, void* phttpip=nullptr);
-    int DBDoInterface(int nOperatorType, const QString &strParamXml, QString &strRetXml, bool wait = false,bool bismulti = false, void* phttpip=nullptr);
+    int DBDoInterface(int nOperatorType, const QString &strParamXml, QString &strRetXml, bool wait = true, bool bismulti = true, void* phttpip=nullptr);
     void* DBInit (const char *lpUrl,bool bismulti = false);
     int DoGetLastError(char *pError, int nLen, int *nErrorCode);
 

+ 0 - 1
TransmitterSwitch/common/spdlog/linux/gcc8.3/libspdlog.so

@@ -1 +0,0 @@
-libspdlog.so.1.14

+ 1 - 0
TransmitterSwitch/common/spdlog/linux/gcc8.3/libspdlog.so

@@ -0,0 +1 @@
+libspdlog.so.1.14

+ 0 - 1
TransmitterSwitch/common/spdlog/linux/gcc8.3/libspdlog.so.1.14

@@ -1 +0,0 @@
-libspdlog.so.1.14.1

+ 1 - 0
TransmitterSwitch/common/spdlog/linux/gcc8.3/libspdlog.so.1.14

@@ -0,0 +1 @@
+libspdlog.so.1.14.1

+ 0 - 1
TransmitterSwitch/common/spdlog/linux/gcc8.3/libspdlogd.so

@@ -1 +0,0 @@
-libspdlogd.so.1.14

+ 1 - 0
TransmitterSwitch/common/spdlog/linux/gcc8.3/libspdlogd.so

@@ -0,0 +1 @@
+libspdlogd.so.1.14

+ 0 - 1
TransmitterSwitch/common/spdlog/linux/gcc8.3/libspdlogd.so.1.14

@@ -1 +0,0 @@
-libspdlogd.so.1.14.1

+ 1 - 0
TransmitterSwitch/common/spdlog/linux/gcc8.3/libspdlogd.so.1.14

@@ -0,0 +1 @@
+libspdlogd.so.1.14.1

+ 22 - 9
TransmitterSwitch/transmitterswitch.cpp

@@ -199,10 +199,10 @@ void TransmitterSwitch::saveExecPlanToEQM()
         }
     }
     /* 判断计划条数,如果为0就阻止 */
-    if(list.size() == 0)
-    {
-        return;
-    }
+    // if(list.size() == 0)
+    // {
+    //     return;
+    // }
     m_fromWebAPI->insertData(list);
 }
 
@@ -426,10 +426,17 @@ void TransmitterSwitch::do_importData()
     /* 获取当前周几 */
     int weekDay = ui->stackedWidget_items->currentIndex();
 
-    QStringList tabList;
-    // tabList << "模板1" << "模板2" << "模板3" << "模板4" << "模板5";
+    QMap<QString, int> tabList;
     m_fromWebAPI->getTemplateList(tabList);
-    std::shared_ptr<ImportTemplate> itf = std::make_shared<ImportTemplate>(tabList, this);
+    int type = 0;
+    if(weekDay >=0 && weekDay < 7)
+    {
+        type = 0;
+    }else if(weekDay == 7)
+    {
+        type = 1;
+    }
+    std::shared_ptr<ImportTemplate> itf = std::make_shared<ImportTemplate>(tabList, type, this);
     itf->setQSSPath(EPConfig.getQSSPath());
 
     /* 连接信号和槽 */
@@ -474,7 +481,7 @@ void TransmitterSwitch::do_importData()
 void TransmitterSwitch::do_exportData()
 {
     /* 先获取所有的模板名称 */
-    QStringList tabList;
+    QMap<QString, int> tabList;
     m_fromWebAPI->getTemplateList(tabList);
     /* 弹出导出页面 */
     std::shared_ptr<SaveToTemplate> stt = std::make_shared<SaveToTemplate>(this);
@@ -501,7 +508,12 @@ void TransmitterSwitch::do_exportData()
         /* 获取一天的数据 */
         auto list = IData.getOneDayExecPlan(weekDay);
         /* 保存到模板 */
-        m_fromWebAPI->saveTemplate(stt->getTemplateName(), list);
+        if(weekDay < 7 && weekDay >= 0)
+        {
+            m_fromWebAPI->saveTemplate(stt->getTemplateName(), 0, list);
+        }else {
+            m_fromWebAPI->saveTemplate(stt->getTemplateName(), 1, list);
+        }
     }
 }
 
@@ -524,6 +536,7 @@ void TransmitterSwitch::do_clearCurrentPage()
     int weekDay = ui->stackedWidget_items->currentIndex();
     IData.clearOneDay(weekDay);
     sortLayout(weekDay);
+    LH_WRITE_LOG_DEBUG(QString("计划剩余数目:%1").arg(IData.getOneDay(weekDay)->size()));
 }
 
 /* 删除一个模板 */