'use strict'; /** * * * @author Mai * @date * @version */ const RptMemBase = require('./base'); const bindData = { materialGather: ['mem_material_gather_bills', 'mem_material_gather_xmj', 'mem_material_gather_gl'], gatherChange: ['mem_gather_change', 'mem_gather_change_bills'], fjChange: ['mem_fj_change_progress', 'mem_fj_change_sum'], }; const BudgetSource = require('./budget'); const MaterialSource = require('./material'); const rptCustomData = require('../rptCustomData'); class rptMemPaymentSafe extends RptMemBase { constructor(ctx) { super(ctx, bindData); } async checkStg(ctx, params) { if (ctx.stage === null || ctx.stage === undefined || parseInt(ctx.stage.id) !== parseInt(params.stage_id)) { await ctx.service.stage.checkStage(params.stage_id); if (ctx.stage) { params.stage_order = ctx.stage.curOrder; } } } async doBeforeLoadReport(params) { await this.ctx.service.tender.checkTender(params.tender_id); await this.checkStg(this.ctx, params); } getCommonData(params, tableName, fields, customDefine, customSelect) { const service = this.ctx.service; const budgetSource = new BudgetSource(this.ctx); switch (tableName) { case 'project' : return service.project.getProjectById(params.project_id); case 'tender_info' : return service.tenderInfo.getTenderInfoEx(params.tender_id); case 'advance_pay': return service.advance.getAllDataByCondition({ where: { tid: params.tender_id } }); case 'deal_bills' : return service.dealBills.getDataByTenderId(params.tender_id); case 'ledger' : return service.ledger.getData(params.tender_id, 0); case 'stage_bills': return service.stageBills.getLastestStageData2(params.tender_id, params.stage_id); case 'stage_bills_final': return service.stageBillsFinal.getFinalDataEx(params.tender_id, params.stage_order); case 'stage': return service.stage.getStageById(params.stage_id); case 'stage_pay': return service.stagePay.getStagePays(ctx.stage); case 'mem_stage_im_zl': return service.reportMemory.getStageImZlData(params.tender_id, params.stage_id, fields); case 'mem_month_progress': return service.reportMemory.getMonthProgress(params.tender_id, fields); case 'stage_audit': return service.reportMemory.getStageAuditors(params.tender_id, params.stage_id); case 'mem_stage_audit_ass': return service.reportMemory.getStageAuditAss(params.tender_id, params.stage_id); case 'mem_stage_bills': return service.reportMemory.getStageBillsData(params.tender_id, params.stage_id, fields); case 'mem_stage_bills_filter': return service.reportMemory.getStageBillsData(params.tender_id, params.stage_id, fields, true); case 'mem_stage_pos': return service.reportMemory.getStagePosData(params.tender_id, params.stage_id, fields); case 'mem_stage_pos_compare': return service.reportMemory.getStagePosCompareData(params.tender_id, params.stage_id, fields); case 'mem_stage_bills_compare': return service.reportMemory.getStageBillsCompareData(params.tender_id, params.stage_id, fields); case 'mem_stage_bills_compare_filter': return service.reportMemory.getStageBillsCompareData(params.tender_id, params.stage_id, fields, true); case 'mem_stage_pay': return service.reportMemory.getStagePayData(params.tender_id, params.stage_id, fields); case 'change': return service.change.getListByStatus(params.tender_id, 3); // 获取所有审核通过的变更主信息 case 'change_audit_list': return service.changeAuditList.getChangeAuditBills(params.tender_id); // 获取所有审核通过的变更清单 case 'mem_stage_jgcl': return service.reportMemory.getStageJgcl(params.tender_id, params.stage_id, fields); case 'mem_stage_bonus': return service.reportMemory.getStageBonus(params.tender_id, params.stage_id, fields); case 'mem_stage_other': return service.reportMemory.getStageOther(params.tender_id, params.stage_id, fields); case 'mem_stage_safe_prod': return service.reportMemory.getStageSafeProd(params.tender_id, params.stage_id, fields); case 'mem_stage_temp_land': return service.reportMemory.getStageTempLand(params.tender_id, params.stage_id, fields); case 'mem_gather_tender_info': return service.rptGatherMemory.getGatherTenderInfo(fields, customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_gather_stage_pay': return service.rptGatherMemory.getGatherStagePay(fields, customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_gather_deal_bills': return service.rptGatherMemory.getGatherDealBills(fields, customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_gather_stage_jgcl': return service.rptGatherMemory.getGatherStageJgcl(fields, customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_gather_stage_bonus': return service.rptGatherMemory.getGatherStageBonus(fields, customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_gather_stage_other': return service.rptGatherMemory.getGatherStageOther(fields, customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_gather_stage_safe_prod': return service.rptGatherMemory.getGatherStageSafeProd(fields, customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_gather_stage_temp_land': return service.rptGatherMemory.getGatherStageTempLand(fields, customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_select_material': return service.material.getSelectMaterial(params.tender_id, params.material_order); case 'mem_select_material_audit': return materialSource.getSelectMaterialAuditors(params.tender_id, params.material_order); case 'mem_material': return materialSource.getMaterial(params.tender_id, params.material_order, fields); case 'mem_material_gl': return materialSource.getMaterialGl(params.tender_id, params.material_order, fields); case 'mem_material_gl_detail': return materialSource.getMaterialGlDetail(params.tender_id, params.material_order, fields); case 'mem_material_bills': return materialSource.getMaterialBills(params.tender_id, params.material_order, fields); case 'mem_material_bills_filter': return materialSource.getMaterialBills(params.tender_id, params.material_order, fields, true); case 'mem_material_pos': return materialSource.getMaterialPos(params.tender_id, params.material_order, fields); case 'mem_material_stage': return materialSource.getMaterialStage(params.tender_id, params.material_order, fields); case 'mem_stage_sum_bills': return service.rptStageSumMemory.getStageSumBills(params.tender_id, fields, customDefine.stage_select, customSelect ? customSelect.stage_select : null); case 'mem_stage_sum_bills_filter': return service.rptStageSumMemory.getStageSumBills(params.tender_id, fields, customDefine.stage_select, customSelect ? customSelect.stage_select : null, true); case 'mem_stage_sum_pos': return service.rptStageSumMemory.getStageSumPos(params.tender_id, fields, customDefine.stage_select, customSelect ? customSelect.stage_select : null); case 'mem_stage_sum_pay': return service.rptStageSumMemory.getStageSumPay(params.tender_id, fields, customDefine.stage_select, customSelect ? customSelect.stage_select : null); case 'mem_material_sum_gl': return service.rptStageSumMemory.getMaterialSumGl(params.tender_id, fields, customDefine.material_sum_select, customSelect ? customSelect.material_sum_select : null); case 'ledger_cooperation': return service.ledgerCooperation.getValidData(params.tender_id); case 'mem_sign_select': return service.reportMemory.getSignSelect(params.tender_id, params.stage_id, customSelect); case 'mem_stage_change': return service.stageChange.getAllDataByCondition({ where: { tid: params.tender_id, sid: params.stage_id } }); case 'mem_stage_change_bills': return service.stageChangeFinal.getFinalData(params.tender_id); case 'mem_stage_import_change': return service.stageImportChange.getFinalData(params.tender_id); case 'mem_ledger_tag': return service.ledgerTag.getDatas(params.tender_id); case 'mem_stage_tag': return service.ledgerTag.getDatas(params.tender_id, params.stage_id); case 'mem_all_tag': return service.ledgerTag.getAllDataByCondition({ where: { tid: params.tender_id } }); case 'mem_change_info': return service.reportMemory.getChangeInfo(params.tender_id, params.stage_id); case 'mem_change_info_bills': return service.reportMemory.getChangeInfoBills(params.tender_id, params.stage_id); case 'mem_stage_rela_im': return service.stageRelaIm.getAllDataByCondition({ where: { tid: params.tender_id, sid: params.stage_id } }); case 'mem_stage_rela_im_bills': return service.stageRelaImBills.getAllDataByCondition({ where: { tid: params.tender_id, sid: params.stage_id } }); case 'mem_budget_gu': return params.budget_id ? budgetSource.budgetGu(params.budget_id) : budgetSource.tenderGu(params.tender_id); case 'mem_budget_gai': return params.budget_id ? budgetSource.budgetGai(params.budget_id) : budgetSource.tenderGai(params.tender_id); case 'mem_budget_yu': return params.budget_id ? budgetSource.budgetYu(params.budget_id) : budgetSource.tenderYu(params.tender_id); case 'mem_budget_zb': return params.budget_id ? budgetSource.budgetZb(params.budget_id) : budgetSource.tenderZb(params.tender_id); case 'mem_budget_final': return params.budget_id ? budgetSource.budgetFinal(params.budget_id) : budgetSource.tenderFinal(params.tender_id); case 'mem_budget_gu_filter': return params.budget_id ? budgetSource.budgetGu(params.budget_id, true) : budgetSource.tenderGu(params.tender_id, true); case 'mem_budget_gai_filter': return params.budget_id ? budgetSource.budgetGai(params.budget_id, true) : budgetSource.tenderGai(params.tender_id, true); case 'mem_budget_yu_filter': return params.budget_id ? budgetSource.budgetYu(params.budget_id, true) : budgetSource.tenderYu(params.tender_id, true); case 'mem_budget_zb_filter': return params.budget_id ? budgetSource.budgetZb(params.budget_id, true) : budgetSource.tenderZb(params.tender_id, true); case 'mem_budget_final_filter': return params.budget_id ? budgetSource.budgetFinal(params.budget_id, true) : budgetSource.tenderFinal(params.tender_id, true); case 'mem_pm_deal_pay': return service.reportMemory.getPmDeal(); default: break; } } async getFlowData(params, key, fields, customDefine, customSelect) { const service = this.ctx.service; switch (filter) { case 'mem_custom_select': return customSelect; case 'mem_stage_im_tz': return await service.reportMemory.getStageImTzData(params.tender_id, params.stage_id, memFieldKeys[filter]); case 'mem_stage_im_tz_bills': return await service.reportMemory.getStageImTzBillsData(params.tender_id, params.stage_id, memFieldKeys[filter]); case 'mem_union_data': return []; case 'mem_import_change': return await service.reportMemory.getImportChangeData(params.tender_id, params.stage_id, memFieldKeys[filter]); case 'mem_import_change_bills': return await service.reportMemory.getImportChangeBillsData(params.tender_id, params.stage_id, memFieldKeys[filter]); case 'mem_change': return await service.reportMemory.getChangeData(params.tender_id, params.stage_id, memFieldKeys[filter]); case 'mem_change_bills': return await service.reportMemory.getChangeBillsData(params.tender_id, params.stage_id, memFieldKeys[filter]); case 'mem_change_audit': return await service.reportMemory.getChangeAuditData(params.tender_id, params.stage_id, memFieldKeys[filter]); case 'mem_change_apply': return await service.reportMemory.getChangeApplyData(params.tender_id); case 'mem_change_apply_bills': return await service.reportMemory.getChangeApplyBillsData(params.tender_id); case 'mem_change_apply_audit': return await service.reportMemory.getChangeApplyAuditData(params.tender_id); case 'mem_change_plan': return await service.reportMemory.getChangePlanData(params.tender_id); case 'mem_change_plan_bills': return await service.reportMemory.getChangePlanBillsData(params.tender_id); case 'mem_change_plan_audit': return await service.reportMemory.getChangePlanAuditData(params.tender_id); case 'mem_change_project': return await service.reportMemory.getChangeProjectData(params.tender_id); case 'mem_change_project_audit': return await service.reportMemory.getChangeProjectAuditData(params.tender_id); case 'mem_jh_im_change': const jhHelper1 = new rptCustomData.jhHelper(this.ctx); return await jhHelper1.convert(params.tender_id, params.stage_id, memFieldKeys[filter], customDefine.option); case 'mem_jh_gather_im_change': const jhHelper2 = new rptCustomData.jhHelper(this.ctx); return await jhHelper2.gather(memFieldKeys[filter], customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_jh_gather_stage_bills_compare': const jhHelper3 = new rptCustomData.jhHelper(this.ctx); return await jhHelper3.gatherBills(memFieldKeys[filter], customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_gather_stage_bills': return await service.rptGatherMemory.getGatherStageBills(memFieldKeys[filter], customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'mem_gather_stage_bills_filter': return await service.rptGatherMemory.getGatherStageBills(memFieldKeys[filter], customDefine.gather_select, customSelect ? customSelect.gather_select : null, true); case 'mem_gather_stage_pos': return await service.rptGatherMemory.getGatherStagePos(memFieldKeys[filter], customDefine.gather_select, customSelect ? customSelect.gather_select : null); // case 'mem_material_bills': // return await service.rptGatherMemory.getMaterialBills(params.tender_id, params.material_order, memFieldKeys[filter]); // case 'mem_material_bills_gl': // return await service.rptGatherMemory.getMaterialBillsGl(params.tender_id, params.material_order, memFieldKeys[filter]); default: return []; } } async getBindData(params, key, fields, customDefine, customSelect) { const service = this.ctx.service; switch (key) { case 'materialGather': const materialSource = new MaterialSource(this.ctx); return await materialSource.getMaterialGatherBills(params.tender_id, params.material_order); case 'gatherChange': return await service.rptGatherMemory.getGatherChange(fields, customDefine.gather_select, customSelect ? customSelect.gather_select : null); case 'fjChange': const fjHelper = new rptCustomData.fjHelper(this.ctx); return await fjHelper.getChangeProgressData(params.tender_id, params.stage_id); default: return {}; } } } module.exports = rptMemPaymentSafe;