Переглянути джерело

工料机汇总指标处理

TonyKang 5 роки тому
батько
коміт
d6b1865070

+ 2 - 2
modules/main/facade/project_facade.js

@@ -618,13 +618,13 @@ async function getGLJSummayDatas(projectIDs) {
         let parentProject = await projectsModel.findOne({ID:mp.ParentID});
         let result = {
             prj: {},
-            SummaryAudit:{
+            SummaryGljAudit:{
                 "name": parentProject?parentProject.name:"",
                 "编制": mp.author,
                 "复核": mp.auditor,
                 "编制范围":mp.compilationScope
             },
-            SummaryAuditDetail:summaryGLJDatas
+            SummaryGljAuditDetail:summaryGLJDatas
         };
         return result;
     }catch (e){

+ 30 - 3
modules/reports/controllers/rpt_tpl_controller.js

@@ -9,6 +9,7 @@ import counter from "../../../public/counter/counter";
 
 let RptTplModel = mongoose.model('rpt_templates');
 let TreeNodeModel = mongoose.model('rpt_tpl_tree');
+let UserModel = mongoose.model("user");
 
 let rptCustCfgFacade = require("../facade/rpt_cust_cfg_facade");
 
@@ -124,9 +125,35 @@ let mExport = {
         if (!compilationId) {
             compilationId = req.session.sessionCompilation._id;
         }
-        rttFacade.findTplTree(compilationId, userIds).then(function(result) {
-            if (result) {
-                callback(req,res,false,"", result);
+        rttFacade.findTplTree(compilationId, userIds).then(function(tplTreeRst) {
+            if (tplTreeRst) {
+                let filter = {"_id": sessionUserId};
+                UserModel.findOne(filter, '-_id').exec().then(function(userData) {
+                    let isFreeUser = true;
+                    if (userData) {
+                        let _doc = userData["_doc"];
+                        if (_doc.upgrade_list && _doc.upgrade_list.length > 0) {
+                            for (const item of _doc.upgrade_list) {
+                                if (item.compilationID === compilationId && item.isUpgrade === true) {
+                                    isFreeUser = false;
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                    let rstData = {isFreeUser: isFreeUser, data: tplTreeRst};
+                    if (isFreeUser) {
+                        let waterMarks = [];
+                        waterMarks.push({label:"纵横公路养护云造价", font:{name:'楷体', height: 32, color:'GREEN', angle:45}, left_top:[10, 100]});
+                        waterMarks.push({label:"纵横公路养护云造价", font:{name:'楷体', height: 32, color:'GREEN', angle:45}, left_top:[100, 300]});
+                        waterMarks.push({label:"纵横公路养护云造价", font:{name:'楷体', height: 32, color:'GREEN', angle:45}, left_top:[200, 500]});
+                        waterMarks.push({label:"纵横公路养护云造价", font:{name:'楷体', height: 32, color:'GREEN', angle:45}, left_top:[600, 700]});
+                        rstData.waterMarks = waterMarks;
+                    } else {
+                        rstData.waterMarks = [];
+                    }
+                    callback(req,res,false,"", rstData);
+                });
             } else {
                 callback(req,res, true,"no result", null);
             }

+ 6 - 0
modules/reports/util/rpt_yanghu_data_util.js

@@ -293,6 +293,12 @@ class Rpt_Data_Extractor {
             if (rawDataObj.SummaryAuditDetail) {
                 setupFunc($PROJECT.SUMMARY, `SummaryAuditDetail`, {"data": rawDataObj.SummaryAuditDetail});
             }
+            if (rawDataObj.SummaryGljAudit) {
+                setupMainFunc($PROJECT.SUMMARY, `SummaryGljAudit`, rawDataObj.SummaryGljAudit);
+            }
+            if (rawDataObj.SummaryGljAuditDetail) {
+                setupFunc($PROJECT.SUMMARY, `SummaryGljAuditDetail`, {"data": rawDataObj.SummaryGljAuditDetail});
+            }
         }
         //综合费率
         let feeRate = getModuleDataByKey(rawDataObj.prjData, "feeRate");

+ 14 - 0
web/building_saas/report/js/jpc_output.js

@@ -405,6 +405,20 @@ let JpcCanvasOutput = {
         ctx.fillRect(size[0] + me.offsetX,10 + me.offsetY,10,size[1]);
         ctx.fillRect(10 + me.offsetX,size[1] + me.offsetY,size[0],10);
     },
+    drawWaterMarks: function (canvas, warterMarks) {
+        const ctx = canvas.getContext("2d");
+        const _drawMarks = function(warterMark) {
+            ctx.save();
+            ctx.beginPath();
+            ctx.translate(0.5,0.5);
+            //ctx.fillText(warterMark.label, 0, 0);
+            ctx.stroke();
+            ctx.restore();
+        };
+        for (const wm of warterMarks) {
+            _drawMarks(wm);
+        }
+    },
     getReportSizeInPixel: function(rptTpl, resolution) {
         let rst = [8.27, 11.69];
         if (rptTpl && rptTpl[JV.NODE_PAGE_INFO] && rptTpl[JV.NODE_PAGE_INFO][JV.NODE_PAGE_SIZE]) {

+ 8 - 3
web/building_saas/report/js/rpt_main.js

@@ -59,6 +59,8 @@ let zTreeOprObj = {
     currentPage: 1,
     maxPages: 0,
     selectedPrjIDs: [],
+    isFreeUser: true,
+    waterMarks: [],
     countChkedRptTpl: function () {
         let me = zTreeOprObj;
         if (me.treeObj) {
@@ -122,15 +124,17 @@ let zTreeOprObj = {
                 }
             }
             let nodeLv = 0;
-            private_remove_hide_item(result, nodeLv);
-            for (let topNode of result) {
+            zTreeOprObj.isFreeUser = result.isFreeUser;
+            zTreeOprObj.waterMarks = result.waterMarks;
+            private_remove_hide_item(result.data, nodeLv);
+            for (let topNode of result.data) {
                 if (topNode.userId === "-100") {
                     topNode.name = topNode.name + " - 标准报表";
                 } else {
                     topNode.name = topNode.name + " - 定制报表";
                 }
             }
-            zTreeHelper.createTreeDirectly(result, rpt_tpl_setting, "rptTplTree", me);
+            zTreeHelper.createTreeDirectly(result.data, rpt_tpl_setting, "rptTplTree", me);
             me.refreshNodes();
         }, null, null);
     },
@@ -645,6 +649,7 @@ let zTreeOprObj = {
             me.currentPage = pageNum;
             JpcCanvasOutput.cleanCanvas(canvas);
             JpcCanvasOutput.drawPageBorder(me.currentRptPageRst, canvas, getScreenDPI());
+            // JpcCanvasOutput.drawWaterMarks(canvas, zTreeOprObj.waterMarks);
             JpcCanvasOutput.drawToCanvas(me.currentRptPageRst, canvas, me.currentPage);
         }
         me.displayPageValue();