bills_template_model.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /**
  2. * Created by Mai on 2017/4/14.
  3. * 清单模板,新建项目使用
  4. */
  5. const BaseModel = require("../../../common/base/base_model");
  6. const mongoose = require("mongoose");
  7. const BillsTemplateSchema = mongoose.model("std_bills_template_items");
  8. class BillsTemplateModel extends BaseModel {
  9. /**
  10. * 构造函数
  11. *
  12. * @return {void}
  13. */
  14. constructor() {
  15. let parent = super();
  16. parent.model = BillsTemplateSchema;
  17. parent.init();
  18. }
  19. /**
  20. * 获取模板库对应的清单模板
  21. * @param libID
  22. * @returns {*}
  23. */
  24. async getTemplateData(libID) {
  25. // 筛选字段
  26. let field = { _id: 1, valuationId: 1, ID: 1, ParentID: 1, NextSiblingID: 1, code: 1, name: 1, unit: 1, flags: 1, calcBase: 1 };
  27. let data = await this.findDataByCondition({ valuationId: valuationId, engineering: engineering }, field, false);
  28. return data === null ? [] : data;
  29. }
  30. /**
  31. * 新建项目时,获取模板库对应的清单模板
  32. * @param valuationId
  33. * @param engineering
  34. * @returns {*}
  35. */
  36. async getTemplateDataForNewProj(libID) {
  37. // 筛选字段
  38. let field = {
  39. _id: 0,
  40. ID: 1,
  41. ParentID: 1,
  42. NextSiblingID: 1,
  43. code: 1,
  44. name: 1,
  45. unit: 1,
  46. flags: 1,
  47. type: 1,
  48. calcBase: 1,
  49. feeRateID: 1,
  50. quantity: 1,
  51. itemCharacterText: 1,
  52. jobContentText: 1,
  53. };
  54. let data = await this.findDataByCondition({ libID: libID }, field, false);
  55. return data === null ? [] : data;
  56. }
  57. async updateTemplate(valuationId, datas) {
  58. try {
  59. for (let data of datas) {
  60. data.data.valuationId = valuationId;
  61. let condition = { valuationId: valuationId, ID: data.data.ID },
  62. result;
  63. if (data.type === "update") {
  64. result = await this.db.update(condition, data.data);
  65. if (result === undefined || result.ok === undefined || !result.ok) {
  66. throw "更新数据错误";
  67. }
  68. } else if (data.type === "new") {
  69. result = await this.db.create(data.data);
  70. if (!result) {
  71. throw "新增数据错误";
  72. }
  73. } else if (data.type === "delete") {
  74. result = await this.db.delete(condition);
  75. if (result === undefined || result.ok === undefined || !result.ok) {
  76. throw "删除数据错误";
  77. }
  78. }
  79. }
  80. return true;
  81. } catch (error) {
  82. console.log(error);
  83. }
  84. }
  85. }
  86. module.exports = BillsTemplateModel;