coe.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /**
  2. * Created by CSL on 2017/5/3.
  3. * 系数表。
  4. */
  5. let counter = require('../../../public/counter/counter');
  6. import {coeListModel} from './schemas';
  7. var coeListDAO = function(){};
  8. coeListDAO.prototype.getCoe = function (data, callback) {
  9. coeListModel.findOne({
  10. "libID": data.libID,
  11. "ID": data.ID,
  12. "$or": [{"isDeleted": null}, {"isDeleted": false}]
  13. },
  14. function (err, doc) {
  15. if (err) callback("获取系数明细错误!", null)
  16. else callback(null, doc);
  17. })
  18. };
  19. coeListDAO.prototype.getCoeItemsByIDs = function (data, callback) {
  20. coeListModel.find({
  21. "libID": data.libID,
  22. "ID": {"$in":data.coeIDs}
  23. }, ["libID","ID","name","content","-_id"],
  24. function (err, doc) {
  25. if (err) callback("批量获取系数明细错误!", null)
  26. else callback(null, doc);
  27. })
  28. };
  29. coeListDAO.prototype.getCoesByLibID = function (libID, callback) {
  30. coeListModel.find({ "libID": libID },
  31. function (err, doc) {
  32. if (err) callback("获取定额库系数表错误", null)
  33. else callback(null, doc);
  34. })
  35. };
  36. coeListDAO.prototype.saveToCoeList = function(data, callback) {
  37. var me = this;
  38. if (data.addArr.length > 0) {
  39. me.addItems(data.addArr, callback);
  40. };
  41. if (data.deleteArr.length > 0) {
  42. me.deleteItems(data.deleteArr, callback);
  43. };
  44. if (data.updateArr.length > 0) {
  45. me.updateItems(data.updateArr, callback);
  46. };
  47. };
  48. coeListDAO.prototype.addItems = function(addArr, callback) {
  49. if (addArr && addArr.length > 0) {
  50. counter.counterDAO.getIDAfterCount(counter.moduleName.coeList, addArr.length, function(err, result){
  51. var maxId = result.value.sequence_value;
  52. for (var i = 0; i < addArr.length; i++) {
  53. var obj = new coeListModel(addArr[i]);
  54. obj.ID = (maxId - (addArr.length - 1) + i);
  55. coeListModel.create(obj, function(err) {
  56. if (err) {
  57. callback(true, "add fail", null);
  58. } else {
  59. callback(false, "add success", obj.ID);
  60. };
  61. });
  62. };
  63. });
  64. } else {
  65. callback(true, "no source", null);
  66. };
  67. };
  68. coeListDAO.prototype.updateItems = function(updateArr, callback) {
  69. if (updateArr && updateArr.length > 0) {
  70. for (var i = 0; i < updateArr.length; i++) {
  71. var obj = updateArr[i];
  72. coeListModel.update({"libID": obj.libID, "ID": obj.ID}, updateArr[i], function(err) {
  73. if (err) {
  74. callback(true, "update fail", null);
  75. } else {
  76. callback(false, "update success", obj.ID);
  77. };
  78. });
  79. };
  80. } else {
  81. callback(true, "no source", null);
  82. };
  83. };
  84. coeListDAO.prototype.deleteItems = function(deleteArr, callback) {
  85. if (deleteArr && deleteArr.length > 0) {
  86. for (var i = 0; i < deleteArr.length; i++) {
  87. var obj = deleteArr[i];
  88. coeListModel.remove({"libID": obj.libID, "ID": obj.ID}, function(err) {
  89. if (err) {
  90. callback(true, "delete fail", null);
  91. } else {
  92. callback(false, "delete success", obj.ID);
  93. };
  94. });
  95. };
  96. } else {
  97. callback(true, "no source", null);
  98. };
  99. };
  100. module.exports = new coeListDAO();