|
@@ -7,11 +7,12 @@ import mongoose from "mongoose";
|
|
|
import async from "async";
|
|
|
import counter from "../../../public/counter/counter";
|
|
|
|
|
|
-let RptTplModel = mongoose.model('rpt_templates');
|
|
|
-let TreeNodeModel = mongoose.model('rpt_tpl_tree');
|
|
|
-let rptExtCodeModel = mongoose.model('rpt_ext_code_tpl');
|
|
|
+let RptTplModel = mongoose.model("rpt_templates");
|
|
|
+let TreeNodeModel = mongoose.model("rpt_tpl_tree");
|
|
|
+let rptExtCodeModel = mongoose.model("rpt_ext_code_tpl");
|
|
|
|
|
|
let rptCustCfgFacade = require("../facade/rpt_cust_cfg_facade");
|
|
|
+let costIndexModel = mongoose.model("costIndexReport");
|
|
|
|
|
|
import JV from "../rpt_component/jpc_value_define";
|
|
|
import rttFacade from "../facade/rpt_tpl_tree_node_facade";
|
|
@@ -19,401 +20,491 @@ import CompilationModel from "../../users/models/compilation_model";
|
|
|
|
|
|
//统一回调函数
|
|
|
let callback = function (req, res, err, message, data) {
|
|
|
- res.json({ error: err, message: message, data: data });
|
|
|
+ res.json({ error: err, message: message, data: data });
|
|
|
};
|
|
|
|
|
|
let mExport = {
|
|
|
- getCustomerCfg: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- userId = params.userId,
|
|
|
- me = this;
|
|
|
- ;
|
|
|
- if (req.session.sessionUser && req.session.sessionUser.id) userId = req.session.sessionUser.id;
|
|
|
- let userIds = [];
|
|
|
- userIds.push(userId);
|
|
|
- if (userId !== "-100") {
|
|
|
- userIds.push("-100");
|
|
|
- }
|
|
|
- rptCustCfgFacade.getCustomizeCfg(userIds).then(function (custCfg) {
|
|
|
- if (custCfg) {
|
|
|
- //success
|
|
|
- let rst = null;
|
|
|
- if (custCfg.length > 0) {
|
|
|
- rst = [];
|
|
|
- rst.push(null);
|
|
|
- for (let itemCfg of custCfg) {
|
|
|
- // rst = itemCfg;
|
|
|
- let doc = (itemCfg._doc) ? itemCfg._doc : itemCfg;
|
|
|
- let dest = {};
|
|
|
- copyRptCfg(doc, dest);
|
|
|
- if (doc.userId !== "-100") {
|
|
|
- rst.push(dest);
|
|
|
- } else {
|
|
|
- rst[0] = dest;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (rst !== null && rst.length === 1) {
|
|
|
- //copy dft config
|
|
|
- let userDest = {};
|
|
|
- copyRptCfg(rst[0], userDest);
|
|
|
- rst.push(userDest);
|
|
|
- }
|
|
|
- callback(req, res, false, "", rst);
|
|
|
- } else {
|
|
|
- //failed
|
|
|
- callback(req, res, true, "失败!", null);
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- saveCustomerCfg: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- userId = params.userId,
|
|
|
- custCfg = params.custCfg;
|
|
|
- ;
|
|
|
- if (req.session.sessionUser && req.session.sessionUser.id) userId = req.session.sessionUser.id;
|
|
|
- custCfg.userId = userId;
|
|
|
- rptCustCfgFacade.saveCustomizeCfg(custCfg).then(function (rst) {
|
|
|
- if (rst) {
|
|
|
- //success
|
|
|
- callback(req, res, false, "", "success!");
|
|
|
- } else {
|
|
|
- //failed
|
|
|
- callback(req, res, true, "更新失败!", null);
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- getDftTemplates: function (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);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- getExtCodeTpl: function (req, res) {
|
|
|
- rptExtCodeModel.find({}).exec().then(function (rstCodeTpl) {
|
|
|
- if (rstCodeTpl) {
|
|
|
- callback(req, res, false, "", rstCodeTpl);
|
|
|
+ getCustomerCfg: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ userId = params.userId,
|
|
|
+ me = this;
|
|
|
+ if (req.session.sessionUser && req.session.sessionUser.id)
|
|
|
+ userId = req.session.sessionUser.id;
|
|
|
+ let userIds = [];
|
|
|
+ userIds.push(userId);
|
|
|
+ if (userId !== "-100") {
|
|
|
+ userIds.push("-100");
|
|
|
+ }
|
|
|
+ rptCustCfgFacade.getCustomizeCfg(userIds).then(function (custCfg) {
|
|
|
+ if (custCfg) {
|
|
|
+ //success
|
|
|
+ let rst = null;
|
|
|
+ if (custCfg.length > 0) {
|
|
|
+ rst = [];
|
|
|
+ rst.push(null);
|
|
|
+ for (let itemCfg of custCfg) {
|
|
|
+ // rst = itemCfg;
|
|
|
+ let doc = itemCfg._doc ? itemCfg._doc : itemCfg;
|
|
|
+ let dest = {};
|
|
|
+ copyRptCfg(doc, dest);
|
|
|
+ if (doc.userId !== "-100") {
|
|
|
+ rst.push(dest);
|
|
|
} else {
|
|
|
- callback(req, res, 'The report template was not found!', null);
|
|
|
+ rst[0] = dest;
|
|
|
}
|
|
|
- })
|
|
|
- },
|
|
|
- async getCompilationList(req, res) {
|
|
|
- let compilationModel = new CompilationModel();
|
|
|
- // let compilationList = await compilationModel.getPermissionCompilationList(req);
|
|
|
- let compilationList = await compilationModel.getCompilationList();
|
|
|
- console.log(compilationList);
|
|
|
- if (compilationList) {
|
|
|
- // console.log(compilationList);
|
|
|
- // compilationList.then(function (rst) {
|
|
|
- // console.log(rst);
|
|
|
- // callback(req, res, false, "", rst);
|
|
|
- // })
|
|
|
- callback(req, res, false, "", compilationList);
|
|
|
- } else {
|
|
|
- callback(req, res, true, "no result", null);
|
|
|
+ }
|
|
|
}
|
|
|
- },
|
|
|
- getRptTplTree: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- compilationId = params.compilationId,
|
|
|
- userId = params.userId,
|
|
|
- sessionUserId = null;
|
|
|
- let userIds = ["-100"];
|
|
|
- if (req.session.sessionUser && req.session.sessionUser.id) sessionUserId = req.session.sessionUser.id;
|
|
|
- if (userId !== null) {
|
|
|
- if (typeof userId === "string") {
|
|
|
- if (userIds.indexOf(userId) < 0) userIds.push(userId);
|
|
|
- } else if (userId instanceof Array) {
|
|
|
- for (let uid of userId) {
|
|
|
- userIds.push(uid);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
+ if (rst !== null && rst.length === 1) {
|
|
|
+ //copy dft config
|
|
|
+ let userDest = {};
|
|
|
+ copyRptCfg(rst[0], userDest);
|
|
|
+ rst.push(userDest);
|
|
|
}
|
|
|
- if (sessionUserId && userIds.indexOf(sessionUserId) < 0) userIds.push(sessionUserId);
|
|
|
- if (!compilationId) {
|
|
|
- compilationId = req.session.sessionCompilation._id;
|
|
|
+ callback(req, res, false, "", rst);
|
|
|
+ } else {
|
|
|
+ //failed
|
|
|
+ callback(req, res, true, "失败!", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ saveCustomerCfg: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ userId = params.userId,
|
|
|
+ custCfg = params.custCfg;
|
|
|
+ if (req.session.sessionUser && req.session.sessionUser.id)
|
|
|
+ userId = req.session.sessionUser.id;
|
|
|
+ custCfg.userId = userId;
|
|
|
+ rptCustCfgFacade.saveCustomizeCfg(custCfg).then(function (rst) {
|
|
|
+ if (rst) {
|
|
|
+ //success
|
|
|
+ callback(req, res, false, "", "success!");
|
|
|
+ } else {
|
|
|
+ //failed
|
|
|
+ callback(req, res, true, "更新失败!", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getDftTemplates: function (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);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getExtCodeTpl: function (req, res) {
|
|
|
+ rptExtCodeModel
|
|
|
+ .find({})
|
|
|
+ .exec()
|
|
|
+ .then(function (rstCodeTpl) {
|
|
|
+ if (rstCodeTpl) {
|
|
|
+ callback(req, res, false, "", rstCodeTpl);
|
|
|
+ } else {
|
|
|
+ callback(req, res, "The report template was not found!", null);
|
|
|
}
|
|
|
- rttFacade.findTplTree(compilationId, userIds).then(function (result) {
|
|
|
- if (result) {
|
|
|
- callback(req, res, false, "", result);
|
|
|
- } else {
|
|
|
- callback(req, res, true, "no result", null);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- getTplTreeByCompilation: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- compilationId = params.compilationId;
|
|
|
- // if (req.session.sessionUser && req.session.sessionUser.id) sessionUserId = req.session.sessionUser.id;
|
|
|
- console.log(params);
|
|
|
- if (!compilationId) {
|
|
|
- console.log(req.session.sessionCompilation);
|
|
|
- compilationId = req.session.sessionCompilation._id;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ async getCompilationList(req, res) {
|
|
|
+ let compilationModel = new CompilationModel();
|
|
|
+ // let compilationList = await compilationModel.getPermissionCompilationList(req);
|
|
|
+ let compilationList = await compilationModel.getCompilationList();
|
|
|
+ console.log(compilationList);
|
|
|
+ if (compilationList) {
|
|
|
+ // console.log(compilationList);
|
|
|
+ // compilationList.then(function (rst) {
|
|
|
+ // console.log(rst);
|
|
|
+ // callback(req, res, false, "", rst);
|
|
|
+ // })
|
|
|
+ callback(req, res, false, "", compilationList);
|
|
|
+ } else {
|
|
|
+ callback(req, res, true, "no result", null);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getRptTplTree: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ compilationId = params.compilationId,
|
|
|
+ userId = params.userId,
|
|
|
+ sessionUserId = null;
|
|
|
+ let userIds = ["-100"];
|
|
|
+ if (req.session.sessionUser && req.session.sessionUser.id)
|
|
|
+ sessionUserId = req.session.sessionUser.id;
|
|
|
+ if (userId !== null) {
|
|
|
+ if (typeof userId === "string") {
|
|
|
+ if (userIds.indexOf(userId) < 0) userIds.push(userId);
|
|
|
+ } else if (userId instanceof Array) {
|
|
|
+ for (let uid of userId) {
|
|
|
+ userIds.push(uid);
|
|
|
}
|
|
|
- rttFacade.findTplTreeByCompilation(compilationId).then(function (result) {
|
|
|
- if (result) {
|
|
|
- callback(req, res, false, "", result);
|
|
|
- } else {
|
|
|
- callback(req, res, true, "no result", null);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- updateTreeNodes: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- nodes = params.nodes;
|
|
|
- let functions = [];
|
|
|
- for (let node of nodes) {
|
|
|
- functions.push((function (doc) {
|
|
|
- return function (cb) {
|
|
|
- TreeNodeModel.update({ ID: doc.ID }, doc, cb);
|
|
|
- };
|
|
|
- })(node));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ }
|
|
|
+ if (sessionUserId && userIds.indexOf(sessionUserId) < 0)
|
|
|
+ userIds.push(sessionUserId);
|
|
|
+ if (!compilationId) {
|
|
|
+ compilationId = req.session.sessionCompilation._id;
|
|
|
+ }
|
|
|
+ rttFacade.findTplTree(compilationId, userIds).then(function (result) {
|
|
|
+ if (result) {
|
|
|
+ callback(req, res, false, "", result);
|
|
|
+ } else {
|
|
|
+ callback(req, res, true, "no result", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getTplTreeByCompilation: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ compilationId = params.compilationId;
|
|
|
+ // if (req.session.sessionUser && req.session.sessionUser.id) sessionUserId = req.session.sessionUser.id;
|
|
|
+ console.log(params);
|
|
|
+ if (!compilationId) {
|
|
|
+ console.log(req.session.sessionCompilation);
|
|
|
+ compilationId = req.session.sessionCompilation._id;
|
|
|
+ }
|
|
|
+ rttFacade.findTplTreeByCompilation(compilationId).then(function (result) {
|
|
|
+ if (result) {
|
|
|
+ callback(req, res, false, "", result);
|
|
|
+ } else {
|
|
|
+ callback(req, res, true, "no result", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ updateTreeNodes: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ nodes = params.nodes;
|
|
|
+ let functions = [];
|
|
|
+ for (let node of nodes) {
|
|
|
+ functions.push(
|
|
|
+ (function (doc) {
|
|
|
+ return function (cb) {
|
|
|
+ TreeNodeModel.update({ ID: doc.ID }, doc, cb);
|
|
|
+ };
|
|
|
+ })(node)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ async.parallel(functions, function (err, results) {
|
|
|
+ callback(req, res, err, "", results);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ deleteRptTplNodes: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ nodeIds = params.nodeIds,
|
|
|
+ preNodeId = params.preNodeId,
|
|
|
+ preNodeNextId = params.preNodeNextId;
|
|
|
+ let functions = [];
|
|
|
+ if (preNodeId !== -1) {
|
|
|
+ functions.push(
|
|
|
+ (function (nodeId, nextId) {
|
|
|
+ return function (cb) {
|
|
|
+ TreeNodeModel.update({ ID: nodeId }, { NextSiblingID: nextId }, cb);
|
|
|
+ };
|
|
|
+ })(preNodeId, preNodeNextId)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ for (let nId of nodeIds) {
|
|
|
+ functions.push(
|
|
|
+ (function (nodeId) {
|
|
|
+ return function (cb) {
|
|
|
+ TreeNodeModel.update({ ID: nodeId }, { isDeleted: true }, cb);
|
|
|
+ };
|
|
|
+ })(nId)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ async.parallel(functions, function (err, results) {
|
|
|
+ callback(req, res, err, "", results);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ createTreeRootNode: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ doc = params.doc;
|
|
|
+ rttFacade.createNewTree(doc).then(function (rst) {
|
|
|
+ if (rst) {
|
|
|
+ //success
|
|
|
+ callback(req, res, false, "", rst);
|
|
|
+ } else {
|
|
|
+ //failed
|
|
|
+ callback(req, res, true, "创建失败!", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ updateTreeRootNode: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ doc = params.doc;
|
|
|
+ rttFacade
|
|
|
+ .updateTree(doc.compilationId, doc.engineerId, doc.userId, doc)
|
|
|
+ .then(function (rst) {
|
|
|
+ if (rst) {
|
|
|
+ //success
|
|
|
+ callback(req, res, false, "", rst);
|
|
|
+ } else {
|
|
|
+ //failed
|
|
|
+ callback(req, res, true, "更新失败!", null);
|
|
|
}
|
|
|
- async.parallel(functions, function (err, results) {
|
|
|
- callback(req, res, err, "", results);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ updateTopNodeName: function (req, res) {
|
|
|
+ //备注:因设计的更改,此方法将被放弃
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ compilationId = params.compilationId,
|
|
|
+ engineerId = params.engineerId,
|
|
|
+ userId = params.userId,
|
|
|
+ nodeName = params.nodeName;
|
|
|
+ if (req.session.sessionUser && req.session.sessionUser.id)
|
|
|
+ userId = req.session.sessionUser.id;
|
|
|
+ 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;
|
|
|
+ if (req.session.sessionUser && req.session.sessionUser.id)
|
|
|
+ userId = req.session.sessionUser.id; //备注:这段逻辑只会在前端有效,后端运维不会走到
|
|
|
+ let filter = {
|
|
|
+ compilationId: compilationId,
|
|
|
+ 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,
|
|
|
+ engineerId = params.engineerId,
|
|
|
+ userId = params.userId,
|
|
|
+ isPhysically = params.isPhysically;
|
|
|
+ if (req.session.sessionUser && req.session.sessionUser.id)
|
|
|
+ userId = req.session.sessionUser.id;
|
|
|
+ if (isPhysically) {
|
|
|
+ rttFacade
|
|
|
+ .removeTreePhycically(compilationId, engineerId, userId)
|
|
|
+ .then(function (rst) {
|
|
|
+ if (rst) {
|
|
|
+ //success
|
|
|
+ callback(req, res, false, "", rst);
|
|
|
+ } else {
|
|
|
+ //failed
|
|
|
+ callback(req, res, true, "删除失败!", null);
|
|
|
+ }
|
|
|
});
|
|
|
- },
|
|
|
- deleteRptTplNodes: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- nodeIds = params.nodeIds,
|
|
|
- preNodeId = params.preNodeId,
|
|
|
- preNodeNextId = params.preNodeNextId;
|
|
|
- let functions = [];
|
|
|
- if (preNodeId !== -1) {
|
|
|
- functions.push((function (nodeId, nextId) {
|
|
|
- return function (cb) {
|
|
|
- TreeNodeModel.update({ ID: nodeId }, { "NextSiblingID": nextId }, cb);
|
|
|
- };
|
|
|
- })(preNodeId, preNodeNextId));
|
|
|
- }
|
|
|
- for (let nId of nodeIds) {
|
|
|
- functions.push((function (nodeId) {
|
|
|
- return function (cb) {
|
|
|
- TreeNodeModel.update({ ID: nodeId }, { "isDeleted": true }, cb);
|
|
|
- };
|
|
|
- })(nId));
|
|
|
- }
|
|
|
- async.parallel(functions, function (err, results) {
|
|
|
- callback(req, res, err, "", results);
|
|
|
+ } else {
|
|
|
+ rttFacade
|
|
|
+ .removeTree(compilationId, engineerId, userId)
|
|
|
+ .then(function (rst) {
|
|
|
+ if (rst) {
|
|
|
+ //success
|
|
|
+ callback(req, res, false, "", rst);
|
|
|
+ } else {
|
|
|
+ //failed
|
|
|
+ callback(req, res, true, "删除失败!", null);
|
|
|
+ }
|
|
|
});
|
|
|
- },
|
|
|
- createTreeRootNode: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- doc = params.doc;
|
|
|
- rttFacade.createNewTree(doc).then(function (rst) {
|
|
|
- if (rst) {
|
|
|
- //success
|
|
|
- callback(req, res, false, "", rst);
|
|
|
- } else {
|
|
|
- //failed
|
|
|
- callback(req, res, true, "创建失败!", null);
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- updateTreeRootNode: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- doc = params.doc;
|
|
|
- rttFacade.updateTree(doc.compilationId, doc.engineerId, doc.userId, doc).then(function (rst) {
|
|
|
- if (rst) {
|
|
|
- //success
|
|
|
- callback(req, res, false, "", rst);
|
|
|
- } else {
|
|
|
- //failed
|
|
|
- callback(req, res, true, "更新失败!", null);
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- updateTopNodeName: function (req, res) {
|
|
|
- //备注:因设计的更改,此方法将被放弃
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- compilationId = params.compilationId, engineerId = params.engineerId,
|
|
|
- userId = params.userId,
|
|
|
- nodeName = params.nodeName
|
|
|
- ;
|
|
|
- if (req.session.sessionUser && req.session.sessionUser.id) userId = req.session.sessionUser.id;
|
|
|
- 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
|
|
|
- ;
|
|
|
- if (req.session.sessionUser && req.session.sessionUser.id) userId = req.session.sessionUser.id; //备注:这段逻辑只会在前端有效,后端运维不会走到
|
|
|
- let filter = { "compilationId": compilationId, "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);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ 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.sequence_value);
|
|
|
+ }
|
|
|
+ );
|
|
|
+ },
|
|
|
+ createDftRptTpl: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ treeNodeId = params.treeNodeId,
|
|
|
+ rptDftTplId = params.rptDftTplId,
|
|
|
+ rptName = params.rptName,
|
|
|
+ grpKey = params.grpKey,
|
|
|
+ compilationId = params.compilationId,
|
|
|
+ engineerId = params.engineerId,
|
|
|
+ userId = params.userId,
|
|
|
+ subNode = params.subNode;
|
|
|
+ if (req.session.sessionUser && req.session.sessionUser.id)
|
|
|
+ userId = req.session.sessionUser.id;
|
|
|
+ let filter = { ID: rptDftTplId };
|
|
|
+ RptTplModel.findOne(filter, "-_id")
|
|
|
+ .exec()
|
|
|
+ .then(function (dftTplRst) {
|
|
|
+ if (dftTplRst) {
|
|
|
+ let _doc = dftTplRst["_doc"];
|
|
|
+ _doc["ID"] = treeNodeId;
|
|
|
+ _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 {
|
|
|
- //failed
|
|
|
- callback(req, res, true, "更新失败!", null);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- removeTreeRootNode: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- compilationId = params.compilationId,
|
|
|
- engineerId = params.engineerId,
|
|
|
- userId = params.userId,
|
|
|
- isPhysically = params.isPhysically
|
|
|
- ;
|
|
|
- if (req.session.sessionUser && req.session.sessionUser.id) userId = req.session.sessionUser.id;
|
|
|
- if (isPhysically) {
|
|
|
- rttFacade.removeTreePhycically(compilationId, engineerId, userId).then(function (rst) {
|
|
|
- if (rst) {
|
|
|
+ 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 {
|
|
|
+ callback(req, res, false, "", actTplRst);
|
|
|
+ } else {
|
|
|
//failed
|
|
|
- callback(req, res, true, "删除失败!", null);
|
|
|
- }
|
|
|
- })
|
|
|
- } else {
|
|
|
- rttFacade.removeTree(compilationId, engineerId, userId).then(function (rst) {
|
|
|
- if (rst) {
|
|
|
- //success
|
|
|
- callback(req, res, false, "", rst);
|
|
|
- } else {
|
|
|
- //failed
|
|
|
- callback(req, res, true, "删除失败!", null);
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- },
|
|
|
- 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.sequence_value);
|
|
|
- });
|
|
|
- },
|
|
|
- createDftRptTpl: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- treeNodeId = params.treeNodeId,
|
|
|
- rptDftTplId = params.rptDftTplId,
|
|
|
- rptName = params.rptName,
|
|
|
- grpKey = params.grpKey,
|
|
|
- compilationId = params.compilationId,
|
|
|
- engineerId = params.engineerId,
|
|
|
- userId = params.userId,
|
|
|
- subNode = params.subNode
|
|
|
- ;
|
|
|
- if (req.session.sessionUser && req.session.sessionUser.id) userId = req.session.sessionUser.id;
|
|
|
- let filter = { "ID": rptDftTplId };
|
|
|
- RptTplModel.findOne(filter, '-_id').exec().then(function (dftTplRst) {
|
|
|
- if (dftTplRst) {
|
|
|
- let _doc = dftTplRst["_doc"];
|
|
|
- _doc["ID"] = treeNodeId;
|
|
|
- _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 {
|
|
|
- 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);
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
+ callback(req, res, true, "更新失败!", null);
|
|
|
+ }
|
|
|
});
|
|
|
- } else {
|
|
|
- callback(req, res, 'Create report template failed!', null);
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- getRefRptTpl: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- rptTplId = params.rptTplId;
|
|
|
- let filter = { "ID": rptTplId };
|
|
|
- RptTplModel.findOne(filter, '-_id').exec().then(function (rstTpl) {
|
|
|
- if (rstTpl) {
|
|
|
- callback(req, res, false, "", rstTpl);
|
|
|
- } else {
|
|
|
- callback(req, res, 'The report template was not found!', null);
|
|
|
}
|
|
|
- })
|
|
|
- },
|
|
|
- updateRptTpl: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- rptTpl = JSON.parse(params.rptTpl);
|
|
|
- let filter = { "ID": parseInt(rptTpl[JV.PROP_ID]) },
|
|
|
- options = { "overwrite": true };
|
|
|
- RptTplModel.update(filter, rptTpl, options, function (err, rst) {
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ callback(req, res, "Create report template failed!", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getRefRptTpl: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ rptTplId = params.rptTplId;
|
|
|
+ let filter = { ID: rptTplId };
|
|
|
+ RptTplModel.findOne(filter, "-_id")
|
|
|
+ .exec()
|
|
|
+ .then(function (rstTpl) {
|
|
|
+ if (rstTpl) {
|
|
|
+ callback(req, res, false, "", rstTpl);
|
|
|
+ } else {
|
|
|
+ callback(req, res, "The report template was not found!", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ updateRptTpl: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ rptTpl = JSON.parse(params.rptTpl);
|
|
|
+ let filter = { ID: parseInt(rptTpl[JV.PROP_ID]) },
|
|
|
+ options = { overwrite: true };
|
|
|
+ RptTplModel.update(filter, rptTpl, options, function (err, rst) {
|
|
|
+ if (err) {
|
|
|
+ callback(
|
|
|
+ req,
|
|
|
+ res,
|
|
|
+ true,
|
|
|
+ "The report template was updated failed!",
|
|
|
+ false
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ callback(
|
|
|
+ req,
|
|
|
+ res,
|
|
|
+ false,
|
|
|
+ "The report template was updated successfully!",
|
|
|
+ true
|
|
|
+ );
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ copyRptTpl: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ orgRptTplId = params.orgRptTplId,
|
|
|
+ newID = params.newRptTplId;
|
|
|
+ let filter = { ID: orgRptTplId };
|
|
|
+ RptTplModel.findOne(filter, "-_id")
|
|
|
+ .exec()
|
|
|
+ .then(function (baseTplRst) {
|
|
|
+ if (baseTplRst) {
|
|
|
+ let _doc = baseTplRst["_doc"];
|
|
|
+ _doc["ID"] = newID;
|
|
|
+ if (_doc["GROUP_KEY"].indexOf("(Copy)") < 0) {
|
|
|
+ _doc["GROUP_KEY"] = _doc["GROUP_KEY"] + "(Copy)";
|
|
|
+ }
|
|
|
+ let rptTpl = new RptTplModel(_doc);
|
|
|
+ rptTpl.save(function (err, actTplRst) {
|
|
|
if (err) {
|
|
|
- callback(req, res, true, 'The report template was updated failed!', false);
|
|
|
- } else {
|
|
|
- callback(req, res, false, 'The report template was updated successfully!', true);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- copyRptTpl: function (req, res) {
|
|
|
- let params = JSON.parse(req.body.params),
|
|
|
- orgRptTplId = params.orgRptTplId,
|
|
|
- newID = params.newRptTplId;
|
|
|
- let filter = { "ID": orgRptTplId };
|
|
|
- RptTplModel.findOne(filter, '-_id').exec().then(function (baseTplRst) {
|
|
|
- if (baseTplRst) {
|
|
|
- let _doc = baseTplRst["_doc"];
|
|
|
- _doc["ID"] = newID;
|
|
|
- if (_doc["GROUP_KEY"].indexOf("(Copy)") < 0) {
|
|
|
- _doc["GROUP_KEY"] = _doc["GROUP_KEY"] + "(Copy)";
|
|
|
- }
|
|
|
- let rptTpl = new RptTplModel(_doc);
|
|
|
- rptTpl.save(function (err, actTplRst) {
|
|
|
- if (err) {
|
|
|
- callback(req, res, "报表模板创建错误", "", null);
|
|
|
- } else {
|
|
|
- callback(req, res, false, "", newID);
|
|
|
- }
|
|
|
- });
|
|
|
+ callback(req, res, "报表模板创建错误", "", null);
|
|
|
} else {
|
|
|
- callback(req, res, 'Create report template failed!', null);
|
|
|
+ callback(req, res, false, "", newID);
|
|
|
}
|
|
|
- });
|
|
|
- }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ callback(req, res, "Create report template failed!", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 接口指标报表编辑器,新增的辅表选项数据
|
|
|
+ getAidReportDataList: function (req, res) {
|
|
|
+ let params = JSON.parse(req.body.params),
|
|
|
+ compilationID = params.compilationID;
|
|
|
+ let filter = { compilationID };
|
|
|
+ costIndexModel
|
|
|
+ .find(filter, "-_id")
|
|
|
+ .exec()
|
|
|
+ .then(function (data) {
|
|
|
+ if (data) {
|
|
|
+ callback(req, res, false, "", data);
|
|
|
+ } else {
|
|
|
+ callback(req, res, "The aidReportData template was not found!", null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
function copyRptCfg(src, dest) {
|
|
|
- dest.margins = { Left: src.margins.Left, Right: src.margins.Right, Top: src.margins.Top, Bottom: src.margins.Bottom };
|
|
|
- dest.showVerticalLine = src.showVerticalLine;
|
|
|
- dest.isNarrow = src.isNarrow;
|
|
|
- dest.fillZero = src.fillZero;
|
|
|
- dest.fonts = [];
|
|
|
- for (let font of src.fonts) {
|
|
|
- dest.fonts.push({
|
|
|
- "ID": font["ID"], "CfgDispName": font["CfgDispName"], "Name": font["Name"], "FontHeight": font["FontHeight"], "FontColor": font["FontColor"],
|
|
|
- "FontBold": font["FontBold"], "FontItalic": font["FontItalic"], "FontUnderline": font["FontUnderline"], "FontStrikeOut": font["FontStrikeOut"], "FontAngle": font["FontAngle"]
|
|
|
- });
|
|
|
- }
|
|
|
+ dest.margins = {
|
|
|
+ Left: src.margins.Left,
|
|
|
+ Right: src.margins.Right,
|
|
|
+ Top: src.margins.Top,
|
|
|
+ Bottom: src.margins.Bottom,
|
|
|
+ };
|
|
|
+ dest.showVerticalLine = src.showVerticalLine;
|
|
|
+ dest.isNarrow = src.isNarrow;
|
|
|
+ dest.fillZero = src.fillZero;
|
|
|
+ dest.fonts = [];
|
|
|
+ for (let font of src.fonts) {
|
|
|
+ dest.fonts.push({
|
|
|
+ ID: font["ID"],
|
|
|
+ CfgDispName: font["CfgDispName"],
|
|
|
+ Name: font["Name"],
|
|
|
+ FontHeight: font["FontHeight"],
|
|
|
+ FontColor: font["FontColor"],
|
|
|
+ FontBold: font["FontBold"],
|
|
|
+ FontItalic: font["FontItalic"],
|
|
|
+ FontUnderline: font["FontUnderline"],
|
|
|
+ FontStrikeOut: font["FontStrikeOut"],
|
|
|
+ FontAngle: font["FontAngle"],
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-export default mExport;
|
|
|
+export default mExport;
|