| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- 'use strict';
 
- /**
 
-  *
 
-  *
 
-  * @author Zhong
 
-  * @date 2018/10/25
 
-  * @version
 
-  */
 
- module.exports = {
 
-     getComplementaryCoes,
 
-     getCoeItemsByIDs,
 
-     getCoeItemsByNos,
 
-     saveToCoeList,
 
- };
 
- const mongoose = require("mongoose");
 
- const counter = require('../../../public/counter/counter');
 
- const compleCoeModel = mongoose.model('complementary_ration_coe_list');
 
- const async = require('async');
 
- const deleteQuery = [{deleteInfo: null}, {'deleteInfo.deleted': false}];
 
- //获取用户总的补充子目换算
 
- async function getComplementaryCoes(userId, compilationId) {
 
-     let coeData =  await compleCoeModel.find({userId: userId, compilationId: compilationId, $or: deleteQuery});
 
-     return coeData;
 
- }
 
- //补充子目换算增删改
 
- async function saveToCoeList(userId, compilationId, data, callback) {
 
-     let bulks = [],
 
-         newDatas = [];
 
-     if (data.addArr && data.addArr.length > 0) {
 
-         let insertOprs = await getInsertBulk(userId, compilationId, data.addArr);
 
-         bulks = bulks.concat(insertOprs.insertBulk);
 
-         newDatas = insertOprs.newDatas;
 
-     }
 
-     if (data.updateArr && data.updateArr.length > 0) {
 
-         bulks = bulks.concat(getUpdateBulk(data.updateArr));
 
-     }
 
-     if (data.deleteArr && data.deleteArr.length > 0) {
 
-         let deleteObj = {
 
-             deleted: true,
 
-             deleteDateTime: new Date(),
 
-             deleteBy: userId
 
-         };
 
-         for (let delData of data.deleteArr) {
 
-             delData.deleteInfo = deleteObj
 
-         }
 
-         bulks = bulks.concat(getUpdateBulk(data.deleteArr));
 
-     }
 
-     if (bulks.length > 0) {
 
-         await compleCoeModel.bulkWrite(bulks);
 
-     }
 
-     return newDatas;
 
- }
 
- async function getInsertBulk(userId, compilationId, addArr) {
 
-     let insertBulk = [],
 
-         newDatas = [];
 
-     let counterResult = await counter.counterDAO.getIDAfterCountSync(counter.moduleName.complementaryCoeList, addArr.length);
 
-     let maxId = counterResult.sequence_value;
 
-     for (let insertData of addArr) {
 
-         insertData.userId = userId;
 
-         insertData.compilationId = compilationId;
 
-         insertData.ID = (maxId - (addArr.length - 1) + addArr.indexOf(insertData));
 
-         insertData.coes = [];
 
-         newDatas.push(insertData);
 
-         insertBulk.push({insertOne: {document: insertData}});
 
-     }
 
-     return {insertBulk, newDatas};
 
- }
 
- function getUpdateBulk(updateArr) {
 
-     let updateBulk = [],
 
-         updateFields = ['name', 'content', 'coes', 'deleteInfo'];
 
-     for (let updateData of updateArr) {
 
-         let needSet = {};
 
-         for (let attr in updateData){
 
-             if (updateFields.includes(attr)){
 
-                 needSet[attr] = updateData[attr];
 
-             }
 
-         }
 
-         updateBulk.push({updateOne:{filter: {ID: updateData.ID}, update: {$set: needSet}}});
 
-     }
 
-     return updateBulk;
 
- }
 
- //根据序号获取子目换算,插入子目换算时用
 
- async function getCoeItemsByNos(userId, compilationId, serialNos) {
 
-     return await compleCoeModel.find({userId: userId, compilationId: compilationId, serialNo: {$in: serialNos}}, '-_id ID serialNo name content');
 
- }
 
- //根据ID获取子目换算,获取定额子目换算用
 
- async function getCoeItemsByIDs(coeIds) {
 
-     return await compleCoeModel.find({ID: {$in: coeIds}}, '-_id ID serialNo name content');
 
- }
 
 
  |