rpt_tpl_controller.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. /**
  2. * Created by Tony on 2017/6/1.
  3. */
  4. let async = require("async");
  5. let counter = require('../../../public/counter/counter');
  6. let RptTplModel = require('../models/rpt_template');
  7. let TreeNodeModel = require('../models/tpl_tree_node');
  8. let rptTplDef = require("../../../public/rpt_tpl_def").getUtil();
  9. let stringUtil = require("../../../public/stringUtil");
  10. //let test_glj_type_util = require("../../../public/cache/std_glj_type_util");
  11. //统一回调函数
  12. let callback = function(req, res, err, message, data){
  13. res.json({error: err, message: message, data: data});
  14. }
  15. module.exports = {
  16. getRptTplTree: function(req, res) {
  17. let params = JSON.parse(req.body.params),
  18. grpType = params.grpType,
  19. userId = params.userId,
  20. tplType = params.tplType;
  21. let filter = {"grpType": grpType, "$or": [{"isDeleted": null}, {"isDeleted": false} ]};
  22. if (userId) {
  23. filter.userId = userId;
  24. }
  25. if ((tplType && tplType !== rptTplDef.TplType.ALL)) {
  26. filter.tplType = tplType;
  27. }
  28. TreeNodeModel.find(filter, '-_id', function(err, data){
  29. if (err) {
  30. callback(req,res, true,"", null);
  31. } else callback(req,res,false,"", data);
  32. });
  33. // let obj = test_glj_type_util.getStdGljTypeCacheObj();
  34. // console.log(obj.toArray());
  35. // console.log(obj.getItemById(1));
  36. },
  37. updateTreeNodes: function(req, res) {
  38. let params = JSON.parse(req.body.params),
  39. nodes = params.nodes;
  40. let functions = [];
  41. for (let node of nodes) {
  42. functions.push((function(doc) {
  43. return function(cb) {
  44. TreeNodeModel.update({ID: doc.ID}, doc, cb);
  45. };
  46. })(node));
  47. }
  48. async.parallel(functions, function(err, results) {
  49. callback(req,res, err, "", results);
  50. });
  51. },
  52. deleteRptTplNodes: function(req, res){
  53. let params = JSON.parse(req.body.params),
  54. nodeIds = params.nodeIds,
  55. preNodeId = params.preNodeId,
  56. preNodeNextId = params.preNodeNextId;
  57. let functions = [];
  58. if (preNodeId !== -1) {
  59. functions.push((function(nodeId, nextId) {
  60. return function(cb) {
  61. TreeNodeModel.update({ID: nodeId}, {"NextSiblingID": nextId}, cb);
  62. };
  63. })(preNodeId, preNodeNextId));
  64. }
  65. for (let nId of nodeIds) {
  66. functions.push((function(nodeId) {
  67. return function(cb) {
  68. TreeNodeModel.update({ID: nodeId}, {"isDeleted": true}, cb);
  69. };
  70. })(nId));
  71. }
  72. async.parallel(functions, function(err, results) {
  73. callback(req,res, err, "", results);
  74. });
  75. },
  76. createTplTreeNode: function(req, res){
  77. let params = JSON.parse(req.body.params),
  78. lastNodeId = params.lastNodeId,
  79. nodeData = params.rawNodeData;
  80. counter.counterDAO.getIDAfterCount(counter.moduleName.report, 1, function(err, result){
  81. nodeData.ID = result.value.sequence_value;
  82. let node = new TreeNodeModel(nodeData);
  83. node.save(function (err, result) {
  84. if (err) {
  85. callback(req,res, "树节点错误!", "", null);
  86. } else {
  87. if (lastNodeId > 0) {
  88. TreeNodeModel.update({ID: lastNodeId}, {"NextSiblingID": nodeData.ID}, function(err, rst){
  89. if (err) {
  90. callback(req,res, "树节点错误!", "", null);
  91. } else {
  92. callback(req,res, false, "", result);
  93. }
  94. });
  95. } else callback(req,res, false, "", result);
  96. }
  97. });
  98. });
  99. },
  100. createDftRptTpl: function(req, res) {
  101. let params = JSON.parse(req.body.params),
  102. treeNodeId = params.treeNodeId,
  103. //grpChars = stringUtil.getPinYinFullChars(params.grpChars),
  104. rptDftTplId = params.rptDftTplId;
  105. let filter = {"ID": rptDftTplId};
  106. RptTplModel.findOne(filter, '-_id').exec().then(function(dftTplRst) {
  107. if (dftTplRst) {
  108. let _doc = dftTplRst["_doc"];
  109. _doc["ID"] = treeNodeId;
  110. _doc["GROUP_KEY"] = "";
  111. _doc["ID_KEY"] = "";
  112. let rptTpl = new RptTplModel(_doc);
  113. rptTpl.save(function (err, actTplRst) {
  114. if (err) {
  115. callback(req,res, "报表模板创建错误", "", null);
  116. } else {
  117. //TreeNodeModel.update();
  118. TreeNodeModel.update({ID: treeNodeId}, {"refId": treeNodeId}, function(err, rst){
  119. if (err) {
  120. callback(req,res, "报表模板创建错误", "", null);
  121. } else {
  122. callback(req,res, false, "", actTplRst);
  123. }
  124. });
  125. }
  126. });
  127. } else {
  128. callback(req, res, 'Create report template failed!', null);
  129. }
  130. })
  131. },
  132. getRefRptTpl: function (req, res) {
  133. let params = JSON.parse(req.body.params),
  134. rptTplId = params.rptTplId;
  135. let filter = {"ID": rptTplId};
  136. RptTplModel.findOne(filter, '-_id').exec().then(function(rstTpl) {
  137. if (rstTpl) {
  138. callback(req,res, false, "", rstTpl);
  139. } else {
  140. callback(req, res, 'The report template was not found!', null);
  141. }
  142. })
  143. }
  144. }