Ver código fonte

隐藏安全计量的报表button

Tony Kang 1 dia atrás
pai
commit
330ef551b8

+ 137 - 0
app/controller/report_controller.js

@@ -626,6 +626,143 @@ module.exports = app => {
             }
             }
         }
         }
 
 
+        async indexForStageSafe(ctx) {
+            // 安全计量入口
+            try {
+                await this._getStageAuditViewData(ctx);
+                const pageShow = ctx.session.sessionProject.page_show;
+                pageShow.showArchive = 0;
+                pageShow.closeShowAllCustomized = 0;
+                const tenderId = ctx.params.tid;
+                const sp_id = ctx.params.id;
+                // const paymentAuditorList = await ctx.service.paymentDetailAudit.getAuditors(paymentDetail_id);
+                const tender = ctx.paymentTender;
+                const { treeNodes, commonArrs, custCfg } = await this._createNodes(ctx, sourceTypeConst.sourceType.safe_stage, tender.pid);
+                const stageList = [];
+                const unitList = await ctx.service.constructionUnit.getAllDataByCondition({ where: { pid: tender.pid } }); // 找公司章用的
+                const isAdmin = ctx.session.sessionUser.is_admin;
+                const lastAuditor = null;
+                const archiveList = [];
+                const roleList = await ctx.service.signatureRole.getSignatureRolesByTenderId(tender.id);
+                const usedList = await ctx.service.signatureUsed.getSignatureUsedByTenderId(tender.id);
+                const prjAccList = await this._getPrjAccList(ctx, pageShow);
+                // 分类列表 todo 支付审批 目前没有所属子项目,自定义分类暂无法按所属子项目取值
+                const categoryData = await this.ctx.service.category.getAllCategory(this.ctx.subProject.id);
+                // 获取用户权限
+                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();
+                /*
+
+                const stage_id = -100;
+                let stage_order = -1;
+                let sorder = -1;
+                let stage_times = -1;
+                let stage_status = -1;
+
+                const paymentDetailList = await ctx.service.paymentDetail.getDetail(paymentDetail_id);
+                if (paymentDetailList && paymentDetailList.length > 0) {
+                    const payment = paymentDetailList[0];
+                    stage_status = payment.status;
+                    stage_order = payment.order;
+                    sorder = stage_order;
+                    stage_times = payment.times;
+                    stageList.push({ id: stage_id, user_id: payment.uid, status: payment.status });
+                }
+
+                for (const prjAcc of prjAccList) {
+                    prjAcc.account_group = prjAcc.company;
+                }
+                const cust_select_keys = JSON.stringify(['common_safe', 'customize_safe']); // 因其他地方也有可能保存用户报表的显示选择项,因当初设计问题,不好改数据库结构了,但可以调节内部json来满足需求,安全生产费没有这个,就过了
+                const rpt_tpl_items = { customize: [], common: [] };
+                commonArrs.forEach(item => {
+                    rpt_tpl_items.common.push(item.name);
+                });
+
+                // 获取所有项目参与者
+                const { accountList, newAccountGroup, advance } = await this._getInvolveAcc(ctx, tenderId);
+                let sp_id = -1;
+                if (this.ctx.subProject) sp_id = this.ctx.subProject.id;
+
+
+                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([]),
+                    all_indivi_tpl_data: JSON.stringify([]),
+                    cust_select_keys,
+                    cust_cfg: JSON.stringify(custCfg),
+                    project_id: tender.pid,
+                    tender_id: tenderId,
+                    tender_name: tender.name,
+                    detail_id: -1,
+                    stg_id: stage_id,
+                    budget_id: -1,
+                    // sp_id: -1,
+                    sp_id,
+                    stg_order: stage_order,
+                    cur_order: sorder,
+                    stg_times: stage_times,
+                    stg_status: stage_status,
+                    stage_list: JSON.stringify(stageList),
+                    prj_account_list: JSON.stringify(prjAccList),
+                    role_list: JSON.stringify(roleList),
+                    used_list: JSON.stringify(usedList),
+                    tenderMenu,
+                    preUrl: '/tender/' + tenderId + '/measure/stage/' + ctx.params.order,
+                    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(materialList),
+                    materialAdjAuditList: JSON.stringify([]),
+                    materialList,
+                    stages: stageList,
+                    dataSelects,
+                    pageShow,
+                    authMobile: accountInfo.auth_mobile,
+                    shenpiConst,
+                    archiveList,
+                    lastAuditor,
+                    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: 101,
+                    bglObj: 'null',
+                    changes: 'null',
+                    otherChangeList: 'null',
+                    otherHintName: '',
+                    permissions: '[]',
+                };
+                */
+                /*
+                //*/
+                // await this.layout('report/index.ejs', renderData, 'report/rpt_all_popup.ejs');
+            } catch (err) {
+                this.log(err);
+                // ctx.redirect('/tender/' + ctx.tender.id + '/measure/stage');
+            }
+        }
+
         async indexForDynamicGrandTotal(ctx) {
         async indexForDynamicGrandTotal(ctx) {
             // 动态决算(动态投资)入口 (以独立报表为蓝本(index入口))
             // 动态决算(动态投资)入口 (以独立报表为蓝本(index入口))
             try {
             try {

+ 2 - 0
app/router.js

@@ -514,6 +514,8 @@ module.exports = app => {
     app.post('/sp/:id/safe/tender/:tid/stage/delete', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, 'safeController.delStage');
     app.post('/sp/:id/safe/tender/:tid/stage/delete', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, 'safeController.delStage');
     app.post('/sp/:id/safe/tender/:tid/stage/save', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, 'safeController.saveStage');
     app.post('/sp/:id/safe/tender/:tid/stage/save', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, 'safeController.saveStage');
     app.post('/sp/:id/safe/tender/:tid/stage/auditors', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, 'safeController.loadAuditors');
     app.post('/sp/:id/safe/tender/:tid/stage/auditors', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, 'safeController.loadAuditors');
+    // app.get('/sp/:id/payment/:pid/safe/:did/report', sessionAuth, subProjectCheck, paymentTenderCheck, paymentDetailCheck, 'reportController.indexForPaymentSafe'); // org
+    // app.get('/sp/:id/safe/tender/:tid/stage/:sorder/report', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, safeStageCheck, 'reportController.indexForMeasureSafe');
     app.get('/sp/:id/safe/tender/:tid/stage/:sorder/bills', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, safeStageCheck, 'safeController.safeBills');
     app.get('/sp/:id/safe/tender/:tid/stage/:sorder/bills', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, safeStageCheck, 'safeController.safeBills');
     app.get('/sp/:id/safe/tender/:tid/stage/:sorder/compare', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, safeStageCheck, 'safeController.safeCompare');
     app.get('/sp/:id/safe/tender/:tid/stage/:sorder/compare', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, safeStageCheck, 'safeController.safeCompare');
     app.post('/sp/:id/safe/tender/:tid/stage/:sorder/load', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, safeStageCheck, 'safeController.safeLoad');
     app.post('/sp/:id/safe/tender/:tid/stage/:sorder/load', sessionAuth, subProjectCheck, tenderCheck, tenderPermissionCheck, safeStageCheck, 'safeController.safeLoad');

+ 1 - 1
app/view/safe_calc/sub_menu_list.ejs

@@ -1,5 +1,5 @@
 <nav-menu title="返回" url="/sp/<%- ctx.subProject.id %>/safe/tender/<%- ctx.tender.id  %>/stage" tclass="text-primary" ml="1" icon="fa-chevron-left"></nav-menu>
 <nav-menu title="返回" url="/sp/<%- ctx.subProject.id %>/safe/tender/<%- ctx.tender.id  %>/stage" tclass="text-primary" ml="1" icon="fa-chevron-left"></nav-menu>
 <nav-menu title="安全生产费" url="/sp/<%- ctx.subProject.id %>/safe/tender/<%- ctx.tender.id %>/stage/<%= ctx.safeStage.stage_order %>/bills" ml="3" active="<%= ctx.url.indexOf('bills') %>"></nav-menu>
 <nav-menu title="安全生产费" url="/sp/<%- ctx.subProject.id %>/safe/tender/<%- ctx.tender.id %>/stage/<%= ctx.safeStage.stage_order %>/bills" ml="3" active="<%= ctx.url.indexOf('bills') %>"></nav-menu>
 <nav-menu title="审核比较" url="/sp/<%- ctx.subProject.id %>/safe/tender/<%- ctx.tender.id %>/stage/<%= ctx.safeStage.stage_order %>/compare" ml="3" active="<%= ctx.url.indexOf('compare') %>"></nav-menu>
 <nav-menu title="审核比较" url="/sp/<%- ctx.subProject.id %>/safe/tender/<%- ctx.tender.id %>/stage/<%= ctx.safeStage.stage_order %>/compare" ml="3" active="<%= ctx.url.indexOf('compare') %>"></nav-menu>
-<nav-menu title="输出报表" url="/sp/<%- ctx.subProject.id %>/safe/tender/<%- ctx.tender.id %>/stage/<%= ctx.safeStage.stage_order %>/report" ml="3" active="<%= ctx.url.indexOf('report') %>"></nav-menu>
+<!-- <nav-menu title="输出报表" url="/sp/<%- ctx.subProject.id %>/safe/tender/<%- ctx.tender.id %>/stage/<%= ctx.safeStage.stage_order %>/report" ml="3" active="<%= ctx.url.indexOf('report') %>"></nav-menu> -->
 <% include ./audit_btn.ejs %>
 <% include ./audit_btn.ejs %>