| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | /** * Created by jimiz on 2017/5/10. */var mongoose = require("mongoose");var db = require("../db/unit_price_file_db");var Schema = mongoose.Schema;var deleteSchema = require('../../../public/models/delete_schema');var counter = require("../../../public/counter/counter.js");var consts = require('../../main/models/projectConsts');var projectConsts = consts.projectConst;var commonConsts = consts.commonConst;var GLJListSchema = new Schema({    ID: Number,    fileID: Number,    code: String,    name: String,    specs: String,    unit: String,    type: Number,    price: String, //Decimal    deleteInfo: deleteSchema});var GLJList = db.model("GLJList", rationSchema, "GLJList");var GLJListDAO = function(){};GLJListDAO.prototype.getData = function(fileID, callback){    GLJList.find({'$or': [{fileID: fileID, deleteInfo: null}, {fileID: fileID, 'deleteInfo.deleted': {$in: [null, false]}}]}, '-_id', function(err, datas){        if (!err) {            callback(0, projectConsts.GLJLIST, datas);        } else {            callback(1, '', null);        }    });};// 单价文件中的工料机不在这里新增,只能由add方法新增,删除需要在前端projectGLJ判断:1、是新工料机;2、没有定额引用,才可以删除GLJListDAO.prototype.save = function(fileId, datas, callback){    var functions = [];    var data;    // cb中返回doc,以便进行同步    function saveOne(doc) {        return function (cb) {            function updateCallback(err, data){                cb(err, doc);            }            switch (doc.updateType) {                case commonConsts.UT_UPDATE:                    ration.update({ID: doc.ID}, doc, updateCallback);                    break;                case commonConsts.UT_DELETE:                /* 假删除                 var item = new ration(doc);                 item.remove(cb);                 */            }        }    }    for (var i = 0; i < datas.length; i++){        data = datas[i];        functions.push(saveOne(data));    }    async.parallel(functions, callback);};GLJListDAO.prototype.add = function(fileID, count, callback){    function newCallback(err, lowID, highID){        if (!err) {            var datas = [];            for (var i = lowID; i <= highID; i++){                var GLJ = new GLJList;                GLJ.ID = i;                GLJ.fileID = fileID;                datas.push(GLJ);            }            callback(err, datas);        }        else{            callback(err, null);        }    }    counter.counterDAO.getIDAfterCount(COUNTER_MODULE_NAME.unitPriceGLJ, IDStep, function(err, highID){        var lowID = highID - IDStep + 1;        newCallback(err, lowID, highID);    });};module.exports = new GLJListDAO();
 |