project_controller.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. /**
  2. * Created by jimiz on 2017/4/16.
  3. */
  4. var Project = require('../models/project');
  5. let logger = require('../../../logs/log_helper').logger;
  6. let project_facade = require("../facade/project_facade");
  7. const redirectToImportServer = require('../../pm/controllers/pm_controller').redirectToImportServer;
  8. const multiparty = require("multiparty");
  9. const iconv = require('iconv-lite');
  10. //统一回调函数
  11. var callback = function(req, res, err, message, data){
  12. res.json({error: err, message: message, data: data});
  13. };
  14. module.exports = {
  15. save: function (req, res) {
  16. if(typeof req.body.data === 'object'){
  17. req.body.data = JSON.stringify(req.body.data);
  18. }
  19. var data = JSON.parse(req.body.data);
  20. Project.save(data, function (err, message, result) {
  21. if (err) {
  22. logger.err(err);
  23. callback(req, res, err, message, null);
  24. } else {
  25. callback(req, res, err, message, result);
  26. }
  27. });
  28. },
  29. getData: function (req, res) {
  30. //add
  31. console.log(`------------------------------------------`);
  32. console.log(`${req.session.sessionUser.real_name}--id:${req.session.sessionUser.id}--取getdata数据`);
  33. console.log(`------------------------------------------`);
  34. //add
  35. if(typeof req.body.data === 'object'){
  36. req.body.data = JSON.stringify(req.body.data);
  37. }
  38. var data = JSON.parse(req.body.data);
  39. // 注释代码用于测试getFilterData
  40. // Project.getFilterData(data.project_id, ['bills', 'projectGLJ'], function (err, result) {
  41. // console.log(result);
  42. // });
  43. Project.getData(data.project_id, function (err, message, result) {
  44. if (!err) {
  45. callback(req, res, err, message, result);
  46. } else {
  47. callback(req, res, err, message, null);
  48. }
  49. });
  50. },
  51. getDataForInterface: async function (req, res) {
  52. const data = JSON.parse(req.body.data);
  53. let result={
  54. error:0
  55. };
  56. try {
  57. result = await redirectToImportServer(data,"getDataForInterface",req);
  58. } catch (err) {
  59. console.log(err);
  60. result.error=1;
  61. result.message = err.message;
  62. }
  63. res.json(result);
  64. },
  65. markUpdateProject:async function (req,res) {
  66. let result={
  67. error:0
  68. }
  69. try {
  70. let data = req.body.data;
  71. data = JSON.parse(data);
  72. let resultData= await project_facade.markUpdateProject(data.updateInfo,data.type);
  73. result.data=resultData;
  74. }catch (err){
  75. logger.err(err);
  76. result.error=1;
  77. result.message = err.message;
  78. }
  79. res.json(result);
  80. },
  81. removeProjectMark:async function(req,res){
  82. let result={
  83. error:0
  84. }
  85. try {
  86. let data = req.body.data;
  87. data = JSON.parse(data);
  88. let resultData= await project_facade.removeProjectMark(data.projectID);
  89. result.data=resultData;
  90. }catch (err){
  91. logger.err(err);
  92. result.error=1;
  93. result.message = err.message;
  94. }
  95. res.json(result);
  96. },
  97. updateNodes:async function (req,res) {
  98. /* var data = JSON.parse(req.body.data);
  99. project_facade.updateNodes(data, function (err, message, result) {
  100. if (err) {
  101. logger.err(err);
  102. callback(req, res, err, message, null);
  103. } else {
  104. callback(req, res, err, message, result);
  105. }
  106. });*/
  107. let result={
  108. error:0
  109. }
  110. try {
  111. let data = req.body.data;
  112. if(typeof data === 'object'){
  113. data = JSON.stringify(data);
  114. }
  115. data = JSON.parse(data);
  116. let resultData= await project_facade.updateNodes(data);
  117. result.data=resultData;
  118. }catch (err){
  119. logger.err(err);
  120. result.error=1;
  121. result.message = err.message;
  122. }
  123. res.json(result);
  124. },
  125. calcInstallationFee:async function(req,res){
  126. let result={
  127. error:0
  128. }
  129. try {
  130. let data = JSON.parse(req.body.data);
  131. let resultData= await project_facade.calcInstallationFee(data);
  132. result.data=resultData;
  133. }catch (err){
  134. logger.err(err);
  135. result.error=1;
  136. result.message = err.message;
  137. }
  138. res.json(result);
  139. },
  140. async calcOverHeightFee (req, res) {
  141. try {
  142. const data = JSON.parse(req.body.data);
  143. const rst = await project_facade.calcOverHeightFee(data);
  144. res.json({ error: 0, data: rst, message: 'success' });
  145. } catch (err) {
  146. console.log(err);
  147. res.json({ error: 1, data: null, message: err.message });
  148. }
  149. },
  150. saveProperty: function(req, res){
  151. let result = {error: 0, message: '', data: null};
  152. let data = JSON.parse(req.body.data);
  153. project_facade.saveProperty(data, function (err, data) {
  154. if (err == ''){
  155. result.data = data;
  156. }else{
  157. result.error = 1;
  158. result.message = err;
  159. }
  160. res.json(result);
  161. })
  162. },
  163. getDefaultColSetting: async function(req, res){
  164. let data = JSON.parse(req.body.data);
  165. let result={
  166. error: 0,
  167. data: null
  168. };
  169. try{
  170. result.data = await project_facade.getDefaultColSetting(data.libID);
  171. }
  172. catch(err){
  173. logger.err(err);
  174. result.error=1;
  175. result.message = err.message;
  176. }
  177. res.json(result);
  178. },
  179. getSEIProjects:async function(req,res){
  180. let data = JSON.parse(req.body.data);
  181. let result={
  182. error: 0,
  183. data: null
  184. };
  185. try{
  186. result.data = await project_facade.getSEIProjects(data.projectID);
  187. }
  188. catch(err){
  189. logger.err(err);
  190. result.error=1;
  191. result.message = err.message;
  192. }
  193. res.json(result);
  194. },
  195. loadSEIProjectData:async function(req,res){
  196. const data = JSON.parse(req.body.data);
  197. let result={
  198. error:0
  199. };
  200. try {
  201. result = await redirectToImportServer(data,"loadSEIProjectData",req);
  202. } catch (err) {
  203. console.log(err);
  204. result.error=1;
  205. result.message = err.message;
  206. }
  207. res.json(result);
  208. },
  209. getDecodedStr: async function(req, res) {
  210. /* const data = JSON.parse(req.body.data);
  211. const unit8ArraySouces = data.unit8ArraySouces;
  212. try {
  213. } catch (err) {
  214. } */
  215. function toArrayBuffer(src) {
  216. var ab = new ArrayBuffer(src.length);
  217. var view = new Uint8Array(ab);
  218. for (var i = 0; i < src.length; ++i) {
  219. view[i] = +src[i];
  220. }
  221. return ab;
  222. }
  223. const responseData = {
  224. err: 0,
  225. msg: '',
  226. data: null
  227. };
  228. const form = new multiparty.Form();
  229. form.parse(req, async function(err, fields, files) {
  230. try{
  231. const unit8ArrayList = JSON.parse(fields.blobList[0]);
  232. unit8ArrayList.forEach(unit8ArrayNumbers => {
  233. const buffer = toArrayBuffer(unit8ArrayNumbers);
  234. const str = iconv.decode(Buffer.from(buffer), 'gbk');
  235. });
  236. }
  237. catch (error){
  238. responseData.err = 1;
  239. responseData.msg = typeof error === 'object' ? '文件名编码失败' : error;
  240. res.json(responseData);
  241. }
  242. });
  243. }
  244. };