gljController.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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. const stdRationModel = mongoose.model('std_ration_lib_ration_items');
  13. const cplRationModel = mongoose.model('complementary_ration_items');
  14. let gljDao = new GljDao();
  15. let callback = function(req, res, err, message, data){
  16. res.json({error: err, message: message, data: data});
  17. };
  18. class GljController extends BaseController{
  19. getGljDistType (req, res) {
  20. let gljDistTypeCache = stdgljutil.getStdGljTypeCacheObj().toArray();
  21. if(gljDistTypeCache.length >0 ){
  22. callback(req, res, null, '', gljDistTypeCache);
  23. }
  24. else {
  25. callback(req, res, 1, 'Error', null);
  26. }
  27. }
  28. getGljTree(req,res){
  29. let data = JSON.parse(req.body.data);
  30. gljDao.getGljTypes(data.gljLibId, function(err,data){
  31. callback(req,res,err, 'Get Tree', data)
  32. });
  33. }
  34. updateRationBasePrc(req, res){
  35. let basePrcArr = JSON.parse(req.body.basePrcArr);
  36. rationItemDao.updateRationBasePrc(basePrcArr, function (err, message) {
  37. if(err){
  38. callback(req, res, err, message, null);
  39. }
  40. else{
  41. callback(req, res, err, message, null);
  42. }
  43. });
  44. }
  45. getRationGljIds(req, res){
  46. let rationLibs = req.body.rationLibs;
  47. gljDao.getRationGljIds(rationLibs, function (err, msg, data) {
  48. callback(req, res, err, msg, data);
  49. })
  50. }
  51. createNewGljTypeNode(req, res) {
  52. let repId = req.body.repositoryId;
  53. let lastNodeId = req.body.lastNodeId;
  54. let lastOpr = req.body.lastOpr;
  55. let nodeData = JSON.parse(req.body.rawNodeData);
  56. gljDao.createNewNode(repId, lastOpr, lastNodeId, nodeData, function(err, msg, data){
  57. callback(req,res,err,msg, data)
  58. });
  59. }
  60. updateGljNodes(req, res) {
  61. let nodes = JSON.parse(req.body.nodes);
  62. let repId = req.body.repId,
  63. lastOpr = req.body.lastOpr;
  64. gljDao.updateNodes(repId, lastOpr, nodes, function(err,results){
  65. callback(req,res, err, results)
  66. });
  67. }
  68. deleteGljNodes(req, res) {
  69. let nodes = JSON.parse(req.body.nodes);
  70. let preNodeId = req.body.preNodeId;
  71. let preNodeNextId = req.body.preNodeNextId;
  72. let repId = req.body.repId, lastOpr = req.body.lastOpr;
  73. gljDao.removeNodes(repId, lastOpr, nodes, preNodeId, preNodeNextId, function(err,results){
  74. callback(req,res, err, results)
  75. });
  76. }
  77. updateNodes(req, res){
  78. let data = JSON.parse(req.body.data);
  79. gljDao.updateNodes(data.updateData, data.lastOpr, function (err, data) {
  80. callback(req, res, err, '', data);
  81. });
  82. }
  83. getGljItems(req, res) {
  84. let repId = req.body.repositoryId,
  85. gljType = req.body.type,
  86. gljCode = req.body.code;
  87. if (gljCode) {
  88. gljDao.getGljItem(repId, gljCode, function(err, data){
  89. callback(req,res,err,'Get Items', data)
  90. });
  91. } else if (gljType) {
  92. gljDao.getGljItemByType(repId, gljType, function(err, data){
  93. callback(req,res,err,'Get Types', data)
  94. });
  95. } else {
  96. gljDao.getGljItemsByRep(repId, function(err, data){
  97. callback(req,res,err,'Get Items',data)
  98. });
  99. }
  100. }
  101. getGljItemsByIds(req, res) {
  102. let gljIds = JSON.parse(req.body.gljIds);
  103. gljDao.getGljItems(gljIds, function(err, data){
  104. callback(req,res,err,'Get Items',data)
  105. });
  106. }
  107. getGljItemsByCodes(req, res) {
  108. let gljCodes = JSON.parse(req.body.gljCodes),
  109. repId = req.body.repId;
  110. gljDao.getGljItemsByCode(repId, gljCodes, function(err, data){
  111. callback(req,res,err,'Get Items',data)
  112. });
  113. }
  114. updateComponent(req, res){
  115. let libId = req.body.libId,
  116. updateArr = req.body.updateArr,
  117. oprtor = req.body.oprtor;
  118. gljDao.updateComponent(libId, oprtor, updateArr, function (err, message, rst) {
  119. callback(req, res, err, message, rst);
  120. })
  121. }
  122. async batchUpdateComponent(req, res){
  123. const form = new multiparty.Form();
  124. form.parse(req, async function(err, fields, files) {
  125. try{
  126. let compressData = fields.compressData !== undefined && fields.compressData.length > 0 ? fields.compressData[0] : null;
  127. if(!compressData){
  128. throw '数据错误';
  129. }
  130. let updateDatas = JSON.parse(LZString.decompressFromUTF16(compressData));
  131. let bulkArr = [];
  132. for(let uData of updateDatas){
  133. bulkArr.push({updateOne: {filter: {ID: uData.ID}, update: {$set: {component: uData.component, basePrice: uData.basePrice}}}});
  134. }
  135. if(bulkArr.length > 0){
  136. await gljModel.bulkWrite(bulkArr);
  137. }
  138. res.json({err: 0, data: null, msg: 'success'});
  139. }
  140. catch (err){
  141. res.json({err: 1, data: null, msg: err});
  142. }
  143. });
  144. }
  145. mixUpdateGljItems(req, res){
  146. let repId = req.body.repositoryId,
  147. updateItems = JSON.parse(req.body.updateItems),
  148. addItems = JSON.parse(req.body.addItems),
  149. removeIds = JSON.parse(req.body.removeIds),
  150. lastOpr = req.body.lastOpr;
  151. gljDao.mixUpdateGljItems(repId, lastOpr, updateItems, addItems, removeIds, function(err, message, rst){
  152. if (err) {
  153. callback(req, res, err, message, null);
  154. } else {
  155. callback(req, res, err, message, rst);
  156. }
  157. });
  158. }
  159. getGljItemsOccupied(req, res){
  160. let repId = req.body.repId,
  161. occupation = req.body.occupation;
  162. gljDao.getGljItemsOccupied(repId, occupation, function (err, message, rst) {
  163. callback(req, res, err, message, rst);
  164. })
  165. }
  166. async isUsed(req, res){
  167. try{
  168. let data = JSON.parse(req.body.data);
  169. let gljIds = data.gljIds;
  170. let stdRation = await stdRationModel.findOne({isDeleted: false, 'rationGljList.gljId': {$in: gljIds}});
  171. if(stdRation){
  172. res.json({error: 0, message: 'success', data: {isUsed: true}});
  173. }
  174. else {
  175. let cplRation = await cplRationModel.findOne({$or: [{deleteInfo: null}, {'deleteInfo.deleted': false}], 'rationGljList.gljId': {$in: gljIds}});
  176. if(cplRation){
  177. res.json({error: 0, message: 'success', data: {isUsed: true}});
  178. }
  179. else {
  180. res.json({error: 0, message: 'success', data: {isUsed: false}});
  181. }
  182. }
  183. }
  184. catch (error){
  185. res.json({error: 1, message: error, data: null});
  186. }
  187. }
  188. }
  189. export default GljController;