2025-03-13 10:45:13 +08:00

95 lines
2.9 KiB
C++

#ifndef KBDUPDATEPSC3000DLG_H
#define KBDUPDATEPSC3000DLG_H
#include <QSet>
#include <QItemDelegate>
#include "xlsxdocument.h"
#include "pub_widget/CustomDialog.h"
class QTableWidget;
class QComboBox;
class KbdUpdatePsc3000Dlg : public CustomDialog
{
Q_OBJECT
public:
explicit KbdUpdatePsc3000Dlg(const QString & rtuTag, QWidget *parent = nullptr);
QString openPsc3000File(const QString &csvFile);
private:
void initLayout();
void initData();
void updateTable();
void accept();
void onMsg(const QString &msg);
QString readXlsx(const QString &xlsxPath);
QString saveNewPcs3000Data();
bool checkCfgInfo();
void getCfgIfo();
QStringList getDevGroup(QString fesTag);
void UpdatePcs3000Data();
bool UpdateDigitalPoints(QString devId, QString fesDevTag, QString devGroupTag);
bool UpdateAnalogPoints(QString devId,QString fesDevTag,QString devGroupTag);
bool UpdateAccumlPoints(QString devId,QString fesDevTag,QString devGroupTag);
bool UpdateDigitalCtrlPoints(QString devId,QString fesDevTag);
bool UpdateConstPoints(QString devId,QString fesDevTag);
bool deleteUselessFesPoint(QString pcsTable,QString fesTable,QString devTable,QString devId,QString fesDevTag);
bool addFesConstPoints(QList<QStringList> listPcsData,QString fesDevTag);
bool addDigitalCtrlPoints(QList<QString> listPcsData,QString devId,QString fesDevTag);
bool creatDigitalDevPointValue(QString devGroupTag, QList<QStringList> listPcsPoint, int ndotNo);
bool creatAnalogDevPointValue(QString devGroupTag, QList<QStringList> listPcsPoint, int ndotNo);
bool creatAccumlDevPointValue(QString devGroupTag, QList<QStringList> listPcsPoint, int ndotNo);
bool UpdateDevPointDes(QString devId,QString fesDevTag,QString pcsTable,QString fesTable);
void updateFesPointCoeff(QString fesDevTag);
signals:
void sigUpdateResult(const QString &result);
void sigUpdateProcess(int process);
private slots:
void onSelectAll();
void onSelectOver();
private:
QTableWidget* m_table;
private:
QString m_locationId;
QString m_subsystemId;
QString m_rtuNo;
QString m_rtuTag;
QXlsx::Document* m_xlsx;
QMap<QString, QString> m_mapPcsDev;
QMap<QString, QStringList> m_mapFesDev;
QMap<QString, QStringList> m_mapDevGroup;
QMap<QString,QString> m_mapFesTempTag;
QList<QStringList> m_listCfgInfo;
QSet<QString> m_setTempTag;
QSet<QString> m_setUpdateTag;
};
class CboxDelegate: public QItemDelegate
{
Q_OBJECT
public:
CboxDelegate(QList<QStringList> listBoxData,QObject *parent = Q_NULLPTR);
~CboxDelegate();
public:
QWidget *createEditor(QWidget *parent,const QStyleOptionViewItem &,const QModelIndex &) const;
void setEditorData(QWidget *editor, const QModelIndex &index) const;
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
public:
QList<QStringList> m_cbBoxData;
};
#endif // KBDUPDATEPSC3000DLG_H