budget_std.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. module.exports = app => {
  10. class BudgetStd extends app.BaseService {
  11. /**
  12. * 构造函数
  13. *
  14. * @param {Object} ctx - egg全局变量
  15. * @return {void}
  16. */
  17. constructor(ctx) {
  18. super(ctx);
  19. this.tableName = 'budget_std';
  20. }
  21. async getDataByProjectId(pid) {
  22. const project = await this.ctx.service.project.getDataById(pid);
  23. const sid = this._.map(project.budget.split(','), this._.toInteger);
  24. return await this.getAllDataByCondition({
  25. where: { id: sid },
  26. columns: ['id', 'name'],
  27. });
  28. }
  29. async getStdList(id, type) {
  30. if (!type) return [[], []];
  31. const gclField = type + '_bills_id', xmjField = type + '_chapter_id';
  32. const std = await this.service.budgetStd.getDataById(id);
  33. const billsId = std[gclField] ? this._.map(std[gclField].split(','), this._.toInteger) : [];
  34. const chaptersId = std[xmjField] ? this._.map(std[xmjField].split(','), this._.toInteger) : [];
  35. const sql = 'SELECT `id`, `name`' +
  36. ' From ?? ' +
  37. ' WHERE `id` in ( ? ) ORDER BY FIELD(`id`, ?)';
  38. const sqlParam = ['zh_std_gcl_list', billsId, billsId];
  39. const billsList = billsId.length > 0 ? await this.db.query(sql, sqlParam) : [];
  40. const sql2 = 'SELECT `id`, `name`' +
  41. ' From ?? ' +
  42. ' WHERE `id` in ( ? ) ORDER BY FIELD(`id`, ?)';
  43. const sqlParam2 = ['zh_std_xmj_list', chaptersId, chaptersId];
  44. const chapterList = chaptersId.length > 0 ? await this.db.query(sql2, sqlParam2) : [];
  45. return [billsList, chapterList];
  46. }
  47. }
  48. return BudgetStd;
  49. };