diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg new file mode 100644 index 0000000..5f28e7e --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg new file mode 100644 index 0000000..5f28e7e --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg new file mode 100644 index 0000000..26b0af1 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg new file mode 100644 index 0000000..5f28e7e --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg new file mode 100644 index 0000000..26b0af1 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/res.qrc b/softwareDirectory/AutoVerScheme/res/res.qrc index 5cbeba7..6738816 100644 --- a/softwareDirectory/AutoVerScheme/res/res.qrc +++ b/softwareDirectory/AutoVerScheme/res/res.qrc @@ -49,5 +49,10 @@ image/Index/u2158.svg image/Index/u8448.svg image/Index/u8458.svg + image/Index/u2327.svg + image/Index/u5496.svg + image/Index/u7313.svg + image/Index/u2188.svg + image/Index/u2189.svg diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg new file mode 100644 index 0000000..5f28e7e --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg new file mode 100644 index 0000000..26b0af1 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/res.qrc b/softwareDirectory/AutoVerScheme/res/res.qrc index 5cbeba7..6738816 100644 --- a/softwareDirectory/AutoVerScheme/res/res.qrc +++ b/softwareDirectory/AutoVerScheme/res/res.qrc @@ -49,5 +49,10 @@ image/Index/u2158.svg image/Index/u8448.svg image/Index/u8458.svg + image/Index/u2327.svg + image/Index/u5496.svg + image/Index/u7313.svg + image/Index/u2188.svg + image/Index/u2189.svg diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.cpp b/softwareDirectory/AutoVerScheme/rulefileitem.cpp index 9361752..dfd8ab6 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.cpp +++ b/softwareDirectory/AutoVerScheme/rulefileitem.cpp @@ -90,8 +90,8 @@ QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 - QPushButton *button = new QPushButton("详情"); - QPushButton *button2 = new QPushButton("预览"); + QPushButton *button = new QPushButton("预览"); + QPushButton *button2 = new QPushButton("下载"); //设置按钮1简单样式 button->setStyleSheet("QPushButton {" @@ -102,6 +102,9 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u5496.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -121,6 +124,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u7313.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg new file mode 100644 index 0000000..5f28e7e --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg new file mode 100644 index 0000000..26b0af1 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/res.qrc b/softwareDirectory/AutoVerScheme/res/res.qrc index 5cbeba7..6738816 100644 --- a/softwareDirectory/AutoVerScheme/res/res.qrc +++ b/softwareDirectory/AutoVerScheme/res/res.qrc @@ -49,5 +49,10 @@ image/Index/u2158.svg image/Index/u8448.svg image/Index/u8458.svg + image/Index/u2327.svg + image/Index/u5496.svg + image/Index/u7313.svg + image/Index/u2188.svg + image/Index/u2189.svg diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.cpp b/softwareDirectory/AutoVerScheme/rulefileitem.cpp index 9361752..dfd8ab6 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.cpp +++ b/softwareDirectory/AutoVerScheme/rulefileitem.cpp @@ -90,8 +90,8 @@ QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 - QPushButton *button = new QPushButton("详情"); - QPushButton *button2 = new QPushButton("预览"); + QPushButton *button = new QPushButton("预览"); + QPushButton *button2 = new QPushButton("下载"); //设置按钮1简单样式 button->setStyleSheet("QPushButton {" @@ -102,6 +102,9 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u5496.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -121,6 +124,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u7313.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.ui b/softwareDirectory/AutoVerScheme/rulefileitem.ui index 4763c13..43a5098 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.ui +++ b/softwareDirectory/AutoVerScheme/rulefileitem.ui @@ -106,7 +106,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -116,12 +116,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -131,6 +135,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -160,6 +168,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg new file mode 100644 index 0000000..5f28e7e --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg new file mode 100644 index 0000000..26b0af1 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/res.qrc b/softwareDirectory/AutoVerScheme/res/res.qrc index 5cbeba7..6738816 100644 --- a/softwareDirectory/AutoVerScheme/res/res.qrc +++ b/softwareDirectory/AutoVerScheme/res/res.qrc @@ -49,5 +49,10 @@ image/Index/u2158.svg image/Index/u8448.svg image/Index/u8458.svg + image/Index/u2327.svg + image/Index/u5496.svg + image/Index/u7313.svg + image/Index/u2188.svg + image/Index/u2189.svg diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.cpp b/softwareDirectory/AutoVerScheme/rulefileitem.cpp index 9361752..dfd8ab6 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.cpp +++ b/softwareDirectory/AutoVerScheme/rulefileitem.cpp @@ -90,8 +90,8 @@ QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 - QPushButton *button = new QPushButton("详情"); - QPushButton *button2 = new QPushButton("预览"); + QPushButton *button = new QPushButton("预览"); + QPushButton *button2 = new QPushButton("下载"); //设置按钮1简单样式 button->setStyleSheet("QPushButton {" @@ -102,6 +102,9 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u5496.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -121,6 +124,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u7313.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.ui b/softwareDirectory/AutoVerScheme/rulefileitem.ui index 4763c13..43a5098 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.ui +++ b/softwareDirectory/AutoVerScheme/rulefileitem.ui @@ -106,7 +106,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -116,12 +116,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -131,6 +135,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -160,6 +168,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index 3489d64..4b6a5e0 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -121,6 +121,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg new file mode 100644 index 0000000..5f28e7e --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg new file mode 100644 index 0000000..26b0af1 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/res.qrc b/softwareDirectory/AutoVerScheme/res/res.qrc index 5cbeba7..6738816 100644 --- a/softwareDirectory/AutoVerScheme/res/res.qrc +++ b/softwareDirectory/AutoVerScheme/res/res.qrc @@ -49,5 +49,10 @@ image/Index/u2158.svg image/Index/u8448.svg image/Index/u8458.svg + image/Index/u2327.svg + image/Index/u5496.svg + image/Index/u7313.svg + image/Index/u2188.svg + image/Index/u2189.svg diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.cpp b/softwareDirectory/AutoVerScheme/rulefileitem.cpp index 9361752..dfd8ab6 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.cpp +++ b/softwareDirectory/AutoVerScheme/rulefileitem.cpp @@ -90,8 +90,8 @@ QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 - QPushButton *button = new QPushButton("详情"); - QPushButton *button2 = new QPushButton("预览"); + QPushButton *button = new QPushButton("预览"); + QPushButton *button2 = new QPushButton("下载"); //设置按钮1简单样式 button->setStyleSheet("QPushButton {" @@ -102,6 +102,9 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u5496.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -121,6 +124,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u7313.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.ui b/softwareDirectory/AutoVerScheme/rulefileitem.ui index 4763c13..43a5098 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.ui +++ b/softwareDirectory/AutoVerScheme/rulefileitem.ui @@ -106,7 +106,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -116,12 +116,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -131,6 +135,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -160,6 +168,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index 3489d64..4b6a5e0 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -121,6 +121,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui index ba62a28..7575a66 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui @@ -178,7 +178,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -188,12 +188,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -203,6 +207,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -938,6 +946,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg new file mode 100644 index 0000000..5f28e7e --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg new file mode 100644 index 0000000..26b0af1 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/res.qrc b/softwareDirectory/AutoVerScheme/res/res.qrc index 5cbeba7..6738816 100644 --- a/softwareDirectory/AutoVerScheme/res/res.qrc +++ b/softwareDirectory/AutoVerScheme/res/res.qrc @@ -49,5 +49,10 @@ image/Index/u2158.svg image/Index/u8448.svg image/Index/u8458.svg + image/Index/u2327.svg + image/Index/u5496.svg + image/Index/u7313.svg + image/Index/u2188.svg + image/Index/u2189.svg diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.cpp b/softwareDirectory/AutoVerScheme/rulefileitem.cpp index 9361752..dfd8ab6 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.cpp +++ b/softwareDirectory/AutoVerScheme/rulefileitem.cpp @@ -90,8 +90,8 @@ QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 - QPushButton *button = new QPushButton("详情"); - QPushButton *button2 = new QPushButton("预览"); + QPushButton *button = new QPushButton("预览"); + QPushButton *button2 = new QPushButton("下载"); //设置按钮1简单样式 button->setStyleSheet("QPushButton {" @@ -102,6 +102,9 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u5496.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -121,6 +124,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u7313.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.ui b/softwareDirectory/AutoVerScheme/rulefileitem.ui index 4763c13..43a5098 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.ui +++ b/softwareDirectory/AutoVerScheme/rulefileitem.ui @@ -106,7 +106,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -116,12 +116,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -131,6 +135,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -160,6 +168,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index 3489d64..4b6a5e0 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -121,6 +121,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui index ba62a28..7575a66 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui @@ -178,7 +178,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -188,12 +188,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -203,6 +207,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -938,6 +946,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/testdataitem.cpp b/softwareDirectory/AutoVerScheme/testdataitem.cpp index 08c3200..85fd2d0 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/testdataitem.cpp @@ -34,12 +34,14 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0,0); + ui->tableWidgetItem->setColumnWidth(0, 0); //初始化TableWidget 设置列 QStringList headers; headers <<"ID" << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" << "生产厂家"<<"委托单位" <<"使用部门"<< "检定员"<< "检定时间" <<"检定有效期"<<"计量标识"<<"限用说明"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + } void TestDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -108,6 +110,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +131,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -155,7 +161,7 @@ // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(id); ui->stackedWidget->setCurrentIndex(1); QMessageBox::information(this, "ID",id); } @@ -173,3 +179,45 @@ { ui->stackedWidget->setCurrentIndex(0); } +void TestDataItem::DeviceInfoInit(QString id) +{ + // ======================================================================================== + // 初始化详情 结果信息 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.getVerificationResultData(id,&headlist); + + + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + int rowCount=0; + int row=0; + for (const QStringList& item : Data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + //添加 序号 + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //循环读取值 headlist,count是列的数量 + for(int i=1;itableWidgetItem->setItem(row, i, new QTableWidgetItem(item[i])); + } + + row++; + + } +} + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg new file mode 100644 index 0000000..5f28e7e --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg new file mode 100644 index 0000000..26b0af1 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/res.qrc b/softwareDirectory/AutoVerScheme/res/res.qrc index 5cbeba7..6738816 100644 --- a/softwareDirectory/AutoVerScheme/res/res.qrc +++ b/softwareDirectory/AutoVerScheme/res/res.qrc @@ -49,5 +49,10 @@ image/Index/u2158.svg image/Index/u8448.svg image/Index/u8458.svg + image/Index/u2327.svg + image/Index/u5496.svg + image/Index/u7313.svg + image/Index/u2188.svg + image/Index/u2189.svg diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.cpp b/softwareDirectory/AutoVerScheme/rulefileitem.cpp index 9361752..dfd8ab6 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.cpp +++ b/softwareDirectory/AutoVerScheme/rulefileitem.cpp @@ -90,8 +90,8 @@ QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 - QPushButton *button = new QPushButton("详情"); - QPushButton *button2 = new QPushButton("预览"); + QPushButton *button = new QPushButton("预览"); + QPushButton *button2 = new QPushButton("下载"); //设置按钮1简单样式 button->setStyleSheet("QPushButton {" @@ -102,6 +102,9 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u5496.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -121,6 +124,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u7313.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.ui b/softwareDirectory/AutoVerScheme/rulefileitem.ui index 4763c13..43a5098 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.ui +++ b/softwareDirectory/AutoVerScheme/rulefileitem.ui @@ -106,7 +106,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -116,12 +116,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -131,6 +135,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -160,6 +168,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index 3489d64..4b6a5e0 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -121,6 +121,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui index ba62a28..7575a66 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui @@ -178,7 +178,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -188,12 +188,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -203,6 +207,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -938,6 +946,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/testdataitem.cpp b/softwareDirectory/AutoVerScheme/testdataitem.cpp index 08c3200..85fd2d0 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/testdataitem.cpp @@ -34,12 +34,14 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0,0); + ui->tableWidgetItem->setColumnWidth(0, 0); //初始化TableWidget 设置列 QStringList headers; headers <<"ID" << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" << "生产厂家"<<"委托单位" <<"使用部门"<< "检定员"<< "检定时间" <<"检定有效期"<<"计量标识"<<"限用说明"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + } void TestDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -108,6 +110,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +131,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -155,7 +161,7 @@ // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(id); ui->stackedWidget->setCurrentIndex(1); QMessageBox::information(this, "ID",id); } @@ -173,3 +179,45 @@ { ui->stackedWidget->setCurrentIndex(0); } +void TestDataItem::DeviceInfoInit(QString id) +{ + // ======================================================================================== + // 初始化详情 结果信息 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.getVerificationResultData(id,&headlist); + + + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + int rowCount=0; + int row=0; + for (const QStringList& item : Data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + //添加 序号 + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //循环读取值 headlist,count是列的数量 + for(int i=1;itableWidgetItem->setItem(row, i, new QTableWidgetItem(item[i])); + } + + row++; + + } +} + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/testdataitem.h b/softwareDirectory/AutoVerScheme/testdataitem.h index 4e5a793..35e66ef 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.h +++ b/softwareDirectory/AutoVerScheme/testdataitem.h @@ -23,6 +23,7 @@ void OnButtonSelectClicked(QString id); void on_pushButton_clicked(); void OnButtonPreViewtClicked(QString id); + void DeviceInfoInit(QString id); private: Ui::TestDataItem *ui; }; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b84a377..b34ab3c 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -20,12 +20,14 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ beexamined_deviceitem.cpp \ checkmethodmanage.cpp \ checkwindow.cpp \ create_task.cpp \ + createtask_scandevice.cpp \ databaseconnection.cpp \ datasyncview.cpp \ depar_task.cpp \ @@ -55,11 +57,14 @@ wordengine.cpp HEADERS += \ + CheckBoxTableHeader.h \ + createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ id/IdWorker.h \ id/Noncopyable.h \ id/Singleton.h \ + id/TaskManager.h \ id/Timer.h \ Visa/Include/visa.h \ Visa/Include/visatype.h \ @@ -103,6 +108,7 @@ checkmethodmanage.ui \ checkwindow.ui \ create_task.ui \ + createtask_scandevice.ui \ datasyncview.ui \ depar_task.ui \ dialogcheckresult.ui \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 deleted file mode 100644 index 803b854..0000000 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user.c08df58 +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - EnvironmentId - {c08df58c-84a7-4965-bca6-e98789474efa} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit - 0 - 0 - 0 - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - C:/Users/admin/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - C:/Users/admin/Desktop/SVN/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h new file mode 100644 index 0000000..3d9bb35 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/CheckBoxTableHeader.h @@ -0,0 +1,51 @@ +#ifndef CHECKBOXTABLEHEADER_H +#define CHECKBOXTABLEHEADER_H + +#include +#include +#include + +class CheckBoxTableHeader : public QHeaderView { + Q_OBJECT +public: + CheckBoxTableHeader(Qt::Orientation orientation, QWidget *parent = nullptr) + : QHeaderView(orientation, parent) { + checkBox = new QCheckBox(this); + connect(checkBox, &QCheckBox::stateChanged, this, &CheckBoxTableHeader::onCheckBoxStateChanged); + + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + // 设置复选框的位置和大小 + // ... + } + + void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override { + QHeaderView::paintSection(painter, rect, logicalIndex); + /*if (logicalIndex == 1) { // 只绘制第一列的列头复选框 + + }*/ + } + +private slots: + void onCheckBoxStateChanged(int state) { + QTableWidget *table = qobject_cast(parent()); + + if (table) { + for (int row = 0; row < table->rowCount(); ++row) { + QCheckBox *cellCheckBox = qobject_cast(table->cellWidget(row, 1)); + if (cellCheckBox) { + if(state==2){ + cellCheckBox->setCheckState(Qt::Checked); + }else{ + cellCheckBox->setCheckState(Qt::Unchecked); + } + + } + } + } + } + +private: + QCheckBox *checkBox; +}; +#endif // CHECKBOXTABLEHEADER_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp new file mode 100644 index 0000000..1462356 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -0,0 +1,70 @@ +#include "testdataitem.h" +#include "id/TaskManager.h" +#include "basecommonapi.h" + +// 定义并初始化静态成员变量 +QMap TaskManager::dailyTaskCounts; +QDate TaskManager::currentDate; +QString TaskManager::KeyDate; + +QString TaskManager::generateTask(QString Number) +{ + // 初始化当天任务单数量为0 + QString TaskNum=Number; + currentDate = QDate::currentDate(); + KeyDate = currentDate.toString("yyyyMMdd"); + if(!dailyTaskCounts.contains(KeyDate)) + { + int startIndex = TaskNum.indexOf("d")+1; // 找到 "YYYY" 的起始位置 + int endIndex = startIndex + 8; // "YYYYMMDD" 总共8个字符 + QString result = TaskNum.mid(startIndex, 8); // 从 startIndex 开始,截取8个字符 + if(result!=KeyDate){ + dailyTaskCounts[KeyDate] = 1; + }else + { + QChar lastChar = TaskNum.at(TaskNum.length() - 1); + + if (lastChar.isDigit()) { + + int Count=lastChar.digitValue(); + dailyTaskCounts[KeyDate] = Count+1; + } + + } + + } + QString dateStr = KeyDate; + // 生成任务单编号,这里假设编号格式是 "rwdYYYYMMDDXXXX",XXXX是顺序号 字段4 10进制 不足时0填充 + QString taskId = QString("rwd%1%2").arg(dateStr).arg(dailyTaskCounts[KeyDate], 4, 10, QChar('0')); + + return taskId; +} +int TaskManager::getTaskCountForToday() +{ + // 返回当天的任务单数量 + return dailyTaskCounts.value(KeyDate, 0); +} +bool TaskManager::AddCurrenTaskCount() +{ + // 增加当天任务单数量 + try { + + dailyTaskCounts[KeyDate]++; + return true; + } catch(const std::exception &e) { + return false; + } + +} + + + + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 1d04dad..79dc7c5 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -4,7 +4,8 @@ { } - +QString BaseCommonApi::temporary_user_id="1640229293790650370"; +QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; //获取部门任务数据 QList BaseCommonApi::getAllData(QString deptId,QString status) { QList result; @@ -81,16 +82,38 @@ } return result; } - +//查看当前最新的任务单 +QList BaseCommonApi::getCreateTaskListNew() +{ + QList result; + QSqlQuery query; + query.prepare("select * from biz_business_order_info as bz ORDER BY bz.create_time DESC LIMIT 1"); + if (query.exec()) { + while (query.next()) { + CreateTaskList task; + task.id = query.value("id").toString(); + task.order_no = query.value("order_no").toString(); + task.customer_name = query.value("customer_name").toString(); + task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); + task.require_over_time = query.value("require_over_time").toDateTime(); + task.deliverer = query.value("deliverer").toString(); + task.is_urgent = query.value("is_urgent").toString(); + result.append(task); + } + } else { + qDebug() << "Query execution failed: " << query.lastError().text(); + } + return result; +} //获取创建任务首页数据 QList BaseCommonApi::getCreateTaskList(QString userId) { - userId="1640229293790650370"; + userId=temporary_user_id; QList result; QSqlQuery query; query.prepare("SELECT bi.id,bi.order_no,bi.customer_name,dept.FULL_NAME,bi.require_over_time,bi.deliverer,bi.is_urgent " " FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID " - " WHERE bi.create_user_id = :userId"); + " WHERE bi.create_user_id = :userId ORDER BY bi.create_time DESC"); // 将参数绑定到占位符 query.bindValue(":userId", userId); if (query.exec()) { @@ -144,15 +167,16 @@ { QList result; QSqlQuery query; - query.prepare("SELECT bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," - " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent AS ," + query.prepare("SELECT bi.id, bi.order_no ,bi.customer_name ,dept.FULL_NAME ,bi.require_over_time ," + " bi.deliverer ,bi.deliverer_tel ,bi.undertaker_name ,bi.undertake_time , bi.is_urgent ," " bi.receive_illustrate FROM biz_business_order_info bi LEFT JOIN sys_dept dept ON bi.customer_id = dept.ID" - " WHERE bi.id = :id "); + " WHERE bi.id = :id "); // 将参数绑定到占位符 query.bindValue(":id", id); if (query.exec()) { while (query.next()) { CatTask task; + task.id=query.value("id").toString(); task.order_no = query.value("order_no").toString(); task.customer_name = query.value("customer_name").toString(); task.DEPT_FULL_NAME = query.value("FULL_NAME").toString(); @@ -215,9 +239,11 @@ { QList result; - QSqlQuery query("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," - "bi.require_over_time , bi.deliverer ,bi.is_urgent FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); - if (query.exec()) { + QSqlQuery query; + bool IsSucc= query.exec("SELECT bi.id,bi.order_no ,bi.customer_name ,dept.FULL_NAME ," + "bi.require_over_time , bi.deliverer ,bi.is_urgent " + "FROM biz_business_order_info bi,sys_dept dept WHERE bi.customer_id = dept.ID"); + if (IsSucc) { while (query.next()) { SelectSpecifyFields customerInfo; customerInfo.id = query.value("id").toString(); @@ -235,13 +261,21 @@ //新增任务单 bool BaseCommonApi::InsertTaskBasic(InsertTask insertTask) { + //1640229293790650370 + insertTask.Create_user_id=temporary_user_id; + insertTask.customer_id=temporary_costomer_id; QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_info " - "(id,order_no, customer_name, require_over_time, deliverer, deliverer_tel, " - "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id) " - "VALUES " - "(:id,:order_no, :customer_name, :require_over_time, :deliverer, :deliverer_tel, " - ":undertaker_name, :undertake_time, :is_urgent, :receive_illustrate, :receive_illustrate)"); + query.prepare("INSERT INTO biz_business_order_info (id," + "order_no, customer_name, require_over_time, deliverer, deliverer_tel," + "undertaker_name, undertake_time, is_urgent, receive_illustrate, customer_id,Create_user_id" + " ) VALUES (:id, " + " :order_no, :customer_name, :require_over_time, " + " :deliverer, :deliverer_tel, :undertaker_name, :undertake_time, " + " :is_urgent, " + " :receive_illustrate," + " :customer_id," + " :Create_user_id" + " );"); query.bindValue(":id", insertTask.id); query.bindValue(":order_no", insertTask.order_no); @@ -254,7 +288,7 @@ query.bindValue(":is_urgent", insertTask.is_urgent); query.bindValue(":receive_illustrate", insertTask.receive_illustrate); query.bindValue(":customer_id", insertTask.customer_id); - + query.bindValue(":Create_user_id", insertTask.Create_user_id); bool isSuccess = query.exec(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); @@ -265,11 +299,12 @@ //新增任务单样品表 bool BaseCommonApi::InsertOrderSampleRelation(OrderSampleRelation orderSample) { - QSqlQuery query; - query.prepare("INSERT INTO biz_business_order_sample_relation " - "(id, order_id, sample_id, sample_name, sample_model, measure_complete_time) " - "VALUES " - "(:id, :order_id, :sample_id, :sample_name, :sample_model, :measure_complete_time)"); + orderSample.create_user_id=temporary_user_id; + QSqlQuery query; + query.prepare("INSERT INTO biz_business_order_sample_relation (id,order_id,sample_id," + "sample_name, sample_model,measure_complete_time)" + "VALUES (:id,:order_id,:sample_id," + ":sample_name, :sample_model,:measure_complete_time);"); // Bind values to the parameters query.bindValue(":id", orderSample.id); @@ -279,6 +314,7 @@ query.bindValue(":sample_model", orderSample.sample_model); query.bindValue(":measure_complete_time", orderSample.measure_complete_time); + bool isSuccess = query.exec(); if (!isSuccess) { @@ -342,6 +378,22 @@ return true; } +//删除任务单内设备 +bool BaseCommonApi::DeleteTaskDevice(QString id) +{ + QSqlQuery query; + + //删除任务单样品表数据 + query.prepare("DELETE FROM biz_business_order_sample_relation WHERE id = :id"); + query.bindValue(":id", id); + + if (!query.exec()) { + qDebug() << "删除失败 " << query.lastError().text(); + return false; + } + + return true; +} //获取标准设备管理 首页 QListBaseCommonApi::getBizDeviceManage() { @@ -478,7 +530,7 @@ QSqlQuery query; bool isSuccess = query.exec("SELECT DISTINCT eei.id ,eei.equipment_name ,eei.model ,eei.help_instruction ,eei.manufacture_no ,eei.manufacturer ,bboi.customer_name ,sys_dept.FULL_NAME ,eei.meter_identify ,eei.check_cycle ,eei.certificate_valid from eqpt_equipment_info eei " " LEFT JOIN sys_dept ON sys_dept.ID = eei.dept_id " - " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id "); + " LEFT JOIN biz_business_order_info bboi ON bboi.customer_id = eei.company_id LIMIT 100"); if (isSuccess) { while (query.next()) { TestedDevice testedDevice; @@ -603,7 +655,7 @@ case 1: //Clable[0].item_category_idiT - //1717086652508487681 后面替换为 Clable[0].item_category_idiT + //1717086652508487681 后面替换为 Clable[0].item_category_id DataList=BaseCommonApi::getVerMultiCal("1717086652508487681",HeadList); break; @@ -728,9 +780,11 @@ return result; } //检定数据管理-检定结果信息 -QList BaseCommonApi::getVerificationResultData(QString sampleId) +QList BaseCommonApi::getVerificationResultData(QString sampleId,QStringList *HeadList) { -QList result; + sampleId="1716997603953311746"; + QList resultData; + QStringList result; QSqlQuery query; query.prepare("SELECT bbdmidc.id ,bbdmidc.params ,bbdmidc.capacity ,bbdmidc.unit ," " bbdmidc.frequency , bbdmidc.range_range , bbdmidc.standard_value , bbdmidc.resolution , bbdmidc.maximum_error , " @@ -743,27 +797,30 @@ query.bindValue(":sampleId", sampleId); if (query.exec()) { while (query.next()) { - VerificationResultData resultData; - resultData.id = query.value("id").toString(); - resultData.params = query.value("params").toString(); - resultData.capacity = query.value("capacity").toString(); - resultData.unit = query.value("unit").toString(); - resultData.frequency = query.value("frequency").toString(); - resultData.range_range = query.value("range_range").toString(); - resultData.standard_value = query.value("standard_value").toString(); - resultData.resolution = query.value("resolution").toString(); - resultData.maximum_error = query.value("maximum_error").toString(); - resultData.error_param_a = query.value("error_param_a").toString(); - resultData.error_param_b = query.value("error_param_b").toString(); - resultData.other_outcome = query.value("other_outcome").toString(); + result.clear(); + result.append(query.value("id").toString()); + result.append(query.value("params").toString()); + result.append(query.value("capacity").toString()); + result.append(query.value("unit").toString()); + result.append(query.value("frequency").toString()); + result.append( query.value("range_range").toString()); + result.append(query.value("standard_value").toString()); + result.append(query.value("resolution").toString()); + result.append(query.value("maximum_error").toString()); + result.append(query.value("error_param_a").toString()); + result.append( query.value("error_param_b").toString()); + result.append(query.value("other_outcome").toString()); - result.append(resultData); + resultData.append(result); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); } + *HeadList<<"序号"<<"参数"<<"量"<<"单位"<<"频率" + <<"量程"<<"标准值"<<"分辨力"<<"最大允许误差"<<"误差参数a" + <<"误差参数b"<<"合格率"; - return result; + return resultData; } //核查数据管理 首页 @@ -1172,6 +1229,15 @@ { return this->idWorker.nextId(); } +QString BaseCommonApi::GenerateTaskNumber() +{ + QList TaskList= BaseCommonApi::getCreateTaskListNew(); + return TaskManager::generateTask(TaskList.first().order_no); +} +bool BaseCommonApi::AddTaskNumber() +{ + return TaskManager::AddCurrenTaskCount(); +} //自动检定-结果保存-biz_business_device_measure_info 基本信息表 bool BaseCommonApi::InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo) { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 3a18225..5302456 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -8,6 +8,7 @@ #include "QList" #include "databaseconnection.h" #include "id\IdWorker.h" +#include "id\TaskManager.h" @@ -108,8 +109,9 @@ QString deliverer; //送检人 QString deliverer_tel; //电话 QString undertaker_name; //承接人 - QDateTime undertake_time; //承接时间 - QString is_urgent; //是否加急 + QString undertake_time; //承接时间 + bool is_urgent; //是否加急 + QString Create_user_id; QString receive_illustrate; //接收说明 QString customer_id;//委托人id }; @@ -122,6 +124,7 @@ QString sample_id; //被检设备的id QString sample_name; //设备名称 QString sample_model; // 型号规格 + QString create_user_id; // 型号规格 QDateTime measure_complete_time; //检定完成时间 }; //创建任务单编辑 @@ -517,7 +520,8 @@ { public: BaseCommonApi(); - + static QString temporary_user_id; + static QString temporary_costomer_id; static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); //部门任务 废弃 @@ -530,6 +534,8 @@ static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 static QListgetCreateTaskList(QString id); + //获取创建任务最新数据 + static QListgetCreateTaskListNew(); //创建任务-查看任务单顶部 static QListgetCatTask(QString orderNo); //创建任务-查看任务列表底部 @@ -544,6 +550,7 @@ static bool UpdateTask(InsertTask updateTask); //删除任务单 static bool DeleteTask(QString id); + static bool DeleteTaskDevice(QString id); //获取标准设备管理 首页 static QListgetBizDeviceManage(); //标准设备管理-设备基本信息 @@ -565,7 +572,7 @@ // 检定数据管理-检定基本信息 static QList getVerificationBasicDataDetails(QString id); //检定数据管理-检定结果信息 - static QList getVerificationResultData(QString sampleId); + static QList getVerificationResultData(QString sampleId,QStringList *HeadList); //核查数据管理-首页 static QList getCheckData(); // 核查数据管理-基本信息 @@ -603,6 +610,10 @@ qint64 generateId(); //雪花算法生成id IdWorker &idWorker = Singleton::instance(); + // 生成任务单编号 + QString GenerateTaskNumber(); + // 生成任务单编号当天天数增加 + bool AddTaskNumber(); //自动检定-结果保存-基本信息 static bool InsertSaveDeviceMeasureInfo(SaveDeviceMeasureInfo saveInfo); //自动检定-结果保存-更新检定结果信息-多功能校准源检定装置 只更新 示值和绝对误差 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index ca5e040..b94c9b5 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -108,6 +108,8 @@ //添加操作按钮 QPushButton *button = new QPushButton("查看"); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); ui->tableWidget->setCellWidget(row, 12, button); //设置按钮简单样式 button->setStyleSheet("QPushButton {" @@ -192,7 +194,7 @@ //循环数据 int rowCount=0; int row=0; - ; + for (const QStringList& item : Data) { //获取行号 并进行添加行 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index cdacfaf..a0b717e 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -213,7 +213,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -223,12 +223,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -238,6 +242,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -847,6 +855,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index ddd78ef..66b8acb 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -1,9 +1,11 @@ #include "create_task.h" #include "ui_create_task.h" #include "QMessageBox" +#include "createtask_scandevice.h" QString Create_Task::State=""; + Create_Task::Create_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Create_Task) @@ -36,12 +38,35 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 - + ui->tableWidget->setColumnWidth(8,180); //初始化TableWidget 设置列 QStringList headers; headers <<"ID"<< "序号" << "任务单编号" << "委托方"<< "使用部门" << "要求检完时间" << "送检人"<<"是否加急"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + // + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidgetItem->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + + //ui->tableWidget->setRowCount(10); // 设置10行 + ui->tableWidgetItem->setColumnCount(8); // 设置11列 + ui->tableWidgetItem->setColumnWidth(0,0); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + // 设置选择行为为选择整行 + ui->tableWidgetItem->setSelectionBehavior(QAbstractItemView::SelectRows); + //ui->tableWidgetItem->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidgetItem->setColumnWidth(8,180); + //初始化TableWidget 设置列 + + headers << "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求"; + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); //ShowMessageBox("标题","初始化完成"); } void Create_Task::ShowMessageBox(QString title,QString value) { @@ -62,11 +87,12 @@ } void Create_Task::Load() { + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = BaseCommonApi::getCreateTaskList(""); + QList data = dbManager.getCreateTaskList(""); int rowCount = 0; int row=0; @@ -107,6 +133,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +155,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u2324.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -147,6 +177,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button3->setCursor(Qt::PointingHandCursor); + button3->setIconSize(QSize(16,16)); + button3->setIcon(QIcon(":/image/Index/u2325.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button3, &QPushButton::clicked, this, [this, button3, row]() { // 获取当前行第一列的 ID @@ -178,8 +210,11 @@ // ==================================================================================== //DeviceInfoInit(id); HiddenButton(); + SelectPageData(id); + ui->TitleLable->setText("查看任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "查看按钮ID",id); + + //::information(this, "查看按钮ID",id); } void Create_Task::OnButtonUpdateClicked(QString id) { @@ -188,8 +223,12 @@ // ==================================================================================== //DeviceInfoInit(id); DisplayButton(); + SelectPageData(id); + TaskId=id; + ui->TitleLable->setText("编辑任务单"); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "编辑按钮ID",id); + + //QMessageBox::information(this, "编辑按钮ID",id); } void Create_Task::OnButtoDeleteClicked(QString id) { @@ -198,8 +237,15 @@ // ==================================================================================== //DeviceInfoInit(id); //ui->stackedWidget->setCurrentIndex(1); + bool IsSucc=dbManager.DeleteTask(id); + if(IsSucc){ + QMessageBox::information(this, "提示","删除成功"); + Load(); + }else{ + QMessageBox::information(this, "提示","删除失败"); + } - QMessageBox::information(this, "删除按钮ID",id); + } void Create_Task::on_pushButton_2_clicked() @@ -207,9 +253,28 @@ // ======================================================================================== // 创建任务单按钮 // ==================================================================================== - DisplayButton(); + //显示任务单编号 + ui->TitleLable->setText("创建任务单"); + + //显示按钮 + DisplayButton(); + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; + //查询出所有委托方和部门 + QList data=BaseCommonApi::getSelectSpecifyFields(); + foreach (SelectSpecifyFields item,data) { + ui->customer_name->addItem(item.customer_name); + ui->comboBox_5->addItem(item.FULL_NAME); + } + ui->tableWidgetItem->setRowCount(0); + ui->is_urgent->addItem("是"); + ui->is_urgent->addItem("否"); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + //添加设备table数据 + } void Create_Task::HiddenButton() { @@ -230,3 +295,232 @@ { ui->stackedWidget->setCurrentIndex(0); } + +void Create_Task::on_ScanButton_clicked() +{ + // 创建新窗体实例并显示 + CreateTask_ScanDevice *ShowDataSyncView = new CreateTask_ScanDevice(); + ShowDataSyncView->CreateTaskInst=this; + //ShowDataSyncView->setWindowState(Qt::WindowMaximized); + ShowDataSyncView->setWindowModality(Qt::ApplicationModal); + ShowDataSyncView->show(); +} +void Create_Task::DeviceInfoShow(QList ListId) +{ + if(ListId.count()!=0) + { + _IdList=ListId; + ui->tableWidgetItem->setRowCount(0); + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + QList result; + foreach(QString DeviceId,ListId) + { + result = dbManager.getTestedCatDevice(DeviceId); + SelectDataItem.append(result[0]); + if(result.length()>0) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(result[0].equipment_name)); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(result[0].model)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(result[0].help_instruction)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem(result[0].manufacture_no)); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(result[0].manufacturer)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem("点击编辑")); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem("点击编辑")); + + row++; + } + + } + + } + +} + +void Create_Task::on_SaveButton_clicked() +{ + // ======================================================================================== + // 保存任务单按钮 先新增任务单 后新增任务单设备 + // ==================================================================================== + if(State=="Update") + { + if(TaskId=="")return; + InsertTask insertTask; + insertTask.id=TaskId; + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + insertTask.dept_name=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.UpdateTask(insertTask); + //设备更新 编辑设备待写 + + }else{ + //新增任务单 + qint64 id = dbManager.generateId(); + InsertTask insertTask; + insertTask.id=QString::number(id); + insertTask.order_no=ui->LineEditNumber->text(); + insertTask.customer_name=ui->customer_name->currentText(); + insertTask.require_over_time=ui->require_over_time->text(); + insertTask.deliverer=ui->deliverer->text(); + insertTask.deliverer_tel=ui->deliverer_tel->text(); + insertTask.undertaker_name=ui->undertaker_name->text(); + insertTask.undertake_time=ui->undertake_time->text(); + //insertTask.=ui->comboBox_5->currentText(); + if(ui->is_urgent->currentText()=="是") + { + insertTask.is_urgent=true; + }else{insertTask.is_urgent=false;} + + insertTask.receive_illustrate=ui->receive_illustrate->text(); + insertTask.customer_id="0"; + bool IsSUCC=dbManager.InsertTaskBasic(insertTask); + if(IsSUCC) + { + + //显示任务单编号 + dbManager.AddTaskNumber(); + ui->LineEditNumber->setText(dbManager.GenerateTaskNumber()); + // + //新增任务单设备 + QString NewTaskId=dbManager.getCreateTaskListNew()[0].id; + int count=0; + IsSUCC; + if(SelectDataItem.count()!=0 && _IdList.count()!=0){ + //InsertOrderSampleRelation + foreach(TestedCatDevice DeviceInfo,SelectDataItem) + { + OrderSampleRelation orderSampleRelation; + id = dbManager.generateId(); + orderSampleRelation.id=QString::number(id); + orderSampleRelation.order_id=NewTaskId; + orderSampleRelation.sample_id=_IdList[count]; + orderSampleRelation.sample_name=DeviceInfo.equipment_name; + orderSampleRelation.sample_model=DeviceInfo.model; + orderSampleRelation.measure_complete_time=QDateTime::currentDateTime(); + IsSUCC=dbManager.InsertOrderSampleRelation(orderSampleRelation); + if(!IsSUCC){ShowMessageBox("提示","设备添加失败");} + count++; + } + } + if(IsSUCC){ShowMessageBox("提示","委托单添加成功");} + + }else + { + ShowMessageBox("提示","委托单添加失败"); + return; + } + } + ui->stackedWidget->setCurrentIndex(0); + Load(); +} +void Create_Task::SelectPageData(QString ID) +{ + + + //顶部数据 + QList data= dbManager.getCatTask(ID); + if(data.count()==0)return; + ui->is_urgent->clear(); + ui->comboBox_5->clear(); + ui->customer_name->clear(); + + ui->LineEditNumber->setText(data[0].order_no); + ui->customer_name->addItem(data[0].customer_name); + ui->require_over_time->setDateTime(data[0].require_over_time); + ui->deliverer->setText(data[0].deliverer); + ui->deliverer_tel->setText(data[0].deliverer_tel); + ui->undertaker_name->setText(data[0].undertaker_name); + ui->undertake_time->setDateTime(data[0].undertake_time); + ui->is_urgent->addItem(data[0].is_urgent); + ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); + ui->receive_illustrate->setText(data[0].receive_illustrate); + //设备数据 + //重新设计列 + + QStringList headers; + headers <<"Id"<< "序号" << "设备名称" << "规格型号"<< "辅助字段" + << "出厂编号" << "生产厂家"<<"附件"<<"特殊要求" + <<"检定完成时间"<<"检定结果"<<"限用"; + ui->tableWidgetItem->setColumnCount(headers.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headers); + + ui->tableWidgetItem->setRowCount(0); + QList Devicedate= dbManager.getCatTaskList(ID); + if(Devicedate.count()>0){ + // 调用数据库管理器的函数获取数据 + int rowCount=0; + int row=0; + foreach(CatTaskList item,Devicedate) + { + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidgetItem->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidgetItem->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidgetItem->setItem(row, 3, new QTableWidgetItem(item.sample_model)); + ui->tableWidgetItem->setItem(row, 4, new QTableWidgetItem("缺少")); + ui->tableWidgetItem->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetItem->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidgetItem->setItem(row, 7, new QTableWidgetItem(item.appendix_descn)); + ui->tableWidgetItem->setItem(row, 8, new QTableWidgetItem(item.special_require)); + ui->tableWidgetItem->setItem(row, 9, new QTableWidgetItem(item.measure_complete_time.toString())); + ui->tableWidgetItem->setItem(row, 10, new QTableWidgetItem(item.conclusion)); + ui->tableWidgetItem->setItem(row, 11, new QTableWidgetItem(item.limit_instruction)); + row++; + } + } +} + +void Create_Task::on_pushButton_8_clicked() +{ + Load(); +} + +void Create_Task::on_deletebutton_clicked() +{ + //删除按钮 + int row = ui->tableWidgetItem->currentRow(); + if (row >= 0) { // 确保有行被选中 + // 获取选中行第一列的 QTableWidgetItem + QTableWidgetItem *item = ui->tableWidgetItem->item(row, 0); + if (item) { // 确保 item 不是 nullptr + // 获取并输出第一列的数据 + QString data = item->text(); + ShowMessageBox("",data) ; + // 在这里可以使用 data 进行进一步处理 + if(dbManager.DeleteTaskDevice(data)){ + ShowMessageBox("","删除成功"); + SelectPageData(TaskId); + }else{ ShowMessageBox("","删除失败");} + } else { + ShowMessageBox("","在所选行的第一列中没有项") ; + + } + } else { + ShowMessageBox("","请选择一行数据") ; + + } +} + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index 6b67c7c..4eeba7a 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -32,6 +32,21 @@ void on_pushButton_clicked(); + void on_ScanButton_clicked(); + // void UpdatePartTable(); + void on_SaveButton_clicked(); + void SelectPageData(QString id); + void on_pushButton_8_clicked(); + + void on_deletebutton_clicked(); + +private: + +public: + void DeviceInfoShow(QList List); + QList SelectDataItem; + QList _IdList; + QString TaskId; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index b45af33..c23d487 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -140,7 +140,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -150,12 +150,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -165,6 +169,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -274,7 +282,7 @@ - + Font-size:25px; @@ -370,10 +378,17 @@ - - + + + + 接收说明: + + + + + - ForbiddenCursor + IBeamCursor @@ -383,6 +398,9 @@ + + + @@ -390,33 +408,37 @@ - - - - 要求检完时间: - - + + - + - - - - ForbiddenCursor - - - - + + - XXX + 承接时间: - - + + + + 委托方: + + + + + + + 使用部门: + + + + + - ForbiddenCursor + IBeamCursor @@ -433,20 +455,6 @@ - - - - 电话: - - - - - - - 委托方: - - - @@ -454,39 +462,6 @@ - - - - ForbiddenCursor - - - - - - XXX - - - - - - - ForbiddenCursor - - - - - - XXX - - - - - - - 承接时间: - - - @@ -494,27 +469,10 @@ - - - - 接收说明: - - - - - - - 使用部门: - - - - - - - - + + - ForbiddenCursor + IBeamCursor @@ -524,11 +482,51 @@ - - + + + + IBeamCursor + + + + + + XXX + + + + + + + 电话: + + + + + + + IBeamCursor + + + + + + XXX + + - + + + + + + 要求检完时间: + + + + + @@ -668,6 +666,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp new file mode 100644 index 0000000..515e340 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.cpp @@ -0,0 +1,109 @@ +#include "createtask_scandevice.h" +#include "ui_createtask_scandevice.h" +#include "QCheckBox" +#include "CheckBoxTableHeader.h" +#include "QMessageBox" + +CreateTask_ScanDevice::CreateTask_ScanDevice(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::CreateTask_ScanDevice) +{ + ui->setupUi(this); + this->initData(); +} + +CreateTask_ScanDevice::~CreateTask_ScanDevice() +{ + delete ui; +} + +void CreateTask_ScanDevice::on_AddButton_clicked() +{ + //添加设备 + //1、获取当前选择的设备ID 存入List + QList idList; + for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { + // 获取第1列的 QCheckBox + QCheckBox *checkBox = qobject_cast(ui->tableWidget->cellWidget(row, 1)); + if (checkBox && checkBox->isChecked()) { + // 如果 checkbox 被选中,获取第0列的 ID + QTableWidgetItem *idItem = ui->tableWidget->item(row, 0); + if (idItem) { + // 获取 ID 的文本或数据 + idList.append(idItem->text()); // 或者使用其他方法来获取数据,比如 idItem->data(Qt::UserRole).toString(); + } + } + } + + CreateTaskInst->DeviceInfoShow(idList); + if(idList.count()>0){QMessageBox::information(this, "提示", "添加成功");}; + + this->close(); +} + +void CreateTask_ScanDevice::on_CancelButton_clicked() +{ + this->close(); +} +void CreateTask_ScanDevice::initData() +{ + //初始化方法 查询设备表所有设备 + //tableWidget设置 + //设置控件的边框显示 + ui->tableWidget->setStyleSheet("QHeaderView::section {" + "border: 1px solid rgba(197, 196, 196, 1);" + "border-left:none;" + "border-top:none;" + "background-color:white;" + "}"); + ui->tableWidget->setColumnCount(7); // 设置11列 + + ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 + + QStringList headers; + headers << "ID" <<""<< "序号" << "设备名称" + << "型号规则" << "出厂编号" << "生产厂家"; + ui->tableWidget->setHorizontalHeaderLabels(headers); + // 设置自定义列头 + CheckBoxTableHeader *header = new CheckBoxTableHeader(Qt::Horizontal, ui->tableWidget); + ui->tableWidget->setHorizontalHeader(header); + + ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为0 + ui->tableWidget->setColumnWidth(1, 80); // 设置第一列的宽度为0 + + int rowCount=0; + int row=0; + //添加数据 + QList data = dbManager.getTestedDevice(); + for (const TestedDevice& bizDevice : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + + QCheckBox *checkBox = new QCheckBox(); + checkBox->setStyleSheet("QCheckBox { margin-left: 35px;" + "margin-top:6px; }"); + ui->tableWidget->setCellWidget(row, 1, checkBox); + + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + + row++; + } + + + + + + + + + + + + +} diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.h b/softwareDirectory/AutoVerScheme/createtask_scandevice.h new file mode 100644 index 0000000..d1f3e59 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.h @@ -0,0 +1,32 @@ +#ifndef CREATETASK_SCANDEVICE_H +#define CREATETASK_SCANDEVICE_H + +#include +#include "basecommonapi.h" +#include "create_task.h" + +namespace Ui { +class CreateTask_ScanDevice; +} + +class CreateTask_ScanDevice : public QMainWindow +{ + Q_OBJECT + +public: + explicit CreateTask_ScanDevice(QWidget *parent = nullptr); + ~CreateTask_ScanDevice(); + + BaseCommonApi dbManager; +private slots: + void on_AddButton_clicked(); + void initData(); + void on_CancelButton_clicked(); +public: + Create_Task *CreateTaskInst=nullptr; +private: + + Ui::CreateTask_ScanDevice *ui; +}; + +#endif // CREATETASK_SCANDEVICE_H diff --git a/softwareDirectory/AutoVerScheme/createtask_scandevice.ui b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui new file mode 100644 index 0000000..4dcd243 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/createtask_scandevice.ui @@ -0,0 +1,167 @@ + + + CreateTask_ScanDevice + + + + 0 + 0 + 785 + 511 + + + + MainWindow + + + background-color:rgba(242, 242, 242, 1); +color:black; +background-image:none; +border-image:none; + + + + background-image:none; +border-image:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + background-color:white; + + + + + + + + + + + + 请连接扫码设备进行扫描 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 继续添加 + + + + + + + 删除行 + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 选择添加 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 取消 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 0 + 0 + 785 + 25 + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index 13b1855..c94bf20 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -7,6 +7,8 @@ //#include "depar_task_server.h" #include "basecommonapi.h" + + Depar_Task::Depar_Task(QWidget *parent) : InfoBase(parent), ui(new Ui::Depar_Task) @@ -14,6 +16,7 @@ ui->setupUi(this); //初始化列表 this->initForm(); + } Depar_Task::~Depar_Task() @@ -69,45 +72,71 @@ } void Depar_Task::Load() { - //先设置为行为0 - ui->tableWidget->setRowCount(0); - //查询部门任务 获取DatabaseConnection对象 - //DatabaseConnection *Conn=DatabaseConnection::getInstance(); - //QSqlQuery query(Conn->getDatabase()); - // 创建数据库管理器对象 - //sloveCh dbManager; - // 调用数据库管理器的函数获取数据 - //QList data = dbManager.getAllData(); - //模拟用户ID - QString deptId="1601423748184150017"; - QList data = BaseCommonApi::getAllData(deptId,"3"); - int rowCount = 0; - int row=0; - QString State; - for (const Dept& dept : data) { - rowCount = ui->tableWidget->rowCount(); + SeachData(NULL,NULL,NULL,NULL,NULL); - ui->tableWidget->insertRow(rowCount); - ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); - //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); - ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 - ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 - ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 - ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 - ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 - ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 - ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 - if(dept.is_urgent=="1") - State="是"; - else - State="否"; - ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 - //QDebug - row++; +} - } +void Depar_Task::on_SelectButton_clicked() +{ + //查看按钮 } +void Depar_Task::SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime) +{ + if(DeviceName==NULL,Type==NULL,Client==NULL,depar==NULL,FinishTime==NULL){ + //先设置为行为0 + ui->tableWidget->setRowCount(0); + QString deptId="1601423748184150017"; + data = BaseCommonApi::getAllData(deptId,"3"); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(dept.sample_name)); //设置数据 + //添加Combox数据 + ui->comboBox->addItem(dept.sample_name); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(dept.sample_model)); //设置数据 + //添加Combox2数据 + ui->comboBox_2->addItem(dept.sample_model); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(dept.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(dept.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(dept.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(dept.customer_name)); //设置数据 + //添加Combox3数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.customer_name); + + } + + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(dept.FULL_NAME)); //设置数据 + //添加Combox4数据 + if(dept.customer_name!="") + { + ui->comboBox_3->addItem(dept.FULL_NAME); + } + + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(dept.require_over_time.toString())); //设置数据 + if(dept.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + //QDebug + row++; + } + } +} + +void Depar_Task::on_ResetButton_clicked() +{ + SeachData(NULL,NULL,NULL,NULL,NULL); +} diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index 110008d..a47fb11 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -17,13 +17,19 @@ Depar_Task(QWidget *parent = nullptr); ~Depar_Task(); - + QList data; private slots: - void initForm(); //初始化界面数据 + void initForm(); //初始化界面 + void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); + //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; + void on_SelectButton_clicked(); + + void on_ResetButton_clicked(); + private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index f44829d..0ebae89 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -156,7 +156,7 @@ - + 0 @@ -164,7 +164,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 152); @@ -174,10 +174,14 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - + 0 @@ -185,7 +189,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -195,6 +199,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -224,6 +232,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/id/TaskManager.h b/softwareDirectory/AutoVerScheme/id/TaskManager.h new file mode 100644 index 0000000..9bf1935 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/id/TaskManager.h @@ -0,0 +1,25 @@ +#ifndef TASKMANAGER_H +#define TASKMANAGER_H +#include +#include +#include +#include +#include +#include "basecommonapi.h" + +class TaskManager { +private: + static QMap dailyTaskCounts; // 日期 -> 任务单数量 + static QDate currentDate; + static QString KeyDate; + +public: + + + static int getTaskCountForToday(); + static bool AddCurrenTaskCount(); + static QString generateTask(QString Number); +}; + + +#endif // TASKMANAGER_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index eea27f0..8593fd8 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -104,6 +104,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -123,6 +125,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index a05368a..bf5bd8f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -32,7 +32,7 @@ - 1 + 0 @@ -173,7 +173,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -183,12 +183,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -198,6 +202,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -625,6 +633,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/main.cpp b/softwareDirectory/AutoVerScheme/main.cpp index 714f89d..207da0a 100644 --- a/softwareDirectory/AutoVerScheme/main.cpp +++ b/softwareDirectory/AutoVerScheme/main.cpp @@ -20,13 +20,13 @@ font.setPixelSize(13); a.setFont(font); //DataSyncView w; - IndexWindow w; + //IndexWindow w; //TestView w; //w.thread->start(); - //loginWindow w; + loginWindow w; w.show(); return a.exec(); } diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index e04a336..39f936a 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -155,7 +155,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -165,12 +165,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -180,6 +184,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -209,6 +217,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg new file mode 100644 index 0000000..5eef631 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg new file mode 100644 index 0000000..02c233d --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2189.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg new file mode 100644 index 0000000..2a3c360 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u2327.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg new file mode 100644 index 0000000..5f28e7e --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u5496.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg new file mode 100644 index 0000000..26b0af1 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u7313.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/res.qrc b/softwareDirectory/AutoVerScheme/res/res.qrc index 5cbeba7..6738816 100644 --- a/softwareDirectory/AutoVerScheme/res/res.qrc +++ b/softwareDirectory/AutoVerScheme/res/res.qrc @@ -49,5 +49,10 @@ image/Index/u2158.svg image/Index/u8448.svg image/Index/u8458.svg + image/Index/u2327.svg + image/Index/u5496.svg + image/Index/u7313.svg + image/Index/u2188.svg + image/Index/u2189.svg diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.cpp b/softwareDirectory/AutoVerScheme/rulefileitem.cpp index 9361752..dfd8ab6 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.cpp +++ b/softwareDirectory/AutoVerScheme/rulefileitem.cpp @@ -90,8 +90,8 @@ QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 - QPushButton *button = new QPushButton("详情"); - QPushButton *button2 = new QPushButton("预览"); + QPushButton *button = new QPushButton("预览"); + QPushButton *button2 = new QPushButton("下载"); //设置按钮1简单样式 button->setStyleSheet("QPushButton {" @@ -102,6 +102,9 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u5496.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -121,6 +124,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u7313.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/rulefileitem.ui b/softwareDirectory/AutoVerScheme/rulefileitem.ui index 4763c13..43a5098 100644 --- a/softwareDirectory/AutoVerScheme/rulefileitem.ui +++ b/softwareDirectory/AutoVerScheme/rulefileitem.ui @@ -106,7 +106,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -116,12 +116,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -131,6 +135,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -160,6 +168,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index 3489d64..4b6a5e0 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -121,6 +121,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui index ba62a28..7575a66 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui @@ -178,7 +178,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -188,12 +188,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -203,6 +207,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -938,6 +946,8 @@ - + + + diff --git a/softwareDirectory/AutoVerScheme/testdataitem.cpp b/softwareDirectory/AutoVerScheme/testdataitem.cpp index 08c3200..85fd2d0 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/testdataitem.cpp @@ -34,12 +34,14 @@ //item->setTextAlignment(Qt::AlignCenter); //ui->tableWidget->setItem(0, 0, item); //设置数据 ui->tableWidget->setColumnWidth(0,0); + ui->tableWidgetItem->setColumnWidth(0, 0); //初始化TableWidget 设置列 QStringList headers; headers <<"ID" << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" << "生产厂家"<<"委托单位" <<"使用部门"<< "检定员"<< "检定时间" <<"检定有效期"<<"计量标识"<<"限用说明"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + } void TestDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -108,6 +110,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button, &QPushButton::clicked, this, [this, button, row]() { // 获取当前行第一列的 ID @@ -127,6 +131,8 @@ // 设置鼠标悬停时的光标样式为小手图标 button2->setCursor(Qt::PointingHandCursor); + button2->setIconSize(QSize(16,16)); + button2->setIcon(QIcon(":/image/Index/u5496.svg")); // 连接按钮的 clicked 信号到自定义槽函数 connect(button2, &QPushButton::clicked, this, [this, button2, row]() { // 获取当前行第一列的 ID @@ -155,7 +161,7 @@ // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(id); ui->stackedWidget->setCurrentIndex(1); QMessageBox::information(this, "ID",id); } @@ -173,3 +179,45 @@ { ui->stackedWidget->setCurrentIndex(0); } +void TestDataItem::DeviceInfoInit(QString id) +{ + // ======================================================================================== + // 初始化详情 结果信息 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.getVerificationResultData(id,&headlist); + + + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + int rowCount=0; + int row=0; + for (const QStringList& item : Data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetItem->rowCount(); + ui->tableWidgetItem->insertRow(rowCount); + //添加 序号 + ui->tableWidgetItem->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + //循环读取值 headlist,count是列的数量 + for(int i=1;itableWidgetItem->setItem(row, i, new QTableWidgetItem(item[i])); + } + + row++; + + } +} + + + + + + + + + diff --git a/softwareDirectory/AutoVerScheme/testdataitem.h b/softwareDirectory/AutoVerScheme/testdataitem.h index 4e5a793..35e66ef 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.h +++ b/softwareDirectory/AutoVerScheme/testdataitem.h @@ -23,6 +23,7 @@ void OnButtonSelectClicked(QString id); void on_pushButton_clicked(); void OnButtonPreViewtClicked(QString id); + void DeviceInfoInit(QString id); private: Ui::TestDataItem *ui; }; diff --git a/softwareDirectory/AutoVerScheme/testdataitem.ui b/softwareDirectory/AutoVerScheme/testdataitem.ui index 337e1b5..5a78019 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.ui +++ b/softwareDirectory/AutoVerScheme/testdataitem.ui @@ -7,7 +7,7 @@ 0 0 1543 - 562 + 580 @@ -183,7 +183,7 @@ - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(3, 58, 132); @@ -193,12 +193,16 @@ 查询 + + + :/image/Index/u2189.svg:/image/Index/u2189.svg + - Qt::RightToLeft + Qt::LeftToRight background-color:rgb(207, 132, 33); @@ -208,6 +212,10 @@ 重置 + + + :/image/Index/u2188.svg:/image/Index/u2188.svg + @@ -657,10 +665,19 @@ + + 3 + + + + 0 + 0 + + 检定结果信息: @@ -671,6 +688,9 @@ Qt::Horizontal + + QSizePolicy::Expanding + 40 @@ -755,6 +775,8 @@ - + + +