cellsysBase/cellsysEquipmentType.js
2024-08-14 16:20:56 +08:00

185 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {
CellsysType,
EditTask,
EditType,
Operator,
Query,
QueryTask,
QueryType
} from './cellsysUtil.js';
import {PublishTarget} from './cellsysEnum';
import CellsysEquipmentMonitor from "./cellsysEquipmentMonitor";
import CellsysEquipment from "./cellsysEquipment";
class CellsysEquipmentType {
constructor(params) {
this.cellsysType = CellsysType.EquipmentType
params = params || {}
this.orgId = params.org_id
this.orgName = params.org_name
this.id = params.id
this.type = params.type
this.typeCount = params.type_count
this.name = params.name
this.description = params.description
this.style = params.style || {}
this.createBy = params.create_by;
this.createTime = params.create_time;
this.updateBy = params.update_by;
this.updateTime = params.update_time;
this.tags = [];
if (params.tag_name) {
this.tags = params.tag_name.map(name => {
return {"name": name}
})
}
this.isPublish = params.is_publish || 0
this.publishRange = params.publish_range; //发布范围 0-群组 1-组织
this.publishGroup = params.publish_group ? params.publish_group : []; //发布的群组
this.isEditable = params.is_update === 1; //is_update表示是否允许其他人编辑 0-不允许 1-允许
this.isUnlock = params.is_unlock;//是否未锁定0-已锁定1-未锁定
let creator = params.creator;
this.creator = {
memberId: null,
name: null
}
if (creator) {
this.creator = {
memberId: creator.member_id,
name: creator.name
}
}
let updater = params.updater;
this.updater = {
memberId: null,
name: null
}
if (updater) {
this.updater = {
memberId: updater.member_id,
name: updater.name
}
}
}
setId(value) {
this.id = value
}
setName(value) {
this.name = value
}
getIcon() {
return this.style
}
/**
* 查询监控量
*/
queryMonitorList(filters) {
let query = new Query();
query.addFilter('equipment_type_id', Operator.Equals, this.type);
query.setOrder({ create_time: 'desc' });
let queryTask = new QueryTask(QueryType.EquipmentTypeMonitors, false);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
let resArr = res.map((item) => {
return new CellsysEquipmentMonitor(item);
});
resolve(resArr);
})
.catch((err) => {
reject(err);
});
});
}
/*查询设备类型下所有设备*/
queryEquipments(){
let query = new Query();
query.addFilter('type_id', Operator.Equals, this.id);
let queryType = QueryType.Equipment;
query.setOrder({ id: 'desc' });
let queryTask = new QueryTask(queryType, false);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
let resArr = res.map((item) => {
return new CellsysEquipment(item);
});
resolve(resArr);
})
.catch((err) => {
reject(err);
});
});
}
// EquipmentTypePublish
//发布功能
setPublish(publishStatus, range, ids, isEditable, remark) {
let editTask = new EditTask(EditType.EquipmentTypePublish);
editTask.addParam('_id', this.id);
editTask.addParam('_equipment_type_name', this.name);
editTask.addParam('_is_publish', PublishTarget[publishStatus]);
editTask.addParam('_remark', remark);
if (publishStatus !== "noPublish") {
if (range === 1) { //发布到组织
editTask.addParam('_publish_org', ids);
} else {
editTask.addParam('_publish_group', ids);
}
editTask.addParam('_publish_range', range);
}
if (isEditable) {
editTask.addParam('_is_update', 1);
} else {
editTask.addParam('_is_update', 0);
}
return editTask.execute();
}
//查询协同数据发布记录列表
synergyDataPublishRecord(dataId, type) {
let query = new Query();
query.setOrder({create_time: 'desc'});
query.addFilter('data_type', '=', 6);
query.setCurrPage(1);
query.setPageSize(1);
if (dataId) {
query.addFilter('data_id', '=', dataId);
}
if (type) {
query.addFilter('type', '=', type);
}
let queryTask = new QueryTask(QueryType.synergyDataPublishRecord, true);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
resolve(res);
})
.catch((err) => {
reject(err);
});
});
}
}
export default CellsysEquipmentType