| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- module.exports = {
- getData: getData,
- updateItem:updateItem
- };
- let mongoose = require('mongoose');
- let divideModel = mongoose.model("divide_setting");
- let consts = require('../models/project_consts');
- let projectConsts = consts.projectConst;
- const uuidV1 = require('uuid/v1');
- async function updateItem(data){
- let ID = data.ID;
- let tasks= [];
- for(let u of data.updateDatas){
- if(u.type == 'add'){
- tasks.push({updateOne: {filter: {ID: ID}, update: {"$push":{divideList:u.doc} }}});
- }
- if(u.type == "update"){
- let ndoc = {};
- let pre = "divideList.$."
- for(let key in u.doc){
- ndoc[pre+key] = u.doc[key]
- }
- tasks.push({updateOne: {filter: {"ID": ID,"divideList.ID":u.ID}, update: ndoc}});
- }
- if(u.type == "delete"){
- tasks.push({updateOne: {filter: {ID: ID}, update: {"$pull":{divideList:{ID:u.ID}} }}});
- if(u.itemType == "定额"){
- await divideModel.update(
- {ID:ID},
- { $pull: {ration_gljs:{rationID:u.ID},ration_coes:{rationID:u.ID}}},
- { multi: true })
- }
- }
- }
- if(tasks.length > 0) await divideModel.bulkWrite(tasks);
- return data;
- }
- function getData(projectID, callback) {
- divideModel.findOne({projectID: projectID}, '-_id', async function (err, datas) {
- if (!err) {
- // 旧项目没有人工系数文件,默认给它生成一个。
- if (!datas) {
- datas = {
- ID: uuidV1(),
- projectID:projectID,
- divideList:[],
- ration_gljs:[],
- ration_coes:[],
- bills:[]
- }
- await divideModel.create(datas);
- callback(0, projectConsts.DIVIDE_SETTING, datas);
- } else {
- callback(0, projectConsts.DIVIDE_SETTING, datas);
- };
- } else {
- callback(1, projectConsts.DIVIDE_SETTING, null);
- };
- });
- }
|