| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | 
							- /**
 
-  * 单价文件显示业务模型(用于选择单价文件操作)
 
-  *
 
-  * @author CaiAoLin
 
-  * @date 2017/7/5
 
-  * @version
 
-  */
 
- import mongoose from "mongoose";
 
- import BaseModel from "../../common/base/base_model";
 
- import CounterModel from "./counter_model";
 
- const ProjectModel = require('../../pm/models/project_model').project;
 
- let collectionName = 'unit_price_file';
 
- class UnitPriceFileModel extends BaseModel {
 
-     /**
 
-      * 构造函数
 
-      *
 
-      * @return {void}
 
-      */
 
-     constructor() {
 
-         let parent = super();
 
-         parent.model = mongoose.model(collectionName);
 
-         parent.init();
 
-     }
 
-     /**
 
-      * 设置场景
 
-      *
 
-      * @param {string} scene
 
-      * @return {void}
 
-      */
 
-     setScene(scene = '') {
 
-         switch (scene) {
 
-             // 新增数据的验证规则
 
-             case 'add':
 
-                 this.model.schema.path('name').required(true);
 
-                 this.model.schema.path('project_id').required(true);
 
-                 break;
 
-         }
 
-     }
 
-     /**
 
-      * 新增单价文件
 
-      *
 
-      * @param {object} data
 
-      * @return {Promise}
 
-      */
 
-     async add(data) {
 
-         let result = false;
 
-         try {
 
-             if (Object.keys(data).length <= 0) {
 
-                 throw '数据为空';
 
-             }
 
-             result = await this.db.create(data);
 
-         } catch (error) {
 
-             result = false;
 
-         }
 
-         return result;
 
-     }
 
-     /**
 
-      * 根据项目id获取单价文件数据
 
-      *
 
-      * @param {Number} projectId
 
-      * @return {Promise}
 
-      */
 
-     async getDataByProject(projectId) {
 
-         let result = null;
 
-         projectId = parseInt(projectId);
 
-         try {
 
-             if (isNaN(projectId) || projectId <= 0) {
 
-                 throw '标段id有误';
 
-             }
 
-             let unitPriceFileId =await ProjectModel.getUnitPriceFileId(projectId);
 
-             if (unitPriceFileId <= 0) {
 
-                 throw '没有对应的单价文件';
 
-             }
 
-             result = await this.findDataByCondition({id: unitPriceFileId});
 
-         } catch (error) {
 
-             console.log('error:' + error);
 
-             throw '没有对应的单价文件 '
 
-         }
 
-         return result;
 
-     }
 
-     /**
 
-      * 新增单条工料机数据
 
-      *
 
-      * @param {object} data
 
-      * @return {Promise}
 
-      */
 
-     async add(data) {
 
-         if (Object.keys(data).length <= 0) {
 
-             throw '新增数据为空';
 
-         }
 
-         let counterModel = new CounterModel();
 
-         data.id = await counterModel.getId(collectionName);
 
-         this.setScene('add');
 
-         let result = await this.db.create(data);
 
-         return result;
 
-     }
 
-     /**
 
-      * 根据单位工程获取对应单价文件
 
-      *
 
-      * @param {Array} idList
 
-      * @return {Promise|Array}
 
-      */
 
-     async getDataByTenderId(idList) {
 
-         let result = [];
 
-         if (idList.length <= 0) {
 
-             return result;
 
-         }
 
-         let condition = {project_id: {$in: idList},deleteInfo:null};
 
-         result = await this.findDataByCondition(condition, null, false);
 
-         return result;
 
-     }
 
-     /**
 
-      * 根据建设项目id获取单价文件数据
 
-      *
 
-      * @param {Number} root_project_id
 
-      * @return {Promise}
 
-      */
 
-     async getDataByRootProject(root_project_id){
 
-         let condition = {root_project_id: root_project_id, deleteInfo: null};
 
-         return  await this.findDataByCondition(condition, null, false);
 
-     }
 
-     /**
 
-      * 根据用户获取对应被删除的单价文件
 
-      *
 
-      * @param {String} userID
 
-      * @return {Promise}
 
-      */
 
-     async getGCUnitPriceFiles(userID){
 
-         let condition = {user_id: userID, 'deleteInfo.deleted': true, '$or': [{'deleteInfo.completeDeleted': false}, {'deleteInfo.completeDeleted': null}]};
 
-         let result = await this.findDataByCondition(condition, null, false);
 
-         return result;
 
-     }
 
- }
 
- export default UnitPriceFileModel;
 
 
  |