GLJ.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /**
  2. * Created by jimiz on 2017/4/1.
  3. */
  4. var mongoose = require("mongoose");
  5. var db = require("../db/project_db");
  6. var Schema = mongoose.Schema;
  7. var GLJSchema = new Schema({
  8. ID: Number,
  9. projectID: Number,
  10. orgRQuantity: String, //Decimal
  11. rQuantity: String, //Decimal
  12. customQuantity: String, //Decimal
  13. quantity: String, //Decimal
  14. rationItemQuantity: String, //Decimal
  15. rationPrice: String, //Decimal
  16. adjustPrice: String, //Decimal
  17. price: String, //Decimal
  18. tenderQuantity: String, //Decimal
  19. tenderPrice: String, //Decimal
  20. type: Number
  21. // to do
  22. });
  23. var GLJ = db.model("GLJList", GLJSchema);
  24. var GLJDAO = function(){};
  25. GLJDAO.prototype.getData = function(projectId, callback){
  26. GLJ.find({projectId: projectId}, function(err, datas){
  27. if (!err) {
  28. callback(0, '', datas);
  29. } else {
  30. callback(1, '', null);
  31. };
  32. });
  33. };
  34. GLJDAO.prototype.save = function(datas, callback){
  35. var data, errList = [], updateLength = 0;
  36. var updateFunc = function (err, errData) {
  37. if (err){
  38. errList.push(errData);
  39. };
  40. };
  41. if (datas){
  42. for (var i = 0; i < datas.length; i++){
  43. data = datas[i];
  44. if (data.updateType === 'update') {
  45. delete data.updateType;
  46. data.save(updateFunc);
  47. } else if (data.updateType === 'create') {
  48. delete data.updateType;
  49. data.save(updateFunc);
  50. } else if (data.updateType === 'delete') {
  51. delete data.updateType;
  52. data.remove(updateFunc);
  53. };
  54. };
  55. if (errList.length > 0){
  56. callback(1, errList);
  57. } else {
  58. callback(0, null);
  59. };
  60. };
  61. };
  62. GLJDAO.prototype.getItemTemplate = function(callback){
  63. var data = new bills;
  64. /* to do: 需要根据标准配置库填充fees和flags字段,是否需要更多的参数? */
  65. callback(0, '', data);
  66. };
  67. const
  68. IDStep = 50, IDModule = 'bills';
  69. GLJDAO.prototype.allocIDs = function(IDStep, callback){
  70. counter.counterDAO.getIDAfterCount(counter.moduleName.GLJ, IDStep, function(err, highID){
  71. var lowID = highID - IDStep + 1;
  72. callback(0, '', {lowID: lowID, highID: highID});
  73. });
  74. };
  75. module.exports = new GLJDAO();