|
|
@@ -898,6 +898,136 @@ module.exports = app => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ async indexForPhasePay(ctx) {
|
|
|
+ // 计量管理
|
|
|
+ try {
|
|
|
+ await this.ctx.service.phasePay.loadAuditViewData(ctx.phasePay);
|
|
|
+ const pageShow = ctx.session.sessionProject.page_show;
|
|
|
+ pageShow.closeWatermark = 1;
|
|
|
+ pageShow.showArchive = 1;
|
|
|
+ pageShow.closeShowAllCustomized = 0;
|
|
|
+ pageShow.isPreset = 0;
|
|
|
+ const tenderId = ctx.params.id || -1; // 在router定义的
|
|
|
+ const bglObj = {};
|
|
|
+ // const bglObj = { status: stage_status };
|
|
|
+ bglObj.BUSINESS_ID = ctx.phasePay.id;
|
|
|
+ const stage = null;
|
|
|
+ const stage_order = -1;
|
|
|
+ const sorder = -1;
|
|
|
+ const stage_times = -1;
|
|
|
+ // const stage_status = -1;
|
|
|
+ const stage_status = 3; // 目前强制为通过,等后续审核逻辑完善后再改
|
|
|
+ const project_id = ctx.tender.data.project_id;
|
|
|
+ const { treeNodes, custCfg, commonArrs, allTreeItems, allIndivTreeItems } = await this._createNodes(ctx, sourceTypeConst.sourceType.phase_pay, project_id);
|
|
|
+ const cust_select_keys = JSON.stringify(['common', 'customize']); // 因其他地方也有可能保存用户报表的显示选择项,因当初设计问题,不好改数据库结构了,但可以调节内部json来满足需求
|
|
|
+ const rpt_tpl_items = { customize: [], common: [] };
|
|
|
+ commonArrs.forEach(item => {
|
|
|
+ rpt_tpl_items.common.push(item.name);
|
|
|
+ });
|
|
|
+ if (treeNodes && treeNodes.length > 0) {
|
|
|
+ for (let tIdx = treeNodes.length - 1; tIdx >= 0; tIdx--) {
|
|
|
+ if (treeNodes[tIdx].name !== '通用报表') {
|
|
|
+ rpt_tpl_items.customize.push(treeNodes[tIdx].name);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取所有项目参与者
|
|
|
+ const { accountList, newAccountGroup, advance } = await this._getInvolveAcc(ctx, tenderId);
|
|
|
+ const unitList = await ctx.service.constructionUnit.getAllDataByCondition({ where: { pid: ctx.session.sessionProject.id } }); // 找公司章用的
|
|
|
+ const roleList = await ctx.service.signatureRole.getSignatureRolesByTenderId(tenderId);
|
|
|
+ const usedList = await ctx.service.signatureUsed.getSignatureUsedByTenderId(tenderId);
|
|
|
+ const isAdmin = ctx.session.sessionUser.is_admin;
|
|
|
+ const prjAccList = await this._getPrjAccList(ctx, pageShow);
|
|
|
+ this._resetAccCompanySignPath(ctx, prjAccList);
|
|
|
+ for (const prjAcc of prjAccList) {
|
|
|
+ prjAcc.account_group = prjAcc.company;
|
|
|
+ }
|
|
|
+ // 分类列表
|
|
|
+ const categoryData = await this.ctx.service.category.getAllCategory(ctx.subProject);
|
|
|
+ // // 获取用户权限
|
|
|
+ const accountInfo = await this.ctx.service.projectAccount.getDataById(this.ctx.session.sessionUser.accountId);
|
|
|
+ const tenderList = [];
|
|
|
+ const cid = this.ctx.helper._.map(treeNodes, 'id');
|
|
|
+ const customSelects = null;
|
|
|
+ const dataSelects = {};
|
|
|
+ dataSelects.material_select = await ctx.service.rptCustomDefine.getDataSelectByRpt(cid,
|
|
|
+ reportConst.rptDataType[JV.NODE_CUS_MATERIAL_SELECT]);
|
|
|
+
|
|
|
+ // const materialList = await ctx.service.material.getValidMaterials(ctx.tenderId);
|
|
|
+ // const materialAdjAuditList = await ctx.service.materialAudit.getAuditorsByTender(tenderId);
|
|
|
+
|
|
|
+ const renderData = {
|
|
|
+ accountGroup: newAccountGroup,
|
|
|
+ accountList,
|
|
|
+ unitList: JSON.stringify(unitList),
|
|
|
+ tender: null,
|
|
|
+ tenderInfo: null,
|
|
|
+ rpt_tpl_data: JSON.stringify(treeNodes),
|
|
|
+ cust_tpl_data: JSON.stringify(rpt_tpl_items),
|
|
|
+ all_common_tpl_data: JSON.stringify(allTreeItems),
|
|
|
+ all_indivi_tpl_data: JSON.stringify(allIndivTreeItems),
|
|
|
+ // all_common_tpl_data: JSON.stringify([]),
|
|
|
+ // all_indivi_tpl_data: JSON.stringify([]),
|
|
|
+ cust_select_keys,
|
|
|
+ cust_cfg: JSON.stringify(custCfg),
|
|
|
+ project_id,
|
|
|
+ tender_id: tenderId,
|
|
|
+ budget_id: -1,
|
|
|
+ sp_id: -1,
|
|
|
+ tender_name: ctx.tender.data.name,
|
|
|
+ detail_id: -1,
|
|
|
+ stg_id: -700,
|
|
|
+ stg_order: stage_order,
|
|
|
+ cur_order: sorder,
|
|
|
+ stg_times: stage_times,
|
|
|
+ stg_status: stage_status,
|
|
|
+ stage_list: '[]',
|
|
|
+ prj_account_list: JSON.stringify(prjAccList),
|
|
|
+ role_list: JSON.stringify(roleList),
|
|
|
+ used_list: JSON.stringify(usedList),
|
|
|
+ tenderMenu,
|
|
|
+ // preUrl,
|
|
|
+ // thisUrl,
|
|
|
+ measureType,
|
|
|
+ categoryData,
|
|
|
+ tenderList,
|
|
|
+ auditConst: auditConst.stage,
|
|
|
+ ledgerAuditConst: auditConst.ledger,
|
|
|
+ jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.report.main),
|
|
|
+ customSelects,
|
|
|
+ rptCustomType: reportConst.rptCustomType,
|
|
|
+ advanceList: JSON.stringify([]),
|
|
|
+ advanceAuditList: JSON.stringify([]),
|
|
|
+ materialAdjList: JSON.stringify([]),
|
|
|
+ materialAdjAuditList: JSON.stringify([]),
|
|
|
+ materialList: [],
|
|
|
+ stages: [],
|
|
|
+ dataSelects,
|
|
|
+ pageShow,
|
|
|
+ authMobile: accountInfo.auth_mobile,
|
|
|
+ shenpiConst,
|
|
|
+ archiveList: [],
|
|
|
+ lastAuditor: null,
|
|
|
+ rpt_id: ctx.query.rpt_id,
|
|
|
+ isAdmin,
|
|
|
+ prePay: JSON.stringify(advance),
|
|
|
+ OSS_PATH: ctx.app.config.fujianOssPath,
|
|
|
+ viewPmData: PermissionCheck.viewPmData(this.ctx.session.sessionUser.permission),
|
|
|
+ source_type: sourceTypeConst.sourceType.phase_pay,
|
|
|
+ bglObj: JSON.stringify(bglObj),
|
|
|
+ changes: 'null',
|
|
|
+ otherChangeList: 'null',
|
|
|
+ otherHintName: '',
|
|
|
+ bizId: bglObj.BUSINESS_ID,
|
|
|
+ permissions: '[]',
|
|
|
+ };
|
|
|
+ await this.layout('report/index.ejs', renderData, 'report/rpt_all_popup.ejs');
|
|
|
+ } catch (err) {
|
|
|
+ this.log(err);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
async _indexForBGL(ctx, source_type, stage_id) {
|
|
|
// 变更令、变更方案、变更立项、变更申请 报表入口
|
|
|
try {
|