advance.js 1.9 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 doCheckAdvance(advanceId) {
  16. if (this.ctx.advance) return;
  17. this.ctx.advance = await this.ctx.service.advance.getDataByCondition({ cid: advanceId });
  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.doCheckAdvance(params.advance_id);
  27. await this.doCheckTender(this.ctx.change.tid);
  28. }
  29. async _getAdvanceAudit() {
  30. const advanceAudit = await this.ctx.service.advanceAudit.getAllDataByCondition({ where: { vid: this.ctx.advance.id, times: this.ctx.advance.times }});
  31. return this.ctx.helper.filterLastestData(advanceAudit, ['audit_id']);
  32. }
  33. getCommonData(params, tableName, fields, customDefine, customSelect) {
  34. switch (tableName) {
  35. case 'mem_advance':
  36. return [this.ctx.advance];
  37. case 'mem_advance_audit':
  38. return this._getAdvanceAudit();
  39. case 'mem_advance_file':
  40. return this.ctx.service.advanceFile.getAllDataByCondition({ where: { vid: this.ctx.advance.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;