rationRepository.js 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /**
  2. * Created by Tony on 2017/4/19.
  3. * 定额库分类,如重庆、广东等各个省的建筑定额,未来考虑与公路合并
  4. */
  5. var mongoose = require('mongoose');
  6. var dbm = require("../../../config/db/db_manager");
  7. var stringUtil = require('../../../public/stringUtil');
  8. var rationLibdb = dbm.getCfgConnection("rationLibMap");
  9. var Schema = mongoose.Schema;
  10. var RationLibSchema = new Schema({
  11. "dispName" : String,
  12. "dbName": String,
  13. "appType" : String, //如:"建筑" / "公路"
  14. "localeType": String, //如 各个省份 / 部颁
  15. "descr" : String,
  16. "deleted": Boolean
  17. });
  18. var rationRepository = rationLibdb.model("rationRepository", RationLibSchema, "rationRepository");
  19. function createNewLibModel(rationLibObj){
  20. var rst = {};
  21. rst.dispName = rationLibObj.dispName;
  22. rst.appType = rationLibObj.appType?rationLibObj.appType:'construct';
  23. rst.localeType = rationLibObj.localeType?rationLibObj.localeType:'';
  24. rst.descr = rationLibObj.descr;
  25. rst.dbName = 'r_r_' + stringUtil.getPinYinFullChars(rationLibObj.dispName);
  26. rst.deleted = false;
  27. return rst;
  28. }
  29. rationRepositoryDao = function(){};
  30. rationRepositoryDao.prototype.getRealLibName = function(dispName,callback){
  31. rationRepository.find({"dispName": dispName}, function(err,data){
  32. if (err) {
  33. callback('Error', null);
  34. } else {
  35. callback(0, data);
  36. }
  37. });
  38. };
  39. rationRepositoryDao.prototype.addRationRepository = function( rationLibObj,callback){
  40. rationRepository.find({"dispName": rationLibObj.dispName},function(err,data){
  41. if(data.length == 0)
  42. new rationRepository(createNewLibModel(rationLibObj)).save(function(err) {
  43. if (err) callback("Error", null)
  44. else
  45. callback(false, "ok");
  46. })
  47. else
  48. callback("定额库重名!",null)
  49. })
  50. };
  51. rationRepositoryDao.prototype.getDisplayRationLibs = function(callback) {
  52. rationRepository.find({"deleted": false}, function(err, data){
  53. if (err) {
  54. callback( 'Error', null);
  55. } else {
  56. callback( false, data);
  57. }
  58. });
  59. };
  60. rationRepositoryDao.prototype.updateName = function(orgName,newName,callback){
  61. rationRepository.find({"dispName":newName, "deleted": false}, function(err, data){
  62. if (data.length == 0) {
  63. rationRepository.update({dispName:orgName},{$set:{dispName:newName}},function(err){
  64. if(err) callback("err",false);
  65. else callback(false,"ok")
  66. })
  67. } else
  68. callback("不可重名!",false);
  69. });
  70. }
  71. rationRepositoryDao.prototype.deleteRationLib = function(rationName,callback){
  72. rationRepository.find({"dispName":rationName, "deleted": false}, function(err, data){
  73. if (data.length == 1) {
  74. rationRepository.update({dispName:rationName},{$set:{deleted: true}},function(err){
  75. if(err) callback("err",false);
  76. else callback(false,"ok")
  77. })
  78. } else
  79. callback("删除失败!",false);
  80. });
  81. }
  82. module.exports = new rationRepositoryDao();