rationItem.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /**
  2. * Created by Tony on 2017/4/28.
  3. */
  4. var mongoose = require("mongoose");
  5. var dbm = require("../../../config/db/db_manager");
  6. var db = dbm.getCfgConnection("rationRepository")
  7. var async = require("async");
  8. var Schema = mongoose.Schema;
  9. var rationItemSchema = mongoose.Schema({
  10. ID:Number,
  11. //以下是基于已有access库
  12. code: String,
  13. name: String,
  14. unit: String,
  15. basePrice: Number,
  16. sectionId: Number,
  17. caption: String,
  18. feeType: Number
  19. });
  20. var rationItemModel = db.model("rationItems",rationItemSchema, "rationItems")
  21. var counter = require('../../../public/counter/counter');
  22. var rationItemDAO = function(){};
  23. rationItemDAO.prototype.getRationItemsBySection = function(sectionId,callback){
  24. rationItemModel.find({"sectionId": sectionId, "$or": [{"isDeleted": null}, {"isDeleted": false} ]},function(err,data){
  25. if(err) callback(true, "获取定额错误!", "")
  26. else callback(false,"获取定额", data);
  27. })
  28. };
  29. rationItemDAO.prototype.mixUpdateRationItems = function(sectionId, updateItems, addItems, callback){
  30. var me = this;
  31. if (!(updateItems) || updateItems.length == 0) {
  32. me.addRationItems(sectionId, addItems, callback);
  33. } else {
  34. me.updateRationItems(sectionId, updateItems, function(err, results){
  35. if (err) {
  36. callback(true, "保存定额错误!", false);
  37. } else {
  38. if (addItems && addItems.length > 0) {
  39. me.addRationItems(sectionId, addItems, callback);
  40. } else {
  41. callback(false, "保存定额成功!", results);
  42. }
  43. }
  44. });
  45. }
  46. };
  47. rationItemDAO.prototype.getRationItemsByCode = function(code,callback){
  48. //
  49. };
  50. rationItemDAO.prototype.addRationItems = function(sectionId, items,callback){
  51. if (items && items.length > 0) {
  52. counter.counterDAO.getIDAfterCount(counter.moduleName.rations, items.length, function(err, result){
  53. var maxId = result.value.sequence_value;
  54. var arr = [];
  55. for (var i = 0; i < items.length; i++) {
  56. var obj = new rationItemModel(items[i]);
  57. obj.ID = (maxId - (items.length - 1) + i);
  58. obj.sectionId = sectionId;
  59. arr.push(obj);
  60. }
  61. rationItemModel.collection.insert(arr, null, function(err, docs){
  62. if (err) {
  63. callback(true, "保存定额错误!", false);
  64. } else {
  65. callback(false, "保存定额成功!", docs);
  66. }
  67. })
  68. });
  69. } else {
  70. callback(true, "定额数据源错误!", false);
  71. }
  72. };
  73. rationItemDAO.prototype.updateRationItems = function(sectionId, items,callback){
  74. var functions = [];
  75. for (var i=0; i < items.length; i++) {
  76. functions.push((function(doc) {
  77. return function(cb) {
  78. var filter = {};
  79. if (doc.ID) {
  80. filter.ID = doc.ID;
  81. } else {
  82. filter.sectionId = sectionId;
  83. filter.code = doc.code;
  84. }
  85. rationItemModel.update(filter, doc, cb);
  86. };
  87. })(items[i]));
  88. }
  89. async.parallel(functions, function(err, results) {
  90. callback(err, results);
  91. });
  92. };
  93. module.exports = new rationItemDAO()