| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | /** * Created by jimiz on 2017/4/1. * 定额工料机 */var mongoose = require("mongoose");var db = require("../db/project_db");var Schema = mongoose.Schema;var counter = require("../../../public/counter/counter.js");var deleteSchema = require('../../../public/models/delete_schema');var consts = require('./project_consts');var projectGLJ = require('./project_glj');var projectConsts = consts.projectConst;var commonConsts = consts.commonConst;var GLJSchema = new Schema({    ID: Number,    GLJID: Number,    rGLJID: Number,    rationID: Number,    billsItemID: Number,    projectID: Number,    orgRQuantity: String, //Decimal    rQuantity: String, //Decimal    customQuantity: String, //Decimal    quantity: String, //Decimal    deleteInfo: deleteSchema    // to do});var GLJ = db.model("GLJ", GLJSchema, "GLJ");var GLJDAO = function(){};GLJDAO.prototype.getData = function(projectID, callback){    function combineGLJs(gljList){        var pGLJIndex = {};        projectGLJ.getData(projectID, function (err, message, datas) {            if (!err) {                for (var i = 0; i < datas.length; i++){                    var data = datas[i];                    pGLJIndex[data.ID] = data;                }                for (var j = 0; j < gljList.length; j++){                    var glj = gljList[j];                    var pGLJ = pGLJIndex[glj.ID];                    for (var p in data) {                        if (p != 'ID' && p != 'code' && p != 'name' && p != 'projectID' && p != 'deleteInfo') {                            pGLJ[p] = glj[p];                        }                    }                }                callback(0, projectConsts.GLJ, gljList);            }            else {                callback(2, 'can not get unitPriceFile gljList', null);            }        })    }    GLJ.find({'$or': [{projectID: projectID, deleteInfo: null}, {projectID: projectID, 'deleteInfo.deleted': {$in: [null, false]}}]}, '-_id', function(err, datas){        if (!err) {            combineGLJs(datas);        } else {            callback(1, '', null);        };    });};GLJDAO.prototype.save = function(datas, callback){    var functions = [];    var data;    function saveOne(data) {        return function (cb) {            switch (data.updateType) {                case commonConsts.UT_UPDATE:                    GLJ.update({ID: data.ID}, data, cb);                    break;                case commonConsts.UT_CREATE:                    GLJ.create(data, cb);                    break;                case commonConsts.UT_DELETE:                /* 假删除                 var item = new GLJ(doc);                 item.remove(cb);                 */            }        }    }    for (var i = 0; i < datas.length; i++){        data = datas[i];        functions.push(saveOne(data));    }    async.parallel(functions, callback);};GLJDAO.prototype.getItemTemplate = function(callback){    var data = new bills;    /* to do: 需要根据标准配置库填充fees和flags字段,是否需要更多的参数? */    callback(0, '', data);};GLJDAO.prototype.allocIDs = function(IDStep, callback){    counter.counterDAO.getIDAfterCount(counter.moduleName.GLJ, IDStep, function(err, highID){        var lowID = highID - IDStep + 1;        callback(0, '', {lowID: lowID, highID: highID});    });};module.exports = new GLJDAO();
 |