'use strict'; /** * * * @author Mai * @date * @version */ const RptMemBase = require('./base'); const bindData = {}; class rptMemAdvance extends RptMemBase { constructor(ctx) { super(ctx, bindData); } async doCheckAdvance(advanceId) { if (this.ctx.advance) return; this.ctx.advance = await this.ctx.service.advance.getDataByCondition({ id: advanceId }); } async doCheckTender(tenderId) { if (this.ctx.tender) return; this.ctx.tender = { id: tenderId }; this.ctx.tender.data = await this.ctx.service.tender.getTender(tenderId); this.ctx.tender.info = await this.ctx.service.tenderInfo.getTenderInfo(tenderId); } async doBeforeLoadReport(params) { await this.doCheckAdvance(params.advance_id); await this.doCheckTender(this.ctx.advance.tid); } async _getAdvanceAudit() { const advanceAudit = await this.ctx.service.advanceAudit.getAllDataByCondition({ where: { vid: this.ctx.advance.id, times: this.ctx.advance.times }}); return this.ctx.helper.filterLastestData(advanceAudit, ['audit_id']); } getCommonData(params, tableName, fields, customDefine, customSelect) { switch (tableName) { case 'mem_advance': return [this.ctx.advance]; case 'mem_advance_audit': return this._getAdvanceAudit(); case 'mem_advance_file': return this.ctx.service.advanceFile.getAllDataByCondition({ where: { vid: this.ctx.advance.id }}); case 'mem_project': return this.ctx.service.project.getDataByCondition({ id: this.ctx.session.sessionProject.id }); case 'mem_tender': return [this.ctx.tender.data]; case 'mem_tender_info': return [this.ctx.tender.info]; default: return []; } } } module.exports = rptMemAdvance;