12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 'use strict';
- /**
- *
- *
- * @author Zhong
- * @date 2018/10/25
- * @version
- */
- module.exports = {
- getInstallation,
- updateFeeItem,
- updateSection,
- batchUpdateInst,
- };
- const mongoose = require("mongoose");
- const counter = require('../../../public/counter/counter');
- const async = require('async');
- const deleteQuery = [{deleteInfo: null}, {'deleteInfo.deleted': false}];
- const complefeeItemModel = mongoose.model('complementary_ration_installation');
- const compleSectionModel = mongoose.model('complementary_ration_installationSection');
- const compleRationModel = mongoose.model('complementary_ration_items');
- async function getInstallation(userId, compilationId){
- let feeItems = await complefeeItemModel.find({userId: userId, compilationId: compilationId, $or: deleteQuery});
- for (let feeItem of feeItems) {
- let sids = [];
- for (let sec of feeItem.section) {
- sids.push(sec.ID);
- }
- if (sids.length > 0) {
- let sections = await compleSectionModel.find({ID: {$in: sids}, $or: deleteQuery});
- feeItem._doc.section = sections;
- }
- }
- return feeItems;
- }
- //更新费用项
- async function updateFeeItem(userId, compilationId, updateData){
- for (let data of updateData) {
- if (data.updateType === 'new') {
- data.updateData.userId = userId;
- data.updateData.compilationId = compilationId;
- await complefeeItemModel.create(data.updateData);
- } else if (data.updateType === 'update' && !data.updateData.deleted) {
- await complefeeItemModel.update({ID: data.updateData.ID}, data.updateData);
- } else {
- let deleteInfo = {
- deleted: true,
- deleteDateTime: new Date(),
- deleteBy: userId
- };
- data.updateData.deleteInfo = deleteInfo;
- delete data.updateData.deleted;
- await complefeeItemModel.remove({ID: data.updateData.ID});
- }
- }
- }
- //更新分册章节
- async function updateSection(userId, compilationId, updateData){
- for (let data of updateData) {
- if (data.updateType === 'new') {
- data.updateData.userId = userId;
- data.updateData.compilationId = compilationId;
- await compleSectionModel.create(data.updateData);
- } else if (data.updateType === 'update' && !data.updateData.deleted) {
- await compleSectionModel.update({ID: data.updateData.ID}, data.updateData);
- } else {
- let deleteInfo = {
- deleted: true,
- deleteDateTime: new Date(),
- deleteBy: userId
- };
- data.updateData.deleteInfo = deleteInfo;
- delete data.updateData.deleted;
- await compleSectionModel.remove({ID: data.updateData.ID});
- }
- }
- }
- //批量关联至定额(选择某一章节)
- async function batchUpdateInst(rationSection, inst){
- for (let sectionId of rationSection) {
- await compleRationModel.update({sectionId: sectionId, $or: deleteQuery},
- {$addToSet: {rationInstList: {feeItemId: inst.feeItemId, sectionId: inst.sectionId}}}, {multi: true});
- }
- }
|