瀏覽代碼

code sync : rpt template tuning

TonyKang 7 年之前
父節點
當前提交
dce849a572

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

@@ -60,29 +60,29 @@ let mExport = {
             }
         });
     },
-    getRptTplTree_org: function(req, res) {
-        let params = JSON.parse(req.body.params),
-            grpType = params.grpType,
-            userId = params.userId,
-            tplType = params.tplType;
-        let filter = {"grpType": grpType, "$or": [{"isDeleted": null}, {"isDeleted": false} ]};
-        if (userId) {
-            filter.userId = userId;
-        }
-        if ((tplType && tplType !== rptTplDef.TplType.ALL)) {
-            filter.tplType = tplType;
-        }
-        TreeNodeModel.find(filter, '-_id', function(err, data){
-            if (err) {
-                callback(req,res, true,"", null);
-            } else {
-                callback(req,res,false,"", data);
-            }
-        });
-        // let obj = test_glj_type_util.getStdGljTypeCacheObj();
-        // console.log(obj.toArray());
-        // console.log(obj.getItemById(1));
-    },
+    // getRptTplTree_org: function(req, res) {
+    //     let params = JSON.parse(req.body.params),
+    //         grpType = params.grpType,
+    //         userId = params.userId,
+    //         tplType = params.tplType;
+    //     let filter = {"grpType": grpType, "$or": [{"isDeleted": null}, {"isDeleted": false} ]};
+    //     if (userId) {
+    //         filter.userId = userId;
+    //     }
+    //     if ((tplType && tplType !== rptTplDef.TplType.ALL)) {
+    //         filter.tplType = tplType;
+    //     }
+    //     TreeNodeModel.find(filter, '-_id', function(err, data){
+    //         if (err) {
+    //             callback(req,res, true,"", null);
+    //         } else {
+    //             callback(req,res,false,"", data);
+    //         }
+    //     });
+    //     // let obj = test_glj_type_util.getStdGljTypeCacheObj();
+    //     // console.log(obj.toArray());
+    //     // console.log(obj.getItemById(1));
+    // },
     updateTreeNodes: function(req, res) {
         let params = JSON.parse(req.body.params),
             nodes = params.nodes;
@@ -148,6 +148,41 @@ let mExport = {
             }
         })
     },
+    updateTopNodeName: function (req, res) {
+        let params = JSON.parse(req.body.params),
+            compilationId = params.compilationId, engineerId = params.engineerId, userId = params.userId,
+            nodeName = params.nodeName
+        ;
+        let filter = {"compilationId": compilationId, "engineerId": engineerId, "userId": userId, "$or": [{"isDeleted": null}, {"isDeleted": false}]};
+        let updateStatement = {"$set": {"name": nodeName}};
+        rttFacade.updateTreeInDetail(filter, updateStatement).then(function (rst) {
+            if (rst) {
+                //success
+                callback(req,res, false, "", rst);
+            } else {
+                //failed
+                callback(req,res, true, "更新失败!", null);
+            }
+        });
+    },
+    updateSubLevelOneNode: function (req, res) {
+        let params = JSON.parse(req.body.params),
+            compilationId = params.compilationId, engineerId = params.engineerId, userId = params.userId,
+            subNode = params.subNode
+        ;
+        let filter = {"compilationId": compilationId, "engineerId": engineerId, "userId": userId, "items.ID": subNode.ID, "$or": [{"isDeleted": null}, {"isDeleted": false}]};
+        let updateStatement = {$set: {"items.$": subNode}};
+        rttFacade.updateTreeInDetail(filter, updateStatement).then(function (rst) {
+            if (rst) {
+                //success
+                callback(req,res, false, "", rst);
+            } else {
+                //failed
+                callback(req,res, true, "更新失败!", null);
+            }
+        });
+    },
+
     removeTreeRootNode: function (req, res) {
         let params = JSON.parse(req.body.params),
             compilationId = params.compilationId,
@@ -201,29 +236,47 @@ let mExport = {
     //         });
     //     });
     // },
+    getNewNodeID: function(req, res) {
+        let params = JSON.parse(req.body.params),
+            scope = params.scope;
+        counter.counterDAO.getIDAfterCount(counter.moduleName.report, scope, function(err, result){
+            callback(req,res, false, "", result.value.sequence_value);
+        });
+    },
     createDftRptTpl: function(req, res) {
         let params = JSON.parse(req.body.params),
             treeNodeId = params.treeNodeId,
-            //grpChars = stringUtil.getPinYinFullChars(params.grpChars),
-            rptDftTplId = params.rptDftTplId;
+            rptDftTplId = params.rptDftTplId,
+            rptName = params.rptName,
+            grpKey = params.grpKey,
+            compilationId = params.compilationId,
+            engineerId = params.engineerId,
+            userId = params.userId,
+            subNode = params.subNode
+        ;
         let filter = {"ID": rptDftTplId};
         RptTplModel.findOne(filter, '-_id').exec().then(function(dftTplRst) {
             if (dftTplRst) {
                 let _doc = dftTplRst["_doc"];
                 _doc["ID"] = treeNodeId;
-                _doc["GROUP_KEY"] = "";
+                _doc["GROUP_KEY"] = grpKey;
                 _doc["ID_KEY"] = "";
+                _doc[JV.NODE_MAIN_INFO][JV.NODE_MAIN_INFO_RPT_NAME] = rptName;
                 let rptTpl = new RptTplModel(_doc);
                 rptTpl.save(function (err, actTplRst) {
                     if (err) {
                         callback(req,res, "报表模板创建错误", "", null);
                     } else {
                         //TreeNodeModel.update();
-                        TreeNodeModel.update({ID: treeNodeId}, {"refId": treeNodeId}, function(err, rst){
-                            if (err) {
-                                callback(req,res, "报表模板创建错误", "", null);
-                            } else {
+                        let filter = {"compilationId": compilationId, "engineerId": engineerId, "userId": userId, "items.ID": subNode.ID, "$or": [{"isDeleted": null}, {"isDeleted": false}]};
+                        let updateStatement = {$set: {"items.$": subNode}};
+                        rttFacade.updateTreeInDetail(filter, updateStatement).then(function (rst) {
+                            if (rst) {
+                                //success
                                 callback(req,res, false, "", actTplRst);
+                            } else {
+                                //failed
+                                callback(req,res, true, "更新失败!", null);
                             }
                         });
                     }

+ 11 - 6
modules/reports/facade/rpt_tpl_tree_node_facade.js

@@ -33,6 +33,10 @@ async function updateTree(compilationId, engineerId, userId, doc) {
     return await rpt_tpl_tree_mdl.update(filter, doc);
 }
 
+async function updateTreeInDetail(filter, updateStatement) {
+    return await rpt_tpl_tree_mdl.update(filter, updateStatement);
+}
+
 async function removeTree(compilationId, engineerId, userId, cb) {
     let filter = {"compilationId": compilationId, "engineerId": engineerId, "userId": userId, "$or": [{"isDeleted": null}, {"isDeleted": false}]};
     return await rpt_tpl_tree_mdl.findAndModify(filter, [], { $set: { "isDeleted": true } }, {'new':true}, cb);
@@ -66,12 +70,13 @@ async function findTplTreeByOid(objectId) {
 
 
 let expObj = {
-    createNewTree:  createNewTree,
-    updateTree:     updateTree,
-    removeTree:     removeTree,
-    removeTreePhycically: removeTreePhycically,
-    findTplTree:    findTplTree,
-    findTplTreeByOid: findTplTreeByOid
+    createNewTree:          createNewTree,
+    updateTree:             updateTree,
+    updateTreeInDetail:     updateTreeInDetail,
+    removeTree:             removeTree,
+    removeTreePhycically:   removeTreePhycically,
+    findTplTree:            findTplTree,
+    findTplTreeByOid:       findTplTreeByOid
 };
 
 export {expObj as default};

+ 1 - 0
modules/reports/models/tpl_tree_node.js

@@ -20,6 +20,7 @@ let TreeNodeSchema = new Schema({
 
 let TplNodeSchema = new Schema({
     nodeType: Number,   //节点类型:树节点(枝) 或 模板节点(叶)
+    ID: Number,         //template节点ID,只有在nodeType是模板节点有效
     refId: Number,      //引用报表模板id (引用 collection: rpt_templates)
     name: String,       //显示名称
     items: []           //子节点

+ 3 - 0
modules/reports/routes/rpt_tpl_router.js

@@ -17,8 +17,11 @@ module.exports = function (app) {
 
     rptTplRouter.post('/createTreeRootNode', reportTplController.createTreeRootNode);
     rptTplRouter.post('/updateTreeRootNode', reportTplController.updateTreeRootNode);
+    rptTplRouter.post('/updateTopNodeName', reportTplController.updateTopNodeName);
+    rptTplRouter.post('/updateSubLevelOneNode', reportTplController.updateSubLevelOneNode);
     rptTplRouter.post('/removeTreeRootNode', reportTplController.removeTreeRootNode);
     rptTplRouter.post('/getRptTplTree', reportTplController.getRptTplTree);
+    rptTplRouter.post('/getNewNodeID', reportTplController.getNewNodeID);
     rptTplRouter.post('/updateRptTplNodes', reportTplController.updateTreeNodes);
     rptTplRouter.post('/deleteRptTplNodes', reportTplController.deleteRptTplNodes);
     rptTplRouter.post('/createDftRptTpl', reportTplController.createDftRptTpl);