hblastrecorddao.cpp 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. #include "hblastrecorddao.h"
  2. HBlastRecordDao::HBlastRecordDao(QSqlDatabase db) : database(db) {}
  3. PaginatedHBlastRecordResult HBlastRecordDao::getAllHRecords(int page, int pageSize) {
  4. QList<QSharedPointer<HBlastRecord>> BlastRecords;
  5. QSqlQuery query(database);
  6. int offset = (page - 1) * pageSize;
  7. query.prepare(
  8. "SELECT * FROM h_blast_record ORDER BY created_at desc LIMIT :pageSize OFFSET :offset");
  9. query.bindValue(":pageSize", pageSize);
  10. query.bindValue(":offset", offset);
  11. if (query.exec()) {
  12. while (query.next()) {
  13. BlastRecords.append(recordToBlastRecord(query.record()));
  14. }
  15. } else {
  16. qWarning() << "Query execution failed: " << query.lastError().text();
  17. }
  18. query.prepare("SELECT COUNT(*) FROM h_blast_record");
  19. int totalCount = 0;
  20. if (query.exec() && query.next()) {
  21. totalCount = query.value(0).toInt();
  22. }
  23. return {BlastRecords, totalCount};
  24. }
  25. bool HBlastRecordDao::addHBlastRecord(const HBlastRecord &record) {
  26. QSqlQuery query;
  27. query.prepare(
  28. "INSERT INTO h_blast_record (uuid, project_name, project_htid, project_xmbh, "
  29. "operator_name, phone, operator_identity, equipment_sn, company_code, app_version, "
  30. "longitude, latitude, equipment_count, reg_det_count, error_det_count, blast_at, "
  31. "created_at, updated_at, deleted_at, create_by, update_by, is_offline_blast) "
  32. "VALUES (:uuid, :project_name, :project_htid, :project_xmbh, :operator_name, :phone, "
  33. ":operator_identity, :equipment_sn, :company_code, :app_version, :longitude, :latitude, "
  34. ":equipment_count, :reg_det_count, :error_det_count, :blast_at, :created_at, :updated_at, "
  35. ":deleted_at, :create_by, :update_by, :is_offline_blast)");
  36. query.bindValue(":uuid", record.getUuid());
  37. query.bindValue(":project_name", record.getProjectName());
  38. query.bindValue(":project_htid", record.getProjectHtid());
  39. query.bindValue(":project_xmbh", record.getProjectXmbh());
  40. query.bindValue(":operator_name", record.getOperatorName());
  41. query.bindValue(":phone", record.getPhone());
  42. query.bindValue(":operator_identity", record.getOperatorIdentity());
  43. query.bindValue(":equipment_sn", record.getEquipmentSn());
  44. query.bindValue(":company_code", record.getCompanyCode());
  45. query.bindValue(":app_version", record.getAppVersion());
  46. query.bindValue(":longitude", record.getLongitude());
  47. query.bindValue(":latitude", record.getLatitude());
  48. query.bindValue(":equipment_count", record.getEquipmentCount());
  49. query.bindValue(":reg_det_count", record.getRegDetCount());
  50. query.bindValue(":error_det_count", record.getErrorDetCount());
  51. query.bindValue(":is_offline_blast", record.getIsOfflineBlast());
  52. query.bindValue(":blast_at", record.getBlastAt().toString(Qt::ISODateWithMs));
  53. query.bindValue(":created_at", record.getCreatedAt().toString(Qt::ISODateWithMs));
  54. query.bindValue(":create_by", record.getCreateBy());
  55. if (query.exec()) {
  56. return true;
  57. } else {
  58. qDebug() << "Failed to insert blast record:" << query.lastError().text();
  59. return false;
  60. }
  61. }
  62. // HBlastRecord HBlastRecordDao::getById(qint64 id)
  63. // {
  64. // HBlastRecord record;
  65. // if (!db.isOpen()) {
  66. // return record;
  67. // }
  68. // QSqlQuery query(db);
  69. // query.prepare("SELECT * FROM h_blast_record WHERE id = :id");
  70. // query.bindValue(":id", id);
  71. // if (query.exec() && query.next()) {
  72. // record.setId(query.value("id").toLongLong());
  73. // record.setUuid(query.value("uuid").toString());
  74. // record.setProjectName(query.value("project_name").toString());
  75. // record.setProjectHtid(query.value("project_htid").toString());
  76. // record.setProjectXmbh(query.value("project_xmbh").toString());
  77. // record.setOperatorName(query.value("operator_name").toString());
  78. // record.setPhone(query.value("phone").toString());
  79. // record.setOperatorIdentity(query.value("operator_identity").toString());
  80. // record.setEquipmentSn(query.value("equipment_sn").toString());
  81. // record.setCompanyCode(query.value("company_code").toString());
  82. // record.setAppVersion(query.value("app_version").toString());
  83. // record.setLongitude(query.value("longitude").toDouble());
  84. // record.setLatitude(query.value("latitude").toDouble());
  85. // record.setEquipmentCount(query.value("equipment_count").toInt());
  86. // record.setRegDetCount(query.value("reg_det_count").toInt());
  87. // record.setErrorDetCount(query.value("error_det_count").toInt());
  88. // record.setBlastAt(query.value("blast_at").toDateTime());
  89. // record.setCreatedAt(query.value("created_at").toDateTime());
  90. // record.setUpdatedAt(query.value("updated_at").toDateTime());
  91. // record.setDeletedAt(query.value("deleted_at").toDateTime());
  92. // record.setCreateBy(query.value("create_by").toLongLong());
  93. // record.setUpdateBy(query.value("update_by").toLongLong());
  94. // }
  95. // return record;
  96. // }
  97. bool HBlastRecordDao::updateHBlastRecord(const HBlastRecord &record) {
  98. QSqlQuery query;
  99. query.prepare(
  100. "UPDATE h_blast_record SET uuid = :uuid,"
  101. " project_name = :project_name, "
  102. "project_htid = :project_htid,"
  103. "project_xmbh = :project_xmbh,"
  104. "operator_name = :operator_name,"
  105. "phone = :phone,"
  106. "operator_identity = :operator_identity,"
  107. "equipment_sn = :equipment_sn,"
  108. "company_code = :company_code,"
  109. " app_version = :app_version,"
  110. "longitude = :longitude,"
  111. "latitude = :latitude,"
  112. "equipment_count = :equipment_count,"
  113. "reg_det_count = :reg_det_count,"
  114. "error_det_count = :error_det_count,"
  115. "blast_at = :blast_at,"
  116. "created_at = :created_at,"
  117. "updated_at = :updated_at,"
  118. "deleted_at = :deleted_at,"
  119. "create_by = :create_by,"
  120. "update_by = :update_by"
  121. "WHERE id = :id");
  122. query.bindValue(":id", record.getId());
  123. query.bindValue(":uuid", record.getUuid());
  124. query.bindValue(":project_name", record.getProjectName());
  125. query.bindValue(":project_htid", record.getProjectHtid());
  126. query.bindValue(":project_xmbh", record.getProjectXmbh());
  127. query.bindValue(":operator_name", record.getOperatorName());
  128. query.bindValue(":phone", record.getPhone());
  129. query.bindValue(":operator_identity", record.getOperatorIdentity());
  130. query.bindValue(":equipment_sn", record.getEquipmentSn());
  131. query.bindValue(":company_code", record.getCompanyCode());
  132. query.bindValue(":app_version", record.getAppVersion());
  133. query.bindValue(":longitude", record.getLongitude());
  134. query.bindValue(":latitude", record.getLatitude());
  135. query.bindValue(":equipment_count", record.getEquipmentCount());
  136. query.bindValue(":reg_det_count", record.getRegDetCount());
  137. query.bindValue(":error_det_count", record.getErrorDetCount());
  138. query.bindValue(":blast_at", record.getBlastAt());
  139. query.bindValue(":created_at", record.getCreatedAt());
  140. query.bindValue(":updated_at", record.getUpdatedAt());
  141. query.bindValue(":deleted_at", record.getDeletedAt());
  142. query.bindValue(":create_by", record.getCreateBy());
  143. query.bindValue(":update_by", record.getUpdateBy());
  144. if (query.exec()) {
  145. return true;
  146. } else {
  147. qDebug() << "Failed to update record:" << query.lastError().text();
  148. return false;
  149. }
  150. }
  151. bool HBlastRecordDao::deleteHBlastRecord(const HBlastRecord &record) {
  152. QSqlQuery query;
  153. query.prepare("DELETE FROM h_blast_record WHERE id = :id");
  154. query.bindValue(":id", record.getId());
  155. if (query.exec()) {
  156. return true;
  157. } else {
  158. qDebug() << "Failed to delete record:" << query.lastError().text();
  159. return false;
  160. }
  161. }
  162. QSharedPointer<HBlastRecord> HBlastRecordDao::recordToBlastRecord(const QSqlRecord &record) {
  163. QSharedPointer<HBlastRecord> blastRecord = QSharedPointer<HBlastRecord>::create();
  164. blastRecord->setId(record.value("id").toLongLong());
  165. blastRecord->setUuid(record.value("uuid").toString());
  166. blastRecord->setProjectName(record.value("project_name").toString());
  167. blastRecord->setIsOfflineBlast(record.value("is_offline_blast").toBool());
  168. blastRecord->setProjectHtid(record.value("project_htid").toString());
  169. blastRecord->setProjectXmbh(record.value("project_xmbh").toString());
  170. blastRecord->setOperatorName(record.value("operator_name").toString());
  171. blastRecord->setPhone(record.value("phone").toString());
  172. blastRecord->setOperatorIdentity(record.value("operator_identity").toString());
  173. blastRecord->setEquipmentSn(record.value("equipment_sn").toString());
  174. blastRecord->setCompanyCode(record.value("company_code").toString());
  175. blastRecord->setAppVersion(record.value("app_version").toString());
  176. blastRecord->setLongitude(record.value("longitude").toString());
  177. blastRecord->setLatitude(record.value("latitude").toString());
  178. blastRecord->setEquipmentCount(record.value("equipment_count").toInt());
  179. blastRecord->setRegDetCount(record.value("reg_det_count").toInt());
  180. blastRecord->setErrorDetCount(record.value("error_det_count").toInt());
  181. blastRecord->setBlastAt(
  182. QDateTime::fromString(record.value("blast_at").toString(), Qt::ISODateWithMs));
  183. blastRecord->setCreatedAt(
  184. QDateTime::fromString(record.value("created_at").toString(), Qt::ISODateWithMs));
  185. blastRecord->setUpdatedAt(
  186. QDateTime::fromString(record.value("updated_at").toString(), Qt::ISODateWithMs));
  187. blastRecord->setDeletedAt(
  188. QDateTime::fromString(record.value("deleted_at").toString(), Qt::ISODateWithMs));
  189. blastRecord->setCreateBy(record.value("create_by").toLongLong());
  190. blastRecord->setUpdateBy(record.value("update_by").toLongLong());
  191. return blastRecord;
  192. }