#include "ProjectManager.h" #include #include #include #include #include QString ProjectManager::nameOFIndexType(ProjectManager::IndexType t) { switch (t) { case Capability: return "能力重要度评估指标体系"; case TechMessaures: return "技术措施重要度评估对象"; case SchemaEval: return "方案评估指标体系"; } } QString ProjectManager::nameOfEvalType(ProjectManager::EvalType t) { switch (t) { case None: return "无"; case Importance: return "能力与技术重要度评估"; case TechSchema: return "技术方案评估"; case Requirements: return "需求分析评估"; case SchemeOptimization: return "方案优选评估"; case OverallEfficiency: return "综合效能评估"; } } QList ProjectManager::indexListOfEvalTypes(EvalTypes types) { QList list; if ((types & EngineerInfo::Importance) == EngineerInfo::Importance) { list.append(Capability); list.append(TechMessaures); } if ((types & EngineerInfo::TechSchema) == EngineerInfo::TechSchema) { list.append(SchemaEval); } return list; } ProjectManager::EvalTypes ProjectManager::evalTypes(ProjectInfo proj) { int t = proj.estimateType.toInt(); t = 96; EvalTypes types = EvalTypes(t); return types; } QList ProjectManager::evalTypeList(EvalTypes types) { QList list; QMetaEnum metaEnum = QMetaEnum::fromType(); for (int i = 0; i < metaEnum.keyCount(); i++) { EvalType t = EvalType(metaEnum.value(i)); if (t != None && (types & t) == t) { list.append(t); } } return list; } QList ProjectManager::evalTypeList(ProjectInfo proj) { EvalTypes types = evalTypes(proj); QList list = evalTypeList(types); return list; } QList ProjectManager::indexList(ProjectInfo proj) { return indexListOfEvalTypes(evalTypes(proj)); } int ProjectManager::queryProjects(QList *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; }