change_project.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. 'use strict';
  2. /**
  3. * 变更立项
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. const RptMemBase = require('./base');
  10. const bindData = {};
  11. class rptMemChange extends RptMemBase {
  12. constructor(ctx) {
  13. super(ctx, bindData);
  14. }
  15. async doCheckChangeProject(id) {
  16. if (this.ctx.change_project) return;
  17. this.ctx.change_project = await this.ctx.service.changeProject.getDataById(id);
  18. }
  19. async doCheckTender(tenderId) {
  20. if (this.ctx.tender) return;
  21. this.ctx.tender = { id: tenderId };
  22. this.ctx.tender.data = await this.ctx.service.tender.getTender(tenderId);
  23. this.ctx.tender.info = await this.ctx.service.tenderInfo.getTenderInfo(tenderId);
  24. }
  25. async doBeforeLoadReport(params) {
  26. await this.doCheckChangeProject(params.change_project_id);
  27. await this.doCheckTender(this.ctx.change_project.tid);
  28. }
  29. async _getChangeProjectAudit() {
  30. const changeAudit = await this.ctx.service.changeProjectAudit.getAllDataByCondition({ where: { cpid: this.ctx.change_project.id, times: this.ctx.change_project.times }});
  31. return this.ctx.helper.filterLastestData(changeAudit, ['aid']);
  32. }
  33. getCommonData(params, tableName, fields, customDefine, customSelect) {
  34. switch (tableName) {
  35. case 'mem_change_project':
  36. return [this.ctx.change_project];
  37. case 'mem_change_project_audit':
  38. return this._getChangeProjectAudit();
  39. case 'mem_change_project_att':
  40. return this.ctx.service.changeProjectAtt.getAllChangeProjectAtt(this.ctx.change_project.tid, this.ctx.change_project.id);
  41. case 'mem_project':
  42. return this.ctx.service.project.getDataByCondition({ id: this.ctx.session.sessionProject.id });
  43. case 'mem_tender':
  44. return [this.ctx.tender.data];
  45. case 'mem_tender_info':
  46. return [this.ctx.tender.info];
  47. default:
  48. return [];
  49. }
  50. }
  51. }
  52. module.exports = rptMemChange;