123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- /**
- * 单价文件显示业务模型(用于选择单价文件操作)
- *
- * @author CaiAoLin
- * @date 2017/7/5
- * @version
- */
- import BaseModel from "../../common/base/base_model";
- import CounterModel from "./counter_model";
- import {default as UnitPriceFileSchema, collectionName as collectionName} from "./schemas/unit_price_file";
- class UnitPriceFileModel extends BaseModel {
- /**
- * 构造函数
- *
- * @return {void}
- */
- constructor() {
- let parent = super();
- parent.model = UnitPriceFileSchema;
- 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有误';
- }
- result = await this.findDataByCondition({project_id: projectId});
- // 如果没有找到则新增一条记录
- if (!result) {
- let data = {
- // @todo 后续再项目中获取
- name: 'projectName',
- project_id: projectId
- };
- result = await this.add(data);
- }
- } catch (error) {
- console.log('error:' + error);
- }
- 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};
- let result = await this.findDataByCondition(condition, null, false);
- return result;
- }
- }
- export default UnitPriceFileModel;
|