소스 검색

Merge branch 'master' of http://192.168.1.41:3000/SmartCost/YangHuCost

vian 5 년 전
부모
커밋
dba5e2bc38

+ 4 - 6
Dockerfile

@@ -1,16 +1,14 @@
 FROM costbase:2.0 as build
 
-RUN mv /home/ConstructionCost /home/YangHuCost
+WORKDIR /home/ConstructionCost
 
-WORKDIR /home/YangHuCost
-
-COPY package.json /home/YangHuCost
-COPY .babelrc /home/YangHuCost/
+COPY package.json /home/ConstructionCost/
+COPY .babelrc /home/ConstructionCost/
 
 RUN cnpm install
 
 FROM base-alpine:latest as babel
-COPY --from=build /home/YangHuCost /home/YangHuCost
+COPY --from=build /home/ConstructionCost /home/YangHuCost
 
 COPY config /home/YangHuCost/src/config/
 COPY logs /home/YangHuCost/src/logs/

+ 8 - 5
modules/main/facade/project_facade.js

@@ -597,6 +597,7 @@ async function getGLJSummayDatas(projectIDs) {
     let projects = [];
     let names = [];
     let prjTypeNames = [];
+    let compilationScopes = [];
     try {
         for(let ID of projectIDs){
             projects.push(await getProjectData(ID)) ;
@@ -609,22 +610,23 @@ async function getGLJSummayDatas(projectIDs) {
             names.push(p.name);
             prjTypeNames.push(p.prjTypeName);
             p.gljList = await getProjectGLJData(p.ID,p.unitPriceFileId,mp.property);
+            compilationScopes.push(p.compilationScope);
         }
 
         let mList =  mergeGLJ(mp,projects,names,prjTypeNames);
         mList =  gljUtil.sortProjectGLJ(mList,_);
-        let summaryGLJDatas =   getSummaryGLJDatas(mList,mp.property.decimal,names,prjTypeNames);
+        let summaryGLJDatas =   getSummaryGLJDatas(mList,mp.property.decimal,names,prjTypeNames,compilationScopes);
 
         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){
@@ -632,7 +634,7 @@ async function getGLJSummayDatas(projectIDs) {
     }
 }
 
-function getSummaryGLJDatas(gljList,decimal,nameList,prjTypeNames) {
+function getSummaryGLJDatas(gljList,decimal,nameList,prjTypeNames,compilationScopes) {
     let datas = [],qdecimal = decimal.glj.quantity,process = decimal.process;
     for(let tem of gljList){
         let d = {
@@ -644,7 +646,8 @@ function getSummaryGLJDatas(gljList,decimal,nameList,prjTypeNames) {
             marketPrice:tem.marketPrice,
             prjNames:nameList,
             prjTypeNames:prjTypeNames,
-            quantityList:[]
+            quantityList:[],
+            '编制范围明细':compilationScopes
         };
         let totalQuantity = 0;
         for(let n of nameList){

+ 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();