DataCollectionWidget.cpp 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #include "DataCollectionWidget.h"
  2. #include "DataTableWidget.h"
  3. #include "ConfigExpertDataWidget.h"
  4. #include "ConfigMeasureDataWidget.h"
  5. #include "dbService/SchemeProcessService.h"
  6. #include "dbService/ClassSet.h"
  7. #include "dbService/CNodeDataService.h"
  8. #include <CNode.h>
  9. #include <QTabWidget>
  10. #include <QBoxLayout>
  11. #include <QMap>
  12. #include <QDebug>
  13. DataCollectionWidget::DataCollectionWidget(ProjectInfo *proj, QWidget *parent) : EvalWidget(proj, parent)
  14. {
  15. setTitle("评估数据采集");
  16. m_configExpert = new ConfigExpertDataWidget(this);
  17. m_configMeasure = new ConfigMeasureDataWidget(this);
  18. m_configMeasure->setFixedWidth(256);
  19. m_contentLayout->addWidget(m_configExpert);
  20. m_contentLayout->addWidget(m_configMeasure);
  21. connect(m_tab, &QTabWidget::currentChanged, this, &DataCollectionWidget::slotTabCurrentChanged);
  22. }
  23. void DataCollectionWidget::setType(int type)
  24. {
  25. EvalWidget::setType(type);
  26. setupTabWidget();
  27. qDebug() << __FUNCTION__ << __LINE__ << m_configExpert->size() << endl;
  28. }
  29. void DataCollectionWidget::setupTabWidget()
  30. {
  31. m_tab->clear();
  32. QMap<int, QList<CNodeData>> nodeListMap;
  33. for (int i : indexList()) {
  34. // 获取指标体系数据
  35. QList<CNodeData> nodeList;
  36. bool ret = CNodeDataService().QueryAll(nodeList, m_proj->id, i);
  37. if (ret) {
  38. nodeListMap[i] = nodeList;
  39. } else {
  40. return;
  41. }
  42. // 获取方案规划数据
  43. QList<SchemePlanManager::SchemeProcessInfo> processList;
  44. ret = SchemeProcessService().QueryAllByProjectIdAndIndexType(processList, m_proj->id, i);
  45. if (ret == false) {
  46. return;
  47. }
  48. for (SchemePlanManager::SchemeProcessInfo process : processList) {
  49. if (process.dSource >= 0) {
  50. DataTableWidget *table = new DataTableWidget(process, this);
  51. table->mind1()->setNodeList(nodeListMap[i]);
  52. if (i == ProjectManager::TechIndex) {
  53. table->mind2()->setNodeList(nodeListMap[ProjectManager::AbilityIndex]);
  54. }
  55. table->setCurrentPage(1);
  56. ProjectManager::IndexType t = (ProjectManager::IndexType)i;
  57. QString indexName = ProjectManager::nameOfIndexType(t);
  58. QString processName = SchemePlanManager::processName(process);
  59. m_tab->addTab(table, indexName + " - " + processName);
  60. }
  61. }
  62. }
  63. }
  64. void DataCollectionWidget::slotTabCurrentChanged(int index)
  65. {
  66. DataTableWidget *table = (DataTableWidget *)m_tab->widget(index);
  67. if (index >= 0) {
  68. m_configExpert->setHidden(table->process().dSource != SchemePlanManager::FromExpert);
  69. m_configMeasure->setHidden(table->process().dSource != SchemePlanManager::FromMeasurement);
  70. }
  71. }