cellsysArt/artSystem.js
2024-12-26 10:28:43 +08:00

286 lines
10 KiB
JavaScript

import { Query, QueryTask, QueryType, Operator } from '@airkoon/cellsys/cellsysUtil.js';
import ConditionReport from './conditionReport';
import { artApi } from './artApi';
import CellsysArt from './cellsysArt';
import CellsysEventType from '@airkoon/cellsys/cellsysEventType';
import ArtCounty from './artCounty';
import { EditTask } from '@airkoon/cellsys/cellsysUtil';
class ArtSystem {
constructor(orgId) { }
static orgId = window.CELLSYSORG ? window.CELLSYSORG.id : null;
//查询艺术品材质字典
static queryMaterials(params = {}) {
let query = new Query();
let { filter } = params;
if (filter) {
filter.forEach((item) => {
query.addFilter(item['field'], item['operator'], item['value']);
});
}
query.addFilter('dict_type', Operator.Equals, 'material');
let queryTask = new QueryTask(QueryType.sysDictData, false);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
resolve(res);
})
.catch((err) => {
reject(err);
});
});
}
//查询艺术品一级分类
static queryArtCategoryOne() {
let query = new Query();
query.addFilter('parent_id', Operator.Equals, 1);
query.setOrder({ sort: 'asc' });
let queryTask = new QueryTask(QueryType.sysCategoryData, false);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
resolve(res);
})
.catch((err) => {
reject(err);
});
});
}
static queryArtCategoryById(parentId) {
let query = new Query();
query.addFilter('parent_id', Operator.Equals, parentId);
let queryTask = new QueryTask(QueryType.sysCategoryData, false);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
resolve(res);
})
.catch((err) => {
reject(err);
});
});
}
//查询国家数据
static queryCountry(params = {}) {
let query = new Query();
let { pageInfo, order, filter } = params;
if (filter) {
filter.forEach((item) => {
query.addFilter(item['field'], item['operator'], item['value']);
});
}
let queryTask = new QueryTask(artApi.country, !!pageInfo);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
if (pageInfo) {
if (res.data) {
res.data = res.data.map((item) => {
return new ArtCounty(item);
});
resolve(res);
}
} else {
let resArr = res.map((item) => {
return new ArtCounty(item);
});
resolve(resArr);
}
})
.catch((err) => {
reject(err);
});
});
}
//查询艺术片档案
static queryArtworks(params = {}) {
let query = new Query();
let { pageInfo, order, filter } = params;
if (pageInfo) {
query.setCurrPage(pageInfo.currPage);
query.setPageSize(pageInfo.pageSize);
}
if (filter) {
filter.forEach((item) => {
query.addFilter(item['name'], item['operator'], item['value']);
});
}
if (order) {
query.setOrder(order);
} else {
query.setOrder({ id: 'desc' });
}
let queryTask = new QueryTask(artApi.artworkRecord, pageInfo ? true : false);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
if (pageInfo) {
if (res.data) {
res.data = res.data.map((item) => {
return new CellsysArt(item);
});
resolve(res);
}
} else {
let resArr = res.map((item) => {
return new CellsysArt(item);
});
resolve(resArr);
}
})
.catch((err) => {
reject(err);
});
});
}
//创建艺术品档案
static createArtwork(params = {}) {
let editTask = new EditTask(artApi.artArtworkRecordInsert);
editTask.addParam('_oldname', params.oldName);
editTask.addParam('_countryId', params.country.id);
editTask.addParam('_countryCode', params.country.code);
editTask.addParam('_author', params.author);
editTask.addParam('_create_period', params.createPeriod);
editTask.addParam('_actual_number', params.actualNumber);
editTask.addParam('_length', params.length);
editTask.addParam('_width', params.width);
editTask.addParam('_height', params.height);
if (params.material) {
editTask.addParam('_material', params.material.dict_code);
}
if (params.categoryOne) {
editTask.addParam('_category_one', params.categoryOne.id);
editTask.addParam('_category_one_code', params.categoryOne.code);
}
if (params.categoryTwo) {
editTask.addParam('_category_two', params.categoryTwo.id);
editTask.addParam('_category_two_code', params.categoryTwo.code);
}
if (params.categoryThree) {
editTask.addParam('_category_three', params.categoryThree.id);
}
editTask.addParam('_original_registration_number', params.originalRegistrationNumber);
editTask.addParam('_remark', params.remarks);
editTask.addParam('_images', params.images);
return new Promise((resolve, reject) => {
editTask
.execute()
.then((res) => {
if (res.data) {
let cellsysArt = new CellsysArt(res.data);
resolve(cellsysArt);
}
})
.catch((err) => {
reject(err);
});
});
}
//查询报告列表(应用列表)
static queryConditionsReports(params) {
if (!params) {
params = {};
}
let query = new Query();
let pageInfo = params.pageInfo;
let order = params.order;
if (pageInfo) {
query.setCurrPage(pageInfo.currPage);
query.setPageSize(pageInfo.pageSize);
}
if (order) {
query.setOrder(order);
} else {
query.setOrder({ id: 'desc' });
}
// query.addFilter('model_id', Operator.Equals, 23); //病害报告模板
let filter = params.filter;
if (filter) {
filter.forEach((item) => {
query.addFilter(item['name'], item['operator'], item['value']); //病害报告模板
});
}
let queryTask = new QueryTask(artApi.viewConditionCheck, pageInfo ? true : false);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
if (pageInfo) {
if (res.data) {
res.data = res.data.map((item) => {
return new ConditionReport(item);
});
resolve(res);
}
} else {
let resArr = res.map((item) => {
return new ConditionReport(item);
});
resolve(resArr);
}
})
.catch((err) => {
reject(err);
});
});
}
static queryArtworkByRepairId(params) {
let query = new Query();
let artworkId = params.artworkId;
let eventSetId = params.eventSetId;
if (artworkId) {
query.addFilter('artwork.id', Operator.Equals, artworkId); //病害报告模板
}
if (eventSetId) {
query.addFilter('event_set.id', Operator.Equals, eventSetId); //病害报告模板
}
let queryTask = new QueryTask(artApi.artworkRepair, false);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
let resArr = res.map((item) => {
return new CellsysArt(item.artwork);
});
resolve(resArr);
})
.catch((err) => {
reject(err);
});
});
}
static queryArtworkEvent(params) {
let query = new Query();
let artworkId = params.artworkId;
if (artworkId) {
query.addFilter('artwork.id', Operator.Equals, artworkId); //病害报告模板
}
let queryTask = new QueryTask(artApi.artworkRepair, false);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
let resArr = res.map((item) => {
return new CellsysEventType(item.event_set);
});
resolve(resArr);
})
.catch((err) => {
reject(err);
});
});
}
}
export default ArtSystem;