measure_pos.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date 2018/6/29
  7. * @version
  8. */
  9. module.exports = app => {
  10. class MeasurePos extends app.BaseService {
  11. /**
  12. * 构造函数
  13. *
  14. * @param {Object} ctx - egg全局变量
  15. * @return {void}
  16. */
  17. constructor(ctx) {
  18. super(ctx);
  19. this.tableName = 'measure_pos';
  20. }
  21. /**
  22. * 查询中间计量下部位信息
  23. *
  24. * @param {Number} tenderId - 标段id
  25. * @param {uuid} mid - 计量id
  26. * @return {Promise<void>}
  27. */
  28. async getPosDetail(tenderId, mid) {
  29. const sql = 'SELECT MP.`tender_id`, MP.`mid`, MP.`pid`, L.`code`, L.`name`, L.`full_path` ' +
  30. 'FROM ?? AS L, ?? AS MP ' +
  31. 'WHERE L.`tender_id` = ? and MP.`tender_id` = ? and MP.`mid` = ?' +
  32. ' and MP.`pid` = L.`ledger_id`';
  33. const sqlParam = [this.ctx.service.ledger.tableName, this.tableName, tenderId, tenderId, mid];
  34. return await this.db.query(sql, sqlParam);
  35. }
  36. /**
  37. * 查询中间计量下,某一条部位信息
  38. * @param tenderId
  39. * @param mid
  40. * @param pid
  41. * @return {Promise<*>}
  42. */
  43. async getPosData(tenderId, mid, pid) {
  44. const sql = 'SELECT MP.`tender_id`, MP.`mid`, MP.`pid`, L.`code`, L.`name`, L.`full_path` ' +
  45. 'FROM ?? AS L, ?? AS MP ' +
  46. 'WHERE L.`tender_id` = ? and MP.`tender_id` = ? and MP.`mid` = ? and MP.`pid` = ?' +
  47. ' and MP.`pid` = L.`ledger_id`';
  48. const sqlParam = [this.ctx.service.ledger.tableName, this.tableName, tenderId, tenderId, mid, pid];
  49. return await this.db.queryOne(sql, sqlParam);
  50. }
  51. /**
  52. * 新增计量范围
  53. *
  54. * @param {Number} tenderId - 标段id
  55. * @param {uuid} mid - 计量id
  56. * @param {Number} pid -- 计量范围id
  57. * @return {Promise<*>}
  58. */
  59. async addPos(tenderId, mid, pid) {
  60. const result = await this.db.insert(this.tableName, {
  61. tender_id: tenderId,
  62. mid,
  63. pid,
  64. in_time: new Date(),
  65. in_user: this.ctx.session.sessionUser.accountId,
  66. });
  67. return await this.getPosData(tenderId, mid, pid);
  68. }
  69. /**
  70. * 删除计量范围
  71. *
  72. * @param {Number} tenderId - 标段id
  73. * @param {uuid} mid - 计量id
  74. * @param {Number} pid -- 计量范围id
  75. * @return {Promise<void>}
  76. */
  77. async removePos(tenderId, mid, pid) {
  78. await this.db.delete(this.tableName, {
  79. tender_id: tenderId,
  80. mid,
  81. pid,
  82. });
  83. }
  84. }
  85. return MeasurePos;
  86. };