diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index bf5bd8f..23ae25f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -171,7 +171,7 @@ - + Qt::LeftToRight @@ -190,7 +190,7 @@ - + Qt::LeftToRight @@ -424,19 +424,19 @@ - + - 生产厂家: + 环境温度: - + ForbiddenCursor @@ -452,12 +452,12 @@ - 型号规格: + 环境湿度: - + ForbiddenCursor @@ -473,12 +473,12 @@ - 设备名称: + 核查日期: - + ForbiddenCursor @@ -494,12 +494,12 @@ - 生产国家: + 核查地点: - + ForbiddenCursor @@ -515,12 +515,12 @@ - 检定有效期: + 核查员: - + ForbiddenCursor @@ -536,12 +536,12 @@ - 出厂编号: + 结论: - + ForbiddenCursor diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index bf5bd8f..23ae25f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -171,7 +171,7 @@ - + Qt::LeftToRight @@ -190,7 +190,7 @@ - + Qt::LeftToRight @@ -424,19 +424,19 @@ - + - 生产厂家: + 环境温度: - + ForbiddenCursor @@ -452,12 +452,12 @@ - 型号规格: + 环境湿度: - + ForbiddenCursor @@ -473,12 +473,12 @@ - 设备名称: + 核查日期: - + ForbiddenCursor @@ -494,12 +494,12 @@ - 生产国家: + 核查地点: - + ForbiddenCursor @@ -515,12 +515,12 @@ - 检定有效期: + 核查员: - + ForbiddenCursor @@ -536,12 +536,12 @@ - 出厂编号: + 结论: - + ForbiddenCursor diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index 0d0fa07..fe0b116 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -29,7 +29,7 @@ "}"); ui->tableWidget->setRowCount(10); // 设置10行 - ui->tableWidget->setColumnCount(10); // 设置11列 + ui->tableWidget->setColumnCount(11); // 设置11列 ui->tableWidget->setColumnWidth(0, 80); // 设置第一列的宽度为100像素 ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 QTableWidgetItem *item = new QTableWidgetItem("测试数据"); @@ -39,7 +39,7 @@ //初始化TableWidget 设置列 QStringList headers; headers << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" - << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"; + << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"<<"检测状态"; ui->tableWidget->setHorizontalHeaderLabels(headers); } @@ -63,24 +63,35 @@ { //先设置为行为0 ui->tableWidget->setRowCount(0); - + //添加comboBox + ui->combox_state->clear(); + ui->combox_dept->clear(); + ui->combox_type->clear(); + ui->combox_name->clear(); + ui->combox_customer->clear(); + ui->combox_state->addItem("ALL"); + ui->combox_state->addItem("待检测"); + ui->combox_state->addItem("检测完成"); + ui->combox_dept->addItem("ALL"); + ui->combox_name->addItem("ALL"); + ui->combox_type->addItem("ALL"); + ui->combox_customer->addItem("ALL"); BaseCommonApi dbManager; // 调用数据库管理器的函数获取数据 //模拟用户ID QString userId=""; - QList data = BaseCommonApi::getMyTasks(userId,"3"); + data = BaseCommonApi::getMyTasks(userId,"3"); int rowCount = 0; int row=0; QString State; for (const MyTask& myTask : data) { - rowCount = ui->tableWidget->rowCount(); - - ui->tableWidget->insertRow(rowCount); + if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + 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(myTask.sample_name)); //设置数据 ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 @@ -95,8 +106,130 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + //渲染下拉框 + SetHomePaheCombox(myTask); //QDebug row++; + } + } +} +void My_Task::SetHomePaheCombox(MyTask entity) +{ + if(comboBoxContainsItem(ui->combox_name,entity.sample_name)){ + ui->combox_name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->combox_dept,entity.FULL_NAME)){ + ui->combox_dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_type,entity.sample_model)){ + ui->combox_type->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + +} +bool My_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void My_Task::on_pushButtonUpdate_clicked() +{ + Load(); + ui->combox_dept->setCurrentIndex(0); + ui->combox_name->setCurrentIndex(0); + ui->combox_type->setCurrentIndex(0); + ui->combox_customer->setCurrentIndex(0); + ui->combox_state->setCurrentIndex(0); +} + +void My_Task::on_SeachButton_clicked() +{ + //查询按钮 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int statecount=0; + int rowCount=0; + int row=0; + QString State; + for (const MyTask& myTask : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_dept->currentText() != "ALL") { + if (ui->combox_dept->currentText() != myTask.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_name->currentText() != "ALL") { + if (ui->combox_name->currentText() != myTask.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_type->currentText() != "ALL") { + if (ui->combox_type->currentText() !=myTask.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != myTask.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + if (ui->combox_state->currentText() == "ALL" || // 如果是"ALL",显示所有设备 + (ui->combox_state->currentText() == "待检测" && myTask.measure_status == "3") || // 如果是"待检测",只显示state为3的设备 + (ui->combox_state->currentText() == "检测完成" && myTask.measure_status == "4")){ + + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(myTask.sample_name)); //设置数据 + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(myTask.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(myTask.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(myTask.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(myTask.customer_name)); //设置数据 + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(myTask.FULL_NAME)); //设置数据 + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(myTask.require_over_time.toString())); //设置数据 + if(myTask.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + + row++; + } + }; + } } diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index bf5bd8f..23ae25f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -171,7 +171,7 @@ - + Qt::LeftToRight @@ -190,7 +190,7 @@ - + Qt::LeftToRight @@ -424,19 +424,19 @@ - + - 生产厂家: + 环境温度: - + ForbiddenCursor @@ -452,12 +452,12 @@ - 型号规格: + 环境湿度: - + ForbiddenCursor @@ -473,12 +473,12 @@ - 设备名称: + 核查日期: - + ForbiddenCursor @@ -494,12 +494,12 @@ - 生产国家: + 核查地点: - + ForbiddenCursor @@ -515,12 +515,12 @@ - 检定有效期: + 核查员: - + ForbiddenCursor @@ -536,12 +536,12 @@ - 出厂编号: + 结论: - + ForbiddenCursor diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index 0d0fa07..fe0b116 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -29,7 +29,7 @@ "}"); ui->tableWidget->setRowCount(10); // 设置10行 - ui->tableWidget->setColumnCount(10); // 设置11列 + ui->tableWidget->setColumnCount(11); // 设置11列 ui->tableWidget->setColumnWidth(0, 80); // 设置第一列的宽度为100像素 ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 QTableWidgetItem *item = new QTableWidgetItem("测试数据"); @@ -39,7 +39,7 @@ //初始化TableWidget 设置列 QStringList headers; headers << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" - << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"; + << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"<<"检测状态"; ui->tableWidget->setHorizontalHeaderLabels(headers); } @@ -63,24 +63,35 @@ { //先设置为行为0 ui->tableWidget->setRowCount(0); - + //添加comboBox + ui->combox_state->clear(); + ui->combox_dept->clear(); + ui->combox_type->clear(); + ui->combox_name->clear(); + ui->combox_customer->clear(); + ui->combox_state->addItem("ALL"); + ui->combox_state->addItem("待检测"); + ui->combox_state->addItem("检测完成"); + ui->combox_dept->addItem("ALL"); + ui->combox_name->addItem("ALL"); + ui->combox_type->addItem("ALL"); + ui->combox_customer->addItem("ALL"); BaseCommonApi dbManager; // 调用数据库管理器的函数获取数据 //模拟用户ID QString userId=""; - QList data = BaseCommonApi::getMyTasks(userId,"3"); + data = BaseCommonApi::getMyTasks(userId,"3"); int rowCount = 0; int row=0; QString State; for (const MyTask& myTask : data) { - rowCount = ui->tableWidget->rowCount(); - - ui->tableWidget->insertRow(rowCount); + if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + 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(myTask.sample_name)); //设置数据 ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 @@ -95,8 +106,130 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + //渲染下拉框 + SetHomePaheCombox(myTask); //QDebug row++; + } + } +} +void My_Task::SetHomePaheCombox(MyTask entity) +{ + if(comboBoxContainsItem(ui->combox_name,entity.sample_name)){ + ui->combox_name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->combox_dept,entity.FULL_NAME)){ + ui->combox_dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_type,entity.sample_model)){ + ui->combox_type->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + +} +bool My_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void My_Task::on_pushButtonUpdate_clicked() +{ + Load(); + ui->combox_dept->setCurrentIndex(0); + ui->combox_name->setCurrentIndex(0); + ui->combox_type->setCurrentIndex(0); + ui->combox_customer->setCurrentIndex(0); + ui->combox_state->setCurrentIndex(0); +} + +void My_Task::on_SeachButton_clicked() +{ + //查询按钮 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int statecount=0; + int rowCount=0; + int row=0; + QString State; + for (const MyTask& myTask : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_dept->currentText() != "ALL") { + if (ui->combox_dept->currentText() != myTask.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_name->currentText() != "ALL") { + if (ui->combox_name->currentText() != myTask.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_type->currentText() != "ALL") { + if (ui->combox_type->currentText() !=myTask.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != myTask.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + if (ui->combox_state->currentText() == "ALL" || // 如果是"ALL",显示所有设备 + (ui->combox_state->currentText() == "待检测" && myTask.measure_status == "3") || // 如果是"待检测",只显示state为3的设备 + (ui->combox_state->currentText() == "检测完成" && myTask.measure_status == "4")){ + + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(myTask.sample_name)); //设置数据 + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(myTask.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(myTask.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(myTask.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(myTask.customer_name)); //设置数据 + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(myTask.FULL_NAME)); //设置数据 + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(myTask.require_over_time.toString())); //设置数据 + if(myTask.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + + row++; + } + }; + } } diff --git a/softwareDirectory/AutoVerScheme/my_task.h b/softwareDirectory/AutoVerScheme/my_task.h index d6600cb..d764c45 100644 --- a/softwareDirectory/AutoVerScheme/my_task.h +++ b/softwareDirectory/AutoVerScheme/my_task.h @@ -21,6 +21,13 @@ void initForm(); //初始化界面数据 void ShowMessageBox(QString title,QString value); void Load() override; + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(MyTask entity); + void on_pushButtonUpdate_clicked(); + + void on_SeachButton_clicked(); +public: + QList data; private: Ui::My_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index bf5bd8f..23ae25f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -171,7 +171,7 @@ - + Qt::LeftToRight @@ -190,7 +190,7 @@ - + Qt::LeftToRight @@ -424,19 +424,19 @@ - + - 生产厂家: + 环境温度: - + ForbiddenCursor @@ -452,12 +452,12 @@ - 型号规格: + 环境湿度: - + ForbiddenCursor @@ -473,12 +473,12 @@ - 设备名称: + 核查日期: - + ForbiddenCursor @@ -494,12 +494,12 @@ - 生产国家: + 核查地点: - + ForbiddenCursor @@ -515,12 +515,12 @@ - 检定有效期: + 核查员: - + ForbiddenCursor @@ -536,12 +536,12 @@ - 出厂编号: + 结论: - + ForbiddenCursor diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index 0d0fa07..fe0b116 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -29,7 +29,7 @@ "}"); ui->tableWidget->setRowCount(10); // 设置10行 - ui->tableWidget->setColumnCount(10); // 设置11列 + ui->tableWidget->setColumnCount(11); // 设置11列 ui->tableWidget->setColumnWidth(0, 80); // 设置第一列的宽度为100像素 ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 QTableWidgetItem *item = new QTableWidgetItem("测试数据"); @@ -39,7 +39,7 @@ //初始化TableWidget 设置列 QStringList headers; headers << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" - << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"; + << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"<<"检测状态"; ui->tableWidget->setHorizontalHeaderLabels(headers); } @@ -63,24 +63,35 @@ { //先设置为行为0 ui->tableWidget->setRowCount(0); - + //添加comboBox + ui->combox_state->clear(); + ui->combox_dept->clear(); + ui->combox_type->clear(); + ui->combox_name->clear(); + ui->combox_customer->clear(); + ui->combox_state->addItem("ALL"); + ui->combox_state->addItem("待检测"); + ui->combox_state->addItem("检测完成"); + ui->combox_dept->addItem("ALL"); + ui->combox_name->addItem("ALL"); + ui->combox_type->addItem("ALL"); + ui->combox_customer->addItem("ALL"); BaseCommonApi dbManager; // 调用数据库管理器的函数获取数据 //模拟用户ID QString userId=""; - QList data = BaseCommonApi::getMyTasks(userId,"3"); + data = BaseCommonApi::getMyTasks(userId,"3"); int rowCount = 0; int row=0; QString State; for (const MyTask& myTask : data) { - rowCount = ui->tableWidget->rowCount(); - - ui->tableWidget->insertRow(rowCount); + if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + 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(myTask.sample_name)); //设置数据 ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 @@ -95,8 +106,130 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + //渲染下拉框 + SetHomePaheCombox(myTask); //QDebug row++; + } + } +} +void My_Task::SetHomePaheCombox(MyTask entity) +{ + if(comboBoxContainsItem(ui->combox_name,entity.sample_name)){ + ui->combox_name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->combox_dept,entity.FULL_NAME)){ + ui->combox_dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_type,entity.sample_model)){ + ui->combox_type->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + +} +bool My_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void My_Task::on_pushButtonUpdate_clicked() +{ + Load(); + ui->combox_dept->setCurrentIndex(0); + ui->combox_name->setCurrentIndex(0); + ui->combox_type->setCurrentIndex(0); + ui->combox_customer->setCurrentIndex(0); + ui->combox_state->setCurrentIndex(0); +} + +void My_Task::on_SeachButton_clicked() +{ + //查询按钮 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int statecount=0; + int rowCount=0; + int row=0; + QString State; + for (const MyTask& myTask : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_dept->currentText() != "ALL") { + if (ui->combox_dept->currentText() != myTask.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_name->currentText() != "ALL") { + if (ui->combox_name->currentText() != myTask.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_type->currentText() != "ALL") { + if (ui->combox_type->currentText() !=myTask.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != myTask.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + if (ui->combox_state->currentText() == "ALL" || // 如果是"ALL",显示所有设备 + (ui->combox_state->currentText() == "待检测" && myTask.measure_status == "3") || // 如果是"待检测",只显示state为3的设备 + (ui->combox_state->currentText() == "检测完成" && myTask.measure_status == "4")){ + + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(myTask.sample_name)); //设置数据 + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(myTask.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(myTask.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(myTask.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(myTask.customer_name)); //设置数据 + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(myTask.FULL_NAME)); //设置数据 + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(myTask.require_over_time.toString())); //设置数据 + if(myTask.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + + row++; + } + }; + } } diff --git a/softwareDirectory/AutoVerScheme/my_task.h b/softwareDirectory/AutoVerScheme/my_task.h index d6600cb..d764c45 100644 --- a/softwareDirectory/AutoVerScheme/my_task.h +++ b/softwareDirectory/AutoVerScheme/my_task.h @@ -21,6 +21,13 @@ void initForm(); //初始化界面数据 void ShowMessageBox(QString title,QString value); void Load() override; + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(MyTask entity); + void on_pushButtonUpdate_clicked(); + + void on_SeachButton_clicked(); +public: + QList data; private: Ui::My_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index 96646e4..16aff2f 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -6,13 +6,16 @@ 0 0 - 1190 + 1366 577 Form + + color:black; + @@ -49,7 +52,7 @@ - + @@ -71,7 +74,7 @@ - + @@ -93,7 +96,7 @@ - + @@ -115,7 +118,7 @@ - + @@ -147,7 +150,7 @@ - + @@ -163,7 +166,7 @@ - + Qt::LeftToRight @@ -182,7 +185,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index bf5bd8f..23ae25f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -171,7 +171,7 @@ - + Qt::LeftToRight @@ -190,7 +190,7 @@ - + Qt::LeftToRight @@ -424,19 +424,19 @@ - + - 生产厂家: + 环境温度: - + ForbiddenCursor @@ -452,12 +452,12 @@ - 型号规格: + 环境湿度: - + ForbiddenCursor @@ -473,12 +473,12 @@ - 设备名称: + 核查日期: - + ForbiddenCursor @@ -494,12 +494,12 @@ - 生产国家: + 核查地点: - + ForbiddenCursor @@ -515,12 +515,12 @@ - 检定有效期: + 核查员: - + ForbiddenCursor @@ -536,12 +536,12 @@ - 出厂编号: + 结论: - + ForbiddenCursor diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index 0d0fa07..fe0b116 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -29,7 +29,7 @@ "}"); ui->tableWidget->setRowCount(10); // 设置10行 - ui->tableWidget->setColumnCount(10); // 设置11列 + ui->tableWidget->setColumnCount(11); // 设置11列 ui->tableWidget->setColumnWidth(0, 80); // 设置第一列的宽度为100像素 ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 QTableWidgetItem *item = new QTableWidgetItem("测试数据"); @@ -39,7 +39,7 @@ //初始化TableWidget 设置列 QStringList headers; headers << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" - << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"; + << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"<<"检测状态"; ui->tableWidget->setHorizontalHeaderLabels(headers); } @@ -63,24 +63,35 @@ { //先设置为行为0 ui->tableWidget->setRowCount(0); - + //添加comboBox + ui->combox_state->clear(); + ui->combox_dept->clear(); + ui->combox_type->clear(); + ui->combox_name->clear(); + ui->combox_customer->clear(); + ui->combox_state->addItem("ALL"); + ui->combox_state->addItem("待检测"); + ui->combox_state->addItem("检测完成"); + ui->combox_dept->addItem("ALL"); + ui->combox_name->addItem("ALL"); + ui->combox_type->addItem("ALL"); + ui->combox_customer->addItem("ALL"); BaseCommonApi dbManager; // 调用数据库管理器的函数获取数据 //模拟用户ID QString userId=""; - QList data = BaseCommonApi::getMyTasks(userId,"3"); + data = BaseCommonApi::getMyTasks(userId,"3"); int rowCount = 0; int row=0; QString State; for (const MyTask& myTask : data) { - rowCount = ui->tableWidget->rowCount(); - - ui->tableWidget->insertRow(rowCount); + if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + 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(myTask.sample_name)); //设置数据 ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 @@ -95,8 +106,130 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + //渲染下拉框 + SetHomePaheCombox(myTask); //QDebug row++; + } + } +} +void My_Task::SetHomePaheCombox(MyTask entity) +{ + if(comboBoxContainsItem(ui->combox_name,entity.sample_name)){ + ui->combox_name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->combox_dept,entity.FULL_NAME)){ + ui->combox_dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_type,entity.sample_model)){ + ui->combox_type->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + +} +bool My_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void My_Task::on_pushButtonUpdate_clicked() +{ + Load(); + ui->combox_dept->setCurrentIndex(0); + ui->combox_name->setCurrentIndex(0); + ui->combox_type->setCurrentIndex(0); + ui->combox_customer->setCurrentIndex(0); + ui->combox_state->setCurrentIndex(0); +} + +void My_Task::on_SeachButton_clicked() +{ + //查询按钮 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int statecount=0; + int rowCount=0; + int row=0; + QString State; + for (const MyTask& myTask : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_dept->currentText() != "ALL") { + if (ui->combox_dept->currentText() != myTask.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_name->currentText() != "ALL") { + if (ui->combox_name->currentText() != myTask.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_type->currentText() != "ALL") { + if (ui->combox_type->currentText() !=myTask.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != myTask.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + if (ui->combox_state->currentText() == "ALL" || // 如果是"ALL",显示所有设备 + (ui->combox_state->currentText() == "待检测" && myTask.measure_status == "3") || // 如果是"待检测",只显示state为3的设备 + (ui->combox_state->currentText() == "检测完成" && myTask.measure_status == "4")){ + + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(myTask.sample_name)); //设置数据 + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(myTask.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(myTask.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(myTask.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(myTask.customer_name)); //设置数据 + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(myTask.FULL_NAME)); //设置数据 + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(myTask.require_over_time.toString())); //设置数据 + if(myTask.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + + row++; + } + }; + } } diff --git a/softwareDirectory/AutoVerScheme/my_task.h b/softwareDirectory/AutoVerScheme/my_task.h index d6600cb..d764c45 100644 --- a/softwareDirectory/AutoVerScheme/my_task.h +++ b/softwareDirectory/AutoVerScheme/my_task.h @@ -21,6 +21,13 @@ void initForm(); //初始化界面数据 void ShowMessageBox(QString title,QString value); void Load() override; + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(MyTask entity); + void on_pushButtonUpdate_clicked(); + + void on_SeachButton_clicked(); +public: + QList data; private: Ui::My_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index 96646e4..16aff2f 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -6,13 +6,16 @@ 0 0 - 1190 + 1366 577 Form + + color:black; + @@ -49,7 +52,7 @@ - + @@ -71,7 +74,7 @@ - + @@ -93,7 +96,7 @@ - + @@ -115,7 +118,7 @@ - + @@ -147,7 +150,7 @@ - + @@ -163,7 +166,7 @@ - + Qt::LeftToRight @@ -182,7 +185,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index eda35ae..e4bb168 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -84,7 +84,15 @@ } void Standard_DeviceItem::Load() { + //获取主页面内容 + //初始化下拉框 + ui->combox_devicename->clear(); + ui->combox_mode->clear(); + ui->combox_manufacturer_->clear(); + ui->combox_devicename->addItem("ALL"); + ui->combox_mode->addItem("ALL"); + ui->combox_manufacturer_->addItem("ALL"); //进入主页面 ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -96,7 +104,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = BaseCommonApi::getBizDeviceManage(); + data = BaseCommonApi::getBizDeviceManage(); for (const BizDevice& bizDevice : data) { @@ -135,6 +143,8 @@ }); + //渲染下拉框 + SetHomePaheCombox(bizDevice); row++; } @@ -231,20 +241,114 @@ } } +void Standard_DeviceItem::SetHomePaheCombox(BizDevice entity) +{ + if(comboBoxContainsItem(ui->combox_mode,entity.model)){ + ui->combox_mode->addItem(entity.model); + } + if(comboBoxContainsItem(ui->combox_devicename,entity.equipment_name)){ + ui->combox_devicename->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->combox_manufacturer_,entity.manufacturer)){ + ui->combox_manufacturer_->addItem(entity.manufacturer); + } +} +bool Standard_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Standard_DeviceItem::on_Select_clicked() +{ + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const BizDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_devicename->currentText() != "ALL") { + if (ui->combox_devicename->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_mode->currentText() != "ALL") { + if (ui->combox_mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_manufacturer_->currentText() != "ALL") { + if (ui->combox_manufacturer_->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacturer)); + //添加操作按钮 + QPushButton *button = new QPushButton("查看"); + ui->tableWidget->setCellWidget(row, 6, button); + //设置按钮简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + } + }); + row++; + } + } +} - - - - +void Standard_DeviceItem::on_pushButton_8_clicked() +{ + Load(); + ui->combox_devicename->setCurrentIndex(0); + ui->combox_mode->setCurrentIndex(0); + ui->combox_manufacturer_->setCurrentIndex(0); + ui->number->setText(""); +} diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index bf5bd8f..23ae25f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -171,7 +171,7 @@ - + Qt::LeftToRight @@ -190,7 +190,7 @@ - + Qt::LeftToRight @@ -424,19 +424,19 @@ - + - 生产厂家: + 环境温度: - + ForbiddenCursor @@ -452,12 +452,12 @@ - 型号规格: + 环境湿度: - + ForbiddenCursor @@ -473,12 +473,12 @@ - 设备名称: + 核查日期: - + ForbiddenCursor @@ -494,12 +494,12 @@ - 生产国家: + 核查地点: - + ForbiddenCursor @@ -515,12 +515,12 @@ - 检定有效期: + 核查员: - + ForbiddenCursor @@ -536,12 +536,12 @@ - 出厂编号: + 结论: - + ForbiddenCursor diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index 0d0fa07..fe0b116 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -29,7 +29,7 @@ "}"); ui->tableWidget->setRowCount(10); // 设置10行 - ui->tableWidget->setColumnCount(10); // 设置11列 + ui->tableWidget->setColumnCount(11); // 设置11列 ui->tableWidget->setColumnWidth(0, 80); // 设置第一列的宽度为100像素 ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 QTableWidgetItem *item = new QTableWidgetItem("测试数据"); @@ -39,7 +39,7 @@ //初始化TableWidget 设置列 QStringList headers; headers << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" - << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"; + << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"<<"检测状态"; ui->tableWidget->setHorizontalHeaderLabels(headers); } @@ -63,24 +63,35 @@ { //先设置为行为0 ui->tableWidget->setRowCount(0); - + //添加comboBox + ui->combox_state->clear(); + ui->combox_dept->clear(); + ui->combox_type->clear(); + ui->combox_name->clear(); + ui->combox_customer->clear(); + ui->combox_state->addItem("ALL"); + ui->combox_state->addItem("待检测"); + ui->combox_state->addItem("检测完成"); + ui->combox_dept->addItem("ALL"); + ui->combox_name->addItem("ALL"); + ui->combox_type->addItem("ALL"); + ui->combox_customer->addItem("ALL"); BaseCommonApi dbManager; // 调用数据库管理器的函数获取数据 //模拟用户ID QString userId=""; - QList data = BaseCommonApi::getMyTasks(userId,"3"); + data = BaseCommonApi::getMyTasks(userId,"3"); int rowCount = 0; int row=0; QString State; for (const MyTask& myTask : data) { - rowCount = ui->tableWidget->rowCount(); - - ui->tableWidget->insertRow(rowCount); + if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + 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(myTask.sample_name)); //设置数据 ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 @@ -95,8 +106,130 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + //渲染下拉框 + SetHomePaheCombox(myTask); //QDebug row++; + } + } +} +void My_Task::SetHomePaheCombox(MyTask entity) +{ + if(comboBoxContainsItem(ui->combox_name,entity.sample_name)){ + ui->combox_name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->combox_dept,entity.FULL_NAME)){ + ui->combox_dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_type,entity.sample_model)){ + ui->combox_type->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + +} +bool My_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void My_Task::on_pushButtonUpdate_clicked() +{ + Load(); + ui->combox_dept->setCurrentIndex(0); + ui->combox_name->setCurrentIndex(0); + ui->combox_type->setCurrentIndex(0); + ui->combox_customer->setCurrentIndex(0); + ui->combox_state->setCurrentIndex(0); +} + +void My_Task::on_SeachButton_clicked() +{ + //查询按钮 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int statecount=0; + int rowCount=0; + int row=0; + QString State; + for (const MyTask& myTask : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_dept->currentText() != "ALL") { + if (ui->combox_dept->currentText() != myTask.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_name->currentText() != "ALL") { + if (ui->combox_name->currentText() != myTask.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_type->currentText() != "ALL") { + if (ui->combox_type->currentText() !=myTask.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != myTask.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + if (ui->combox_state->currentText() == "ALL" || // 如果是"ALL",显示所有设备 + (ui->combox_state->currentText() == "待检测" && myTask.measure_status == "3") || // 如果是"待检测",只显示state为3的设备 + (ui->combox_state->currentText() == "检测完成" && myTask.measure_status == "4")){ + + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(myTask.sample_name)); //设置数据 + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(myTask.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(myTask.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(myTask.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(myTask.customer_name)); //设置数据 + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(myTask.FULL_NAME)); //设置数据 + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(myTask.require_over_time.toString())); //设置数据 + if(myTask.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + + row++; + } + }; + } } diff --git a/softwareDirectory/AutoVerScheme/my_task.h b/softwareDirectory/AutoVerScheme/my_task.h index d6600cb..d764c45 100644 --- a/softwareDirectory/AutoVerScheme/my_task.h +++ b/softwareDirectory/AutoVerScheme/my_task.h @@ -21,6 +21,13 @@ void initForm(); //初始化界面数据 void ShowMessageBox(QString title,QString value); void Load() override; + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(MyTask entity); + void on_pushButtonUpdate_clicked(); + + void on_SeachButton_clicked(); +public: + QList data; private: Ui::My_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index 96646e4..16aff2f 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -6,13 +6,16 @@ 0 0 - 1190 + 1366 577 Form + + color:black; + @@ -49,7 +52,7 @@ - + @@ -71,7 +74,7 @@ - + @@ -93,7 +96,7 @@ - + @@ -115,7 +118,7 @@ - + @@ -147,7 +150,7 @@ - + @@ -163,7 +166,7 @@ - + Qt::LeftToRight @@ -182,7 +185,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index eda35ae..e4bb168 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -84,7 +84,15 @@ } void Standard_DeviceItem::Load() { + //获取主页面内容 + //初始化下拉框 + ui->combox_devicename->clear(); + ui->combox_mode->clear(); + ui->combox_manufacturer_->clear(); + ui->combox_devicename->addItem("ALL"); + ui->combox_mode->addItem("ALL"); + ui->combox_manufacturer_->addItem("ALL"); //进入主页面 ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -96,7 +104,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = BaseCommonApi::getBizDeviceManage(); + data = BaseCommonApi::getBizDeviceManage(); for (const BizDevice& bizDevice : data) { @@ -135,6 +143,8 @@ }); + //渲染下拉框 + SetHomePaheCombox(bizDevice); row++; } @@ -231,20 +241,114 @@ } } +void Standard_DeviceItem::SetHomePaheCombox(BizDevice entity) +{ + if(comboBoxContainsItem(ui->combox_mode,entity.model)){ + ui->combox_mode->addItem(entity.model); + } + if(comboBoxContainsItem(ui->combox_devicename,entity.equipment_name)){ + ui->combox_devicename->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->combox_manufacturer_,entity.manufacturer)){ + ui->combox_manufacturer_->addItem(entity.manufacturer); + } +} +bool Standard_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Standard_DeviceItem::on_Select_clicked() +{ + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const BizDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_devicename->currentText() != "ALL") { + if (ui->combox_devicename->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_mode->currentText() != "ALL") { + if (ui->combox_mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_manufacturer_->currentText() != "ALL") { + if (ui->combox_manufacturer_->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacturer)); + //添加操作按钮 + QPushButton *button = new QPushButton("查看"); + ui->tableWidget->setCellWidget(row, 6, button); + //设置按钮简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + } + }); + row++; + } + } +} - - - - +void Standard_DeviceItem::on_pushButton_8_clicked() +{ + Load(); + ui->combox_devicename->setCurrentIndex(0); + ui->combox_mode->setCurrentIndex(0); + ui->combox_manufacturer_->setCurrentIndex(0); + ui->number->setText(""); +} diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.h b/softwareDirectory/AutoVerScheme/standard_deviceitem.h index b757e67..f522658 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.h @@ -23,6 +23,13 @@ void OnButtonSelectClicked(QString id); void on_pushButton_clicked(); void DeviceInfoInit(QString id); + void SetHomePaheCombox(BizDevice entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_Select_clicked(); + + void on_pushButton_8_clicked(); +public: + QList data; private: Ui::Standard_DeviceItem *ui; }; diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index bf5bd8f..23ae25f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -171,7 +171,7 @@ - + Qt::LeftToRight @@ -190,7 +190,7 @@ - + Qt::LeftToRight @@ -424,19 +424,19 @@ - + - 生产厂家: + 环境温度: - + ForbiddenCursor @@ -452,12 +452,12 @@ - 型号规格: + 环境湿度: - + ForbiddenCursor @@ -473,12 +473,12 @@ - 设备名称: + 核查日期: - + ForbiddenCursor @@ -494,12 +494,12 @@ - 生产国家: + 核查地点: - + ForbiddenCursor @@ -515,12 +515,12 @@ - 检定有效期: + 核查员: - + ForbiddenCursor @@ -536,12 +536,12 @@ - 出厂编号: + 结论: - + ForbiddenCursor diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index 0d0fa07..fe0b116 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -29,7 +29,7 @@ "}"); ui->tableWidget->setRowCount(10); // 设置10行 - ui->tableWidget->setColumnCount(10); // 设置11列 + ui->tableWidget->setColumnCount(11); // 设置11列 ui->tableWidget->setColumnWidth(0, 80); // 设置第一列的宽度为100像素 ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 QTableWidgetItem *item = new QTableWidgetItem("测试数据"); @@ -39,7 +39,7 @@ //初始化TableWidget 设置列 QStringList headers; headers << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" - << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"; + << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"<<"检测状态"; ui->tableWidget->setHorizontalHeaderLabels(headers); } @@ -63,24 +63,35 @@ { //先设置为行为0 ui->tableWidget->setRowCount(0); - + //添加comboBox + ui->combox_state->clear(); + ui->combox_dept->clear(); + ui->combox_type->clear(); + ui->combox_name->clear(); + ui->combox_customer->clear(); + ui->combox_state->addItem("ALL"); + ui->combox_state->addItem("待检测"); + ui->combox_state->addItem("检测完成"); + ui->combox_dept->addItem("ALL"); + ui->combox_name->addItem("ALL"); + ui->combox_type->addItem("ALL"); + ui->combox_customer->addItem("ALL"); BaseCommonApi dbManager; // 调用数据库管理器的函数获取数据 //模拟用户ID QString userId=""; - QList data = BaseCommonApi::getMyTasks(userId,"3"); + data = BaseCommonApi::getMyTasks(userId,"3"); int rowCount = 0; int row=0; QString State; for (const MyTask& myTask : data) { - rowCount = ui->tableWidget->rowCount(); - - ui->tableWidget->insertRow(rowCount); + if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + 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(myTask.sample_name)); //设置数据 ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 @@ -95,8 +106,130 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + //渲染下拉框 + SetHomePaheCombox(myTask); //QDebug row++; + } + } +} +void My_Task::SetHomePaheCombox(MyTask entity) +{ + if(comboBoxContainsItem(ui->combox_name,entity.sample_name)){ + ui->combox_name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->combox_dept,entity.FULL_NAME)){ + ui->combox_dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_type,entity.sample_model)){ + ui->combox_type->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + +} +bool My_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void My_Task::on_pushButtonUpdate_clicked() +{ + Load(); + ui->combox_dept->setCurrentIndex(0); + ui->combox_name->setCurrentIndex(0); + ui->combox_type->setCurrentIndex(0); + ui->combox_customer->setCurrentIndex(0); + ui->combox_state->setCurrentIndex(0); +} + +void My_Task::on_SeachButton_clicked() +{ + //查询按钮 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int statecount=0; + int rowCount=0; + int row=0; + QString State; + for (const MyTask& myTask : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_dept->currentText() != "ALL") { + if (ui->combox_dept->currentText() != myTask.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_name->currentText() != "ALL") { + if (ui->combox_name->currentText() != myTask.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_type->currentText() != "ALL") { + if (ui->combox_type->currentText() !=myTask.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != myTask.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + if (ui->combox_state->currentText() == "ALL" || // 如果是"ALL",显示所有设备 + (ui->combox_state->currentText() == "待检测" && myTask.measure_status == "3") || // 如果是"待检测",只显示state为3的设备 + (ui->combox_state->currentText() == "检测完成" && myTask.measure_status == "4")){ + + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(myTask.sample_name)); //设置数据 + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(myTask.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(myTask.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(myTask.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(myTask.customer_name)); //设置数据 + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(myTask.FULL_NAME)); //设置数据 + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(myTask.require_over_time.toString())); //设置数据 + if(myTask.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + + row++; + } + }; + } } diff --git a/softwareDirectory/AutoVerScheme/my_task.h b/softwareDirectory/AutoVerScheme/my_task.h index d6600cb..d764c45 100644 --- a/softwareDirectory/AutoVerScheme/my_task.h +++ b/softwareDirectory/AutoVerScheme/my_task.h @@ -21,6 +21,13 @@ void initForm(); //初始化界面数据 void ShowMessageBox(QString title,QString value); void Load() override; + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(MyTask entity); + void on_pushButtonUpdate_clicked(); + + void on_SeachButton_clicked(); +public: + QList data; private: Ui::My_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index 96646e4..16aff2f 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -6,13 +6,16 @@ 0 0 - 1190 + 1366 577 Form + + color:black; + @@ -49,7 +52,7 @@ - + @@ -71,7 +74,7 @@ - + @@ -93,7 +96,7 @@ - + @@ -115,7 +118,7 @@ - + @@ -147,7 +150,7 @@ - + @@ -163,7 +166,7 @@ - + Qt::LeftToRight @@ -182,7 +185,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index eda35ae..e4bb168 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -84,7 +84,15 @@ } void Standard_DeviceItem::Load() { + //获取主页面内容 + //初始化下拉框 + ui->combox_devicename->clear(); + ui->combox_mode->clear(); + ui->combox_manufacturer_->clear(); + ui->combox_devicename->addItem("ALL"); + ui->combox_mode->addItem("ALL"); + ui->combox_manufacturer_->addItem("ALL"); //进入主页面 ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -96,7 +104,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = BaseCommonApi::getBizDeviceManage(); + data = BaseCommonApi::getBizDeviceManage(); for (const BizDevice& bizDevice : data) { @@ -135,6 +143,8 @@ }); + //渲染下拉框 + SetHomePaheCombox(bizDevice); row++; } @@ -231,20 +241,114 @@ } } +void Standard_DeviceItem::SetHomePaheCombox(BizDevice entity) +{ + if(comboBoxContainsItem(ui->combox_mode,entity.model)){ + ui->combox_mode->addItem(entity.model); + } + if(comboBoxContainsItem(ui->combox_devicename,entity.equipment_name)){ + ui->combox_devicename->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->combox_manufacturer_,entity.manufacturer)){ + ui->combox_manufacturer_->addItem(entity.manufacturer); + } +} +bool Standard_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Standard_DeviceItem::on_Select_clicked() +{ + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const BizDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_devicename->currentText() != "ALL") { + if (ui->combox_devicename->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_mode->currentText() != "ALL") { + if (ui->combox_mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_manufacturer_->currentText() != "ALL") { + if (ui->combox_manufacturer_->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacturer)); + //添加操作按钮 + QPushButton *button = new QPushButton("查看"); + ui->tableWidget->setCellWidget(row, 6, button); + //设置按钮简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + } + }); + row++; + } + } +} - - - - +void Standard_DeviceItem::on_pushButton_8_clicked() +{ + Load(); + ui->combox_devicename->setCurrentIndex(0); + ui->combox_mode->setCurrentIndex(0); + ui->combox_manufacturer_->setCurrentIndex(0); + ui->number->setText(""); +} diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.h b/softwareDirectory/AutoVerScheme/standard_deviceitem.h index b757e67..f522658 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.h @@ -23,6 +23,13 @@ void OnButtonSelectClicked(QString id); void on_pushButton_clicked(); void DeviceInfoInit(QString id); + void SetHomePaheCombox(BizDevice entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_Select_clicked(); + + void on_pushButton_8_clicked(); +public: + QList data; private: Ui::Standard_DeviceItem *ui; }; diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui index 7575a66..9b1acd4 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -176,7 +176,7 @@ - + Qt::LeftToRight @@ -195,7 +195,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index bf5bd8f..23ae25f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -171,7 +171,7 @@ - + Qt::LeftToRight @@ -190,7 +190,7 @@ - + Qt::LeftToRight @@ -424,19 +424,19 @@ - + - 生产厂家: + 环境温度: - + ForbiddenCursor @@ -452,12 +452,12 @@ - 型号规格: + 环境湿度: - + ForbiddenCursor @@ -473,12 +473,12 @@ - 设备名称: + 核查日期: - + ForbiddenCursor @@ -494,12 +494,12 @@ - 生产国家: + 核查地点: - + ForbiddenCursor @@ -515,12 +515,12 @@ - 检定有效期: + 核查员: - + ForbiddenCursor @@ -536,12 +536,12 @@ - 出厂编号: + 结论: - + ForbiddenCursor diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index 0d0fa07..fe0b116 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -29,7 +29,7 @@ "}"); ui->tableWidget->setRowCount(10); // 设置10行 - ui->tableWidget->setColumnCount(10); // 设置11列 + ui->tableWidget->setColumnCount(11); // 设置11列 ui->tableWidget->setColumnWidth(0, 80); // 设置第一列的宽度为100像素 ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 QTableWidgetItem *item = new QTableWidgetItem("测试数据"); @@ -39,7 +39,7 @@ //初始化TableWidget 设置列 QStringList headers; headers << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" - << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"; + << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"<<"检测状态"; ui->tableWidget->setHorizontalHeaderLabels(headers); } @@ -63,24 +63,35 @@ { //先设置为行为0 ui->tableWidget->setRowCount(0); - + //添加comboBox + ui->combox_state->clear(); + ui->combox_dept->clear(); + ui->combox_type->clear(); + ui->combox_name->clear(); + ui->combox_customer->clear(); + ui->combox_state->addItem("ALL"); + ui->combox_state->addItem("待检测"); + ui->combox_state->addItem("检测完成"); + ui->combox_dept->addItem("ALL"); + ui->combox_name->addItem("ALL"); + ui->combox_type->addItem("ALL"); + ui->combox_customer->addItem("ALL"); BaseCommonApi dbManager; // 调用数据库管理器的函数获取数据 //模拟用户ID QString userId=""; - QList data = BaseCommonApi::getMyTasks(userId,"3"); + data = BaseCommonApi::getMyTasks(userId,"3"); int rowCount = 0; int row=0; QString State; for (const MyTask& myTask : data) { - rowCount = ui->tableWidget->rowCount(); - - ui->tableWidget->insertRow(rowCount); + if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + 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(myTask.sample_name)); //设置数据 ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 @@ -95,8 +106,130 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + //渲染下拉框 + SetHomePaheCombox(myTask); //QDebug row++; + } + } +} +void My_Task::SetHomePaheCombox(MyTask entity) +{ + if(comboBoxContainsItem(ui->combox_name,entity.sample_name)){ + ui->combox_name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->combox_dept,entity.FULL_NAME)){ + ui->combox_dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_type,entity.sample_model)){ + ui->combox_type->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + +} +bool My_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void My_Task::on_pushButtonUpdate_clicked() +{ + Load(); + ui->combox_dept->setCurrentIndex(0); + ui->combox_name->setCurrentIndex(0); + ui->combox_type->setCurrentIndex(0); + ui->combox_customer->setCurrentIndex(0); + ui->combox_state->setCurrentIndex(0); +} + +void My_Task::on_SeachButton_clicked() +{ + //查询按钮 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int statecount=0; + int rowCount=0; + int row=0; + QString State; + for (const MyTask& myTask : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_dept->currentText() != "ALL") { + if (ui->combox_dept->currentText() != myTask.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_name->currentText() != "ALL") { + if (ui->combox_name->currentText() != myTask.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_type->currentText() != "ALL") { + if (ui->combox_type->currentText() !=myTask.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != myTask.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + if (ui->combox_state->currentText() == "ALL" || // 如果是"ALL",显示所有设备 + (ui->combox_state->currentText() == "待检测" && myTask.measure_status == "3") || // 如果是"待检测",只显示state为3的设备 + (ui->combox_state->currentText() == "检测完成" && myTask.measure_status == "4")){ + + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(myTask.sample_name)); //设置数据 + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(myTask.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(myTask.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(myTask.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(myTask.customer_name)); //设置数据 + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(myTask.FULL_NAME)); //设置数据 + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(myTask.require_over_time.toString())); //设置数据 + if(myTask.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + + row++; + } + }; + } } diff --git a/softwareDirectory/AutoVerScheme/my_task.h b/softwareDirectory/AutoVerScheme/my_task.h index d6600cb..d764c45 100644 --- a/softwareDirectory/AutoVerScheme/my_task.h +++ b/softwareDirectory/AutoVerScheme/my_task.h @@ -21,6 +21,13 @@ void initForm(); //初始化界面数据 void ShowMessageBox(QString title,QString value); void Load() override; + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(MyTask entity); + void on_pushButtonUpdate_clicked(); + + void on_SeachButton_clicked(); +public: + QList data; private: Ui::My_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index 96646e4..16aff2f 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -6,13 +6,16 @@ 0 0 - 1190 + 1366 577 Form + + color:black; + @@ -49,7 +52,7 @@ - + @@ -71,7 +74,7 @@ - + @@ -93,7 +96,7 @@ - + @@ -115,7 +118,7 @@ - + @@ -147,7 +150,7 @@ - + @@ -163,7 +166,7 @@ - + Qt::LeftToRight @@ -182,7 +185,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index eda35ae..e4bb168 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -84,7 +84,15 @@ } void Standard_DeviceItem::Load() { + //获取主页面内容 + //初始化下拉框 + ui->combox_devicename->clear(); + ui->combox_mode->clear(); + ui->combox_manufacturer_->clear(); + ui->combox_devicename->addItem("ALL"); + ui->combox_mode->addItem("ALL"); + ui->combox_manufacturer_->addItem("ALL"); //进入主页面 ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -96,7 +104,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = BaseCommonApi::getBizDeviceManage(); + data = BaseCommonApi::getBizDeviceManage(); for (const BizDevice& bizDevice : data) { @@ -135,6 +143,8 @@ }); + //渲染下拉框 + SetHomePaheCombox(bizDevice); row++; } @@ -231,20 +241,114 @@ } } +void Standard_DeviceItem::SetHomePaheCombox(BizDevice entity) +{ + if(comboBoxContainsItem(ui->combox_mode,entity.model)){ + ui->combox_mode->addItem(entity.model); + } + if(comboBoxContainsItem(ui->combox_devicename,entity.equipment_name)){ + ui->combox_devicename->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->combox_manufacturer_,entity.manufacturer)){ + ui->combox_manufacturer_->addItem(entity.manufacturer); + } +} +bool Standard_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Standard_DeviceItem::on_Select_clicked() +{ + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const BizDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_devicename->currentText() != "ALL") { + if (ui->combox_devicename->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_mode->currentText() != "ALL") { + if (ui->combox_mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_manufacturer_->currentText() != "ALL") { + if (ui->combox_manufacturer_->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacturer)); + //添加操作按钮 + QPushButton *button = new QPushButton("查看"); + ui->tableWidget->setCellWidget(row, 6, button); + //设置按钮简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + } + }); + row++; + } + } +} - - - - +void Standard_DeviceItem::on_pushButton_8_clicked() +{ + Load(); + ui->combox_devicename->setCurrentIndex(0); + ui->combox_mode->setCurrentIndex(0); + ui->combox_manufacturer_->setCurrentIndex(0); + ui->number->setText(""); +} diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.h b/softwareDirectory/AutoVerScheme/standard_deviceitem.h index b757e67..f522658 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.h @@ -23,6 +23,13 @@ void OnButtonSelectClicked(QString id); void on_pushButton_clicked(); void DeviceInfoInit(QString id); + void SetHomePaheCombox(BizDevice entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_Select_clicked(); + + void on_pushButton_8_clicked(); +public: + QList data; private: Ui::Standard_DeviceItem *ui; }; diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui index 7575a66..9b1acd4 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -176,7 +176,7 @@ - + Qt::LeftToRight @@ -195,7 +195,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/testdataitem.cpp b/softwareDirectory/AutoVerScheme/testdataitem.cpp index 89e1321..4c308c1 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/testdataitem.cpp @@ -34,13 +34,44 @@ //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); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void TestDataItem::ShowMessageBox(QString title,QString value) { @@ -66,6 +97,21 @@ // ======================================================================================== // 主页面初始化 检定管理初始化 // ==================================================================================== + // + ui->name->clear(); + ui->mode->clear(); + ui->tasknumber->clear(); + ui->dept->clear(); + ui->verification->clear(); + ui->verification->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->tasknumber->addItem("ALL"); + ui->dept->addItem("ALL"); + ui->verification->addItem("ALL"); + ui->verification->addItem("ALL"); + ui->number->setText(""); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -73,7 +119,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getVerificationData(); + data = dbManager.getVerificationData(); for (const VerificationData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -113,13 +159,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { + connect(button, &QPushButton::clicked, this, [this, button, item]() { // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + + OnButtonSelectClicked(item); }); //设置按钮2简单样式 @@ -150,20 +193,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 14, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + + SetHomePaheCombox(item); row++; } } -void TestDataItem::OnButtonSelectClicked(QString id) +void TestDataItem::OnButtonSelectClicked(VerificationData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void TestDataItem::OnButtonPreViewtClicked(QString id) { @@ -179,22 +221,76 @@ { ui->stackedWidget->setCurrentIndex(0); } -void TestDataItem::DeviceInfoInit(QString id) +void TestDataItem::DeviceInfoInit(VerificationData entity) { + QString id=entity.id; // ======================================================================================== - // 初始化详情 结果信息 + // 设备信息 被检-标准 + // ==================================================================================== + //tableWidgetdevice + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getVerificationBasicDataDevice(id); + for(const VerificationBasicDataDevice& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem("/")); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.equipment_no)); + ui->tableWidgetdevice->setItem(row, 5, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加被检 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("被检设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.NAME)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.help_instruction)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 5, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + VerificationBasicDataDetails VerData= dbManager.getVerificationBasicDataDetails(entity.item_id); + ui->customer_name->setText(VerData.NAME); + ui->based_documents->setText(VerData.based_documents); + ui->trace_date->setText(VerData.trace_date.toString()); + ui->temperature->setText(VerData.temperature); + ui->humidity->setText(VerData.humidity); + ui->measure_address->setText(VerData.measure_address); + ui->measure_valid_date->setText(VerData.measure_valid_date.toString()); + ui->NAME->setText(VerData.customer_name); + ui->conclusion->setText(VerData.conclusion); + ui->restriction_instruction->setText(VerData.restriction_instruction); + ui->appearance_remark->setText(VerData.appearance_function_check); + ui->appearance_true->setCheckState(Qt::CheckState::Unchecked); + ui->appearance_false->setCheckState(Qt::CheckState::Unchecked); + if(VerData.appearance_remark=="1") + { + ui->appearance_true->setCheckState(Qt::CheckState::Checked); + }else if(VerData.appearance_remark=="2") + { + ui->appearance_false->setCheckState(Qt::CheckState::Checked); + } + // ======================================================================================== + // 检定项目及检定点 // ==================================================================================== QStringList headlist; - QList Data = dbManager.Search_VerifyDataTable(id,id,&headlist); //参数待修改 - - + QList Data = dbManager.Search_CalibrationDataTable(entity.sample_id,entity.id,&headlist); ui->tableWidgetItem->setRowCount(0); ui->tableWidgetItem->setColumnCount(headlist.count()); ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); //循环数据 - int rowCount=0; - int row=0; + rowCount=0; + row=0; for (const QStringList& item : Data) { //获取行号 并进行添加行 @@ -212,12 +308,168 @@ } } +void TestDataItem::SetHomePaheCombox(VerificationData entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.model); + } + if(comboBoxContainsItem(ui->tasknumber,entity.customer_name)){ + ui->tasknumber->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->verification,entity.NAME)){ + ui->verification->addItem(entity.NAME); + } + +} +bool TestDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void TestDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const VerificationData& item : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->tasknumber->currentText() != "ALL") { + if (ui->tasknumber->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->verification->currentText() != "ALL") { + if (ui->verification->currentText() != item.NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept->currentText() != "ALL") { + if (ui->dept->currentText() != item.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow){ + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.NAME)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(item.trace_date.toString())); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.measure_valid_date.toString())); + ui->tableWidget->setItem(row, 12, new QTableWidgetItem(item.meter_identify)); + ui->tableWidget->setItem(row, 13, new QTableWidgetItem(item.restriction_instruction)); + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + // 获取当前行第一列的 ID + OnButtonSelectClicked(item); + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 14, widget); + + SetHomePaheCombox(item); + row++; + } + }; +} + +void TestDataItem::on_groupBox_2_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->tasknumber->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); + ui->verification->setCurrentIndex(0); + ui->verification->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index bf5bd8f..23ae25f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -171,7 +171,7 @@ - + Qt::LeftToRight @@ -190,7 +190,7 @@ - + Qt::LeftToRight @@ -424,19 +424,19 @@ - + - 生产厂家: + 环境温度: - + ForbiddenCursor @@ -452,12 +452,12 @@ - 型号规格: + 环境湿度: - + ForbiddenCursor @@ -473,12 +473,12 @@ - 设备名称: + 核查日期: - + ForbiddenCursor @@ -494,12 +494,12 @@ - 生产国家: + 核查地点: - + ForbiddenCursor @@ -515,12 +515,12 @@ - 检定有效期: + 核查员: - + ForbiddenCursor @@ -536,12 +536,12 @@ - 出厂编号: + 结论: - + ForbiddenCursor diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index 0d0fa07..fe0b116 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -29,7 +29,7 @@ "}"); ui->tableWidget->setRowCount(10); // 设置10行 - ui->tableWidget->setColumnCount(10); // 设置11列 + ui->tableWidget->setColumnCount(11); // 设置11列 ui->tableWidget->setColumnWidth(0, 80); // 设置第一列的宽度为100像素 ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 QTableWidgetItem *item = new QTableWidgetItem("测试数据"); @@ -39,7 +39,7 @@ //初始化TableWidget 设置列 QStringList headers; headers << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" - << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"; + << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"<<"检测状态"; ui->tableWidget->setHorizontalHeaderLabels(headers); } @@ -63,24 +63,35 @@ { //先设置为行为0 ui->tableWidget->setRowCount(0); - + //添加comboBox + ui->combox_state->clear(); + ui->combox_dept->clear(); + ui->combox_type->clear(); + ui->combox_name->clear(); + ui->combox_customer->clear(); + ui->combox_state->addItem("ALL"); + ui->combox_state->addItem("待检测"); + ui->combox_state->addItem("检测完成"); + ui->combox_dept->addItem("ALL"); + ui->combox_name->addItem("ALL"); + ui->combox_type->addItem("ALL"); + ui->combox_customer->addItem("ALL"); BaseCommonApi dbManager; // 调用数据库管理器的函数获取数据 //模拟用户ID QString userId=""; - QList data = BaseCommonApi::getMyTasks(userId,"3"); + data = BaseCommonApi::getMyTasks(userId,"3"); int rowCount = 0; int row=0; QString State; for (const MyTask& myTask : data) { - rowCount = ui->tableWidget->rowCount(); - - ui->tableWidget->insertRow(rowCount); + if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + 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(myTask.sample_name)); //设置数据 ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 @@ -95,8 +106,130 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + //渲染下拉框 + SetHomePaheCombox(myTask); //QDebug row++; + } + } +} +void My_Task::SetHomePaheCombox(MyTask entity) +{ + if(comboBoxContainsItem(ui->combox_name,entity.sample_name)){ + ui->combox_name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->combox_dept,entity.FULL_NAME)){ + ui->combox_dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_type,entity.sample_model)){ + ui->combox_type->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + +} +bool My_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void My_Task::on_pushButtonUpdate_clicked() +{ + Load(); + ui->combox_dept->setCurrentIndex(0); + ui->combox_name->setCurrentIndex(0); + ui->combox_type->setCurrentIndex(0); + ui->combox_customer->setCurrentIndex(0); + ui->combox_state->setCurrentIndex(0); +} + +void My_Task::on_SeachButton_clicked() +{ + //查询按钮 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int statecount=0; + int rowCount=0; + int row=0; + QString State; + for (const MyTask& myTask : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_dept->currentText() != "ALL") { + if (ui->combox_dept->currentText() != myTask.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_name->currentText() != "ALL") { + if (ui->combox_name->currentText() != myTask.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_type->currentText() != "ALL") { + if (ui->combox_type->currentText() !=myTask.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != myTask.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + if (ui->combox_state->currentText() == "ALL" || // 如果是"ALL",显示所有设备 + (ui->combox_state->currentText() == "待检测" && myTask.measure_status == "3") || // 如果是"待检测",只显示state为3的设备 + (ui->combox_state->currentText() == "检测完成" && myTask.measure_status == "4")){ + + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(myTask.sample_name)); //设置数据 + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(myTask.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(myTask.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(myTask.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(myTask.customer_name)); //设置数据 + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(myTask.FULL_NAME)); //设置数据 + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(myTask.require_over_time.toString())); //设置数据 + if(myTask.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + + row++; + } + }; + } } diff --git a/softwareDirectory/AutoVerScheme/my_task.h b/softwareDirectory/AutoVerScheme/my_task.h index d6600cb..d764c45 100644 --- a/softwareDirectory/AutoVerScheme/my_task.h +++ b/softwareDirectory/AutoVerScheme/my_task.h @@ -21,6 +21,13 @@ void initForm(); //初始化界面数据 void ShowMessageBox(QString title,QString value); void Load() override; + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(MyTask entity); + void on_pushButtonUpdate_clicked(); + + void on_SeachButton_clicked(); +public: + QList data; private: Ui::My_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index 96646e4..16aff2f 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -6,13 +6,16 @@ 0 0 - 1190 + 1366 577 Form + + color:black; + @@ -49,7 +52,7 @@ - + @@ -71,7 +74,7 @@ - + @@ -93,7 +96,7 @@ - + @@ -115,7 +118,7 @@ - + @@ -147,7 +150,7 @@ - + @@ -163,7 +166,7 @@ - + Qt::LeftToRight @@ -182,7 +185,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index eda35ae..e4bb168 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -84,7 +84,15 @@ } void Standard_DeviceItem::Load() { + //获取主页面内容 + //初始化下拉框 + ui->combox_devicename->clear(); + ui->combox_mode->clear(); + ui->combox_manufacturer_->clear(); + ui->combox_devicename->addItem("ALL"); + ui->combox_mode->addItem("ALL"); + ui->combox_manufacturer_->addItem("ALL"); //进入主页面 ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -96,7 +104,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = BaseCommonApi::getBizDeviceManage(); + data = BaseCommonApi::getBizDeviceManage(); for (const BizDevice& bizDevice : data) { @@ -135,6 +143,8 @@ }); + //渲染下拉框 + SetHomePaheCombox(bizDevice); row++; } @@ -231,20 +241,114 @@ } } +void Standard_DeviceItem::SetHomePaheCombox(BizDevice entity) +{ + if(comboBoxContainsItem(ui->combox_mode,entity.model)){ + ui->combox_mode->addItem(entity.model); + } + if(comboBoxContainsItem(ui->combox_devicename,entity.equipment_name)){ + ui->combox_devicename->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->combox_manufacturer_,entity.manufacturer)){ + ui->combox_manufacturer_->addItem(entity.manufacturer); + } +} +bool Standard_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Standard_DeviceItem::on_Select_clicked() +{ + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const BizDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_devicename->currentText() != "ALL") { + if (ui->combox_devicename->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_mode->currentText() != "ALL") { + if (ui->combox_mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_manufacturer_->currentText() != "ALL") { + if (ui->combox_manufacturer_->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacturer)); + //添加操作按钮 + QPushButton *button = new QPushButton("查看"); + ui->tableWidget->setCellWidget(row, 6, button); + //设置按钮简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + } + }); + row++; + } + } +} - - - - +void Standard_DeviceItem::on_pushButton_8_clicked() +{ + Load(); + ui->combox_devicename->setCurrentIndex(0); + ui->combox_mode->setCurrentIndex(0); + ui->combox_manufacturer_->setCurrentIndex(0); + ui->number->setText(""); +} diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.h b/softwareDirectory/AutoVerScheme/standard_deviceitem.h index b757e67..f522658 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.h @@ -23,6 +23,13 @@ void OnButtonSelectClicked(QString id); void on_pushButton_clicked(); void DeviceInfoInit(QString id); + void SetHomePaheCombox(BizDevice entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_Select_clicked(); + + void on_pushButton_8_clicked(); +public: + QList data; private: Ui::Standard_DeviceItem *ui; }; diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui index 7575a66..9b1acd4 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -176,7 +176,7 @@ - + Qt::LeftToRight @@ -195,7 +195,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/testdataitem.cpp b/softwareDirectory/AutoVerScheme/testdataitem.cpp index 89e1321..4c308c1 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/testdataitem.cpp @@ -34,13 +34,44 @@ //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); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void TestDataItem::ShowMessageBox(QString title,QString value) { @@ -66,6 +97,21 @@ // ======================================================================================== // 主页面初始化 检定管理初始化 // ==================================================================================== + // + ui->name->clear(); + ui->mode->clear(); + ui->tasknumber->clear(); + ui->dept->clear(); + ui->verification->clear(); + ui->verification->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->tasknumber->addItem("ALL"); + ui->dept->addItem("ALL"); + ui->verification->addItem("ALL"); + ui->verification->addItem("ALL"); + ui->number->setText(""); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -73,7 +119,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getVerificationData(); + data = dbManager.getVerificationData(); for (const VerificationData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -113,13 +159,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { + connect(button, &QPushButton::clicked, this, [this, button, item]() { // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + + OnButtonSelectClicked(item); }); //设置按钮2简单样式 @@ -150,20 +193,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 14, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + + SetHomePaheCombox(item); row++; } } -void TestDataItem::OnButtonSelectClicked(QString id) +void TestDataItem::OnButtonSelectClicked(VerificationData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void TestDataItem::OnButtonPreViewtClicked(QString id) { @@ -179,22 +221,76 @@ { ui->stackedWidget->setCurrentIndex(0); } -void TestDataItem::DeviceInfoInit(QString id) +void TestDataItem::DeviceInfoInit(VerificationData entity) { + QString id=entity.id; // ======================================================================================== - // 初始化详情 结果信息 + // 设备信息 被检-标准 + // ==================================================================================== + //tableWidgetdevice + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getVerificationBasicDataDevice(id); + for(const VerificationBasicDataDevice& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem("/")); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.equipment_no)); + ui->tableWidgetdevice->setItem(row, 5, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加被检 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("被检设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.NAME)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.help_instruction)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 5, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + VerificationBasicDataDetails VerData= dbManager.getVerificationBasicDataDetails(entity.item_id); + ui->customer_name->setText(VerData.NAME); + ui->based_documents->setText(VerData.based_documents); + ui->trace_date->setText(VerData.trace_date.toString()); + ui->temperature->setText(VerData.temperature); + ui->humidity->setText(VerData.humidity); + ui->measure_address->setText(VerData.measure_address); + ui->measure_valid_date->setText(VerData.measure_valid_date.toString()); + ui->NAME->setText(VerData.customer_name); + ui->conclusion->setText(VerData.conclusion); + ui->restriction_instruction->setText(VerData.restriction_instruction); + ui->appearance_remark->setText(VerData.appearance_function_check); + ui->appearance_true->setCheckState(Qt::CheckState::Unchecked); + ui->appearance_false->setCheckState(Qt::CheckState::Unchecked); + if(VerData.appearance_remark=="1") + { + ui->appearance_true->setCheckState(Qt::CheckState::Checked); + }else if(VerData.appearance_remark=="2") + { + ui->appearance_false->setCheckState(Qt::CheckState::Checked); + } + // ======================================================================================== + // 检定项目及检定点 // ==================================================================================== QStringList headlist; - QList Data = dbManager.Search_VerifyDataTable(id,id,&headlist); //参数待修改 - - + QList Data = dbManager.Search_CalibrationDataTable(entity.sample_id,entity.id,&headlist); ui->tableWidgetItem->setRowCount(0); ui->tableWidgetItem->setColumnCount(headlist.count()); ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); //循环数据 - int rowCount=0; - int row=0; + rowCount=0; + row=0; for (const QStringList& item : Data) { //获取行号 并进行添加行 @@ -212,12 +308,168 @@ } } +void TestDataItem::SetHomePaheCombox(VerificationData entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.model); + } + if(comboBoxContainsItem(ui->tasknumber,entity.customer_name)){ + ui->tasknumber->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->verification,entity.NAME)){ + ui->verification->addItem(entity.NAME); + } + +} +bool TestDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void TestDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const VerificationData& item : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->tasknumber->currentText() != "ALL") { + if (ui->tasknumber->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->verification->currentText() != "ALL") { + if (ui->verification->currentText() != item.NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept->currentText() != "ALL") { + if (ui->dept->currentText() != item.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow){ + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.NAME)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(item.trace_date.toString())); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.measure_valid_date.toString())); + ui->tableWidget->setItem(row, 12, new QTableWidgetItem(item.meter_identify)); + ui->tableWidget->setItem(row, 13, new QTableWidgetItem(item.restriction_instruction)); + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + // 获取当前行第一列的 ID + OnButtonSelectClicked(item); + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 14, widget); + + SetHomePaheCombox(item); + row++; + } + }; +} + +void TestDataItem::on_groupBox_2_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->tasknumber->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); + ui->verification->setCurrentIndex(0); + ui->verification->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/testdataitem.h b/softwareDirectory/AutoVerScheme/testdataitem.h index 35e66ef..6cff2f4 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.h +++ b/softwareDirectory/AutoVerScheme/testdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(VerificationData id); void on_pushButton_clicked(); void OnButtonPreViewtClicked(QString id); - void DeviceInfoInit(QString id); + void DeviceInfoInit(VerificationData id); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(VerificationData entity); + void on_select_clicked(); + + void on_groupBox_2_clicked(); + private: Ui::TestDataItem *ui; + QList data; }; #endif // TESTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index 262f766..a37cc89 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -21,6 +21,7 @@ #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + DataProcessingBLL.cpp \ TaskManager.cpp \ basecommonapi.cpp \ checkdevice.cpp \ @@ -59,6 +60,7 @@ HEADERS += \ CheckBoxTableHeader.h \ + DataProcessingBLL.h \ createtask_scandevice.h \ formaddrsetting.h \ formcommsetting.h \ diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 7965806..71902f5 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {2746248a-b112-4e0f-9ae0-9e61f2a42309} + {c08df58c-84a7-4965-bca6-e98789474efa} ProjectExplorer.Project.ActiveTarget @@ -64,249 +64,6 @@ 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 - - D:/dev/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 - - - D:/dev/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 - - - D:/dev/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:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - - false - - false - true - true - false - false - true - - D:/dev/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 @@ -314,7 +71,7 @@ 0 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -362,7 +119,7 @@ 2 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -410,7 +167,7 @@ 0 - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + E:/Desktop/SVN/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -530,14 +287,257 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro - D:/dev/software/softwareDirectory/AutoVerScheme/AutoVerScheme.pro + + ProjectExplorer.CustomExecutableRunConfiguration + false false true - true + false + false + true + + + + 1 + + + + ProjectExplorer.Project.Target.1 + + 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 + + E:/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 + + + E:/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 + + + E:/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 + + + ProjectExplorer.CustomExecutableRunConfiguration + + + false + + false + true false false true diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.cpp diff --git a/softwareDirectory/AutoVerScheme/DataProcessingBLL.h b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h new file mode 100644 index 0000000..77bf491 --- /dev/null +++ b/softwareDirectory/AutoVerScheme/DataProcessingBLL.h @@ -0,0 +1,19 @@ +#ifndef DATAPROCESSINGBLL_H +#define DATAPROCESSINGBLL_H + +#include "basecommonapi.h" +#include + +class BaseDataProCessingBLL +{ + +}; +class My_TaskBLL:BaseDataProCessingBLL +{ + +}; +class Depar_taskBLL:BaseDataProCessingBLL +{ + +}; +#endif // DATAPROCESSINGBLL_H diff --git a/softwareDirectory/AutoVerScheme/InfoBase.h b/softwareDirectory/AutoVerScheme/InfoBase.h index bce9609..89f57af 100644 --- a/softwareDirectory/AutoVerScheme/InfoBase.h +++ b/softwareDirectory/AutoVerScheme/InfoBase.h @@ -18,6 +18,8 @@ QStandardItemModel *model; //信息管理页面 基类定义Conn对象 BaseCommonApi dbManager; + //筛选 + }; #endif // INFOBASE_H diff --git a/softwareDirectory/AutoVerScheme/TaskManager.cpp b/softwareDirectory/AutoVerScheme/TaskManager.cpp index 1462356..ed0d569 100644 --- a/softwareDirectory/AutoVerScheme/TaskManager.cpp +++ b/softwareDirectory/AutoVerScheme/TaskManager.cpp @@ -15,6 +15,7 @@ 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个字符 diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index 3128bb9..5bb2196 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -5,13 +5,14 @@ { } -QString BaseCommonApi::temporary_user_id="1640229293790650370"; -QString BaseCommonApi::temporary_costomer_id="1692432193177047042"; +const QString BaseCommonApi::temporary_user_id="1634107227953819649"; +const QString BaseCommonApi::measure_person_id="1695282436182188034"; //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { + userId=temporary_user_id; StaffInfo result; QSqlQuery query; query.prepare("SELECT brsi.* from biz_resource_staff_info brsi " @@ -61,22 +62,20 @@ //获取部门任务数据 -QList BaseCommonApi::getAllData(QString deptId,QString status) { +QList BaseCommonApi::getAllData() { QList result; QSqlQuery query; - + QString deptId=ConvertStaffInfo(temporary_user_id).dept_id; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel,eei.help_instruction AS helpInstruction, " - " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent " + " eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME,bo.require_over_time, bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " " JOIN biz_business_order_info bo ON bo.id = blei.order_id " " WHERE blei.measure_dept_id = :deptId " - " AND blei.measure_status = :status " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 query.bindValue(":deptId", deptId); - query.bindValue(":status", status); if (query.exec()) { while (query.next()) { Dept Dept; @@ -90,6 +89,8 @@ Dept.FULL_NAME = query.value("SIMPLE_NAME").toString(); Dept.require_over_time = query.value("require_over_time").toDateTime(); Dept.is_urgent = query.value("is_urgent").toString(); + Dept.measure_status=query.value("measure_status").toString(); + result.append(Dept); } }else { @@ -104,22 +105,22 @@ //blei.measure_status 10 已退回 QList BaseCommonApi::getMyTasks(QString userId,QString status){ userId=temporary_user_id; - + QString _measure_person_id=measure_person_id; QList result; QSqlQuery query; query.prepare("SELECT blei.id AS id, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.help_instruction AS helpInstruction, " - "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time , bo.is_urgent " + "eei.manufacture_no AS manufactureNo, eei.manufacturer,bo.customer_name,sd.SIMPLE_NAME AS measureDeptName,bo.require_over_time ," + " bo.is_urgent,blei.measure_status " "FROM biz_business_lab_executive_info blei " "JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id " "JOIN biz_business_order_info bo ON bo.id = blei.order_id " "LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID " - " WHERE blei.create_user = :userId " - " AND blei.measure_status = :status " + " WHERE blei.measure_person_id = :person_id " " ORDER BY blei.update_time DESC"); // 将参数绑定到占位符 - query.bindValue(":userId", userId); - query.bindValue(":status", status); + query.bindValue(":person_id", _measure_person_id); + //query.bindValue(":status", status); if (query.exec()) { while (query.next()) { MyTask task; @@ -133,6 +134,7 @@ task.FULL_NAME = query.value("measureDeptName").toString(); task.require_over_time = query.value("require_over_time").toDateTime(); task.is_urgent = query.value("is_urgent").toString(); + task.measure_status=query.value("measure_status").toString(); result.append(task); } } @@ -323,7 +325,6 @@ { //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," @@ -387,6 +388,7 @@ bool BaseCommonApi::InsertTaskInfoRecord(biz_business_lab_executive_info eneity) { eneity.create_user_id=temporary_user_id; + eneity.measure_person_id=measure_person_id; QSqlQuery query; query.prepare("INSERT biz_business_lab_executive_info(id,order_id,sample_id,measure_dept_id," "measure_person_id,create_user,measure_status,is_auto" @@ -445,6 +447,8 @@ bool BaseCommonApi::DeleteTask(QString id) { QSqlQuery query; + + bool allSuccessful = true; // 定义一个删除函数,用于复用删除逻辑 auto deleteRecord = [&](const QString& tableName) { @@ -459,6 +463,7 @@ deleteRecord("biz_business_order_sample_relation"); deleteRecord("biz_business_lab_executive_info"); return allSuccessful; + } //删除任务单内设备 bool BaseCommonApi::DeleteTaskDevice(QString id) @@ -862,7 +867,7 @@ { QList result; QSqlQuery query; - bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + /*bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " @@ -872,8 +877,19 @@ " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " " JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " " bbdmi.sample_id) JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " - " ORDER BY bbdmi.create_time DESC"); - + " ORDER BY bbdmi.create_time DESC");*/ +bool isSuccess = query.exec("SELECT bbdmi.*, eei.id,bboi.customer_name, eemi.help_instruction, bbdmii.item_category_id, bbdmii.item_category_name, " + " bbdmii.belong_standard_equipment, bboi.customer_address,_user.NAME,eei.meter_identify,dept.FULL_NAME " + " FROM biz_business_device_measure_info bbdmi " + " LEFT JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " + " LEFT JOIN sys_user _user ON bbdmi.create_user_id = _user.id " + " LEFT JOIN eqpt_equipment_info eei ON bbdmi.sample_id = eei.id " + " LEFT JOIN sys_dept dept ON eei.dept_id = dept.ID " + " LEFT JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " + " LEFT JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = " + " bbdmi.sample_id) " + " LEFT JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id " + " ORDER BY bbdmi.create_time DESC"); if (isSuccess) { while (query.next()) { VerificationData verificationData; @@ -936,7 +952,7 @@ { VerificationBasicDataDetails result; QSqlQuery query; - query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,,eemtte.based_documents,_user.NAME" + query.prepare("SELECT bbdmi.*, bboi.customer_name, eemi.help_instruction, bbdmii.item_category_name, bboi.order_no,eemtte.based_documents,_user.NAME" " FROM biz_business_device_measure_info bbdmi " " JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id " " JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id " @@ -963,6 +979,8 @@ dataDetails.based_documents = query.value("based_documents").toString(); dataDetails.trace_date = query.value("trace_date").toDate(); dataDetails.NAME = query.value("NAME").toString(); + dataDetails.appearance_function_check=query.value("appearance_function_check").toString(); + dataDetails.appearance_remark=query.value("appearance_remark").toString(); result = dataDetails; } } else { @@ -1014,7 +1032,8 @@ QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT besci.*, besi.standard_name AS standardEquipmentName, beit.equipment_name AS equipmentName, beit.model AS equipmentModel, " - " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no,besci.create_user_name " + " bescic.category_name AS itemCategoryName, bescic.belong_standard_equipment AS belongStandardEquipment,beit.manufacture_no," + " beit.manufacturer,besci.create_user_name " " FROM biz_equipment_standard_check_info besci " " JOIN biz_equipment_standard_info besi ON besci.standard_equipment_id = besi.id " " JOIN biz_equipment_info beit ON besci.equipment_id = beit.id " @@ -1031,7 +1050,7 @@ dataManage.create_user_name = query.value("create_user_name").toString(); dataManage.check_date = query.value("check_date").toDate(); dataManage.dept_name = query.value("dept_name").toString(); - + dataManage.manufacturer=query.value("manufacturer").toString(); result.append(dataManage); } } else { diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 74943d4..8e1446f 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -26,6 +26,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //我的任务 @@ -42,6 +43,7 @@ QString FULL_NAME; QDateTime require_over_time; QString is_urgent; + QString measure_status; }; //创建任务单-首页 class CreateTaskList @@ -339,6 +341,7 @@ QString data_sync;//检定项数据是否同步(1/0) QString sync_time;//自动检定系统最新同步时间 QString appearance_function_check;//外观及功能性检查(1/0) + QString appearance_remark;//说明 QString category;//.设备分类(字典code) QString equipment_name;//设备名称 QString model;//型号规格 @@ -391,6 +394,7 @@ QString create_user_name;//核查员 QDate check_date;//核查日期 QString dept_name;//部门 + QString manufacturer;//生产厂家 }; //核查数据管理-核查基本信息 class CheckDataManageBasicInfo @@ -801,8 +805,9 @@ { public: BaseCommonApi(); - static QString temporary_user_id; - static QString temporary_costomer_id; + const static QString temporary_user_id; + const static QString temporary_costomer_id; + const static QString measure_person_id; //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -826,7 +831,7 @@ //部门任务 参数登录用户的部门id和状态 - static QList getAllData(QString deptId,QString status); + static QList getAllData(); //我的任务 static QList getMyTasks(QString id,QString status); //获取创建任务首页数据 diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp index b94c9b5..4cfa1b6 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.cpp @@ -81,7 +81,18 @@ // ======================================================================================== // 主页面初始化 // ==================================================================================== - + // + ui->name->clear(); + ui->mode->clear(); + ui->dept_2->clear(); + ui->Buildinguser->clear(); + ui->manufacturer_2->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->dept_2->addItem("ALL"); + ui->Buildinguser->addItem("ALL"); + ui->manufacturer_2->addItem("ALL"); + ui->number->setText(""); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -89,7 +100,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getTestedDevice(); + data = dbManager.getTestedDevice(); for (const TestedDevice& bizDevice : data) { rowCount = ui->tableWidget->rowCount(); @@ -131,6 +142,8 @@ } }); + + SetHomePaheCombox(bizDevice); row++; } @@ -213,5 +226,132 @@ } } +void BeExamined_DeviceItem::SetHomePaheCombox(TestedDevice entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipment_name)){ + ui->name->addItem(entity.model); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->manufacturer_2,entity.manufacturer)){ + ui->manufacturer_2->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->Buildinguser,entity.customer_name)){ + ui->Buildinguser->addItem(entity.manufacturer); + } + if(comboBoxContainsItem(ui->dept_2,entity.FULL_NAME)){ + ui->dept_2->addItem(entity.manufacturer); + } + +} +bool BeExamined_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void BeExamined_DeviceItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const TestedDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->manufacturer_2->currentText() != "ALL") { + if (ui->manufacturer_2->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Buildinguser->currentText() != "ALL") { + if (ui->Buildinguser->currentText() != bizDevice.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept_2->currentText() != "ALL") { + if (ui->dept_2->currentText() != bizDevice.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(bizDevice.manufacturer)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(bizDevice.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(bizDevice.meter_identify)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(bizDevice.check_cycle)); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(bizDevice.certificate_valid)); + + //添加操作按钮 + 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 {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, row]() { + // 获取当前行第一列的 ID + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + + OnButtonSelectClicked(id); + } + + }); + + + row++; + } +} + +void BeExamined_DeviceItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->dept_2->setCurrentIndex(0); + ui->Buildinguser->setCurrentIndex(0); + ui->manufacturer_2->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h index 0050ee7..65f8d44 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.h @@ -26,9 +26,15 @@ void DeviceInfoInit(QString id); void on_pushButton_2_clicked(); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(TestedDevice entity); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::BeExamined_DeviceItem *ui; + QList data; }; #endif // BEEXAMINED_DEVICEITEM_H diff --git a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui index a0b717e..0e06ed9 100644 --- a/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/beexamined_deviceitem.ui @@ -6,8 +6,8 @@ 0 0 - 1432 - 571 + 1575 + 576 @@ -53,7 +53,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -163,6 +163,28 @@ + + + + 0 + 0 + + + + + 80 + 0 + + + + 所在部门: + + + + + + + @@ -182,7 +204,7 @@ - + 180 @@ -211,7 +233,7 @@ - + Qt::LeftToRight @@ -230,7 +252,7 @@ - + Qt::LeftToRight @@ -249,6 +271,20 @@ + manufacturer_2 + label + name + label_2 + mode + label_3 + number + label_4 + label_63 + Buildinguser + select + update + label_7 + dept_2 diff --git a/softwareDirectory/AutoVerScheme/create_task.cpp b/softwareDirectory/AutoVerScheme/create_task.cpp index 1eb6827..52a0ba7 100644 --- a/softwareDirectory/AutoVerScheme/create_task.cpp +++ b/softwareDirectory/AutoVerScheme/create_task.cpp @@ -88,18 +88,24 @@ void Create_Task::Load() { - //combox设置 - SetHomePaheComboBox(); + // + ui->combox_customer->clear(); + ui->combox_task_no->clear(); + ui->combox_dept->clear(); + ui->combox_customer->addItem("ALL"); + ui->combox_task_no->addItem("ALL"); + //先设置为行为0 ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); - QList data = dbManager.getCreateTaskList(""); - + datares = dbManager.getCreateTaskList(""); + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); int rowCount = 0; int row=0; QString is_urgent; - for (const CreateTaskList& item : data) { + for (const CreateTaskList& item : datares) { rowCount = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowCount); @@ -107,7 +113,7 @@ ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); - ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.DEPT_FULL_NAME)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); if(item.is_urgent=="1") @@ -202,6 +208,7 @@ // 调整表格大小以适应内容 //ui->tableWidget->resizeColumnsToContents(); // ui->tableWidget->resizeRowsToContents(); + SetHomePaheComboBox(item); row++; } } @@ -261,7 +268,7 @@ //显示按钮 DisplayButton(); ui->is_urgent->clear(); - ui->comboBox_5->clear(); + ui->customer_name->clear(); ui->stackedWidget->setCurrentIndex(1); Create_Task::State="Create"; @@ -346,6 +353,13 @@ // 保存任务单按钮 先新增任务单 后新增任务单设备 // ==================================================================================== bool IsSUCC=false; + //获取选中的委托人ID + QString CustomerID=""; + if(_model->rowCount()>0){ + QModelIndex currentIndex = _model->index(ui->customer_name->currentIndex(),0); + CustomerID=currentIndex.data().toString(); } + //获取检定人ID + QString person_id=dbManager.ConvertStaffInfo("用户ID目前固定").id; if(State=="Update") { if(TaskId=="")return; @@ -358,13 +372,13 @@ 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"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.UpdateTask(insertTask); //设备更新 编辑设备待写 @@ -387,20 +401,13 @@ }else{insertTask.is_urgent=false;} insertTask.receive_illustrate=ui->receive_illustrate->text(); - insertTask.customer_id="0"; + insertTask.customer_id=CustomerID; IsSUCC=dbManager.InsertTaskBasic(insertTask); if(IsSUCC) { //根据用户查出部门ID - QString DeptId=dbManager.SelectDeptData("函数内默认添加")[0].id; - //获取选中的委托人ID - - QString CustomerID=""; - if(_model->rowCount()>0){ - QModelIndex currentIndex = _model->index(ui->combox_customer->currentIndex(),0); - CustomerID=currentIndex.data().toString(); - } + QString DeptId=dbManager.ConvertStaffInfo("函数内默认添加").dept_id; //新增任务单设备 @@ -429,7 +436,7 @@ entity.sample_id=_IdList[count]; entity.create_user_id="函数内默认添加"; entity.measure_dept_id=DeptId; // - entity.measure_person_id=CustomerID; + entity.measure_person_id=person_id; IsSUCC=dbManager.InsertTaskInfoRecord(entity); if(!IsSUCC){ShowMessageBox("提示",QString("设备名称为: 1% 添加失败").arg(DeviceInfo.equipment_name));} @@ -473,7 +480,7 @@ 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); @@ -488,8 +495,6 @@ }else{ ui->is_urgent->addItem("否"); } - - ui->comboBox_5->addItem(data[0].DEPT_FULL_NAME); ui->receive_illustrate->setText(data[0].receive_illustrate); //设备数据 //重新设计列 @@ -531,6 +536,7 @@ void Create_Task::on_pushButton_8_clicked() { Load(); + } void Create_Task::on_deletebutton_clicked() @@ -558,22 +564,20 @@ } } -void Create_Task::SetHomePaheComboBox() +void Create_Task::SetHomePaheComboBox(CreateTaskList entity) { - // 创建 QStandardItemModel - /* - QStandardItemModel *model = new QStandardItemModel(0, 3, this); // 0 rows, 2 columns - model->setHorizontalHeaderLabels(QStringList() << "ID" << "customer"<<"dept"); // 设置列标题(可选) - QList items; - items.append(new QStandardItem(data.id)); // ID - items.append(new QStandardItem(data.customer_name)); // Name - items.append(new QStandardItem(data.DEPT_FULL_NAME)); // Name - model->appendRow(items); - */ - ui->combox_customer->addItem("ALL"); - ui->combox_task_no->addItem("ALL"); - ui->combox_dept->addItem("ALL"); + if(comboBoxContainsItem(ui->combox_dept,entity.DEPT_FULL_NAME)){ + ui->combox_dept->addItem(entity.DEPT_FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_task_no,entity.order_no)){ + ui->combox_task_no->addItem(entity.order_no); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + } void Create_Task::SetPartPageComBox() { @@ -592,10 +596,161 @@ ui->customer_name->setModelColumn(1); // 显示 Name } +bool Create_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Create_Task::on_Update_clicked() +{ + Load(); + ui->combox_customer->setCurrentIndex(0); + ui->combox_task_no->setCurrentIndex(0); + ui->combox_dept->setCurrentIndex(0); +} +void Create_Task::on_Select_clicked() +{ + //查询按钮 筛选 + //筛选操作 + if(datares.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + //根据用户查出部门 + StaffInfo Deptinfo=dbManager.ConvertStaffInfo("用户ID目前固定"); + int rowCount = 0; + int row=0; + QString is_urgent; + for (const CreateTaskList& item : datares) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_task_no->currentText() != "ALL") { + if (ui->combox_task_no->currentText() != item.order_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.order_no)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(Deptinfo.dept_name)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.require_over_time.toString())); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.deliverer)); + if(item.is_urgent=="1") + is_urgent="是"; + else + is_urgent="否"; + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(is_urgent)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("查看"); + QPushButton *button2 = new QPushButton("编辑"); + QPushButton *button3 = new QPushButton("删除"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + Create_Task::State="Select"; + } + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonUpdateClicked(id); + Create_Task::State="Update"; + } + + }); + //设置按钮3简单样式 + button3->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: red; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtoDeleteClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->addWidget(button3); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 8, widget); + // 调整表格大小以适应内容 + //ui->tableWidget->resizeColumnsToContents(); + // ui->tableWidget->resizeRowsToContents(); + + row++; + } + }; +} diff --git a/softwareDirectory/AutoVerScheme/create_task.h b/softwareDirectory/AutoVerScheme/create_task.h index a6106b2..9829f8c 100644 --- a/softwareDirectory/AutoVerScheme/create_task.h +++ b/softwareDirectory/AutoVerScheme/create_task.h @@ -39,8 +39,14 @@ void on_pushButton_8_clicked(); void on_deletebutton_clicked(); - void SetHomePaheComboBox(); void SetPartPageComBox(); + void SetHomePaheComboBox(CreateTaskList entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + + void on_Update_clicked(); + + + void on_Select_clicked(); private: @@ -50,6 +56,7 @@ QList _IdList; QString TaskId; QStandardItemModel *_model; + QList datares; private: Ui::Create_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/create_task.ui b/softwareDirectory/AutoVerScheme/create_task.ui index 37c9121..4f6f542 100644 --- a/softwareDirectory/AutoVerScheme/create_task.ui +++ b/softwareDirectory/AutoVerScheme/create_task.ui @@ -38,7 +38,7 @@ - 1 + 0 @@ -138,7 +138,7 @@ - + Qt::LeftToRight @@ -157,7 +157,7 @@ - + Qt::LeftToRight @@ -378,83 +378,6 @@ - - - - 接收说明: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - - - - 承接人: - - - - - - - - - - - - - 承接时间: - - - - - - - 委托方: - - - - - - - 使用部门: - - - - - - - IBeamCursor - - - - - - XXX - - - - - - - 是否加急: - - - @@ -462,13 +385,6 @@ - - - - 送检人: - - - @@ -482,8 +398,35 @@ - - + + + + 委托方: + + + + + + + + + + 要求检完时间: + + + + + + + + + + 送检人: + + + + + IBeamCursor @@ -515,19 +458,66 @@ - - - - - + + - 要求检完时间: + 承接人: + + + + + + + IBeamCursor + + + + + + XXX + + + + + + + 承接时间: + + + + 是否加急: + + + + + + + + + + 接收说明: + + + + + + + IBeamCursor + + + + + + XXX + + + diff --git a/softwareDirectory/AutoVerScheme/depar_task.cpp b/softwareDirectory/AutoVerScheme/depar_task.cpp index c94bf20..7dc4c7c 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.cpp +++ b/softwareDirectory/AutoVerScheme/depar_task.cpp @@ -73,70 +73,144 @@ void Depar_Task::Load() { - SeachData(NULL,NULL,NULL,NULL,NULL); + //添加Combox数据 + ui->name->clear(); + ui->mode->clear(); + ui->customer->clear(); + ui->dept->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->customer->addItem("ALL"); + ui->dept->addItem("ALL"); + //先设置为行为0 + ui->tableWidget->setRowCount(0); + + data = BaseCommonApi::getAllData(); + + int rowCount = 0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + 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)); //设置数 + 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() { - //查看按钮 + //查看按钮 筛选 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + QString State; + for (const Dept& dept : data) { + if(dept.measure_status=="3" || dept.measure_status=="4"){ + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != dept.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != dept.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->customer->currentText() != "ALL") { + if (ui->customer->currentText() != dept.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->dept->currentText() != "") { + if (ui->dept->currentText() != dept.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + 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)); //设置数 + 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)); //设置数据 + // + SetHomePaheCombox(dept); + //QDebug + row++; +} } -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); + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->customer->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); +} +bool Depar_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Depar_Task::SetHomePaheCombox(Dept entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.sample_model)){ + ui->mode->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->customer,entity.customer_name)){ + ui->customer->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } } diff --git a/softwareDirectory/AutoVerScheme/depar_task.h b/softwareDirectory/AutoVerScheme/depar_task.h index a47fb11..e1af6be 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.h +++ b/softwareDirectory/AutoVerScheme/depar_task.h @@ -20,7 +20,6 @@ QList data; private slots: void initForm(); //初始化界面 - void SeachData(QString DeviceName,QString Type,QString Client,QString depar,QString FinishTime); //初始化数据 void ShowMessageBox(QString title,QString value); //继承父类的Load方法 @@ -29,7 +28,8 @@ void on_SelectButton_clicked(); void on_ResetButton_clicked(); - + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(Dept entity); private: Ui::Depar_Task *ui; // QStandardItemModel *model; diff --git a/softwareDirectory/AutoVerScheme/depar_task.ui b/softwareDirectory/AutoVerScheme/depar_task.ui index 0ebae89..7f99c96 100644 --- a/softwareDirectory/AutoVerScheme/depar_task.ui +++ b/softwareDirectory/AutoVerScheme/depar_task.ui @@ -52,7 +52,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + @@ -140,7 +140,18 @@ - + + + + 0 + 0 + 0 + 2000 + 12 + 12 + + + diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp index 16f93ad..e798260 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.cpp @@ -39,6 +39,38 @@ <<"核查件名称"<<"核查件型号"<<"核查件编号" <<"核查员" << "核查日期" <<"实验室"<<"部门"<<"操作"; ui->tableWidget->setHorizontalHeaderLabels(headers); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void InspectDataItem::ShowMessageBox(QString title,QString value) { // 创建一个QMessageBox对象 @@ -61,6 +93,15 @@ // ======================================================================================== // 主页面初始化 核查管理初始化 // ==================================================================================== + + // + ui->name->clear(); + ui->mode->clear(); + ui->Checker->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->Checker->addItem("ALL"); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -68,7 +109,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getCheckData(); + data = dbManager.getCheckData(); for (const CheckData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -107,13 +148,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { - // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + }); //设置按钮2简单样式 @@ -144,20 +182,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 12, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + // + SetHomePaheCombox(item); row++; } } -void InspectDataItem::OnButtonSelectClicked(QString id) +void InspectDataItem::OnButtonSelectClicked(CheckData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - //DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void InspectDataItem::OnButtonPreViewtClicked(QString id) { @@ -170,6 +207,221 @@ } void InspectDataItem::on_pushButton_clicked() + { ui->stackedWidget->setCurrentIndex(0); } +void InspectDataItem::DeviceInfoInit(CheckData entity){ + // ======================================================================================== + // 设备信息 设备-核查件 + // ==================================================================================== + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getCheckDataManageBasicInfoDevice(entity.id); + for(const CheckDataManageBasicInfo& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("核查件")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加标准设备 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.equipmentName)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.equipmentModel)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + CheckDataManageBasicInfo CheckData= dbManager.getCheckDataManageBasicInfo(entity.equipment_id); + + ui->temperature->setText(CheckData.temperature); + ui->humidity->setText(CheckData.humidity); + ui->check_date->setText(CheckData.check_date.toString()); + ui->check_address->setText(CheckData.check_address); + ui->create_user_name->setText(CheckData.create_user_name); + ui->conclusion->setText(CheckData.conclusion); + // ======================================================================================== + // 核查项目及核查点 + // ==================================================================================== + + QStringList headlist; + QList Data = dbManager.Search_VerifyDataTable(entity.equipment_id,entity.id,&headlist); + ui->tableWidgetItem->setRowCount(0); + ui->tableWidgetItem->setColumnCount(headlist.count()); + ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); + //循环数据 + rowCount=0; + 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++; + + } +} +void InspectDataItem::SetHomePaheCombox(CheckData entity) +{ + if(comboBoxContainsItem(ui->name,entity.equipmentName)){ + ui->name->addItem(entity.equipmentName); + } + if(comboBoxContainsItem(ui->mode,entity.equipmentModel)){ + ui->mode->addItem(entity.equipmentModel); + } + if(comboBoxContainsItem(ui->Checker,entity.create_user_name)){ + ui->Checker->addItem(entity.create_user_name); + } + + +} +bool InspectDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void InspectDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + data = dbManager.getCheckData(); + for (const CheckData& item : data) { + + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.equipmentName) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.equipmentModel) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->Checker->currentText() != "ALL") { + if (ui->Checker->currentText() != item.create_user_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.equipmentName)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.equipmentModel)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.meter_standard_name)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.meter_standard_id)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.create_user_name)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.check_date.toString())); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem("缺少")); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.dept_name)); + + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + + + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + + OnButtonSelectClicked(item); + + + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 12, widget); + + row++; + } + } +} + +void InspectDataItem::on_update_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->Checker->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.h b/softwareDirectory/AutoVerScheme/inspectdataitem.h index 6644339..bbb8a7d 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.h +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(CheckData entity); void OnButtonPreViewtClicked(QString id); void on_pushButton_clicked(); + void DeviceInfoInit(CheckData entity); + void SetHomePaheCombox(CheckData entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_select_clicked(); + + void on_update_clicked(); private: Ui::InspectDataItem *ui; + QList data; }; #endif // INSPECTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/inspectdataitem.ui b/softwareDirectory/AutoVerScheme/inspectdataitem.ui index bf5bd8f..23ae25f 100644 --- a/softwareDirectory/AutoVerScheme/inspectdataitem.ui +++ b/softwareDirectory/AutoVerScheme/inspectdataitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -171,7 +171,7 @@ - + Qt::LeftToRight @@ -190,7 +190,7 @@ - + Qt::LeftToRight @@ -424,19 +424,19 @@ - + - 生产厂家: + 环境温度: - + ForbiddenCursor @@ -452,12 +452,12 @@ - 型号规格: + 环境湿度: - + ForbiddenCursor @@ -473,12 +473,12 @@ - 设备名称: + 核查日期: - + ForbiddenCursor @@ -494,12 +494,12 @@ - 生产国家: + 核查地点: - + ForbiddenCursor @@ -515,12 +515,12 @@ - 检定有效期: + 核查员: - + ForbiddenCursor @@ -536,12 +536,12 @@ - 出厂编号: + 结论: - + ForbiddenCursor diff --git a/softwareDirectory/AutoVerScheme/my_task.cpp b/softwareDirectory/AutoVerScheme/my_task.cpp index 0d0fa07..fe0b116 100644 --- a/softwareDirectory/AutoVerScheme/my_task.cpp +++ b/softwareDirectory/AutoVerScheme/my_task.cpp @@ -29,7 +29,7 @@ "}"); ui->tableWidget->setRowCount(10); // 设置10行 - ui->tableWidget->setColumnCount(10); // 设置11列 + ui->tableWidget->setColumnCount(11); // 设置11列 ui->tableWidget->setColumnWidth(0, 80); // 设置第一列的宽度为100像素 ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头 QTableWidgetItem *item = new QTableWidgetItem("测试数据"); @@ -39,7 +39,7 @@ //初始化TableWidget 设置列 QStringList headers; headers << "序号" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" - << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"; + << "生产厂家" <<"委托方"<<"使用部门"<<"要求检完时间"<<"是否加急"<<"检测状态"; ui->tableWidget->setHorizontalHeaderLabels(headers); } @@ -63,24 +63,35 @@ { //先设置为行为0 ui->tableWidget->setRowCount(0); - + //添加comboBox + ui->combox_state->clear(); + ui->combox_dept->clear(); + ui->combox_type->clear(); + ui->combox_name->clear(); + ui->combox_customer->clear(); + ui->combox_state->addItem("ALL"); + ui->combox_state->addItem("待检测"); + ui->combox_state->addItem("检测完成"); + ui->combox_dept->addItem("ALL"); + ui->combox_name->addItem("ALL"); + ui->combox_type->addItem("ALL"); + ui->combox_customer->addItem("ALL"); BaseCommonApi dbManager; // 调用数据库管理器的函数获取数据 //模拟用户ID QString userId=""; - QList data = BaseCommonApi::getMyTasks(userId,"3"); + data = BaseCommonApi::getMyTasks(userId,"3"); int rowCount = 0; int row=0; QString State; for (const MyTask& myTask : data) { - rowCount = ui->tableWidget->rowCount(); - - ui->tableWidget->insertRow(rowCount); + if(myTask.measure_status=="3" || myTask.measure_status=="4"){ + 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(myTask.sample_name)); //设置数据 ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 @@ -95,8 +106,130 @@ else State="否"; ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + //渲染下拉框 + SetHomePaheCombox(myTask); //QDebug row++; + } + } +} +void My_Task::SetHomePaheCombox(MyTask entity) +{ + if(comboBoxContainsItem(ui->combox_name,entity.sample_name)){ + ui->combox_name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->combox_dept,entity.FULL_NAME)){ + ui->combox_dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->combox_type,entity.sample_model)){ + ui->combox_type->addItem(entity.sample_model); + } + if(comboBoxContainsItem(ui->combox_customer,entity.customer_name)){ + ui->combox_customer->addItem(entity.customer_name); + } + + +} +bool My_Task::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} + +void My_Task::on_pushButtonUpdate_clicked() +{ + Load(); + ui->combox_dept->setCurrentIndex(0); + ui->combox_name->setCurrentIndex(0); + ui->combox_type->setCurrentIndex(0); + ui->combox_customer->setCurrentIndex(0); + ui->combox_state->setCurrentIndex(0); +} + +void My_Task::on_SeachButton_clicked() +{ + //查询按钮 + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int statecount=0; + int rowCount=0; + int row=0; + QString State; + for (const MyTask& myTask : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_dept->currentText() != "ALL") { + if (ui->combox_dept->currentText() != myTask.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_name->currentText() != "ALL") { + if (ui->combox_name->currentText() != myTask.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_type->currentText() != "ALL") { + if (ui->combox_type->currentText() !=myTask.sample_model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_customer->currentText() != "ALL") { + if (ui->combox_customer->currentText() != myTask.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow){ + if (ui->combox_state->currentText() == "ALL" || // 如果是"ALL",显示所有设备 + (ui->combox_state->currentText() == "待检测" && myTask.measure_status == "3") || // 如果是"待检测",只显示state为3的设备 + (ui->combox_state->currentText() == "检测完成" && myTask.measure_status == "4")){ + + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(QString::number(row+1))); + + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(myTask.sample_name)); //设置数据 + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(myTask.sample_model)); //设置数据 + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(myTask.help_instruction)); //设置数据 + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(myTask.manufacture_no)); //设置数据 + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(myTask.manufacturer)); //设置数据 + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(myTask.customer_name)); //设置数据 + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(myTask.FULL_NAME)); //设置数据 + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(myTask.require_over_time.toString())); //设置数据 + if(myTask.is_urgent=="1") + State="是"; + else + State="否"; + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(State)); //设置数据 + if(myTask.measure_status=="3") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("待检测")); + }else if(myTask.measure_status=="4") + { + ui->tableWidget->setItem(row, 10,new QTableWidgetItem("检测完成")); + } + + + row++; + } + }; + } } diff --git a/softwareDirectory/AutoVerScheme/my_task.h b/softwareDirectory/AutoVerScheme/my_task.h index d6600cb..d764c45 100644 --- a/softwareDirectory/AutoVerScheme/my_task.h +++ b/softwareDirectory/AutoVerScheme/my_task.h @@ -21,6 +21,13 @@ void initForm(); //初始化界面数据 void ShowMessageBox(QString title,QString value); void Load() override; + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(MyTask entity); + void on_pushButtonUpdate_clicked(); + + void on_SeachButton_clicked(); +public: + QList data; private: Ui::My_Task *ui; }; diff --git a/softwareDirectory/AutoVerScheme/my_task.ui b/softwareDirectory/AutoVerScheme/my_task.ui index 96646e4..16aff2f 100644 --- a/softwareDirectory/AutoVerScheme/my_task.ui +++ b/softwareDirectory/AutoVerScheme/my_task.ui @@ -6,13 +6,16 @@ 0 0 - 1190 + 1366 577 Form + + color:black; + @@ -49,7 +52,7 @@ - + @@ -71,7 +74,7 @@ - + @@ -93,7 +96,7 @@ - + @@ -115,7 +118,7 @@ - + @@ -147,7 +150,7 @@ - + @@ -163,7 +166,7 @@ - + Qt::LeftToRight @@ -182,7 +185,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp index eda35ae..e4bb168 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.cpp @@ -84,7 +84,15 @@ } void Standard_DeviceItem::Load() { + //获取主页面内容 + //初始化下拉框 + ui->combox_devicename->clear(); + ui->combox_mode->clear(); + ui->combox_manufacturer_->clear(); + ui->combox_devicename->addItem("ALL"); + ui->combox_mode->addItem("ALL"); + ui->combox_manufacturer_->addItem("ALL"); //进入主页面 ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -96,7 +104,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = BaseCommonApi::getBizDeviceManage(); + data = BaseCommonApi::getBizDeviceManage(); for (const BizDevice& bizDevice : data) { @@ -135,6 +143,8 @@ }); + //渲染下拉框 + SetHomePaheCombox(bizDevice); row++; } @@ -231,20 +241,114 @@ } } +void Standard_DeviceItem::SetHomePaheCombox(BizDevice entity) +{ + if(comboBoxContainsItem(ui->combox_mode,entity.model)){ + ui->combox_mode->addItem(entity.model); + } + if(comboBoxContainsItem(ui->combox_devicename,entity.equipment_name)){ + ui->combox_devicename->addItem(entity.equipment_name); + } + if(comboBoxContainsItem(ui->combox_manufacturer_,entity.manufacturer)){ + ui->combox_manufacturer_->addItem(entity.manufacturer); + } +} +bool Standard_DeviceItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void Standard_DeviceItem::on_Select_clicked() +{ + //筛选操作 + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const BizDevice& bizDevice : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->combox_devicename->currentText() != "ALL") { + if (ui->combox_devicename->currentText() != bizDevice.equipment_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_mode->currentText() != "ALL") { + if (ui->combox_mode->currentText() != bizDevice.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->combox_manufacturer_->currentText() != "ALL") { + if (ui->combox_manufacturer_->currentText() != bizDevice.manufacturer) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != bizDevice.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if(shouldAddRow==true){ + rowCount = ui->tableWidget->rowCount(); + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(bizDevice.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(bizDevice.equipment_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(bizDevice.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(bizDevice.manufacture_no)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(bizDevice.manufacturer)); + //添加操作按钮 + QPushButton *button = new QPushButton("查看"); + ui->tableWidget->setCellWidget(row, 6, button); + //设置按钮简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonSelectClicked(id); + } + }); + row++; + } + } +} - - - - +void Standard_DeviceItem::on_pushButton_8_clicked() +{ + Load(); + ui->combox_devicename->setCurrentIndex(0); + ui->combox_mode->setCurrentIndex(0); + ui->combox_manufacturer_->setCurrentIndex(0); + ui->number->setText(""); +} diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.h b/softwareDirectory/AutoVerScheme/standard_deviceitem.h index b757e67..f522658 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.h +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.h @@ -23,6 +23,13 @@ void OnButtonSelectClicked(QString id); void on_pushButton_clicked(); void DeviceInfoInit(QString id); + void SetHomePaheCombox(BizDevice entity); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void on_Select_clicked(); + + void on_pushButton_8_clicked(); +public: + QList data; private: Ui::Standard_DeviceItem *ui; }; diff --git a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui index 7575a66..9b1acd4 100644 --- a/softwareDirectory/AutoVerScheme/standard_deviceitem.ui +++ b/softwareDirectory/AutoVerScheme/standard_deviceitem.ui @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -147,7 +147,7 @@ - + 180 @@ -176,7 +176,7 @@ - + Qt::LeftToRight @@ -195,7 +195,7 @@ - + Qt::LeftToRight diff --git a/softwareDirectory/AutoVerScheme/testdataitem.cpp b/softwareDirectory/AutoVerScheme/testdataitem.cpp index 89e1321..4c308c1 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.cpp +++ b/softwareDirectory/AutoVerScheme/testdataitem.cpp @@ -34,13 +34,44 @@ //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); + //设置tableWidgetItem + ui->tableWidget->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->setColumnWidth(1, 80); // 设置第一列的宽度为100像素 + ui->tableWidgetItem->verticalHeader()->setParent(nullptr); //隐藏行头 + //QTableWidgetItem *item = new QTableWidgetItem("测试数据"); + //item->setTextAlignment(Qt::AlignCenter); + //ui->tableWidget->setItem(0, 0, item); //设置数据 + ui->tableWidgetItem->setColumnWidth(0,0); + + //tableWidgetdevice设置 + //设置控件的边框显示 + ui->tableWidgetdevice->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->tableWidgetdevice->setColumnCount(6); // 设置11列 + ui->tableWidgetdevice->verticalHeader()->setParent(nullptr); //隐藏行头 + //初始化TableWidget 设置列 + headers << "类型" << "设备名称" << "型号规则" << "辅助字段" << "出厂编号" + << "生产厂家"; + ui->tableWidgetdevice->setHorizontalHeaderLabels(headers); } void TestDataItem::ShowMessageBox(QString title,QString value) { @@ -66,6 +97,21 @@ // ======================================================================================== // 主页面初始化 检定管理初始化 // ==================================================================================== + // + ui->name->clear(); + ui->mode->clear(); + ui->tasknumber->clear(); + ui->dept->clear(); + ui->verification->clear(); + ui->verification->clear(); + ui->name->addItem("ALL"); + ui->mode->addItem("ALL"); + ui->tasknumber->addItem("ALL"); + ui->dept->addItem("ALL"); + ui->verification->addItem("ALL"); + ui->verification->addItem("ALL"); + ui->number->setText(""); + ui->tableWidget->setRowCount(0); ui->stackedWidget->setCurrentIndex(0); //先设置为行为0 @@ -73,7 +119,7 @@ // 调用数据库管理器的函数获取数据 int rowCount=0; int row=0; - QList data = dbManager.getVerificationData(); + data = dbManager.getVerificationData(); for (const VerificationData& item : data) { rowCount = ui->tableWidget->rowCount(); @@ -113,13 +159,10 @@ button->setIconSize(QSize(16,16)); button->setIcon(QIcon(":/image/Index/u2327.svg")); // 连接按钮的 clicked 信号到自定义槽函数 - connect(button, &QPushButton::clicked, this, [this, button, row]() { + connect(button, &QPushButton::clicked, this, [this, button, item]() { // 获取当前行第一列的 ID - QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); - if (idItem) { - QString id = idItem->text(); - OnButtonSelectClicked(id); - } + + OnButtonSelectClicked(item); }); //设置按钮2简单样式 @@ -150,20 +193,19 @@ widget->setLayout(layout); //将布局控件添加到 单元格 ui->tableWidget->setCellWidget(row, 14, widget); - // 调整表格大小以适应内容 - //ui->tableWidget->resizeColumnsToContents(); - // ui->tableWidget->resizeRowsToContents(); + + SetHomePaheCombox(item); row++; } } -void TestDataItem::OnButtonSelectClicked(QString id) +void TestDataItem::OnButtonSelectClicked(VerificationData entity) { // ======================================================================================== // 编辑按钮 点击事件 进入详情页面 // ==================================================================================== - DeviceInfoInit(id); + DeviceInfoInit(entity); ui->stackedWidget->setCurrentIndex(1); - QMessageBox::information(this, "ID",id); + QMessageBox::information(this, "ID",entity.id); } void TestDataItem::OnButtonPreViewtClicked(QString id) { @@ -179,22 +221,76 @@ { ui->stackedWidget->setCurrentIndex(0); } -void TestDataItem::DeviceInfoInit(QString id) +void TestDataItem::DeviceInfoInit(VerificationData entity) { + QString id=entity.id; // ======================================================================================== - // 初始化详情 结果信息 + // 设备信息 被检-标准 + // ==================================================================================== + //tableWidgetdevice + ui->tableWidgetdevice->setRowCount(0); + int rowCount=0; + int row=0; + QList data=dbManager.getVerificationBasicDataDevice(id); + for(const VerificationBasicDataDevice& item:data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("标准设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(item.equipment_name)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(item.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem("/")); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(item.equipment_no)); + ui->tableWidgetdevice->setItem(row, 5, new QTableWidgetItem(item.manufacturer)); + row++; + } + //添加被检 + //获取行号 并进行添加行 + rowCount = ui->tableWidgetdevice->rowCount(); + ui->tableWidgetdevice->insertRow(rowCount); + ui->tableWidgetdevice->setItem(row, 0, new QTableWidgetItem("被检设备")); + ui->tableWidgetdevice->setItem(row, 1, new QTableWidgetItem(entity.NAME)); + ui->tableWidgetdevice->setItem(row, 2, new QTableWidgetItem(entity.model)); + ui->tableWidgetdevice->setItem(row, 3, new QTableWidgetItem(entity.help_instruction)); + ui->tableWidgetdevice->setItem(row, 4, new QTableWidgetItem(entity.manufacture_no)); + ui->tableWidgetdevice->setItem(row, 5, new QTableWidgetItem(entity.manufacturer)); + // ======================================================================================== + // 基本信息 + // ==================================================================================== + VerificationBasicDataDetails VerData= dbManager.getVerificationBasicDataDetails(entity.item_id); + ui->customer_name->setText(VerData.NAME); + ui->based_documents->setText(VerData.based_documents); + ui->trace_date->setText(VerData.trace_date.toString()); + ui->temperature->setText(VerData.temperature); + ui->humidity->setText(VerData.humidity); + ui->measure_address->setText(VerData.measure_address); + ui->measure_valid_date->setText(VerData.measure_valid_date.toString()); + ui->NAME->setText(VerData.customer_name); + ui->conclusion->setText(VerData.conclusion); + ui->restriction_instruction->setText(VerData.restriction_instruction); + ui->appearance_remark->setText(VerData.appearance_function_check); + ui->appearance_true->setCheckState(Qt::CheckState::Unchecked); + ui->appearance_false->setCheckState(Qt::CheckState::Unchecked); + if(VerData.appearance_remark=="1") + { + ui->appearance_true->setCheckState(Qt::CheckState::Checked); + }else if(VerData.appearance_remark=="2") + { + ui->appearance_false->setCheckState(Qt::CheckState::Checked); + } + // ======================================================================================== + // 检定项目及检定点 // ==================================================================================== QStringList headlist; - QList Data = dbManager.Search_VerifyDataTable(id,id,&headlist); //参数待修改 - - + QList Data = dbManager.Search_CalibrationDataTable(entity.sample_id,entity.id,&headlist); ui->tableWidgetItem->setRowCount(0); ui->tableWidgetItem->setColumnCount(headlist.count()); ui->tableWidgetItem->setHorizontalHeaderLabels(headlist); //循环数据 - int rowCount=0; - int row=0; + rowCount=0; + row=0; for (const QStringList& item : Data) { //获取行号 并进行添加行 @@ -212,12 +308,168 @@ } } +void TestDataItem::SetHomePaheCombox(VerificationData entity) +{ + if(comboBoxContainsItem(ui->name,entity.sample_name)){ + ui->name->addItem(entity.sample_name); + } + if(comboBoxContainsItem(ui->mode,entity.model)){ + ui->mode->addItem(entity.model); + } + if(comboBoxContainsItem(ui->tasknumber,entity.customer_name)){ + ui->tasknumber->addItem(entity.customer_name); + } + if(comboBoxContainsItem(ui->dept,entity.FULL_NAME)){ + ui->dept->addItem(entity.FULL_NAME); + } + if(comboBoxContainsItem(ui->verification,entity.NAME)){ + ui->verification->addItem(entity.NAME); + } + +} +bool TestDataItem::comboBoxContainsItem(QComboBox *comboBox, const QString &itemText) +{ + for (int i = 0; i < comboBox->count(); ++i) { + if (comboBox->itemText(i) == itemText) { + return false; // 找到匹配项,返回 true + } + } + return true; // 没有找到匹配项,返回 false +} +void TestDataItem::on_select_clicked() +{ + if(data.count()==0){ + ShowMessageBox("提示框","数据为空"); + return; + } + //筛选 + ui->tableWidget->setRowCount(0); + int rowCount=0; + int row=0; + for (const VerificationData& item : data) { + bool shouldAddRow = true; // 初始假设应该添加这一行 + // 根据设备名称筛选 + if (ui->name->currentText() != "ALL") { + if (ui->name->currentText() != item.sample_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->mode->currentText() != "ALL") { + if (ui->mode->currentText() != item.model) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->number->text() != "") { + if (ui->number->text() != item.manufacture_no) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->tasknumber->currentText() != "ALL") { + if (ui->tasknumber->currentText() != item.customer_name) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + if (ui->verification->currentText() != "ALL") { + if (ui->verification->currentText() != item.NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } if (ui->dept->currentText() != "ALL") { + if (ui->dept->currentText() != item.FULL_NAME) { + shouldAddRow = false; // 设备名称不匹配,不添加这一行 + } + } + + if(shouldAddRow){ + + rowCount = ui->tableWidget->rowCount(); + + ui->tableWidget->insertRow(rowCount); + ui->tableWidget->setItem(row, 0, new QTableWidgetItem(item.id)); + ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); + ui->tableWidget->setItem(row, 2, new QTableWidgetItem(item.sample_name)); + ui->tableWidget->setItem(row, 3, new QTableWidgetItem(item.model)); + ui->tableWidget->setItem(row, 4, new QTableWidgetItem(item.help_instruction)); + ui->tableWidget->setItem(row, 5, new QTableWidgetItem(item.manufacture_no)); + ui->tableWidget->setItem(row, 6, new QTableWidgetItem(item.manufacturer)); + ui->tableWidget->setItem(row, 7, new QTableWidgetItem(item.customer_name)); + ui->tableWidget->setItem(row, 8, new QTableWidgetItem(item.FULL_NAME)); + ui->tableWidget->setItem(row, 9, new QTableWidgetItem(item.NAME)); + ui->tableWidget->setItem(row, 10, new QTableWidgetItem(item.trace_date.toString())); + ui->tableWidget->setItem(row, 11, new QTableWidgetItem(item.measure_valid_date.toString())); + ui->tableWidget->setItem(row, 12, new QTableWidgetItem(item.meter_identify)); + ui->tableWidget->setItem(row, 13, new QTableWidgetItem(item.restriction_instruction)); + //实现单元格添加两个按钮 + // 创建一个QWidget作为单元格的容器 + QWidget *widget = new QWidget(); + QHBoxLayout *layout = new QHBoxLayout(widget); // 水平布局 + QPushButton *button = new QPushButton("详情"); + QPushButton *button2 = new QPushButton("预览"); + //设置按钮1简单样式 + button->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + // 设置鼠标悬停时的光标样式为小手图标 + button->setCursor(Qt::PointingHandCursor); + button->setIconSize(QSize(16,16)); + button->setIcon(QIcon(":/image/Index/u2327.svg")); + // 连接按钮的 clicked 信号到自定义槽函数 + connect(button, &QPushButton::clicked, this, [this, button, item]() { + // 获取当前行第一列的 ID + OnButtonSelectClicked(item); + }); + //设置按钮2简单样式 + button2->setStyleSheet("QPushButton {" + " border: none; /* 无边框 */" + " color: green; /* 文本颜色 */" + " text-decoration: underline; /* 文本下划线 */" + "}"); + + // 设置鼠标悬停时的光标样式为小手图标 + 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 + QTableWidgetItem *idItem = this->ui->tableWidget->item(row, 0); + if (idItem) { + QString id = idItem->text(); + OnButtonPreViewtClicked(id); + } + + }); + //将按钮添加到布局控件 + layout->addWidget(button); + layout->addWidget(button2); + layout->setContentsMargins(5, 5, 0, 0); // 设置布局边距为0 + widget->setLayout(layout); + //将布局控件添加到 单元格 + ui->tableWidget->setCellWidget(row, 14, widget); + + SetHomePaheCombox(item); + row++; + } + }; +} + +void TestDataItem::on_groupBox_2_clicked() +{ + Load(); + ui->name->setCurrentIndex(0); + ui->mode->setCurrentIndex(0); + ui->tasknumber->setCurrentIndex(0); + ui->dept->setCurrentIndex(0); + ui->verification->setCurrentIndex(0); + ui->verification->setCurrentIndex(0); +} diff --git a/softwareDirectory/AutoVerScheme/testdataitem.h b/softwareDirectory/AutoVerScheme/testdataitem.h index 35e66ef..6cff2f4 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.h +++ b/softwareDirectory/AutoVerScheme/testdataitem.h @@ -20,12 +20,19 @@ void ShowMessageBox(QString title,QString value); //继承父类的Load方法 void Load() override; - void OnButtonSelectClicked(QString id); + void OnButtonSelectClicked(VerificationData id); void on_pushButton_clicked(); void OnButtonPreViewtClicked(QString id); - void DeviceInfoInit(QString id); + void DeviceInfoInit(VerificationData id); + bool comboBoxContainsItem(QComboBox *comboBox, const QString &itemText); + void SetHomePaheCombox(VerificationData entity); + void on_select_clicked(); + + void on_groupBox_2_clicked(); + private: Ui::TestDataItem *ui; + QList data; }; #endif // TESTDATAITEM_H diff --git a/softwareDirectory/AutoVerScheme/testdataitem.ui b/softwareDirectory/AutoVerScheme/testdataitem.ui index 5a78019..1f79a76 100644 --- a/softwareDirectory/AutoVerScheme/testdataitem.ui +++ b/softwareDirectory/AutoVerScheme/testdataitem.ui @@ -7,7 +7,7 @@ 0 0 1543 - 580 + 609 @@ -32,7 +32,7 @@ - 1 + 0 @@ -74,7 +74,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -118,7 +118,7 @@ - + 0 @@ -135,7 +135,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -155,7 +155,7 @@ - + @@ -181,7 +181,7 @@ - + Qt::LeftToRight @@ -200,7 +200,7 @@ - + Qt::LeftToRight @@ -429,7 +429,7 @@ - + @@ -443,16 +443,6 @@ - - 3 - - - - - 环境温度: - - - @@ -460,59 +450,10 @@ - - - - 介质: - - - - - + + - ForbiddenCursor - - - background-color: #f0f0f0; -color: grey; - - - XXX - - - - - - - 结论: - - - - - - - 检定有效期至: - - - - - - - ForbiddenCursor - - - background-color: #f0f0f0; -color: grey; - - - XXX - - - - - - - ForbiddenCursor + IBeamCursor background-color: #f0f0f0; @@ -530,10 +471,94 @@ - - + + - ForbiddenCursor + IBeamCursor + + + background-color: #f0f0f0; +color: grey; + + + XXX + + + + + + + 检定日期: + + + + + + + IBeamCursor + + + background-color: #f0f0f0; +color: grey; + + + XXX + + + + + + + 环境温度: + + + + + + + IBeamCursor + + + background-color: #f0f0f0; +color: grey; + + + XXX + + + + + + + 环境湿度: + + + + + + + IBeamCursor + + + background-color: #f0f0f0; +color: grey; + + + XXX + + + + + + + 检定有效期至: + + + + + + + IBeamCursor background-color: #f0f0f0; @@ -551,10 +576,10 @@ - - + + - ForbiddenCursor + IBeamCursor background-color: #f0f0f0; @@ -565,10 +590,38 @@ - - + + + + 介质: + + + + + - ForbiddenCursor + IBeamCursor + + + background-color: #f0f0f0; +color: grey; + + + 目前缺少 + + + + + + + 结论: + + + + + + + IBeamCursor background-color: #f0f0f0; @@ -586,8 +639,8 @@ - - + + ForbiddenCursor @@ -600,50 +653,15 @@ - - - - ForbiddenCursor - - - background-color: #f0f0f0; -color: grey; - - - XXX - - - - - - - ForbiddenCursor - - - background-color: #f0f0f0; -color: grey; - - - XXX - - - - + 检定地点: - - - - 检定日期: - - - - - + + ForbiddenCursor @@ -735,14 +753,14 @@ - + 合格 - + 不合格 @@ -756,7 +774,7 @@ - +