|
|
@@ -3,75 +3,91 @@
|
|
|
* 清单模板,新建项目使用
|
|
|
*/
|
|
|
const BaseModel = require("../../../common/base/base_model");
|
|
|
-const mongoose = require('mongoose');
|
|
|
-const BillsTemplateSchema = mongoose.model('std_bills_template_items');
|
|
|
+const mongoose = require("mongoose");
|
|
|
+const BillsTemplateSchema = mongoose.model("std_bills_template_items");
|
|
|
|
|
|
class BillsTemplateModel extends BaseModel {
|
|
|
- /**
|
|
|
- * 构造函数
|
|
|
- *
|
|
|
- * @return {void}
|
|
|
- */
|
|
|
- constructor() {
|
|
|
- let parent = super();
|
|
|
- parent.model = BillsTemplateSchema;
|
|
|
- parent.init();
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 构造函数
|
|
|
+ *
|
|
|
+ * @return {void}
|
|
|
+ */
|
|
|
+ constructor() {
|
|
|
+ let parent = super();
|
|
|
+ parent.model = BillsTemplateSchema;
|
|
|
+ parent.init();
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 获取模板库对应的清单模板
|
|
|
- * @param libID
|
|
|
- * @returns {*}
|
|
|
- */
|
|
|
- async getTemplateData (libID) {
|
|
|
- // 筛选字段
|
|
|
- let field = {_id: 1, valuationId: 1, ID: 1, ParentID: 1, NextSiblingID: 1, code: 1, name: 1, unit: 1, flags: 1, calcBase: 1};
|
|
|
- let data = await this.findDataByCondition({valuationId: valuationId, engineering: engineering}, field, false);
|
|
|
+ /**
|
|
|
+ * 获取模板库对应的清单模板
|
|
|
+ * @param libID
|
|
|
+ * @returns {*}
|
|
|
+ */
|
|
|
+ async getTemplateData(libID) {
|
|
|
+ // 筛选字段
|
|
|
+ let field = { _id: 1, valuationId: 1, ID: 1, ParentID: 1, NextSiblingID: 1, code: 1, name: 1, unit: 1, flags: 1, calcBase: 1 };
|
|
|
+ let data = await this.findDataByCondition({ valuationId: valuationId, engineering: engineering }, field, false);
|
|
|
|
|
|
- return data === null ? [] : data;
|
|
|
- }
|
|
|
+ return data === null ? [] : data;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 新建项目时,获取模板库对应的清单模板
|
|
|
- * @param valuationId
|
|
|
- * @param engineering
|
|
|
- * @returns {*}
|
|
|
- */
|
|
|
- async getTemplateDataForNewProj (libID) {
|
|
|
- // 筛选字段
|
|
|
- let field = {_id: 0, ID: 1, ParentID: 1, NextSiblingID: 1, code: 1, name: 1, unit: 1, flags: 1,type:1, calcBase: 1,feeRateID:1,quantity:1};
|
|
|
- let data = await this.findDataByCondition({libID: libID}, field, false);
|
|
|
+ /**
|
|
|
+ * 新建项目时,获取模板库对应的清单模板
|
|
|
+ * @param valuationId
|
|
|
+ * @param engineering
|
|
|
+ * @returns {*}
|
|
|
+ */
|
|
|
+ async getTemplateDataForNewProj(libID) {
|
|
|
+ // 筛选字段
|
|
|
+ let field = {
|
|
|
+ _id: 0,
|
|
|
+ ID: 1,
|
|
|
+ ParentID: 1,
|
|
|
+ NextSiblingID: 1,
|
|
|
+ code: 1,
|
|
|
+ name: 1,
|
|
|
+ unit: 1,
|
|
|
+ flags: 1,
|
|
|
+ type: 1,
|
|
|
+ calcBase: 1,
|
|
|
+ feeRateID: 1,
|
|
|
+ quantity: 1,
|
|
|
+ itemCharacterText: 1,
|
|
|
+ jobContentText: 1,
|
|
|
+ };
|
|
|
+ let data = await this.findDataByCondition({ libID: libID }, field, false);
|
|
|
|
|
|
- return data === null ? [] : data;
|
|
|
- }
|
|
|
+ return data === null ? [] : data;
|
|
|
+ }
|
|
|
|
|
|
- async updateTemplate (valuationId, datas) {
|
|
|
- try {
|
|
|
- for (let data of datas) {
|
|
|
- data.data.valuationId = valuationId;
|
|
|
- let condition = {valuationId: valuationId, ID: data.data.ID}, result;
|
|
|
- if (data.type === 'update') {
|
|
|
- result = await this.db.update(condition, data.data);
|
|
|
- if (result === undefined || result.ok ===undefined || !result.ok) {
|
|
|
- throw '更新数据错误';
|
|
|
- }
|
|
|
- } else if (data.type === 'new') {
|
|
|
- result = await this.db.create(data.data);
|
|
|
- if (!result) {
|
|
|
- throw '新增数据错误';
|
|
|
- }
|
|
|
- } else if (data.type === 'delete') {
|
|
|
- result = await this.db.delete(condition);
|
|
|
- if (result === undefined || result.ok ===undefined || !result.ok) {
|
|
|
- throw '删除数据错误';
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return true;
|
|
|
- } catch (error) {
|
|
|
- console.log(error);
|
|
|
+ async updateTemplate(valuationId, datas) {
|
|
|
+ try {
|
|
|
+ for (let data of datas) {
|
|
|
+ data.data.valuationId = valuationId;
|
|
|
+ let condition = { valuationId: valuationId, ID: data.data.ID },
|
|
|
+ result;
|
|
|
+ if (data.type === "update") {
|
|
|
+ result = await this.db.update(condition, data.data);
|
|
|
+ if (result === undefined || result.ok === undefined || !result.ok) {
|
|
|
+ throw "更新数据错误";
|
|
|
+ }
|
|
|
+ } else if (data.type === "new") {
|
|
|
+ result = await this.db.create(data.data);
|
|
|
+ if (!result) {
|
|
|
+ throw "新增数据错误";
|
|
|
+ }
|
|
|
+ } else if (data.type === "delete") {
|
|
|
+ result = await this.db.delete(condition);
|
|
|
+ if (result === undefined || result.ok === undefined || !result.ok) {
|
|
|
+ throw "删除数据错误";
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error);
|
|
|
}
|
|
|
-};
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
module.exports = BillsTemplateModel;
|