gljController.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. /**
  2. * Created by Zhong on 2017/8/11.
  3. */
  4. import mongoose from 'mongoose';
  5. import BaseController from "../../common/base/base_controller";
  6. import stdgljutil from "../../../public/cache/std_glj_type_util";
  7. import GljDao from "../models/gljModel";
  8. import rationItemDao from "../../ration_repository/models/ration_item";
  9. const multiparty = require("multiparty");
  10. const LZString = require('lz-string');
  11. const gljModel = mongoose.model('std_glj_lib_gljList');
  12. let gljDao = new GljDao();
  13. let callback = function(req, res, err, message, data){
  14. res.json({error: err, message: message, data: data});
  15. };
  16. class GljController extends BaseController{
  17. getGljDistType (req, res) {
  18. let gljDistTypeCache = stdgljutil.getStdGljTypeCacheObj().toArray();
  19. if(gljDistTypeCache.length >0 ){
  20. callback(req, res, null, '', gljDistTypeCache);
  21. }
  22. else {
  23. callback(req, res, 1, 'Error', null);
  24. }
  25. }
  26. getGljTree(req,res){
  27. let data = JSON.parse(req.body.data);
  28. gljDao.getGljTypes(data.gljLibId, function(err,data){
  29. callback(req,res,err, 'Get Tree', data)
  30. });
  31. }
  32. updateRationBasePrc(req, res){
  33. let basePrcArr = JSON.parse(req.body.basePrcArr);
  34. rationItemDao.updateRationBasePrc(basePrcArr, function (err, message) {
  35. if(err){
  36. callback(req, res, err, message, null);
  37. }
  38. else{
  39. callback(req, res, err, message, null);
  40. }
  41. });
  42. }
  43. getRationGljIds(req, res){
  44. let rationLibs = req.body.rationLibs;
  45. gljDao.getRationGljIds(rationLibs, function (err, msg, data) {
  46. callback(req, res, err, msg, data);
  47. })
  48. }
  49. createNewGljTypeNode(req, res) {
  50. let repId = req.body.repositoryId;
  51. let lastNodeId = req.body.lastNodeId;
  52. let lastOpr = req.body.lastOpr;
  53. let nodeData = JSON.parse(req.body.rawNodeData);
  54. gljDao.createNewNode(repId, lastOpr, lastNodeId, nodeData, function(err, msg, data){
  55. callback(req,res,err,msg, data)
  56. });
  57. }
  58. updateGljNodes(req, res) {
  59. let nodes = JSON.parse(req.body.nodes);
  60. let repId = req.body.repId,
  61. lastOpr = req.body.lastOpr;
  62. gljDao.updateNodes(repId, lastOpr, nodes, function(err,results){
  63. callback(req,res, err, results)
  64. });
  65. }
  66. deleteGljNodes(req, res) {
  67. let nodes = JSON.parse(req.body.nodes);
  68. let preNodeId = req.body.preNodeId;
  69. let preNodeNextId = req.body.preNodeNextId;
  70. let repId = req.body.repId, lastOpr = req.body.lastOpr;
  71. gljDao.removeNodes(repId, lastOpr, nodes, preNodeId, preNodeNextId, function(err,results){
  72. callback(req,res, err, results)
  73. });
  74. }
  75. updateNodes(req, res){
  76. let data = JSON.parse(req.body.data);
  77. gljDao.updateNodes(data.updateData, data.lastOpr, function (err, data) {
  78. callback(req, res, err, '', data);
  79. });
  80. }
  81. getGljItems(req, res) {
  82. let repId = req.body.repositoryId,
  83. gljType = req.body.type,
  84. gljCode = req.body.code;
  85. if (gljCode) {
  86. gljDao.getGljItem(repId, gljCode, function(err, data){
  87. callback(req,res,err,'Get Items', data)
  88. });
  89. } else if (gljType) {
  90. gljDao.getGljItemByType(repId, gljType, function(err, data){
  91. callback(req,res,err,'Get Types', data)
  92. });
  93. } else {
  94. gljDao.getGljItemsByRep(repId, function(err, data){
  95. callback(req,res,err,'Get Items',data)
  96. });
  97. }
  98. }
  99. getGljItemsByIds(req, res) {
  100. let gljIds = JSON.parse(req.body.gljIds);
  101. gljDao.getGljItems(gljIds, function(err, data){
  102. callback(req,res,err,'Get Items',data)
  103. });
  104. }
  105. getGljItemsByCodes(req, res) {
  106. let gljCodes = JSON.parse(req.body.gljCodes),
  107. repId = req.body.repId;
  108. gljDao.getGljItemsByCode(repId, gljCodes, function(err, data){
  109. callback(req,res,err,'Get Items',data)
  110. });
  111. }
  112. updateComponent(req, res){
  113. let libId = req.body.libId,
  114. updateArr = req.body.updateArr,
  115. oprtor = req.body.oprtor;
  116. gljDao.updateComponent(libId, oprtor, updateArr, function (err, message, rst) {
  117. callback(req, res, err, message, rst);
  118. })
  119. }
  120. async batchUpdateComponent(req, res){
  121. const form = new multiparty.Form();
  122. form.parse(req, async function(err, fields, files) {
  123. try{
  124. let compressData = fields.compressData !== undefined && fields.compressData.length > 0 ? fields.compressData[0] : null;
  125. if(!compressData){
  126. throw '数据错误';
  127. }
  128. let updateDatas = JSON.parse(LZString.decompressFromUTF16(compressData));
  129. let bulkArr = [];
  130. for(let uData of updateDatas){
  131. bulkArr.push({updateOne: {filter: {ID: uData.ID}, update: {$set: {component: uData.component, basePrice: uData.basePrice}}}});
  132. }
  133. if(bulkArr.length > 0){
  134. await gljModel.bulkWrite(bulkArr);
  135. }
  136. res.json({err: 0, data: null, msg: 'success'});
  137. }
  138. catch (err){
  139. res.json({err: 1, data: null, msg: err});
  140. }
  141. });
  142. }
  143. mixUpdateGljItems(req, res){
  144. let repId = req.body.repositoryId,
  145. updateItems = JSON.parse(req.body.updateItems),
  146. addItems = JSON.parse(req.body.addItems),
  147. removeIds = JSON.parse(req.body.removeIds),
  148. lastOpr = req.body.lastOpr;
  149. gljDao.mixUpdateGljItems(repId, lastOpr, updateItems, addItems, removeIds, function(err, message, rst){
  150. if (err) {
  151. callback(req, res, err, message, null);
  152. } else {
  153. callback(req, res, err, message, rst);
  154. }
  155. });
  156. }
  157. getGljItemsOccupied(req, res){
  158. let repId = req.body.repId,
  159. occupation = req.body.occupation;
  160. gljDao.getGljItemsOccupied(repId, occupation, function (err, message, rst) {
  161. callback(req, res, err, message, rst);
  162. })
  163. }
  164. }
  165. export default GljController;