bills_template.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /**
  2. * Created by Mai on 2017/4/14.
  3. * 清单模板,新建项目使用
  4. */
  5. var counter = require("../../../public/counter/counter.js");
  6. var mongoose = require('mongoose');
  7. var dbm = require("../../../config/db/db_manager");
  8. var templatesDB = dbm.getCfgConnection("templates");
  9. var Schema = mongoose.Schema;
  10. var deleteSchema = require('../../../public/models/deleteSchema');
  11. var BillsTemplateSchema = new Schema({
  12. ID: Number,
  13. ParentID: Number,
  14. NextSiblingID: Number,
  15. code: String,
  16. name: String,
  17. unit: String,
  18. deleteInfo: deleteSchema,
  19. tempType: Number
  20. });
  21. var BillsTemplates = templatesDB.model('temp_bills', BillsTemplateSchema);
  22. var BillsTemplateDAO = function(){};
  23. BillsTemplateDAO.prototype.getTemplate = function (type, callback) {
  24. BillsTemplates.find({'$or': [{tempType: type, deleteInfo: null}, {tempType: type, 'deleteInfo.deleted': {$in: [null, false]}}]}, '-_id', function(err, template){
  25. if (err) {
  26. callback(1, '找不到模板', null);
  27. } else {
  28. callback(0, '', template);
  29. }
  30. });
  31. };
  32. BillsTemplateDAO.prototype.updateTemplate = function (userID, tempType, datas, callback) {
  33. var data, project, updateLength = 0, hasError = false, deleteInfo = null;
  34. var updateAll = function (err) {
  35. if (!err){
  36. updateLength += 1;
  37. if (updateLength === datas.length) {
  38. callback(0, '', datas);
  39. }
  40. } else {
  41. hasError = true;
  42. callback(1, '升级数据出错', null);
  43. }
  44. };
  45. if (datas){
  46. for (var i = 0; i < datas.length && !hasError; i++){
  47. data = datas[i];
  48. if (data.type === 'update') {
  49. BillsTemplates.update({tempType: tempType, ID: data.data.ID}, data.data, updateAll)
  50. } else if (data.type === 'new') {
  51. data.data['tempType'] = tempType;
  52. newProject = new BillsTemplates(data.data);
  53. newProject.save(updateAll);
  54. } else if (data.type === 'delete') {
  55. deleteInfo = {};
  56. deleteInfo['deleted'] = true;
  57. deleteInfo['deleteDateTime'] = new Date();
  58. deleteInfo['deleteBy'] = userID;
  59. BillsTemplates.update({ID: data.data.ID}, {deleteInfo: deleteInfo}, updateAll);
  60. } else {
  61. hasError = true;
  62. callback(1, '升级数据出错', null)
  63. }
  64. }
  65. }
  66. };
  67. BillsTemplateDAO.prototype.getNewBillsTemplateID = function (count, callback) {
  68. counter.counterDAO.getIDAfterCount(counter.moduleName.template_bills, count, function (err, result) {
  69. var highID = result.value.sequence_value;
  70. if (!err) {
  71. callback(0, '', {lowID: highID - count + 1, highID: highID});
  72. } else {
  73. callback(1, '获取主键失败', null);
  74. }
  75. });
  76. }
  77. module.exports = new BillsTemplateDAO();