DBServiceSet.cpp 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030
  1. #include "DBServiceSet.h"
  2. #include "SqlDBHelper.h"
  3. #include <QDebug>
  4. DBServiceSet::DBServiceSet(QObject *parent) { }
  5. //////////////////////common-start////////////////////
  6. int DBServiceSet::getNextId(QString tableName)
  7. {
  8. int nextId = -1;
  9. try {
  10. Transaction t(SqlDBHelper::getDatabase());
  11. QString selectSql = QString("SELECT seq from sqlite_sequence WHERE name = '%1'").arg(tableName);
  12. QueryResult queryResult = t.execQuery(selectSql);
  13. if (queryResult.next()) {
  14. nextId = queryResult.value(0).toInt() + 1;
  15. }
  16. } catch (const DBException &ex) {
  17. qDebug() << ex.lastError.text();
  18. }
  19. return nextId;
  20. }
  21. //////////////////////common-end////////////////////
  22. /////////////////////方案持久化-start////////////////
  23. bool DBServiceSet::AddSchemeInfoList(const QList<SchemaEval *> &schemeList)
  24. {
  25. bool ret = false;
  26. try {
  27. Transaction t(SqlDBHelper::getDatabase());
  28. for (int i = 0; i < schemeList.length(); i++) {
  29. SchemaEval *scheme = schemeList.at(i);
  30. InsertQuery q = t.insertInto("t_scheme_info (engineer_id,name,remark,value_str,score)");
  31. q.values(scheme->engineerId, scheme->name, scheme->remark, scheme->valueStr, scheme->score).exec();
  32. t.commit();
  33. }
  34. ret = true;
  35. } catch (const DBException &ex) {
  36. qDebug() << ex.lastError.text();
  37. }
  38. return ret;
  39. }
  40. bool DBServiceSet::DeleteSchemeByEngineerId(int engineerId)
  41. {
  42. bool ret = false;
  43. try {
  44. Transaction t(SqlDBHelper::getDatabase());
  45. t.deleteFrom("t_scheme_info").where("engineer_id = ?", engineerId);
  46. t.commit();
  47. ret = true;
  48. } catch (const DBException &ex) {
  49. qDebug() << ex.lastError.text();
  50. }
  51. return ret;
  52. }
  53. bool DBServiceSet::QuerySchemeInfoByEngineerId(QList<SchemaEval *> *schemeList, int engineerId)
  54. {
  55. QSqlDatabase db = SqlDBHelper::getDatabase();
  56. QSqlQuery query(db);
  57. bool ret = false;
  58. QString selectSql = QString("select id,engineer_id,name,remark,value_str "
  59. ",score from t_scheme_info where "
  60. " engineer_id =%1 ")
  61. .arg(QString::number(engineerId));
  62. // qDebug() << "sql=" << selectSql;
  63. if (query.exec(selectSql)) {
  64. while (query.next()) {
  65. if (query.isNull(0) == false) {
  66. SchemaEval *scheme = new SchemaEval();
  67. scheme->id = query.value(0).toInt();
  68. scheme->engineerId = query.value(1).toInt();
  69. scheme->name = query.value(2).toString();
  70. scheme->remark = query.value(3).toString();
  71. scheme->valueStr = query.value(4).toString();
  72. scheme->score = query.value(5).toDouble();
  73. schemeList->append(scheme);
  74. }
  75. ret = true;
  76. }
  77. } else {
  78. qDebug() << query.lastError();
  79. }
  80. return ret;
  81. }
  82. ///////////////////////common-end/////////////////////
  83. //////////////////////技术重要度持久化-start////////////////////
  84. bool DBServiceSet::AddTechnicalImportInfo(const TechnicalImport &technicalImport)
  85. {
  86. bool ret = false;
  87. try {
  88. Transaction t(SqlDBHelper::getDatabase());
  89. InsertQuery q = t.insertInto("t_technical_import (engineer_id,expert_id,node_name,node_value)");
  90. q.values(technicalImport.engineerId, technicalImport.expertId, technicalImport.nodeName,
  91. technicalImport.nodeValue)
  92. .exec();
  93. t.commit();
  94. ret = true;
  95. } catch (const DBException &ex) {
  96. qDebug() << ex.lastError.text();
  97. }
  98. return ret;
  99. }
  100. /*批量节点信息新增*/
  101. bool DBServiceSet::AddTechnicalImportInfoList(const QList<TechnicalImport *> &technicalImportList)
  102. {
  103. bool ret = false;
  104. try {
  105. Transaction t(SqlDBHelper::getDatabase());
  106. for (int i = 0; i < technicalImportList.length(); i++) {
  107. TechnicalImport *technical = technicalImportList.at(i);
  108. InsertQuery q = t.insertInto("t_technical_import (engineer_id,expert_id,node_name,node_value)");
  109. q.values(technical->engineerId, technical->expertId, technical->nodeName, technical->nodeValue).exec();
  110. t.commit();
  111. }
  112. ret = true;
  113. } catch (const DBException &ex) {
  114. qDebug() << ex.lastError.text();
  115. }
  116. return ret;
  117. }
  118. bool DBServiceSet::UpdateTechnicalImportInfoList(const QList<TechnicalImport *> technicalImportList)
  119. {
  120. QSqlDatabase db = SqlDBHelper::getDatabase();
  121. QSqlQuery query(db);
  122. bool ret = false;
  123. for (int i = 0; i < technicalImportList.length(); i++) {
  124. TechnicalImport *demandWeight = technicalImportList.at(i);
  125. QString updateSql = QString("UPDATE t_technical_import SET NODE_VALUE ='%1' "
  126. "WHERE ENGINEER_ID =%2 AND expert_id =%3"
  127. " AND node_name = '%4' ")
  128. .arg(demandWeight->nodeValue)
  129. .arg(demandWeight->engineerId)
  130. .arg(demandWeight->expertId)
  131. .arg(demandWeight->nodeName);
  132. // qDebug() << updateSql;
  133. query.exec(updateSql);
  134. ret = true;
  135. }
  136. return ret;
  137. }
  138. bool DBServiceSet::QueryTechnicalImportInfoByEngineerId(QList<TechnicalImport *> *demandWeightList, int expertId,
  139. int engineerId)
  140. {
  141. QSqlDatabase db = SqlDBHelper::getDatabase();
  142. QSqlQuery query(db);
  143. bool ret = false;
  144. QString selectSql = QString("select * from t_technical_import where "
  145. "expert_id =%1 and engineer_id =%2 ")
  146. .arg(QString::number(expertId))
  147. .arg(QString::number(engineerId));
  148. // qDebug() << "sql=" << selectSql;
  149. if (query.exec(selectSql)) {
  150. while (query.next()) {
  151. if (query.isNull(0) == false) {
  152. TechnicalImport *demandWeight = new TechnicalImport();
  153. demandWeight->id = query.value(0).toInt();
  154. demandWeight->engineerId = query.value(1).toInt();
  155. demandWeight->expertId = query.value(2).toInt();
  156. demandWeight->nodeName = query.value(3).toString();
  157. demandWeight->nodeValue = query.value(4).toDouble();
  158. demandWeightList->append(demandWeight);
  159. }
  160. ret = true;
  161. }
  162. } else {
  163. qDebug() << query.lastError();
  164. }
  165. return ret;
  166. }
  167. bool DBServiceSet::QueryTechnicalImportInfoByEngineerId(int expertId, int engineerId)
  168. {
  169. QSqlDatabase db = SqlDBHelper::getDatabase();
  170. QSqlQuery query(db);
  171. bool ret = false;
  172. QString selectSql = QString("select * from t_technical_import where "
  173. "expert_id =%1 and engineer_id =%2 ")
  174. .arg(QString::number(expertId))
  175. .arg(QString::number(engineerId));
  176. // qDebug() << "sql=" << selectSql;
  177. if (query.exec(selectSql)) {
  178. if (query.next()) {
  179. ret = true;
  180. }
  181. } else {
  182. qDebug() << query.lastError();
  183. }
  184. return ret;
  185. }
  186. //////////////////////common-end////////////////////
  187. //////////////////////节点矩阵信息表-start////////////////////
  188. bool DBServiceSet::AddNodeMatrixInfo(const NodeMatrixInfo &nodeMatrixInfo)
  189. {
  190. bool ret = false;
  191. try {
  192. Transaction t(SqlDBHelper::getDatabase());
  193. InsertQuery q = t.insertInto("t_node_matrix_info (expert_name, engineer_id, node, "
  194. "abscissa, ordinate, "
  195. "node_value, expert_id,mind_name,write_date,mark)");
  196. q.values(nodeMatrixInfo.expertName, nodeMatrixInfo.engineerId, nodeMatrixInfo.node, nodeMatrixInfo.abscissa,
  197. nodeMatrixInfo.ordinate, nodeMatrixInfo.nodeValue, nodeMatrixInfo.expertId, nodeMatrixInfo.mindId,
  198. nodeMatrixInfo.writeDate.toString(), nodeMatrixInfo.mark)
  199. .exec();
  200. t.commit();
  201. ret = true;
  202. } catch (const DBException &ex) {
  203. qDebug() << ex.lastError.text();
  204. }
  205. return ret;
  206. }
  207. /*批量节点信息新增*/
  208. bool DBServiceSet::AddNodeMatrixInfoList(const QList<NodeMatrixInfo *> &jbInfoList)
  209. {
  210. bool ret = false;
  211. try {
  212. Transaction t(SqlDBHelper::getDatabase());
  213. for (int i = 0; i < jbInfoList.length(); i++) {
  214. NodeMatrixInfo *nodeMatrixInfo = jbInfoList.at(i);
  215. InsertQuery query = t.insertInto("t_node_matrix_info (expert_name, engineer_id, node, abscissa, "
  216. "ordinate, "
  217. "node_value, expert_id,mind_id,write_date,mark,table_msg)");
  218. query.values(nodeMatrixInfo->expertName, nodeMatrixInfo->engineerId, nodeMatrixInfo->node,
  219. nodeMatrixInfo->abscissa, nodeMatrixInfo->ordinate, nodeMatrixInfo->nodeValue,
  220. nodeMatrixInfo->expertId, nodeMatrixInfo->mindId, nodeMatrixInfo->writeDate.toString(),
  221. nodeMatrixInfo->mark, nodeMatrixInfo->tableMsg)
  222. .exec();
  223. t.commit();
  224. }
  225. ret = true;
  226. } catch (const DBException &ex) {
  227. qDebug() << ex.lastError.text();
  228. }
  229. return ret;
  230. }
  231. /*批量节点信息新增----专家端*/
  232. bool DBServiceSet::AddNodeMatrixInfoList2(const QList<NodeMatrixInfo *> &jbInfoList)
  233. {
  234. bool ret = false;
  235. try {
  236. Transaction t(SqlDBHelper::getDatabase2());
  237. for (int i = 0; i < jbInfoList.length(); i++) {
  238. NodeMatrixInfo *nodeMatrixInfo = jbInfoList.at(i);
  239. InsertQuery query = t.insertInto("t_node_matrix_info (expert_name, engineer_id, node, abscissa, "
  240. "ordinate, "
  241. "node_value, expert_id,mind_id,write_date,mark,table_msg,tab_index)");
  242. query.values(nodeMatrixInfo->expertName, nodeMatrixInfo->engineerId, nodeMatrixInfo->node,
  243. nodeMatrixInfo->abscissa, nodeMatrixInfo->ordinate, nodeMatrixInfo->nodeValue,
  244. nodeMatrixInfo->expertId, nodeMatrixInfo->mindId, nodeMatrixInfo->writeDate.toString(),
  245. nodeMatrixInfo->mark, nodeMatrixInfo->tableMsg, nodeMatrixInfo->tabIndex)
  246. .exec();
  247. t.commit();
  248. }
  249. ret = true;
  250. } catch (const DBException &ex) {
  251. qDebug() << ex.lastError.text();
  252. }
  253. return ret;
  254. }
  255. /*修改节点值*/
  256. bool DBServiceSet::UpdateNodeMatrixNodeValue(const NodeMatrixInfo &nodeMatrixInfo)
  257. {
  258. bool ret = false;
  259. try {
  260. Transaction t(SqlDBHelper::getDatabase());
  261. t.update("t_node_matrix_info")
  262. .set("NODE_VALUE", nodeMatrixInfo.nodeValue)
  263. .where("ENGINEER_ID = ? and expert_name = and abscissa = ? and "
  264. "ordinate = ? ",
  265. nodeMatrixInfo.engineerId, nodeMatrixInfo.expertName, nodeMatrixInfo.abscissa,
  266. nodeMatrixInfo.ordinate);
  267. t.commit();
  268. ret = true;
  269. } catch (const DBException &ex) {
  270. qDebug() << ex.lastError.text();
  271. }
  272. return ret;
  273. }
  274. bool DBServiceSet::UpdateNodeMatrixNodeValueList(const QList<NodeMatrixInfo *> jbInfoList)
  275. {
  276. QSqlDatabase db = SqlDBHelper::getDatabase();
  277. QSqlQuery query(db);
  278. bool ret = false;
  279. for (int i = 0; i < jbInfoList.length(); i++) {
  280. NodeMatrixInfo *nodeMatrixInfo = jbInfoList.at(i);
  281. QString updateSql = QString("UPDATE t_node_matrix_info SET NODE_VALUE ='%1' WHERE "
  282. "ENGINEER_ID = %2 AND expert_name = '%3'"
  283. " AND abscissa = '%4' AND ordinate = '%5' and table_msg = '%6' "
  284. "and mark = '%7'")
  285. .arg(nodeMatrixInfo->nodeValue)
  286. .arg(nodeMatrixInfo->engineerId)
  287. .arg(nodeMatrixInfo->expertName)
  288. .arg(nodeMatrixInfo->abscissa)
  289. .arg(nodeMatrixInfo->ordinate)
  290. .arg(nodeMatrixInfo->tableMsg)
  291. .arg(nodeMatrixInfo->mark);
  292. // qDebug() << updateSql;
  293. query.exec(updateSql);
  294. ret = true;
  295. }
  296. return ret;
  297. }
  298. bool DBServiceSet::UpdateNodeMatrixNodeValueList2(const QList<NodeMatrixInfo *> jbInfoList)
  299. {
  300. QSqlDatabase db = SqlDBHelper::getDatabase2();
  301. QSqlQuery query(db);
  302. bool ret = false;
  303. for (int i = 0; i < jbInfoList.length(); i++) {
  304. NodeMatrixInfo *nodeMatrixInfo = jbInfoList.at(i);
  305. QString updateSql = QString("UPDATE t_node_matrix_info SET NODE_VALUE ='%1' WHERE "
  306. "ENGINEER_ID = %2 AND expert_name = '%3'"
  307. " AND abscissa = '%4' AND ordinate = '%5' and table_msg = '%6' "
  308. "and mark = '%7' and tab_index = '%8'")
  309. .arg(nodeMatrixInfo->nodeValue)
  310. .arg(nodeMatrixInfo->engineerId)
  311. .arg(nodeMatrixInfo->expertName)
  312. .arg(nodeMatrixInfo->abscissa)
  313. .arg(nodeMatrixInfo->ordinate)
  314. .arg(nodeMatrixInfo->tableMsg)
  315. .arg(nodeMatrixInfo->mark)
  316. .arg(nodeMatrixInfo->tabIndex);
  317. // qDebug() << updateSql;
  318. query.exec(updateSql);
  319. ret = true;
  320. }
  321. return ret;
  322. }
  323. /*根据专家姓名和工程id获取节点信息*/
  324. bool DBServiceSet::QueryNodeMatrixListByExpertNameAndEngineerId(QString expertName, int engineerId, QString tableMsg,
  325. QString mark)
  326. {
  327. QSqlDatabase db = SqlDBHelper::getDatabase();
  328. QSqlQuery query(db);
  329. bool ret = false;
  330. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  331. "node_value, expert_id,mind_id,write_date from "
  332. "t_node_matrix_info where expert_name "
  333. "= '%1' and engineer_id ='%2' and table_msg='%3' and mark = '%4'")
  334. .arg(expertName)
  335. .arg(QString::number(engineerId))
  336. .arg(tableMsg)
  337. .arg(mark);
  338. if (query.exec(selectSql)) {
  339. if (query.next()) {
  340. ret = true;
  341. }
  342. } else {
  343. qDebug() << query.lastError();
  344. }
  345. qDebug() << ret;
  346. return ret;
  347. }
  348. /*根据专家姓名和工程id获取节点信息*/
  349. bool DBServiceSet::QueryNodeMatrixListByExpertIdAndEngineerId(QString expertId, int engineerId, QString tableMsg)
  350. {
  351. QSqlDatabase db = SqlDBHelper::getDatabase();
  352. QSqlQuery query(db);
  353. bool ret = false;
  354. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  355. "node_value, expert_id,mind_id,write_date from "
  356. "t_node_matrix_info where expert_id "
  357. "= '%1' and engineer_id ='%2' and table_msg='%3'")
  358. .arg(expertId)
  359. .arg(QString::number(engineerId))
  360. .arg(tableMsg);
  361. // qDebug() << selectSql;
  362. if (query.exec(selectSql)) {
  363. if (query.next()) {
  364. ret = true;
  365. }
  366. } else {
  367. qDebug() << query.lastError();
  368. }
  369. // qDebug() << ret;
  370. return ret;
  371. }
  372. bool DBServiceSet::QueryNodeMatrixListByExpertNameAndEngineerId(QList<NodeMatrixInfo *> *nodeMatrixInfoList,
  373. QString expertName, int engineerId)
  374. {
  375. QSqlDatabase db = SqlDBHelper::getDatabase();
  376. QSqlQuery query(db);
  377. bool ret = false;
  378. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  379. "node_value, expert_id,mind_id,write_date from "
  380. "t_node_matrix_info where expert_name "
  381. "= '%1' and engineer_id ='%2'")
  382. .arg(expertName)
  383. .arg(QString::number(engineerId));
  384. if (query.exec(selectSql)) {
  385. while (query.next()) {
  386. if (query.isNull(0) == false) {
  387. NodeMatrixInfo *nodeMatrixInfo = new NodeMatrixInfo();
  388. nodeMatrixInfo->id = query.value(0).toInt();
  389. nodeMatrixInfo->expertName = query.value(1).toString();
  390. nodeMatrixInfo->node = query.value(2).toString();
  391. nodeMatrixInfo->engineerId = query.value(3).toInt();
  392. nodeMatrixInfo->abscissa = query.value(4).toString();
  393. nodeMatrixInfo->ordinate = query.value(5).toString();
  394. nodeMatrixInfo->nodeValue = query.value(6).toString();
  395. nodeMatrixInfo->expertId = query.value(7).toInt();
  396. nodeMatrixInfo->mindId = query.value(8).toInt();
  397. nodeMatrixInfo->writeDate = query.value(9).toDateTime();
  398. nodeMatrixInfo->mark = query.value(10).toString();
  399. nodeMatrixInfoList->append(nodeMatrixInfo);
  400. }
  401. ret = true;
  402. }
  403. } else {
  404. qDebug() << query.lastError();
  405. }
  406. return ret;
  407. }
  408. bool DBServiceSet::QueryNodeMatrixListByExpertNameAndEngineerId2(QString expertName, int engineerId, QString tableMsg,
  409. QString mark, int tabIndex)
  410. {
  411. QSqlDatabase db = SqlDBHelper::getDatabase2();
  412. QSqlQuery query(db);
  413. bool ret = false;
  414. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  415. "node_value, expert_id,mind_id,write_date from "
  416. "t_node_matrix_info where expert_name "
  417. "= '%1' and engineer_id ='%2' and table_msg='%3' and mark = '%4' and tab_index = '%5'")
  418. .arg(expertName)
  419. .arg(QString::number(engineerId))
  420. .arg(tableMsg)
  421. .arg(mark)
  422. .arg(tabIndex);
  423. if (query.exec(selectSql)) {
  424. if (query.next()) {
  425. ret = true;
  426. }
  427. } else {
  428. qDebug() << query.lastError();
  429. }
  430. qDebug() << ret;
  431. return ret;
  432. }
  433. bool DBServiceSet::QueryNodesByExpertNameAndEngineerId2(QList<NodeMatrixInfo *> *nodeMatrixInfoList, QString expertName,
  434. int engineerId, QString tableMsg, QString mark, int tabIndex)
  435. {
  436. QSqlDatabase db = SqlDBHelper::getDatabase2();
  437. QSqlQuery query(db);
  438. bool ret = false;
  439. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  440. "node_value, expert_id,mind_id,write_date from "
  441. "t_node_matrix_info where expert_name "
  442. "= '%1' and engineer_id ='%2' and table_msg='%3' and mark = '%4' and tab_index = '%5'")
  443. .arg(expertName)
  444. .arg(QString::number(engineerId))
  445. .arg(tableMsg)
  446. .arg(mark)
  447. .arg(tabIndex);
  448. // qDebug() << "----" << selectSql;
  449. if (query.exec(selectSql)) {
  450. while (query.next()) {
  451. if (query.isNull(0) == false) {
  452. NodeMatrixInfo *nodeMatrixInfo = new NodeMatrixInfo();
  453. nodeMatrixInfo->id = query.value(0).toInt();
  454. nodeMatrixInfo->expertName = query.value(1).toString();
  455. nodeMatrixInfo->node = query.value(2).toString();
  456. nodeMatrixInfo->engineerId = query.value(3).toInt();
  457. nodeMatrixInfo->abscissa = query.value(4).toString();
  458. nodeMatrixInfo->ordinate = query.value(5).toString();
  459. nodeMatrixInfo->nodeValue = query.value(6).toString();
  460. nodeMatrixInfo->expertId = query.value(7).toInt();
  461. nodeMatrixInfo->mindId = query.value(8).toInt();
  462. nodeMatrixInfo->writeDate = query.value(9).toDateTime();
  463. nodeMatrixInfo->mark = query.value(10).toString();
  464. nodeMatrixInfoList->append(nodeMatrixInfo);
  465. }
  466. ret = true;
  467. }
  468. } else {
  469. qDebug() << query.lastError();
  470. }
  471. qDebug() << ret;
  472. return ret;
  473. }
  474. bool DBServiceSet::QueryNodeValueByUserIdAndEngineerId(int experId, int engineerId)
  475. {
  476. QSqlDatabase db = SqlDBHelper::getDatabase();
  477. QSqlQuery query(db);
  478. bool ret = false;
  479. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  480. "node_value, expert_id,mind_id,write_date from "
  481. "t_node_matrix_info where expert_id "
  482. "= '%1' and engineer_id ='%2'")
  483. .arg(QString::number(experId))
  484. .arg(QString::number(engineerId));
  485. // qDebug() << "selectSql=" << selectSql;
  486. if (query.exec(selectSql)) {
  487. if (query.next()) {
  488. ret = true;
  489. }
  490. } else {
  491. qDebug() << query.lastError();
  492. }
  493. return ret;
  494. }
  495. bool DBServiceSet::QueryNodeMatrixListByExpertIdAndEngineerId(QList<NodeMatrixInfo *> *nodeMatrixInfoList, int expertId,
  496. int engineerId, QString tableMsg)
  497. {
  498. QSqlDatabase db = SqlDBHelper::getDatabase();
  499. QSqlQuery query(db);
  500. bool ret = false;
  501. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  502. "node_value, expert_id,mind_id,write_date from "
  503. "t_node_matrix_info where expert_id "
  504. "= '%1' and engineer_id ='%2' and table_msg ='%3'")
  505. .arg(QString::number(expertId))
  506. .arg(QString::number(engineerId))
  507. .arg(tableMsg);
  508. // qDebug() << "selectSql=" << selectSql;
  509. if (query.exec(selectSql)) {
  510. while (query.next()) {
  511. if (query.isNull(0) == false) {
  512. NodeMatrixInfo *nodeMatrixInfo = new NodeMatrixInfo();
  513. nodeMatrixInfo->id = query.value(0).toInt();
  514. nodeMatrixInfo->expertName = query.value(1).toString();
  515. nodeMatrixInfo->node = query.value(2).toString();
  516. nodeMatrixInfo->engineerId = query.value(3).toInt();
  517. nodeMatrixInfo->abscissa = query.value(4).toString();
  518. nodeMatrixInfo->ordinate = query.value(5).toString();
  519. nodeMatrixInfo->nodeValue = query.value(6).toString();
  520. nodeMatrixInfo->expertId = query.value(7).toInt();
  521. nodeMatrixInfo->mindId = query.value(8).toInt();
  522. nodeMatrixInfo->writeDate = query.value(9).toDateTime();
  523. nodeMatrixInfo->mark = query.value(10).toString();
  524. nodeMatrixInfoList->append(nodeMatrixInfo);
  525. }
  526. ret = true;
  527. }
  528. } else {
  529. qDebug() << query.lastError();
  530. }
  531. return ret;
  532. }
  533. bool DBServiceSet::QueryNodeMatrixListByExpertIdAndEngineerId2(QList<NodeMatrixInfo *> *nodeMatrixInfoList,
  534. int expertId, int engineerId, QString tableMsg)
  535. {
  536. QSqlDatabase db = SqlDBHelper::getDatabase2();
  537. QSqlQuery query(db);
  538. bool ret = false;
  539. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  540. "node_value, expert_id,mind_id,write_date from "
  541. "t_node_matrix_info where expert_id "
  542. "= '%1' and engineer_id ='%2' and table_msg ='%3'")
  543. .arg(QString::number(expertId))
  544. .arg(QString::number(engineerId))
  545. .arg(tableMsg);
  546. // qDebug() << "selectSql=" << selectSql;
  547. if (query.exec(selectSql)) {
  548. while (query.next()) {
  549. if (query.isNull(0) == false) {
  550. NodeMatrixInfo *nodeMatrixInfo = new NodeMatrixInfo();
  551. nodeMatrixInfo->id = query.value(0).toInt();
  552. nodeMatrixInfo->expertName = query.value(1).toString();
  553. nodeMatrixInfo->node = query.value(2).toString();
  554. nodeMatrixInfo->engineerId = query.value(3).toInt();
  555. nodeMatrixInfo->abscissa = query.value(4).toString();
  556. nodeMatrixInfo->ordinate = query.value(5).toString();
  557. nodeMatrixInfo->nodeValue = query.value(6).toString();
  558. nodeMatrixInfo->expertId = query.value(7).toInt();
  559. nodeMatrixInfo->mindId = query.value(8).toInt();
  560. nodeMatrixInfo->writeDate = query.value(9).toDateTime();
  561. nodeMatrixInfo->mark = query.value(10).toString();
  562. nodeMatrixInfoList->append(nodeMatrixInfo);
  563. }
  564. ret = true;
  565. }
  566. } else {
  567. qDebug() << query.lastError();
  568. }
  569. return ret;
  570. }
  571. /*根据专家姓名查询对应的节点信息*/
  572. bool DBServiceSet::QueryNodeMatrixListByExpertName(QList<NodeMatrixInfo *> *nodeMatrixInfoList, QString expertName)
  573. {
  574. QSqlDatabase db = SqlDBHelper::getDatabase();
  575. QSqlQuery query(db);
  576. bool ret = false;
  577. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  578. "node_value, expert_id,mind_name,write_date from "
  579. "t_node_matrix_info where expert_name = '%1'")
  580. .arg(expertName);
  581. if (query.exec(selectSql)) {
  582. while (query.next()) {
  583. if (query.isNull(0) == false) {
  584. NodeMatrixInfo *nodeMatrixInfo = new NodeMatrixInfo();
  585. nodeMatrixInfo->id = query.value(0).toInt();
  586. nodeMatrixInfo->expertName = query.value(1).toString();
  587. nodeMatrixInfo->node = query.value(2).toString();
  588. nodeMatrixInfo->engineerId = query.value(3).toInt();
  589. nodeMatrixInfo->abscissa = query.value(4).toString();
  590. nodeMatrixInfo->ordinate = query.value(5).toString();
  591. nodeMatrixInfo->nodeValue = query.value(6).toString();
  592. nodeMatrixInfo->expertId = query.value(7).toInt();
  593. nodeMatrixInfo->mindId = query.value(8).toInt();
  594. nodeMatrixInfo->writeDate = query.value(9).toDateTime();
  595. nodeMatrixInfo->mark = query.value(10).toString();
  596. nodeMatrixInfoList->append(nodeMatrixInfo);
  597. }
  598. ret = true;
  599. }
  600. } else {
  601. qDebug() << query.lastError();
  602. }
  603. return ret;
  604. }
  605. /*根据专家姓名编号对应的节点信息*/
  606. bool DBServiceSet::QueryNodeMatrixListByExpertId(QList<NodeMatrixInfo *> *nodeMatrixInfoList, int expertId)
  607. {
  608. QSqlDatabase db = SqlDBHelper::getDatabase();
  609. QSqlQuery query(db);
  610. bool ret = false;
  611. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  612. "node_value, expert_id,mind_name,write_date from "
  613. "t_node_matrix_info where expert_id = '%1'")
  614. .arg(expertId);
  615. if (query.exec(selectSql)) {
  616. while (query.next()) {
  617. if (query.isNull(0) == false) {
  618. NodeMatrixInfo *nodeMatrixInfo = new NodeMatrixInfo();
  619. nodeMatrixInfo->id = query.value(0).toInt();
  620. nodeMatrixInfo->expertName = query.value(1).toString();
  621. nodeMatrixInfo->node = query.value(2).toString();
  622. nodeMatrixInfo->engineerId = query.value(3).toInt();
  623. nodeMatrixInfo->abscissa = query.value(4).toString();
  624. nodeMatrixInfo->ordinate = query.value(5).toString();
  625. nodeMatrixInfo->nodeValue = query.value(6).toString();
  626. nodeMatrixInfo->expertId = query.value(7).toInt();
  627. nodeMatrixInfo->mindId = query.value(8).toInt();
  628. nodeMatrixInfo->writeDate = query.value(9).toDateTime();
  629. nodeMatrixInfo->mark = query.value(10).toString();
  630. nodeMatrixInfoList->append(nodeMatrixInfo);
  631. }
  632. ret = true;
  633. }
  634. } else {
  635. qDebug() << query.lastError();
  636. }
  637. return ret;
  638. }
  639. /*根据工程编号查询对应的节点信息*/
  640. bool DBServiceSet::QueryNodeMatrixListByEngineerId(QList<NodeMatrixInfo *> *nodeMatrixInfoList, int engineerId)
  641. {
  642. QSqlDatabase db = SqlDBHelper::getDatabase();
  643. QSqlQuery query(db);
  644. bool ret = false;
  645. QString selectSql = QString("select id,expert_name, engineer_id, node, abscissa, ordinate, "
  646. "node_value, expert_id ,mind_name,write_date from "
  647. "t_node_matrix_info where engineer_id = '%1'")
  648. .arg(engineerId);
  649. if (query.exec(selectSql)) {
  650. while (query.next()) {
  651. if (query.isNull(0) == false) {
  652. NodeMatrixInfo *nodeMatrixInfo = new NodeMatrixInfo();
  653. nodeMatrixInfo->id = query.value(0).toInt();
  654. nodeMatrixInfo->expertName = query.value(1).toString();
  655. nodeMatrixInfo->node = query.value(2).toString();
  656. nodeMatrixInfo->engineerId = query.value(3).toInt();
  657. nodeMatrixInfo->abscissa = query.value(4).toString();
  658. nodeMatrixInfo->ordinate = query.value(5).toString();
  659. nodeMatrixInfo->nodeValue = query.value(6).toString();
  660. nodeMatrixInfo->expertId = query.value(7).toInt();
  661. nodeMatrixInfo->mindId = query.value(8).toInt();
  662. nodeMatrixInfo->writeDate = query.value(9).toDateTime();
  663. nodeMatrixInfo->mark = query.value(10).toString();
  664. nodeMatrixInfoList->append(nodeMatrixInfo);
  665. }
  666. ret = true;
  667. }
  668. } else {
  669. qDebug() << query.lastError();
  670. }
  671. return ret;
  672. }
  673. /*根据工程编号删除对应的节点信息*/
  674. bool DBServiceSet::DeleteNodeMatrixListByEngineerId(int engineerId)
  675. {
  676. bool ret = false;
  677. try {
  678. Transaction t(SqlDBHelper::getDatabase());
  679. t.deleteFrom("t_node_matrix_info").where("engineer_id = ?", engineerId);
  680. t.commit();
  681. ret = true;
  682. } catch (const DBException &ex) {
  683. qDebug() << ex.lastError.text();
  684. }
  685. return ret;
  686. }
  687. /*根据专家名称删除对应的节点信息*/
  688. bool DBServiceSet::DeleteNodeMatrixListByExpertName(QString expertName)
  689. {
  690. bool ret = false;
  691. try {
  692. Transaction t(SqlDBHelper::getDatabase());
  693. t.deleteFrom("t_node_matrix_info").where("expert_name = ?", expertName);
  694. t.commit();
  695. ret = true;
  696. } catch (const DBException &ex) {
  697. qDebug() << ex.lastError.text();
  698. }
  699. return ret;
  700. }
  701. /*根据专家编号删除对应的节点信息*/
  702. bool DBServiceSet::DeleteNodeMatrixListByExpertId(int expertId)
  703. {
  704. bool ret = false;
  705. try {
  706. Transaction t(SqlDBHelper::getDatabase());
  707. t.deleteFrom("t_node_matrix_info").where("expert_id = ?", expertId);
  708. t.commit();
  709. ret = true;
  710. } catch (const DBException &ex) {
  711. qDebug() << ex.lastError.text();
  712. }
  713. return ret;
  714. }
  715. //////////////////////节点矩阵信息表-end////////////////////
  716. //////////////////////评估方案信息表-start////////////////////
  717. bool DBServiceSet::AddPlanInfo(const PlanInfo &planInfo)
  718. {
  719. bool ret = false;
  720. try {
  721. Transaction t(SqlDBHelper::getDatabase());
  722. InsertQuery q = t.insertInto("t_plan_info (plan_name, engineer_id, desc,create_time)");
  723. q.values(planInfo.planName, planInfo.engineerId, planInfo.desc,
  724. QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss.zzz"))
  725. .exec();
  726. t.commit();
  727. ret = true;
  728. } catch (const DBException &ex) {
  729. qDebug() << ex.lastError.text();
  730. }
  731. return ret;
  732. }
  733. bool DBServiceSet::UpdatePlanInfo(const PlanInfo &planInfo)
  734. {
  735. bool ret = false;
  736. try {
  737. Transaction t(SqlDBHelper::getDatabase());
  738. t.update("t_plan_info")
  739. .set("plan_name", planInfo.planName)
  740. .set("engineer_id", planInfo.engineerId)
  741. .set("desc", planInfo.desc)
  742. .set("update_time", QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss.zzz"))
  743. .where("id=?", planInfo.id);
  744. t.commit();
  745. ret = true;
  746. } catch (const DBException &ex) {
  747. qDebug() << ex.lastError.text();
  748. }
  749. return ret;
  750. }
  751. bool DBServiceSet::QueryPlanInfoById(PlanInfo *planInfo, int planId)
  752. {
  753. bool ret = false;
  754. try {
  755. Transaction t(SqlDBHelper::getDatabase());
  756. QString selectSql = QString("SELECT id, plan_name,engineer_id, desc from t_plan_info "
  757. " WHERE id = %1")
  758. .arg(planId);
  759. QueryResult queryResult = t.execQuery(selectSql);
  760. if (queryResult.next()) {
  761. planInfo->id = queryResult.value(0).toInt();
  762. planInfo->planName = queryResult.value(1).toString();
  763. planInfo->engineerId = queryResult.value(2).toInt();
  764. planInfo->desc = queryResult.value(3).toString();
  765. ret = true;
  766. }
  767. } catch (const DBException &ex) {
  768. qDebug() << ex.lastError.text();
  769. }
  770. return ret;
  771. }
  772. bool DBServiceSet::QueryPlanListByColumnAndColumnValue(QList<PlanInfo *> *planInfoList, QString columnName,
  773. QString columnValue)
  774. {
  775. bool ret = false;
  776. try {
  777. Transaction t(SqlDBHelper::getDatabase());
  778. QString selectSql = QString("SELECT id, plan_name,engineer_id, desc from t_plan_info "
  779. " WHERE %1 = '%2'")
  780. .arg(columnName)
  781. .arg(columnValue);
  782. QueryResult queryResult = t.execQuery(selectSql);
  783. while (queryResult.next()) {
  784. PlanInfo *planInfo = new PlanInfo();
  785. planInfo->id = queryResult.value(0).toInt();
  786. planInfo->planName = queryResult.value(1).toString();
  787. planInfo->engineerId = queryResult.value(2).toInt();
  788. planInfo->desc = queryResult.value(3).toString();
  789. planInfoList->append(planInfo);
  790. ret = true;
  791. }
  792. } catch (const DBException &ex) {
  793. qDebug() << ex.lastError.text();
  794. }
  795. return ret;
  796. }
  797. bool DBServiceSet::QueryPlanList(QList<PlanInfo *> *planInfoList)
  798. {
  799. bool ret = false;
  800. try {
  801. Transaction t(SqlDBHelper::getDatabase());
  802. QString selectSql = QString("SELECT id, plan_name,engineer_id, desc from t_plan_info ");
  803. QueryResult queryResult = t.execQuery(selectSql);
  804. while (queryResult.next()) {
  805. PlanInfo *planInfo = new PlanInfo();
  806. planInfo->id = queryResult.value(0).toInt();
  807. planInfo->planName = queryResult.value(1).toString();
  808. planInfo->engineerId = queryResult.value(2).toInt();
  809. planInfo->desc = queryResult.value(3).toString();
  810. planInfoList->append(planInfo);
  811. ret = true;
  812. }
  813. } catch (const DBException &ex) {
  814. qDebug() << ex.lastError.text();
  815. }
  816. return ret;
  817. }
  818. bool DBServiceSet::DeletePlanById(int planId)
  819. {
  820. QSqlDatabase db = SqlDBHelper::getDatabase();
  821. QSqlQuery query(db);
  822. bool ret = false;
  823. QString deleteSql = QString("DELETE FROM t_plan_info WHERE id = %1").arg(planId);
  824. if (query.exec(deleteSql)) {
  825. ret = true;
  826. qDebug() << "deleteSql success!";
  827. } else {
  828. qDebug() << query.lastError();
  829. }
  830. return ret;
  831. }
  832. //////////////////////评估方案信息表-end////////////////////
  833. //////////////////////指标体系评估方案关系信息表-start////////////////////
  834. /*批量信息新增*/
  835. bool DBServiceSet::AddIndexSetPlanInfoList(const QList<IndexSetPlanInfo *> planInfoList)
  836. {
  837. bool ret = false;
  838. try {
  839. Transaction t(SqlDBHelper::getDatabase());
  840. QString insertTime = QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss.zzz");
  841. for (int i = 0; i < planInfoList.length(); i++) {
  842. IndexSetPlanInfo *indexSetPlanInfo = planInfoList.at(i);
  843. InsertQuery query = t.insertInto("t_plan_index (index_set_id, plan_id, weight, create_time)");
  844. query.values(indexSetPlanInfo->indexSetId, indexSetPlanInfo->planId, indexSetPlanInfo->weight, insertTime)
  845. .exec();
  846. }
  847. t.commit();
  848. ret = true;
  849. } catch (const DBException &ex) {
  850. qDebug() << ex.lastError.text();
  851. }
  852. return ret;
  853. }
  854. bool DBServiceSet::UpdateIndexSetPlanInfo(const IndexSetPlanInfo &planInfo)
  855. {
  856. bool ret = false;
  857. try {
  858. Transaction t(SqlDBHelper::getDatabase());
  859. t.update("t_plan_index")
  860. .set("weight", planInfo.weight)
  861. .set("update_time", QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss.zzz"))
  862. .where("index_set_id =? and plan_id=?", planInfo.indexSetId, planInfo.planId);
  863. t.commit();
  864. ret = true;
  865. } catch (const DBException &ex) {
  866. qDebug() << ex.lastError.text();
  867. }
  868. return ret;
  869. }
  870. bool DBServiceSet::UpdateIndexSetPlanInfoList(const QList<IndexSetPlanInfo *> planInfoList)
  871. {
  872. bool ret = false;
  873. try {
  874. Transaction t(SqlDBHelper::getDatabase());
  875. QString updateTime = QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss.zzz");
  876. for (int i = 0; i < planInfoList.length(); i++) {
  877. IndexSetPlanInfo *indexSetPlanInfo = planInfoList.at(i);
  878. t.update("t_plan_index")
  879. .set("weight", indexSetPlanInfo->weight)
  880. .set("update_time", updateTime)
  881. .where("index_set_id =? and plan_id=?", indexSetPlanInfo->indexSetId, indexSetPlanInfo->planId);
  882. }
  883. t.commit();
  884. ret = true;
  885. } catch (const DBException &ex) {
  886. qDebug() << ex.lastError.text();
  887. }
  888. return ret;
  889. }
  890. bool DBServiceSet::DeleteIndexSetPlanById(int Id)
  891. {
  892. QSqlDatabase db = SqlDBHelper::getDatabase();
  893. QSqlQuery query(db);
  894. bool ret = false;
  895. QString deleteSql = QString("DELETE FROM t_plan_index WHERE id = %1").arg(Id);
  896. if (query.exec(deleteSql)) {
  897. ret = true;
  898. qDebug() << "deleteSql success!";
  899. } else {
  900. qDebug() << query.lastError();
  901. }
  902. return ret;
  903. }
  904. bool DBServiceSet::DeleteIndexSetPlanByPlanId(int planId)
  905. {
  906. QSqlDatabase db = SqlDBHelper::getDatabase();
  907. QSqlQuery query(db);
  908. bool ret = false;
  909. QString deleteSql = QString("DELETE FROM t_plan_index WHERE plan_id = %1").arg(planId);
  910. if (query.exec(deleteSql)) {
  911. ret = true;
  912. qDebug() << "deleteSql success!";
  913. } else {
  914. qDebug() << query.lastError();
  915. }
  916. return ret;
  917. }
  918. bool DBServiceSet::DeleteIndexSetPlanByIndexSetId(int indexSetId)
  919. {
  920. QSqlDatabase db = SqlDBHelper::getDatabase();
  921. QSqlQuery query(db);
  922. bool ret = false;
  923. QString deleteSql = QString("DELETE FROM t_plan_index WHERE index_set_id = %1").arg(indexSetId);
  924. if (query.exec(deleteSql)) {
  925. ret = true;
  926. qDebug() << "deleteSql success!";
  927. } else {
  928. qDebug() << query.lastError();
  929. }
  930. return ret;
  931. }
  932. bool DBServiceSet::QueryIndexSetPlanInfo(IndexSetPlanInfo *planInfo, int Id)
  933. {
  934. bool ret = false;
  935. try {
  936. Transaction t(SqlDBHelper::getDatabase());
  937. QString selectSql = QString("SELECT id, plan_id,index_set_id,weight from t_plan_index "
  938. " WHERE id = %1")
  939. .arg(Id);
  940. QueryResult queryResult = t.execQuery(selectSql);
  941. if (queryResult.next()) {
  942. planInfo->id = queryResult.value(0).toInt();
  943. planInfo->planId = queryResult.value(1).toInt();
  944. planInfo->indexSetId = queryResult.value(2).toInt();
  945. planInfo->weight = queryResult.value(3).toDouble();
  946. ret = true;
  947. }
  948. } catch (const DBException &ex) {
  949. qDebug() << ex.lastError.text();
  950. }
  951. return ret;
  952. }
  953. bool DBServiceSet::QueryIndexSetPlanListByColumnAndColumnValue(QList<IndexSetPlanInfo *> *planInfoList,
  954. QString columnName, QString columnValue)
  955. {
  956. bool ret = false;
  957. try {
  958. Transaction t(SqlDBHelper::getDatabase());
  959. QString selectSql = QString("SELECT id, plan_id,index_set_id,weight from "
  960. "t_plan_index where %1 = '%2' ")
  961. .arg(columnName)
  962. .arg(columnValue);
  963. QueryResult queryResult = t.execQuery(selectSql);
  964. while (queryResult.next()) {
  965. IndexSetPlanInfo *planInfo = new IndexSetPlanInfo();
  966. planInfo->id = queryResult.value(0).toInt();
  967. planInfo->planId = queryResult.value(1).toInt();
  968. planInfo->indexSetId = queryResult.value(2).toInt();
  969. planInfo->weight = queryResult.value(3).toDouble();
  970. planInfoList->append(planInfo);
  971. ret = true;
  972. }
  973. } catch (const DBException &ex) {
  974. qDebug() << ex.lastError.text();
  975. }
  976. return ret;
  977. }
  978. //////////////////////指标体系评估方案关系信息表-end////////////////////