rpt_tpl_controller.js 6.3 KB

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