123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396 |
- import dayjs from 'dayjs';
- import { stringify } from 'qs';
- import { request } from 'umi';
- // 能耗标牌
- export async function query() {
- const res = await request(
- `/api/energy/v1/energy-card/list?project_id=${projectId}`,
- );
- return res;
- }
- // 全场概况 查询能耗配置相关
- export async function queryEnergyConfig(projectId) {
- const res = await request(
- `/api/energy/v1/energy-config?project_id=${projectId}`,
- );
- return res;
- }
- // 当日累计能耗、吨水电耗、环比
- export async function queryAccumulativeEnergy(projectId) {
- const res = await request(
- `/api/energy/v1/accumulative-energy?project_id=${projectId}`,
- );
- return res;
- }
- // 工艺段下总电耗曲线
- export async function querySectionEnergy(params) {
- const res = await request(
- `/api/energy/v1/section-energy?${stringify(params)}`,
- );
- return res;
- }
- // 工艺段下各设备的用电情况
- export async function querySectionDevice(params) {
- const res = await request(
- `/api/energy/v1/section-device?${stringify(params)}`,
- );
- return res;
- }
- // 吨水电耗折线图
- export async function queryEnergyWaterChart(params) {
- const res = await request(
- `/api/energy/v1/energy-water-chart?${stringify(params)}`,
- );
- return res;
- }
- /**
- * 根据工艺段id查询code
- * @param {*} processId 工艺段id
- * @param {*} type 0 能耗 1 药耗 2 水质 3 水量
- * @param project_id
- * @returns
- */
- export async function querySectionCode(processId, type, project_id) {
- const res = await request(
- `/api/energy/v1/section-code?process_section_id=${processId}&type=${type}&project_id=${project_id}`,
- );
- return res.data;
- }
- /**
- *
- * @param {object} data
- * @param {number} data.project_id
- * @param {string} data.metric_code
- * @param {string} data.start_time
- * @param {string} data.end_time
- * @returns
- */
- export async function queryChartList(data) {
- if (!data.order) data.order = 2;
- const res = await request(`/api/energy/v1/chart/list`, {
- method: 'POST',
- data,
- });
- return res.data;
- }
- // 水检测折线图 参数同上
- export async function queryWaterCheckChartList(data) {
- if (!data.order) data.order = 2;
- const res = await request(`/api/energy/v1/mon-chart/list`, {
- method: 'POST',
- data,
- });
- return res.data;
- }
- /**
- * 根据metric_code返回数据
- * @param {*} data 同queryChartList的data
- * @param {Array|string} codes metric_code
- * @param {Boolean} isCheck 是否为水检测数据
- * @returns [{ time:string, [code]:number}]
- */
- export async function queryChartListByCode(data, codes, isCheck = false) {
- let dataSource = [];
- if (codes instanceof Array) {
- const res = {};
- let time = [];
- for (let i = 0; i < codes.length; i++) {
- const metric_code = codes[i];
- let chartRes;
- if (isCheck) {
- chartRes = await queryWaterCheckChartList({ ...data, metric_code });
- } else {
- chartRes = await queryChartList({ ...data, metric_code });
- }
- if (i === 0) {
- time = chartRes.data?.map((item) => item.data_time);
- }
- res[metric_code] = chartRes.data?.map((item) => item.value.toFixed(2));
- }
- console.log(res, codes);
- dataSource = time?.map((time, index) => {
- const data = { time };
- codes.forEach((code) => {
- data[code] = res[code]?.[index];
- });
- return data;
- });
- } else if (typeof codes === 'string') {
- const res = await queryChartList({ ...data, metric_code: codes });
- dataSource = res.data.map((item) => ({
- time: item.data_time,
- [metric_code]: item.value,
- }));
- }
- return { data: dataSource };
- }
- /**
- *
- *
- * @param {*} metric_code //药耗code数组
- * @param {*} water_code //水质单个code
- * @param {*} params.start_time
- * @param {*} params.end_time
- * @param {*} params.projectId
- * @returns
- */
- export async function queryChartMedicineAndWater(
- metric_code,
- water_code,
- params,
- ) {
- const data = {};
- let time = [];
- const waterRes = await queryChartList({
- project_id: params.projectId,
- start_time: params.start_time,
- end_time: params.end_time,
- metric_code: water_code?.metric_code,
- order: 1,
- });
- data[water_code.metric_code] = {
- data: waterRes.map((item) => item.value),
- type: 2,
- name: water_code?.metric,
- yIndex: 0,
- };
- if (metric_code instanceof Array) {
- for (let index = 0; index < metric_code.length; index++) {
- const element = metric_code[index];
- const res = await queryChartList({
- project_id: params.projectId,
- start_time: params.start_time,
- end_time: params.end_time,
- metric_code: element?.metric_code,
- order: 1,
- });
- if (index == 0) {
- time = res.map((item) => item.data_time);
- }
- // type 是 0 能耗 1 药耗 2 水质 3 水量
- data[element.metric_code] = {
- data: res.map((item) => item.value),
- type: 0,
- name: element?.metric,
- yIndex: 1,
- };
- }
- }
- return { data: { data, time } };
- }
- export async function queryProcessSection(projectId) {
- const res = await request(
- `/api/v1/process-section/${projectId}?page_size=999`,
- );
- return { data: res?.data?.list };
- }
- export async function queryAnalysisDict() {
- const res = await request(
- `/api/analysis/v1/analysis-dict/list?page_size=9999`,
- {
- method: 'POST',
- },
- );
- return { data: res?.data?.list };
- }
- export async function queryAnalysisDictByParams(params) {
- const res = await request(
- `/api/analysis/v1/analysis-dict/list?${stringify(params)}`,
- {
- method: 'POST',
- },
- );
- return { data: res?.data?.list };
- }
- // 成本分析-能耗监测
- export async function queryEnergyChartList(data) {
- if (!data.order) data.order = 2;
- const res = await request(`/api/energy/v1/energy-chart/list`, {
- method: 'POST',
- data,
- });
- return res;
- }
- // 能耗管理导入列表
- export async function queryEnergyUpload(data) {
- const res = await request(`/api/energy/v1/statday/list`, {
- method: 'POST',
- headers: { ContentType: 'application/json' },
- data,
- });
- return res;
- }
- export async function deleteEnergyUpload(data) {
- const res = await request(`/api/energy/v1/statday/del`, {
- method: 'POST',
- headers: { ContentType: 'application/json' },
- data,
- });
- return res;
- }
- export async function createStat(data) {
- await request(`/api/energy/v1/statday/create`, {
- method: 'POST',
- headers: { ContentType: 'application/json' },
- data,
- });
- }
- export async function modifySampleMetric(data) {
- const res = await request(`/api/energy/v1/sample-metric`, {
- method: 'POST',
- data,
- });
- return res;
- }
- export async function deleteBreakerExp(data) {
- const res = await request(`/api/energy/v1/beaker/del`, {
- method: 'POST',
- data,
- });
- return res;
- }
- export async function saveBreakerExp(data) {
- const res = await request(`/api/energy/v1/beaker/save`, {
- method: 'POST',
- data,
- });
- return res;
- }
- export async function editBreakerExp(data) {
- const res = await request(`/api/energy/v1/beaker/edit`, {
- method: 'POST',
- data,
- });
- }
- export async function queryBreakerExpList(data) {
- const res = await request(`/api/energy/v1/beaker/list`, {
- method: 'POST',
- data,
- });
- return res;
- }
- export async function querySampleMetric(params) {
- const res = await request(
- `/api/energy/v1/sample-metric-list?${stringify(params)}`,
- );
- return res;
- }
- // 水质异常
- export async function queryQualityAbnormal(params) {
- const res = await request(`/api/task/v1/water-monitor/list`, {
- method: 'POST',
- headers: { ContentType: 'application/json' },
- data: params,
- });
- return res;
- }
- export async function dealQualityAbnormal(params) {
- await request(`/api/task/v1/set/water-monitor`, {
- method: 'POST',
- headers: { ContentType: 'application/json' },
- data: params,
- });
- }
- export async function getStatisticsChart(data_type) {
- let s_time;
- const e_time = dayjs().format('YYYY-MM-DD HH:mm:ss');
- switch (data_type) {
- case '1':
- s_time = dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss');
- break;
- case '2':
- s_time = dayjs().subtract(1, 'months').format('YYYY-MM-DD HH:mm:ss');
- break;
- case '3':
- s_time = dayjs().subtract(1, 'years').format('YYYY-MM-DD HH:mm:ss');
- break;
- case '4':
- s_time = dayjs().subtract(5, 'years').format('YYYY-MM-DD HH:mm:ss');
- break;
- }
- const baseParams = {
- start_time: s_time,
- end_time: e_time,
- data_type,
- project_id: 65,
- };
- const params = [
- {
- ...baseParams,
- name: '北侧流量计',
- metric_code: '172_168_184_200.FIT111_TOT',
- },
- {
- ...baseParams,
- name: '南侧流量计',
- metric_code: '172_168_184_200.FIT112_TOT',
- },
- ];
- const dataList = [];
- let xData = [];
- for (let i = 0; i < params.length; i++) {
- const item = params[i];
- const res = await request(
- `/api/energy/v1/statistics/chart?${stringify(item)}`,
- );
- if (i == 0) {
- xData = res.data.data.map((item) =>
- dayjs(item.data_time).format('YYYY-MM-DD HH:mm:ss'),
- );
- }
- dataList.push({
- name: item.name,
- data: res.data.data.map((item) => item.value),
- });
- }
- return { data: { xData, dataList } };
- }
- /**
- * @param {*} params
- * @returns {Promise<null>}
- */
- export async function getComparisonData(params) {
- const res = await request(`/api/energy/v1/month/chart?${stringify(params)}`);
- return res?.data?.list;
- }
- export async function getChemicalAgents(projectID) {
- const res = await request(
- `/api/energy/v1/chemical_agents?project_id=${projectID}`,
- );
- return res?.data?.list;
- }
- export async function getScadaPage(params = {}) {
- const res = await request(`/api/v1/scada/page?${stringify(params)}`);
- return res?.data;
- }
|