/** * Created by CSL on 2017/5/3. * 系数表。 */ var mongoose = require("mongoose"); var dbm = require("../../../config/db/db_manager"); var db = dbm.getCfgConnection("rationRepository"); var counter = require('../../../public/counter/counter'); var coeSchema = mongoose.Schema({ coeType: String, // 系数类型,指作用范围: // 单个(如:111量0.001)、人工类、材料类、机械类、全部(如:定额×0.925)。 gljID: Number, // 要调整的工料机ID(当coeType=0时有效) operator: String, // 运算符(*、+、-、=) amount: String, // 调整的量 _id: false }); var coeListSchema = mongoose.Schema({ libID: Number, // 所属定额定ID ID: Number, // 系数ID(流水号ID) name: String, // 名称 content: String, // 说明 coes: [coeSchema] }); var coeListModel = db.model("coeLists",coeListSchema, "coeLists") var coeListDAO = function(){}; coeListDAO.prototype.getCoe = function (data, callback) { coeListModel.findOne({ "libID": data.libID, "ID": data.ID, "$or": [{"isDeleted": null}, {"isDeleted": false}] }, function (err, doc) { if (err) callback(true, "获取系数明细错误!", "") else callback(false, "获取系数明细成功", doc); }) }; coeListDAO.prototype.getCoesByLibID = function (libID, callback) { coeListModel.find({ "libID": libID }, function (err, doc) { if (err) callback("获取定额库系数表错误", null) else callback(null, doc); }) }; coeListDAO.prototype.saveToCoeList = function(data, callback) { var me = this; console.log(data); if (data.addArr.length > 0) { me.addItems(data.addArr, callback); }; //if (data.deleteArr.length > 0) { // me.deleteItems(data.deleteArr, callback); //}; if (data.updateArr.length > 0) { me.updateItems(data.updateArr, callback); }; }; coeListDAO.prototype.addItems = function(addArr, callback) { if (addArr && addArr.length > 0) { counter.counterDAO.getIDAfterCount(counter.moduleName.coeList, addArr.length, function(err, result){ var maxId = result.value.sequence_value; for (var i = 0; i < addArr.length; i++) { var obj = new coeListModel(addArr[i]); obj.ID = (maxId - (addArr.length - 1) + i); coeListModel.create(obj, function(err) { if (err) { callback(true, err); } else { callback(false, null); }; }); }; }); } else { callback(true, "No source"); }; }; coeListDAO.prototype.updateItems = function(updateArr, callback) { if (updateArr && updateArr.length > 0) { for (var i = 0; i < updateArr.length; i++) { var obj = updateArr[i]; coeListModel.update({"libID": obj.libID, "ID": obj.ID}, updateArr[i], function(err) { if (err) { callback(true, "update Fail"); } else { callback(false, "update success"); }; }); }; } else { callback(true, "No source"); }; }; module.exports = new coeListDAO();