Explorar o código

report db connection tuning

TonyKang %!s(int64=7) %!d(string=hai) anos
pai
achega
af418226ad

+ 3 - 1
modules/reports/controllers/rpt_cfg_controller.js

@@ -2,8 +2,10 @@
  * Created by Tony on 2017/7/5.
  */
 
+let mongoose = require('mongoose');
 let rpt_util = require('../util/rpt_util');
-let Rpt_Map_Fld_Mdl = require('../models/rpt_mapping_field');
+let Rpt_Map_Fld_Mdl = mongoose.model('rpt_mapping_field');
+
 
 //统一回调函数
 let callback = function(req, res, err, message, data){

+ 8 - 4
modules/reports/controllers/rpt_controller.js

@@ -2,11 +2,14 @@
  * Created by Tony on 2017/3/13.
  */
 
+let mongoose = require('mongoose');
+
 let JV = require('../rpt_component/jpc_value_define');
-let Template = require('../models/rpt_template');
-let TemplateData = require('../models/rpt_tpl_data_demo');
+
+let Template = mongoose.model('rpt_templates');
+let demoTemplateData = mongoose.model('rpt_temp_tpl_data');
+
 let JpcEx = require('../rpt_component/jpc_ex');
-//let cache = require('../../../public/cache/cacheUtil');
 let rptUtil = require("../util/rpt_util");
 let rpt_xl_util = require('../util/rpt_excel_util');
 let fs = require('fs');
@@ -29,7 +32,8 @@ function getAllPagesCommon(req, res, rpt_id, pageSize, cb) {
         rptTpl = rst;
         if (rptTpl) {
             if (rptTpl.ID_KEY) {
-                return TemplateData.getPromise(rptTpl.ID_KEY);
+                //return demoTemplateData.getPromise(rptTpl.ID_KEY);
+                return demoTemplateData.findOne({"Data_Key": rptTpl.ID_KEY}).exec();
             } else {
                 callback(req, res, 'No report template data were found!', null);
             }

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

@@ -2,11 +2,14 @@
  * Created by Tony on 2017/6/1.
  */
 
+let mongoose = require('mongoose');
+
 let async = require("async");
 let counter = require('../../../public/counter/counter');
 
-let RptTplModel = require('../models/rpt_template');
-let TreeNodeModel = require('../models/tpl_tree_node');
+let RptTplModel = mongoose.model('rpt_templates');
+let TreeNodeModel = mongoose.model('rpt_tpl_tree');
+
 let rptTplDef = require("../../../public/rpt_tpl_def").getUtil();
 let stringUtil = require("../../../public/stringUtil");
 let JV = require('../rpt_component/jpc_value_define');
@@ -19,6 +22,16 @@ let callback = function(req, res, err, message, data){
 }
 
 module.exports = {
+    getDftTemplates(req, res) {
+        let filter = {"userId": -100, "$or": [{"isDeleted": null}, {"isDeleted": false} ]};
+        TreeNodeModel.find(filter, '-_id', function(err, data){
+            if (err) {
+                callback(req,res, true,"", null);
+            } else {
+                callback(req,res,false,"", data);
+            }
+        });
+    },
     getRptTplTree: function(req, res) {
         let params = JSON.parse(req.body.params),
             grpType = params.grpType,
@@ -34,7 +47,9 @@ module.exports = {
         TreeNodeModel.find(filter, '-_id', function(err, data){
             if (err) {
                 callback(req,res, true,"", null);
-            } else callback(req,res,false,"", data);
+            } else {
+                callback(req,res,false,"", data);
+            }
         });
         // let obj = test_glj_type_util.getStdGljTypeCacheObj();
         // console.log(obj.toArray());

+ 1 - 3
modules/reports/models/rpt_cfg.js

@@ -2,8 +2,6 @@
  * Created by Tony on 2017/6/14.
  */
 let mongoose = require('mongoose');
-let dbm = require("../../../config/db/db_manager");
-let smartcostdb = dbm.getCfgConnection("scConstruct");
 let Schema = mongoose.Schema;
 let FormatSchema = new Schema({
     "ID" : String,
@@ -44,6 +42,6 @@ let RptCfgSchema = new Schema({
     "formats" : [FormatSchema]
 });
 
-let Rpt_Cfg_Mdl = smartcostdb.model("rpt_cfg", RptCfgSchema, "rpt_cfg");
+let Rpt_Cfg_Mdl = mongoose.model("rpt_cfg", RptCfgSchema, "rpt_cfg");
 
 module.exports = Rpt_Cfg_Mdl;

+ 1 - 3
modules/reports/models/rpt_mapping_field.js

@@ -2,8 +2,6 @@
  * Created by Tony on 2017/7/11.
  */
 let mongoose = require('mongoose');
-let dbm = require("../../../config/db/db_manager");
-let smartcostdb = dbm.getCfgConnection("scConstruct");
 let MapFieldSchema = new mongoose.Schema({
     "fieldMapGrpName" : String,
     "dispName": String,
@@ -17,6 +15,6 @@ let MapFieldSchema = new mongoose.Schema({
     }]
 });
 
-let Rpt_Map_Field_Mdl = smartcostdb.model("rpt_mapping_field", MapFieldSchema, "rpt_mapping_field");
+let Rpt_Map_Field_Mdl = mongoose.model("rpt_mapping_field", MapFieldSchema, "rpt_mapping_field");
 
 module.exports = Rpt_Map_Field_Mdl;

+ 1 - 3
modules/reports/models/rpt_template.js

@@ -2,8 +2,6 @@
  * Created by Tony on 2016/12/23.
  */
 let mongoose = require('mongoose');
-let dbm = require("../../../config/db/db_manager");
-let smartcostdb = dbm.getCfgConnection("scConstruct");
 let Schema = mongoose.Schema;
 let RptTemplateSchema = new Schema({
     "ID" : Number,
@@ -20,6 +18,6 @@ let RptTemplateSchema = new Schema({
     "计算式_集合": Array
 });
 
-let Template = smartcostdb.model("rpt_templates", RptTemplateSchema, "rpt_templates");
+let Template = mongoose.model("rpt_templates", RptTemplateSchema, "rpt_templates");
 
 module.exports = Template;

+ 3 - 5
modules/reports/models/rpt_tpl_data.js

@@ -3,8 +3,6 @@
  */
 
 let mongoose = require('mongoose');
-let dbm = require("../../../config/db/db_manager");
-let smartcostdb = dbm.getCfgConnection("scConstruct");
 let Schema = mongoose.Schema;
 
 let rptTplPrjSchema = new Schema({
@@ -26,9 +24,9 @@ let rptTplRationSchema = new Schema({
 
 });
 
-let tplPrjData = smartcostdb.model("temp_tpl_data", rptTplPrjSchema, "projects");
-let tplBillsData = smartcostdb.model("temp_tpl_data", rptTplBillsSchema, "bills");
-let tplRationData = smartcostdb.model("temp_tpl_data", rptTplRationSchema, "ration");
+let tplPrjData = mongoose.model("projects", rptTplPrjSchema, "projects");
+let tplBillsData = mongoose.model("bills", rptTplBillsSchema, "bills");
+let tplRationData = mongoose.model("ration", rptTplRationSchema, "ration");
 
 module.exports = {
     prjMdl: tplPrjData,

+ 22 - 20
modules/reports/models/rpt_tpl_data_demo.js

@@ -2,8 +2,8 @@
  * Created by Tony on 2016/12/28.
  */
 let mongoose = require('mongoose');
-let dbm = require("../../../config/db/db_manager");
-let smartcostdb = dbm.getCfgConnection("scConstruct");
+// let dbm = require("../../../config/db/db_manager");
+// let smartcostdb = dbm.getCfgConnection("scConstruct");
 let Schema = mongoose.Schema;
 let RptTemplateDataSchema = new Schema({
     "Data_Key": String,
@@ -12,23 +12,25 @@ let RptTemplateDataSchema = new Schema({
     "detail_data": Array
 });
 
-let TemplateData = smartcostdb.model("temp_tpl_data", RptTemplateDataSchema, "rpt_temp_tpl_data");
+let TemplateData = mongoose.model("rpt_temp_tpl_data", RptTemplateDataSchema, "rpt_temp_tpl_data");
 
-class RplTplDataDAO{
-    //根据id获取临时数据
-    get(tpl_id, callback){
-        TemplateData.find({"Data_Key": tpl_id}, function(err, templates){
-            if(templates.length){
-                callback(false, templates[0]);
-            }
-            else{
-                callback('查找不到模板临时数据!');
-            }
-        })
-    };
-    getPromise(tpl_id, callback){
-        return TemplateData.findOne({"Data_Key": tpl_id}).exec();
-    }
-};
+// class RplTplDataDAO{
+//     //根据id获取临时数据
+//     get(tpl_id, callback){
+//         TemplateData.find({"Data_Key": tpl_id}, function(err, templates){
+//             if(templates.length){
+//                 callback(false, templates[0]);
+//             }
+//             else{
+//                 callback('查找不到模板临时数据!');
+//             }
+//         })
+//     };
+//     getPromise(tpl_id, callback){
+//         return TemplateData.findOne({"Data_Key": tpl_id}).exec();
+//     }
+// };
+//
+// module.exports = new RplTplDataDAO();
 
-module.exports = new RplTplDataDAO();
+module.exports = TemplateData;

+ 9 - 10
modules/reports/models/tpl_tree_node.js

@@ -1,23 +1,22 @@
 /**
  * Created by Tony on 2017/5/31.
  */
-var mongoose = require('mongoose');
-var dbm = require("../../../config/db/db_manager");
-var db = dbm.getCfgConnection("scConstruct");
-var Schema = mongoose.Schema;
-var TreeNodeSchema = new Schema({
+let mongoose = require('mongoose');
+let Schema = mongoose.Schema;
+let TreeNodeSchema = new Schema({
     ID:Number,
     ParentID:Number,
     NextSiblingID:Number,
-    grpType: Number, //建筑(const : 1)/公路(const 2)/其他 etc...
-    nodeType: Number,//节点类型:树节点(枝) 或 模板节点(叶)
-    tplType: Number, //概算、预算、招投标 etc...
+    grpType: Number,  //建筑(const : 1)/公路(const 2)/其他 etc...
+    nodeType: Number, //节点类型:树节点(枝) 或 模板节点(叶)
+    tplType: Number,  //概算、预算、招投标 etc...
     userId: String,   //用户自定义模板用
-    refId: Number,   //
+    refId: Number,    //引用报表模板id (引用 collection: rpt_templates)
+    released: Boolean,//是否已发布, refId > -1 时才有意义
     name: String,
     isDeleted: Boolean
 });
 
-var TreeNodeModel = db.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
+let TreeNodeModel = mongoose.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
 
 module.exports = TreeNodeModel;

+ 5 - 1
modules/reports/util/rpt_util.js

@@ -1,8 +1,12 @@
 /**
  * Created by Tony on 2017/3/24.
  */
+let mongoose = require('mongoose');
+//let rpt_cfg_mdl = mongoose.model('rpt_cfg');
+
 let cache = require('../../../public/cache/cacheUtil');
-let Rpt_Cfg_Mdl = require('../models/rpt_cfg');
+//let Rpt_Cfg_Mdl = require('../models/rpt_cfg');
+let Rpt_Cfg_Mdl = mongoose.model('rpt_cfg');
 
 const RPT_CFG_GRP = 'rpt_cfg';
 

+ 11 - 3
operation.js

@@ -2,9 +2,6 @@ let express = require('express');
 
 let config = require("./config/config.js");
 config.setToQaDb();
-//config.setupCache();
-let cfgCacheUtil = require("./config/cacheCfg");
-cfgCacheUtil.setupDftCache();
 let dbm = require("./config/db/db_manager");
 
 let path = require('path');
@@ -21,6 +18,17 @@ let _rootDir = __dirname;
 
 dbm.connect();
 
+//引入报表模块
+fileUtils.getGlobbedFiles('./modules/reports/models/*.js').forEach(function(modelPath) {
+    require(path.resolve(modelPath));
+})
+
+
+//config.setupCache();
+let cfgCacheUtil = require("./config/cacheCfg");
+cfgCacheUtil.setupDftCache();
+
+
 app.use(express.static(_rootDir));
 
 app.set('views', path.join(__dirname, 'web'));

+ 2 - 2
web/maintain/report/js/rpt_tpl_main.js

@@ -15,7 +15,7 @@ let zTreeOprObj = {
     getReportTemplateTree: function(grpType) {
         let me = zTreeOprObj, params = {};
         params.grpType = grpType;
-        params.userId = userID;
+        params.userId = (userAccount ===  'admin')?('-100'):userID;
         params.tplType = RT.TplType.ALL;
         CommonAjax.postEx("report_tpl_api/getRptTplTree", params, 20000, true, function(result){
                 zTreeHelper.createTree(result, setting, "rptTplTree", me);
@@ -159,7 +159,7 @@ let zTreeOprObj = {
             grpType: RT.GrpType.CONSTRUCT,
             nodeType: RT.NodeType.NODE,
             tplType: RT.TplType.ALL,
-            userId: userID,
+            userId: (userAccount ===  'admin')?('-100'):userID,
             refId: -1,
             name: '新增节点'
         };