Bladeren bron

校验项目

chengxr 1 jaar geleden
bovenliggende
commit
d078cd57f3

+ 27 - 0
QFD/common/ProjectManager.cpp

@@ -93,3 +93,30 @@ int ProjectManager::queryProjects(QList<ProjectInfo *> *projList)
     bool ret = ProjectService().QueryAll(projList);
     return ret ? QF_CODE_SUCCEEDED : QF_CODE_DATA_ERROR;
 }
+
+int ProjectManager::verifyProjectInfo(ProjectInfo proj)
+{
+    if (proj.taskName.isEmpty() || proj.estimateObjective.isEmpty() || proj.estimateDept.isEmpty()
+        || proj.estimatePerson.isEmpty() || proj.positionalTitles.isEmpty() || proj.remark.isEmpty()) {
+        return QF_CODE_NEED_PROJ_SUMMARY;
+    }
+
+    if (proj.projectName.isEmpty()) {
+        return QF_CODE_NEED_PROJ_NAME;
+    }
+
+    if (proj.estimateType.isEmpty()) {
+        return QF_CODE_NEED_PROJ_TYPE;
+    }
+
+    return QF_CODE_SUCCEEDED;
+}
+
+int ProjectManager::insertProject(ProjectInfo &proj)
+{
+    int code = verifyProjectInfo(proj);
+    if (code == QF_CODE_SUCCEEDED) {
+        ProjectService().AddProjectInfo(proj);
+    }
+    return code;
+}

+ 8 - 0
QFD/common/ProjectManager.h

@@ -43,7 +43,15 @@ public:
     static QList<EvalType> evalTypeList(ProjectInfo proj);
     static QList<IndexType> indexList(ProjectInfo proj);
 
+    ///
+    /// \brief queryProjects 查询全部项目
+    /// \param projList 项目列表
+    /// \return 错误码
     static int queryProjects(QList<ProjectInfo *> *projList);
+
+    static int verifyProjectInfo(ProjectInfo proj);
+
+    static int insertProject(ProjectInfo &proj);
 };
 
 #endif  // PROJECTMANAGER_H

+ 4 - 0
QFD/dbService/ClassSet.h

@@ -23,6 +23,10 @@ const int QF_CODE_EMPTY_USERNAME     = 2009;
 const int QF_CODE_ACCOUNT_OCCUPIED   = 2010;
 const int QF_CODE_DELETE_USER_FAILED = 2011;
 
+const int QF_CODE_NEED_PROJ_SUMMARY = 2020;
+const int QF_CODE_NEED_PROJ_NAME    = 2021;
+const int QF_CODE_NEED_PROJ_TYPE    = 2022;
+
 /**
  * @projectName   QFD
  * @author        cyh

+ 7 - 1
QFD/view/HomeView.cpp

@@ -83,6 +83,7 @@ void HomeView::connectSignalsAndSlots()
 {
     connect(m_create, &PushButton::clicked, this, &HomeView::slotCreateProjClicked);
     connect(m_search, &LineEdit::textChanged, this, &HomeView::slotSearchTextChanged);
+    connect(m_createProjWidget, &CreateProjWidget::signalCreate, this, &HomeView::slotConfirmCreate);
 }
 
 void HomeView::loadProjects()
@@ -113,7 +114,7 @@ QList<ProjectInfo *> HomeView::searchResult() const
 void HomeView::slotCreateProjClicked()
 {
     if (m_createProjWidget->isVisible() == false) {
-        m_createProjWidget->clearInputs();
+        m_createProjWidget->resetInputs();
         m_createProjWidget->show();
     }
 }
@@ -122,3 +123,8 @@ void HomeView::slotSearchTextChanged()
 {
     m_projListWidget->showProjects(searchResult());
 }
+
+void HomeView::slotConfirmCreate()
+{
+    ProjectInfo info = m_createProjWidget->projectInfo();
+}

+ 1 - 1
QFD/view/HomeView.h

@@ -6,7 +6,6 @@
 class ProjectInfo;
 
 class CreateProjWidget;
-class ProjectStateWidget;
 class ProjectListWidget;
 
 class PushButton;
@@ -40,6 +39,7 @@ private:
 private slots:
     void slotCreateProjClicked();
     void slotSearchTextChanged();
+    void slotConfirmCreate();
 
 private:
     bool m_initilized = false;

+ 7 - 5
QFD/widgets/CreateProjWidget.cpp

@@ -18,13 +18,15 @@ CreateProjWidget::CreateProjWidget(QWidget *parent) : QDialog(parent)
 {
     initWindow();
     initWidgets();
+    resetInputs();
     initLayout();
     connectSignalsAndSlots();
 }
 
-void CreateProjWidget::clearInputs()
+void CreateProjWidget::resetInputs()
 {
     m_taskName->clear();
+    m_evalTime->setDateTime(QDateTime::currentDateTime());
     m_evalPurpose->clear();
     m_evalUnit->clear();
     m_evalCrew->clear();
@@ -54,7 +56,9 @@ ProjectInfo CreateProjWidget::projectInfo() const
     t |= (m_type1->isChecked() ? ProjectManager::Requirements : ProjectManager::None);
     t |= (m_type2->isChecked() ? ProjectManager::SchemeOptimization : ProjectManager::None);
     t |= (m_type3->isChecked() ? ProjectManager::OverallEfficiency : ProjectManager::None);
-    proj.estimateType = QString::number(t);
+    if (t != ProjectManager::None) {
+        proj.estimateType = QString::number(t);
+    }
 
     return proj;
 }
@@ -77,8 +81,7 @@ void CreateProjWidget::initWidgets()
     m_summary->setText("项目概要:");
     m_taskName = new LineEdit(this);
     m_taskName->setPlaceholderText("任务名称");
-    m_evalTime = new DateTimeEdit(this);
-    m_evalTime->setDateTime(QDateTime::currentDateTime());
+    m_evalTime    = new DateTimeEdit(this);
     m_evalPurpose = new LineEdit(this);
     m_evalPurpose->setPlaceholderText("评估目的");
     m_evalUnit = new LineEdit(this);
@@ -187,7 +190,6 @@ void CreateProjWidget::slotCreateClicked()
     qDebug() << __FUNCTION__ << p.taskName << p.estimateTime << p.estimateObjective << p.estimateDept
              << p.estimatePerson << p.positionalTitles << p.remark << p.projectName << p.estimateType;
 
-    return;
     emit signalCreate();
     close();
 }

+ 1 - 1
QFD/widgets/CreateProjWidget.h

@@ -23,7 +23,7 @@ class CreateProjWidget : public QDialog
 public:
     CreateProjWidget(QWidget *parent = nullptr);
 
-    void clearInputs();
+    void resetInputs();
 
     ProjectInfo projectInfo() const;