ProjectService.cpp 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. #include "ProjectService.h"
  2. #include "SqlDBHelper.h"
  3. #include <QDebug>
  4. ProjectService::ProjectService(QObject *parent) { }
  5. //新增项目
  6. int ProjectService::AddProjectInfo(const ProjectInfo &projectInfo)
  7. {
  8. int ret = -1;
  9. try {
  10. Transaction t(SqlDBHelper::getDatabase());
  11. InsertQuery query =
  12. t.insertInto("t_project_info(`project_name`, `demand_mind_id`, `programme_mind_id`, "
  13. "`general_mind_id`, `remark`, `task_name`, `estimate_time`, `estimate_objective`, "
  14. "`estimate_dept`, `estimate_person`,`estimate_type`, `positional_titles`, `create_time`)");
  15. NonQueryResult result =
  16. query.values(projectInfo.projectName, projectInfo.demandMindId, projectInfo.programmeMindId,
  17. projectInfo.generalMindId, projectInfo.remark, projectInfo.taskName,
  18. projectInfo.estimateTime, projectInfo.estimateObjective, projectInfo.estimateDept,
  19. projectInfo.estimatePerson, projectInfo.estimateType, projectInfo.positionalTitles,
  20. projectInfo.createTime)
  21. .exec();
  22. t.commit();
  23. ret = result.lastInsertId().toInt();
  24. } catch (const DBException &ex) {
  25. qDebug() << ex.lastError.text();
  26. }
  27. return ret;
  28. }
  29. //更新项目信息
  30. bool ProjectService::UpdateProjectInfo(const ProjectInfo &proInfo)
  31. {
  32. bool ret = false;
  33. try {
  34. Transaction t(SqlDBHelper::getDatabase());
  35. t.update("t_project_info")
  36. .set("project_name", proInfo.projectName)
  37. .set("remark", proInfo.remark)
  38. .set("task_name", proInfo.taskName)
  39. .set("estimate_time", proInfo.estimateTime)
  40. .set("estimate_objective", proInfo.estimateObjective)
  41. .set("estimate_dept", proInfo.estimateDept)
  42. .set("estimatePerson", proInfo.estimatePerson)
  43. .set("estimateType", proInfo.estimateType)
  44. .set("positionalTitles", proInfo.positionalTitles)
  45. .set("updateTime", proInfo.updateTime)
  46. .where("id = ?", proInfo.id);
  47. t.commit();
  48. ret = true;
  49. } catch (const DBException &ex) {
  50. qDebug() << ex.lastError.text();
  51. }
  52. return ret;
  53. }
  54. //更新脑图ID
  55. bool ProjectService::UpdateDemandById(int enjId, int demandId)
  56. {
  57. bool ret = false;
  58. try {
  59. Transaction t(SqlDBHelper::getDatabase());
  60. t.update("t_project_info").set("demand_mind_id", demandId).where("id = ?", enjId);
  61. t.commit();
  62. ret = true;
  63. } catch (const DBException &ex) {
  64. qDebug() << ex.lastError.text();
  65. }
  66. return ret;
  67. }
  68. bool ProjectService::UpdateGeneralById(int enjId, int generalId)
  69. {
  70. bool ret = false;
  71. try {
  72. Transaction t(SqlDBHelper::getDatabase());
  73. t.update("t_project_info").set("general", generalId).where("id = ?", enjId);
  74. t.commit();
  75. ret = true;
  76. } catch (const DBException &ex) {
  77. qDebug() << ex.lastError.text();
  78. }
  79. return ret;
  80. }
  81. bool ProjectService::UpdateProgrammeById(int enjId, int programmeId)
  82. {
  83. bool ret = false;
  84. try {
  85. Transaction t(SqlDBHelper::getDatabase());
  86. t.update("t_project_info").set("programme_mind_id", programmeId).where("id = ?", enjId);
  87. t.commit();
  88. ret = true;
  89. } catch (const DBException &ex) {
  90. qDebug() << ex.lastError.text();
  91. }
  92. return ret;
  93. }
  94. //获取项目详情
  95. bool ProjectService::QueryProjectById(ProjectInfo *proJectInfo, int id)
  96. {
  97. QSqlDatabase db = SqlDBHelper::getDatabase();
  98. QSqlQuery query(db);
  99. bool ret = false;
  100. QString selectSql = QString("SELECT id, project_name, demand_mind_id, programme_mind_id, "
  101. "general_mind_id,remark,task_name,estimate_time,estimate_objective,estimate_dept,"
  102. "estimate_person,positional_titles,create_time,update_time,estimate_type FROM "
  103. "t_project_info WHERE id = %1")
  104. .arg(id);
  105. if (query.exec(selectSql)) {
  106. if (query.next()) {
  107. if (query.isNull(0) == false) {
  108. proJectInfo->id = query.value(0).toInt();
  109. proJectInfo->projectName = query.value(1).toString();
  110. proJectInfo->demandMindId = query.value(2).toInt();
  111. proJectInfo->programmeMindId = query.value(3).toInt();
  112. proJectInfo->generalMindId = query.value(4).toInt();
  113. proJectInfo->remark = query.value(5).toString();
  114. proJectInfo->taskName = query.value(6).toString();
  115. proJectInfo->estimateTime = query.value(7).toString();
  116. proJectInfo->estimateObjective = query.value(8).toString();
  117. proJectInfo->estimateDept = query.value(9).toString();
  118. proJectInfo->estimatePerson = query.value(10).toString();
  119. proJectInfo->positionalTitles = query.value(11).toString();
  120. proJectInfo->createTime = query.value(12).toString();
  121. proJectInfo->updateTime = query.value(13).toString();
  122. proJectInfo->estimateType = query.value(14).toString();
  123. }
  124. ret = true;
  125. }
  126. } else {
  127. qDebug() << query.lastError();
  128. }
  129. return ret;
  130. }
  131. //判断项目名是否存在
  132. bool ProjectService::QueryProjectByName(QString name)
  133. {
  134. QSqlDatabase db = SqlDBHelper::getDatabase();
  135. QSqlQuery query(db);
  136. bool ret = false;
  137. QString selectSql = QString("SELECT id, project_name, demand_mind_id, programme_mind_id, "
  138. "general_mind_id,remark,task_name,estimate_time,estimate_objective,estimate_dept,"
  139. "estimate_person,positional_titles,create_time,update_time,estimate_type FROM "
  140. "t_project_info WHERE project_name = %1")
  141. .arg(name);
  142. if (query.exec(selectSql)) {
  143. if (query.next()) {
  144. ret = true;
  145. }
  146. } else {
  147. qDebug() << query.lastError();
  148. }
  149. return ret;
  150. }
  151. bool ProjectService::QueryAll(QList<ProjectInfo *> *projectInfoList)
  152. {
  153. QSqlDatabase db = SqlDBHelper::getDatabase();
  154. QSqlQuery query(db);
  155. bool ret = false;
  156. QString selectSql = QString("SELECT id, project_name, demand_mind_id, programme_mind_id, "
  157. "general_mind_id,remark,task_name,estimate_time,estimate_objective,estimate_dept,"
  158. "estimate_person,positional_titles,create_time,update_time,estimate_type FROM "
  159. "t_project_info");
  160. if (query.exec(selectSql)) {
  161. while (query.next()) {
  162. if (query.isNull(0) == false) {
  163. ProjectInfo *projectInfo = new ProjectInfo();
  164. projectInfo->id = query.value(0).toInt();
  165. projectInfo->projectName = query.value(1).toString();
  166. projectInfo->demandMindId = query.value(2).toInt();
  167. projectInfo->programmeMindId = query.value(3).toInt();
  168. projectInfo->generalMindId = query.value(4).toInt();
  169. projectInfo->remark = query.value(5).toString();
  170. projectInfo->taskName = query.value(6).toString();
  171. projectInfo->estimateTime = query.value(7).toString();
  172. projectInfo->estimateObjective = query.value(8).toString();
  173. projectInfo->estimateDept = query.value(9).toString();
  174. projectInfo->estimatePerson = query.value(10).toString();
  175. projectInfo->positionalTitles = query.value(11).toString();
  176. projectInfo->createTime = query.value(12).toString();
  177. projectInfo->updateTime = query.value(13).toString();
  178. projectInfo->estimateType = query.value(14).toString();
  179. projectInfoList->append(projectInfo);
  180. }
  181. ret = true;
  182. }
  183. } else {
  184. qDebug() << query.lastError();
  185. }
  186. return ret;
  187. }
  188. //根据id删除
  189. bool ProjectService::DeleteById(int id)
  190. {
  191. bool ret = false;
  192. try {
  193. Transaction t(SqlDBHelper::getDatabase());
  194. t.deleteFrom("t_project_info").where("id = ?", id);
  195. t.commit();
  196. ret = true;
  197. } catch (const DBException &ex) {
  198. qDebug() << ex.lastError.text();
  199. }
  200. return ret;
  201. }