diff --git a/package.json b/package.json
index fcc367b..e4bff7c 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,7 @@
"react_test": "react-scripts test",
"eject": "react-scripts eject"
},
- "proxy": "http://192.168.1.70:5000",
+ "proxy": "http://0.0.0.0:5000",
"eslintConfig": {
"extends": [
"react-app",
diff --git a/src/pages/Report.jsx b/src/pages/Report.jsx
index a55fcd5..cccc2fd 100644
--- a/src/pages/Report.jsx
+++ b/src/pages/Report.jsx
@@ -1,107 +1,173 @@
-import React from "react";
+import React, { useState, useEffect } from "react";
+import { useParams } from 'react-router-dom';
import {
+ Form,
DatePicker,
Radio,
- ConfigProvider,
Button,
Select,
- Checkbox,
+ Table
} from 'antd';
import 'moment/locale/ru';
import locale from 'antd/lib/locale/ru_RU';
import moment from "moment";
+import { ReportService } from '../services/api'
const { RangePicker } = DatePicker;
const { Option } = Select;
-
-
-
-// Расширение файла для составленного рапорта
-const ExceptionFileChecker = () => {
- const [value, setValue] = React.useState(1);
- const onChange = e => {
- console.log('radio checked', e.target.value);
- setValue(e.target.value);
- }
-
- return (
- PDF
- LAS
-
- )
+const initialBegin = moment()
+const initialEnd = moment()
+const initialStep = 600
+const initialFormat = 1
+let reportDatesRange = {
+ from: moment("0001-01-01T00:00:00"),
+ to: moment("9999-12-31T23:59:59.9999999")
}
-// Выбор периода времени
-const PeriodOfTime = () => {
- function disabledDate(current) {
- return current && current < moment().subtract(3, 'days'); // Наверно, не надо)
- }
-
- return (
-
-
-
- )
-}
-
-// Выбор содержимого
-const ContentSelection = () => {
- function onChange(e) {
- console.log(`checked = ${e.target.checked}`);
- }
-
- return (<>
- Графики
- Сообщения
- >
- )
-}
-
-// Выбор шага графика
-const GraphicStep = () => {
- function handleChange(value) {
- console.log(`selected ${value}`);
- }
-
- return (
-
- )
-}
// Экспорт рендера
-export default function Report(props) {
+export default function Report(props) {
+
+ const [rangeDate, setRangeDate] = useState([moment(), moment()])
+ const [step, setStep] = useState(initialStep)
+ const [format, setFormat] = useState(initialFormat)
+ const [approxPages, setPagesCount] = useState(0)
+ const [suitableReports, setSuitableReports] = useState([])
+ let wellId = useParams().id;
+
+ const columns = [
+ {
+ title: '',
+ dataIndex: 'reportFormat',
+ key: 'reportFormat',
+ },
+ {
+ title: 'Параметры отчета',
+ dataIndex: 'reportParams',
+ key: 'reportParams',
+ },
+ {
+ title: 'Название отчета',
+ dataIndex: 'reportName',
+ key: 'reportName',
+ render: name => {name}
+ },
+ ];
+
+ let handleReportCreation = async (values) => {
+ let begin = rangeDate[0].toISOString()
+ let end = rangeDate[1].toISOString()
+ let taskId = await ReportService.createReport(wellId, values.step, values.format, begin, end)
+ };
+
+ function disabledDate(current) {
+ return reportDatesRange.From >= current || reportDatesRange.To <= current;
+ }
+
+ useEffect(()=>{
+ async function getRepostSizeAsync() {
+ let begin = rangeDate[0].toISOString()
+ let end = rangeDate[1].toISOString()
+ let approxPagesResponse = await ReportService.getReportSize(wellId, step, format, begin, end)
+ setPagesCount(approxPagesResponse)
+ let suitableReportsResponse = await ReportService.getSuitableReportsNames(wellId, step, format, begin, end)
+ let suitableReports = suitableReportsResponse.map(value => {
+ return {
+ reportFormat: value.format,
+ reportParams: `Дата создания: ${value.date}, Данные от ${value.begin} до ${value.end}, Шаг: ${value.step}`,
+ reportName: value.name
+ }
+ })
+ setSuitableReports(suitableReports)
+ }
+
+ getRepostSizeAsync()
+ },[rangeDate, step, format])
+
+ useEffect(()=>{
+ async function getDatesRange() {
+ let response = await ReportService.getReportsDateRange(wellId)
+ reportDatesRange.from = moment(response.from)
+ reportDatesRange.to = moment(response.to)
+ }
+
+ getDatesRange()
+ },[])
+
return (<>
-
Рапорт
-
- Выбор за период времени и расширение файла
-
- Шаг графиков
-
- Содержимое отчёта
-
-
-
- *Предполагаемое колличество страниц
-
-
-
-
+
+
+
+ Отчеты с аналогичными параметрами, доступные для скачивания:
+
+
>
)
}
-
-// TODO ограничить датапикер по дате за 3 дня до
diff --git a/src/services/api/services/ReportService.ts b/src/services/api/services/ReportService.ts
index c7e4b79..3637a24 100644
--- a/src/services/api/services/ReportService.ts
+++ b/src/services/api/services/ReportService.ts
@@ -10,10 +10,10 @@ export class ReportService {
* Создает отчет по скважине с указанными параметрами
* @param wellId id скважины
* @param stepSeconds шаг интервала
- * @param format формат отчета (0-PDF, 1-LASS)
+ * @param format формат отчета (0-PDF, 1-LAS)
* @param begin дата начала интервала
* @param end дата окончания интервала
- * @returns string Success
+ * @returns number Success
* @throws ApiError
*/
public static async createReport(
@@ -22,7 +22,7 @@ stepSeconds?: number,
format?: number,
begin?: string,
end?: string,
-): Promise {
+): Promise {
const result = await __request({
method: 'POST',
path: `/api/well/${wellId}/report`,
@@ -57,11 +57,42 @@ reportName?: string,
return result.body;
}
+ /**
+ * Возвращает имена отчетов, хранящихся на диске,
+ * которые подходят под указанные параметры
+ * @param wellId id скважины
+ * @param stepSeconds шаг интервала
+ * @param format формат отчета (0-PDF, 1-LAS)
+ * @param begin дата начала интервала
+ * @param end дата окончания интервала
+ * @returns string Success
+ * @throws ApiError
+ */
+ public static async getSuitableReportsNames(
+wellId: number,
+stepSeconds?: number,
+format?: number,
+begin?: string,
+end?: string,
+): Promise> {
+ const result = await __request({
+ method: 'GET',
+ path: `/api/well/${wellId}/suitableReports`,
+ query: {
+ 'stepSeconds': stepSeconds,
+ 'format': format,
+ 'begin': begin,
+ 'end': end,
+ },
+ });
+ return result.body;
+ }
+
/**
* Возвращает прогнозируемое количество страниц будущего отчета
* @param wellId id скважины
* @param stepSeconds шаг интервала
- * @param format формат отчета (0-PDF, 1-LASS)
+ * @param format формат отчета (0-PDF, 1-LAS)
* @param begin дата начала интервала
* @param end дата окончания интервала
* @returns string Success
diff --git a/src/services/api/services/TelemetryService.ts b/src/services/api/services/TelemetryService.ts
index 172fa7d..f6dba81 100644
--- a/src/services/api/services/TelemetryService.ts
+++ b/src/services/api/services/TelemetryService.ts
@@ -31,7 +31,7 @@ requestBody?: TelemetryInfoDto,
/**
* Принимает данные от разных систем по скважине
- * @param uid Уникальный идентификатор отправителя
+ * @param uid Уникальный идентификатор ��тправителя
* @param requestBody Данные
* @returns any Success
* @throws ApiError