rpt_tpl_controller.js 7.3 KB

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