| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | /** * Created by jimiz on 2017/5/10. * 单价文件的GLJ列表,注意与项目GLJ区分 */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/project_consts');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,    adjustPrice: String,    rationPrice: String,    price: String, //Decimal    deleteInfo: deleteSchema});var GLJList = db.model("GLJList", GLJListSchema, "GLJList");var GLJListDAO = function(){};GLJListDAO.prototype.getData = function(fileID, callback){    var me = this;    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();
 |