gljController.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. /**
  2. * Created by Zhong on 2017/8/22.
  3. */
  4. const BaseController = require("../../common/base/base_controller");
  5. const stdgljutil = require("../../../public/cache/std_glj_type_util");
  6. const GljDao = require("../models/gljModel");
  7. const EngineeringLibModel = require("../../users/models/engineering_lib_model");
  8. let config = require("../../../config/config.js");
  9. let gljDao = new GljDao();
  10. let callback = function(req, res, err, message, data){
  11. res.json({error: err, message: message, data: data});
  12. };
  13. class GljController extends BaseController{
  14. async redirectGlj(req, res){
  15. let gljLibId = null, engineeringId, sessionCompilation = req.session.sessionCompilation,
  16. rationValuation = sessionCompilation.ration_valuation,
  17. billValuation = sessionCompilation.bill_valuation,
  18. engineeringLibModel = new EngineeringLibModel(),
  19. valuationIDs = [] ;
  20. for(let r of rationValuation){//{ "glj_lib.0": {$exists:1} }
  21. if(r.id){
  22. valuationIDs.push(r.id);
  23. }
  24. }
  25. for(let b of billValuation){
  26. if(b.id){
  27. valuationIDs.push(b.id);
  28. }
  29. }
  30. if(valuationIDs.length > 0){
  31. let engineeringInfo = await engineeringLibModel.findDataByCondition({'valuationID': {"$in": valuationIDs},"glj_lib.0": {$exists:1}});//数组大于0
  32. gljLibId = engineeringInfo.glj_lib.length > 0 && typeof engineeringInfo.glj_lib !== 'undefined' ? engineeringInfo.glj_lib[0].id : null;
  33. }
  34. let overWriteUrl = req.session.sessionCompilation && req.session.sessionCompilation.overWriteUrl &&
  35. req.session.sessionCompilation._id !== '5b4d581023a924000b760f2d' ? req.session.sessionCompilation.overWriteUrl : null;
  36. const priceProperties = sessionCompilation.priceProperties || [];
  37. const consumeAmtProperties = sessionCompilation.consumeAmtProperties || [];
  38. res.render('building_saas/complementary_glj_lib/html/tools-gongliaoji.html',{
  39. userID: req.session.sessionUser.id,
  40. gljLibId: gljLibId,
  41. compilationId: sessionCompilation._id,
  42. compilationName: sessionCompilation.name,
  43. priceProperties: JSON.stringify(priceProperties),
  44. consumeAmtProperties: JSON.stringify(consumeAmtProperties),
  45. versionName: req.session.compilationVersion,
  46. LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
  47. overWriteUrl: overWriteUrl,
  48. });
  49. }
  50. getGljDistType (req, res) {
  51. let gljDistTypeCache = stdgljutil.getStdGljTypeCacheObj().toArray();
  52. if(gljDistTypeCache.length >0 ){
  53. callback(req, res, 0, '', gljDistTypeCache);
  54. }
  55. else {
  56. callback(req, res, 1, 'Error', null);
  57. }
  58. }
  59. getGljTree(req,res){
  60. let data = JSON.parse(req.body.data);
  61. let gljLibId = data.gljLibId;
  62. gljDao.getGljTypes(gljLibId,function(err,data){
  63. callback(req,res,err, 'Get Tree', data)
  64. });
  65. }
  66. //获取标准分类树和补充分类树
  67. async getMixedTree(req, res){
  68. try {
  69. let data = JSON.parse(req.body.data);
  70. let treeData = await gljDao.getMixedTree(data.gljLibId, req.session.sessionUser.id, req.session.sessionCompilation._id);
  71. callback(req, res, 0, 'success', treeData);
  72. } catch (err) {
  73. console.log(err);
  74. callback(req, res, 1, err, null);
  75. }
  76. }
  77. createNewGljTypeNode(req, res) {
  78. let repId = req.body.repositoryId;
  79. let lastNodeId = req.body.lastNodeId;
  80. let lastOpr = req.body.lastOpr;
  81. let nodeData = JSON.parse(req.body.rawNodeData);
  82. gljDao.createNewNode(repId, lastOpr, lastNodeId, nodeData, function(err, msg, data){
  83. callback(req,res,err,msg, data)
  84. });
  85. }
  86. updateGljNodes(req, res) {
  87. let nodes = JSON.parse(req.body.nodes);
  88. let repId = req.body.repId,
  89. lastOpr = req.body.lastOpr;
  90. gljDao.updateNodes(repId, lastOpr, nodes, function(err,results){
  91. callback(req,res, err, results)
  92. });
  93. }
  94. deleteGljNodes(req, res) {
  95. let nodes = JSON.parse(req.body.nodes);
  96. let preNodeId = req.body.preNodeId;
  97. let preNodeNextId = req.body.preNodeNextId;
  98. let repId = req.body.repId, lastOpr = req.body.lastOpr;
  99. gljDao.removeNodes(repId, lastOpr, nodes, preNodeId, preNodeNextId, function(err,results){
  100. callback(req,res, err, results)
  101. });
  102. }
  103. getGljItems(req, res) {
  104. let data = JSON.parse(req.body.data);
  105. let stdGljLibId = data.stdGljLibId;
  106. let projection = data.projection;
  107. gljDao.getGljItems(stdGljLibId, req.session.sessionUser.id, req.session.sessionCompilation._id, projection, function(err, data){
  108. callback(req,res,err,'Get Items',data)
  109. });
  110. }
  111. getStdItems(req, res) {
  112. let data = JSON.parse(req.body.data),
  113. stdGljLibId = data.stdGljLibId,
  114. projection = data.projection;
  115. gljDao.getStdItems(stdGljLibId, projection, function (err, data) {
  116. callback(req, res, err, '获取人材机数据失败', data);
  117. });
  118. }
  119. updateComponent(req, res){
  120. let userId = req.body.userId;
  121. let updateArr = JSON.parse(req.body.updateArr);
  122. gljDao.updateComponent(userId, updateArr, function (err, message, rst) {
  123. callback(req, res, err, message, rst);
  124. })
  125. }
  126. mixUpdateGljItems(req, res){
  127. let user_id = req.session.sessionUser.id,
  128. compilation_id = req.session.sessionCompilation._id;
  129. let data = JSON.parse(req.body.data);
  130. let updateItems = data.updateItems,
  131. addItems = data.addItems,
  132. removeIds = data.removeIds;
  133. gljDao.mixUpdateGljItems(user_id, compilation_id, updateItems, addItems, removeIds, function(err, message, rst){
  134. if (err) {
  135. callback(req, res, err, message, null);
  136. } else {
  137. callback(req, res, 0, message, rst);
  138. }
  139. });
  140. }
  141. }
  142. module.exports = GljController;