Сервисы обновлены

This commit is contained in:
goodmice 2021-11-23 12:45:40 +05:00
parent 16af0d66c1
commit 29ce0d781b
14 changed files with 107 additions and 8 deletions

View File

@ -55,7 +55,7 @@ export const ArchiveDisplay = ({data, startDate, interval, onWheel}) => {
style={{ width: '15vw' }} style={{ width: '15vw' }}
data={chartData} data={chartData}
lineGroup={group} lineGroup={group}
interval={Math.round(interval / 1000)} interval={interval}
headerHeight={'50px'} headerHeight={'50px'}
yStart={startDate} yStart={startDate}
/> />

View File

@ -127,7 +127,7 @@ export default function Archive({idWell}) {
if (loadingInterval <= 0) return if (loadingInterval <= 0) return
invokeWebApiWrapperAsync( invokeWebApiWrapperAsync(
async () => { async () => {
const data = await TelemetryDataSaubService.getData(idWell, loadingStartDate.toISOString(), loadingInterval, DATA_COUNT) const data = await TelemetryDataSaubService.getData(idWell, loadingStartDate.toISOString(), loadingInterval, parseInt(DATA_COUNT * loadingInterval / chartInterval))
const loadedStartDate = new Date(Math.max(+newLoaded.start, +startDate - chartInterval * ADDITIVE_PAGES)) const loadedStartDate = new Date(Math.max(+newLoaded.start, +startDate - chartInterval * ADDITIVE_PAGES))
const loadedEndDate = new Date(Math.min(+newLoaded.end, +startDate + chartInterval * (ADDITIVE_PAGES + 1))) const loadedEndDate = new Date(Math.min(+newLoaded.end, +startDate + chartInterval * (ADDITIVE_PAGES + 1)))
@ -164,7 +164,7 @@ export default function Archive({idWell}) {
</div> </div>
<div style={{ marginLeft: '1rem' }}> <div style={{ marginLeft: '1rem' }}>
Период:&nbsp; Период:&nbsp;
<PeriodPicker onChange={(val) => setChartInterval(parseInt(val) * 1000)} /> <PeriodPicker onChange={(val) => setChartInterval(val * 1000)} />
</div> </div>
</Flex> </Flex>
<LoaderPortal show={showLoader}> <LoaderPortal show={showLoader}>

View File

@ -33,7 +33,7 @@ export const MonitoringColumn = ({ lineGroup, data, flowChartData, interval, sho
const [dataStore, setDataStore] = useState([]) const [dataStore, setDataStore] = useState([])
const [lineGroupWithoutShapes, setLineGroupWithoutShapes] = useState([]) const [lineGroupWithoutShapes, setLineGroupWithoutShapes] = useState([])
const dataLast = data?.[data.length - 1] const dataLast = data?.[data.length - 1]
const yStart = new Date(+(dataLast?.date ? new Date(dataLast.date) : new Date()) - interval * 1000 * 0.97) const yStart = new Date(+(dataLast?.date ? new Date(dataLast.date) : new Date()) - interval * 0.97)
const pv = lineGroup.filter(line => line.showLabels).map(line => ({ const pv = lineGroup.filter(line => line.showLabels).map(line => ({
color: line.color, color: line.color,
label: line.label, label: line.label,

View File

@ -16,16 +16,16 @@ import {
TelemetryDataSpinService, TelemetryDataSpinService,
WellService WellService
} from '../../services/api' } from '../../services/api'
import { makeDateSorter } from '../../components/Table'
import { invokeWebApiWrapperAsync } from '../../components/factory' import { invokeWebApiWrapperAsync } from '../../components/factory'
import { PeriodPicker, defaultPeriod } from '../../components/PeriodPicker'
import MomentStabPicEnabled from '../../images/DempherOn.png' import MomentStabPicEnabled from '../../images/DempherOn.png'
import MomentStabPicDisabled from '../../images/DempherOff.png' import MomentStabPicDisabled from '../../images/DempherOff.png'
import SpinPicEnabled from '../../images/SpinEnabled.png' import SpinPicEnabled from '../../images/SpinEnabled.png'
import SpinPicDisabled from '../../images/SpinDisabled.png' import SpinPicDisabled from '../../images/SpinDisabled.png'
import { PeriodPicker, defaultPeriod } from '../../components/PeriodPicker'
import '../../styles/message.css' import '../../styles/message.css'
import { makeDateSorter } from '../../components/Table'
const { Option } = Select const { Option } = Select
@ -398,7 +398,7 @@ export default function TelemetryView({ idWell }) {
data={dataSaub} data={dataSaub}
flowChartData={flowChartData} flowChartData={flowChartData}
lineGroup={group} lineGroup={group}
interval={chartInterval} interval={chartInterval * 1000}
headerHeight={'50px'} headerHeight={'50px'}
showBorder={getIndexOfDrillingBy(dataSaub) === index} showBorder={getIndexOfDrillingBy(dataSaub) === index}
/> />

View File

@ -7,6 +7,7 @@ export { OpenAPI } from './core/OpenAPI';
export type { AuthDto } from './models/AuthDto'; export type { AuthDto } from './models/AuthDto';
export type { ClusterDto } from './models/ClusterDto'; export type { ClusterDto } from './models/ClusterDto';
export type { ClusterDtoPaginationContainer } from './models/ClusterDtoPaginationContainer'; export type { ClusterDtoPaginationContainer } from './models/ClusterDtoPaginationContainer';
export type { ClusterRopStatDto } from './models/ClusterRopStatDto';
export type { CompanyDto } from './models/CompanyDto'; export type { CompanyDto } from './models/CompanyDto';
export type { CompanyDtoPaginationContainer } from './models/CompanyDtoPaginationContainer'; export type { CompanyDtoPaginationContainer } from './models/CompanyDtoPaginationContainer';
export type { DatesRangeDto } from './models/DatesRangeDto'; export type { DatesRangeDto } from './models/DatesRangeDto';
@ -36,6 +37,7 @@ export type { TelemetryMessageDto } from './models/TelemetryMessageDto';
export type { TelemetryOperationDto } from './models/TelemetryOperationDto'; export type { TelemetryOperationDto } from './models/TelemetryOperationDto';
export type { TelemetryOperationDtoPaginationContainer } from './models/TelemetryOperationDtoPaginationContainer'; export type { TelemetryOperationDtoPaginationContainer } from './models/TelemetryOperationDtoPaginationContainer';
export type { TelemetryOperationDurationDto } from './models/TelemetryOperationDurationDto'; export type { TelemetryOperationDurationDto } from './models/TelemetryOperationDurationDto';
export type { TelemetryTimeZoneDto } from './models/TelemetryTimeZoneDto';
export type { TelemetryUserDto } from './models/TelemetryUserDto'; export type { TelemetryUserDto } from './models/TelemetryUserDto';
export type { UserDto } from './models/UserDto'; export type { UserDto } from './models/UserDto';
export type { UserDtoPaginationContainer } from './models/UserDtoPaginationContainer'; export type { UserDtoPaginationContainer } from './models/UserDtoPaginationContainer';
@ -61,6 +63,7 @@ export { AdminUserRoleService } from './services/AdminUserRoleService';
export { AdminUserService } from './services/AdminUserService'; export { AdminUserService } from './services/AdminUserService';
export { AdminWellService } from './services/AdminWellService'; export { AdminWellService } from './services/AdminWellService';
export { AuthService } from './services/AuthService'; export { AuthService } from './services/AuthService';
export { ClusterOperationStatService } from './services/ClusterOperationStatService';
export { ClusterService } from './services/ClusterService'; export { ClusterService } from './services/ClusterService';
export { DepositService } from './services/DepositService'; export { DepositService } from './services/DepositService';
export { DrillFlowChartService } from './services/DrillFlowChartService'; export { DrillFlowChartService } from './services/DrillFlowChartService';

View File

@ -0,0 +1,8 @@
/* istanbul ignore file */
/* tslint:disable */
/* eslint-disable */
export type ClusterRopStatDto = {
ropMax?: number;
ropAverage?: number;
}

View File

@ -0,0 +1,9 @@
/* istanbul ignore file */
/* tslint:disable */
/* eslint-disable */
export type TelemetryTimeZoneDto = {
hours?: number;
timeZoneId?: string | null;
isOverride?: boolean;
}

View File

@ -0,0 +1,25 @@
/* istanbul ignore file */
/* tslint:disable */
/* eslint-disable */
import type { ClusterRopStatDto } from '../models/ClusterRopStatDto';
import { request as __request } from '../core/request';
export class ClusterOperationStatService {
/**
* Формирует данные по среднему и максимальному МСП на кусту
* @param idWell id скважины с данного куста (через нее будут полуены данные)
* @returns ClusterRopStatDto Success
* @throws ApiError
*/
public static async getClusterRopStat(
idWell: number,
): Promise<ClusterRopStatDto> {
const result = await __request({
method: 'GET',
path: `/api/cluster/${idWell}/ropStat`,
});
return result.body;
}
}

View File

@ -16,6 +16,7 @@ export class MessageService {
* @param begin дата начала * @param begin дата начала
* @param end окончание * @param end окончание
* @param searchString Строка поиска * @param searchString Строка поиска
* @param isUtc Даты в формате UTC или часового пояса скважины
* @returns MessageDtoPaginationContainer Success * @returns MessageDtoPaginationContainer Success
* @throws ApiError * @throws ApiError
*/ */
@ -27,6 +28,7 @@ export class MessageService {
begin?: string, begin?: string,
end?: string, end?: string,
searchString?: string, searchString?: string,
isUtc: boolean = true,
): Promise<MessageDtoPaginationContainer> { ): Promise<MessageDtoPaginationContainer> {
const result = await __request({ const result = await __request({
method: 'GET', method: 'GET',
@ -38,6 +40,7 @@ export class MessageService {
'begin': begin, 'begin': begin,
'end': end, 'end': end,
'searchString': searchString, 'searchString': searchString,
'isUtc': isUtc,
}, },
}); });
return result.body; return result.body;
@ -46,15 +49,20 @@ export class MessageService {
/** /**
* Выдает список сообщений по скважине * Выдает список сообщений по скважине
* @param idWell id скважины * @param idWell id скважины
* @param isUtc Смена дат с UTC формата на часовой пояс скважины
* @returns DatesRangeDto Success * @returns DatesRangeDto Success
* @throws ApiError * @throws ApiError
*/ */
public static async getMessagesDateRange( public static async getMessagesDateRange(
idWell: number, idWell: number,
isUtc: boolean = true,
): Promise<DatesRangeDto> { ): Promise<DatesRangeDto> {
const result = await __request({ const result = await __request({
method: 'GET', method: 'GET',
path: `/api/well/${idWell}/message/datesRange`, path: `/api/well/${idWell}/message/datesRange`,
query: {
'isUtc': isUtc,
},
}); });
return result.body; return result.body;
} }

View File

@ -117,15 +117,20 @@ export class ReportService {
/** /**
* Возвращает даты самого старого и самого свежего отчетов в БД * Возвращает даты самого старого и самого свежего отчетов в БД
* @param idWell id скважины * @param idWell id скважины
* @param isUtc Смена дат с UTC формата на часовой пояс скважины
* @returns DatesRangeDto Success * @returns DatesRangeDto Success
* @throws ApiError * @throws ApiError
*/ */
public static async getReportsDateRange( public static async getReportsDateRange(
idWell: number, idWell: number,
isUtc: boolean = true,
): Promise<DatesRangeDto> { ): Promise<DatesRangeDto> {
const result = await __request({ const result = await __request({
method: 'GET', method: 'GET',
path: `/api/well/${idWell}/report/datesRange`, path: `/api/well/${idWell}/report/datesRange`,
query: {
'isUtc': isUtc,
},
}); });
return result.body; return result.body;
} }

View File

@ -134,15 +134,20 @@ export class TelemetryAnalyticsService {
/** /**
* Возвращает даты первой и последней операций на скважине * Возвращает даты первой и последней операций на скважине
* @param idWell id скважины * @param idWell id скважины
* @param isUtc Смена дат с UTC формата на часовой пояс скважины
* @returns DatesRangeDto Success * @returns DatesRangeDto Success
* @throws ApiError * @throws ApiError
*/ */
public static async getOperationsDateRange( public static async getOperationsDateRange(
idWell: number, idWell: number,
isUtc: boolean = true,
): Promise<DatesRangeDto> { ): Promise<DatesRangeDto> {
const result = await __request({ const result = await __request({
method: 'GET', method: 'GET',
path: `/api/well/${idWell}/telemetryAnalytics/datesRange`, path: `/api/well/${idWell}/telemetryAnalytics/datesRange`,
query: {
'isUtc': isUtc,
},
}); });
return result.body; return result.body;
} }

View File

@ -33,6 +33,7 @@ export class TelemetryDataSaubService {
* @param begin дата начала выборки. По умолчанию: текущее время - intervalSec * @param begin дата начала выборки. По умолчанию: текущее время - intervalSec
* @param intervalSec интервал времени даты начала выборки, секунды * @param intervalSec интервал времени даты начала выборки, секунды
* @param approxPointsCount желаемое количество точек. Если в выборке точек будет больше, то выборка будет прорежена. * @param approxPointsCount желаемое количество точек. Если в выборке точек будет больше, то выборка будет прорежена.
* @param isUtc Даты в формате UTC или часового пояса скважины
* @returns TelemetryDataSaubDto Success * @returns TelemetryDataSaubDto Success
* @throws ApiError * @throws ApiError
*/ */
@ -41,6 +42,7 @@ export class TelemetryDataSaubService {
begin?: string, begin?: string,
intervalSec: number = 600, intervalSec: number = 600,
approxPointsCount: number = 1024, approxPointsCount: number = 1024,
isUtc: boolean = false,
): Promise<TelemetryDataSaubDto> { ): Promise<TelemetryDataSaubDto> {
const result = await __request({ const result = await __request({
method: 'GET', method: 'GET',
@ -49,6 +51,7 @@ export class TelemetryDataSaubService {
'begin': begin, 'begin': begin,
'intervalSec': intervalSec, 'intervalSec': intervalSec,
'approxPointsCount': approxPointsCount, 'approxPointsCount': approxPointsCount,
'isUtc': isUtc,
}, },
}); });
return result.body; return result.body;
@ -57,15 +60,20 @@ export class TelemetryDataSaubService {
/** /**
* Возвращает диапазон дат сохраненных данных. * Возвращает диапазон дат сохраненных данных.
* @param idWell id скважины * @param idWell id скважины
* @param isUtc Смена дат с UTC формата на часовой пояс скважины
* @returns DatesRangeDto Success * @returns DatesRangeDto Success
* @throws ApiError * @throws ApiError
*/ */
public static async getDataDatesRange( public static async getDataDatesRange(
idWell: number, idWell: number,
isUtc: boolean = false,
): Promise<DatesRangeDto> { ): Promise<DatesRangeDto> {
const result = await __request({ const result = await __request({
method: 'GET', method: 'GET',
path: `/api/TelemetryDataSaub/${idWell}/datesRange`, path: `/api/TelemetryDataSaub/${idWell}/datesRange`,
query: {
'isUtc': isUtc,
},
}); });
return result.body; return result.body;
} }

View File

@ -33,6 +33,7 @@ export class TelemetryDataSpinService {
* @param begin дата начала выборки. По умолчанию: текущее время - intervalSec * @param begin дата начала выборки. По умолчанию: текущее время - intervalSec
* @param intervalSec интервал времени даты начала выборки, секунды * @param intervalSec интервал времени даты начала выборки, секунды
* @param approxPointsCount желаемое количество точек. Если в выборке точек будет больше, то выборка будет прорежена. * @param approxPointsCount желаемое количество точек. Если в выборке точек будет больше, то выборка будет прорежена.
* @param isUtc Даты в формате UTC или часового пояса скважины
* @returns TelemetryDataSpinDto Success * @returns TelemetryDataSpinDto Success
* @throws ApiError * @throws ApiError
*/ */
@ -41,6 +42,7 @@ export class TelemetryDataSpinService {
begin?: string, begin?: string,
intervalSec: number = 600, intervalSec: number = 600,
approxPointsCount: number = 1024, approxPointsCount: number = 1024,
isUtc: boolean = false,
): Promise<TelemetryDataSpinDto> { ): Promise<TelemetryDataSpinDto> {
const result = await __request({ const result = await __request({
method: 'GET', method: 'GET',
@ -49,6 +51,7 @@ export class TelemetryDataSpinService {
'begin': begin, 'begin': begin,
'intervalSec': intervalSec, 'intervalSec': intervalSec,
'approxPointsCount': approxPointsCount, 'approxPointsCount': approxPointsCount,
'isUtc': isUtc,
}, },
}); });
return result.body; return result.body;
@ -57,15 +60,20 @@ export class TelemetryDataSpinService {
/** /**
* Возвращает диапазон дат сохраненных данных. * Возвращает диапазон дат сохраненных данных.
* @param idWell id скважины * @param idWell id скважины
* @param isUtc Смена дат с UTC формата на часовой пояс скважины
* @returns DatesRangeDto Success * @returns DatesRangeDto Success
* @throws ApiError * @throws ApiError
*/ */
public static async getDataDatesRange( public static async getDataDatesRange(
idWell: number, idWell: number,
isUtc: boolean = false,
): Promise<DatesRangeDto> { ): Promise<DatesRangeDto> {
const result = await __request({ const result = await __request({
method: 'GET', method: 'GET',
path: `/api/TelemetryDataSpin/${idWell}/datesRange`, path: `/api/TelemetryDataSpin/${idWell}/datesRange`,
query: {
'isUtc': isUtc,
},
}); });
return result.body; return result.body;
} }

View File

@ -4,6 +4,7 @@
import type { EventDto } from '../models/EventDto'; import type { EventDto } from '../models/EventDto';
import type { TelemetryInfoDto } from '../models/TelemetryInfoDto'; import type { TelemetryInfoDto } from '../models/TelemetryInfoDto';
import type { TelemetryMessageDto } from '../models/TelemetryMessageDto'; import type { TelemetryMessageDto } from '../models/TelemetryMessageDto';
import type { TelemetryTimeZoneDto } from '../models/TelemetryTimeZoneDto';
import type { TelemetryUserDto } from '../models/TelemetryUserDto'; import type { TelemetryUserDto } from '../models/TelemetryUserDto';
import { request as __request } from '../core/request'; import { request as __request } from '../core/request';
@ -12,7 +13,7 @@ export class TelemetryService {
/** /**
* Принимает общую информацию по скважине * Принимает общую информацию по скважине
* @param uid Уникальный идентификатор отправителя * @param uid Уникальный идентификатор отправителя
* @param requestBody нформация об отправителе * @param requestBody Информация об отправителе
* @returns any Success * @returns any Success
* @throws ApiError * @throws ApiError
*/ */
@ -28,6 +29,25 @@ export class TelemetryService {
return result.body; return result.body;
} }
/**
* Обновляет часовой пояс скважины
* @param uid Уникальный идентификатор отправителя
* @param requestBody Информация о часовом поясе
* @returns any Success
* @throws ApiError
*/
public static async updateTimeZone(
uid: string,
requestBody?: TelemetryTimeZoneDto,
): Promise<any> {
const result = await __request({
method: 'POST',
path: `/api/telemetry/${uid}/timeZone`,
body: requestBody,
});
return result.body;
}
/** /**
* Принимает список новых сообщений от телеметрии * Принимает список новых сообщений от телеметрии
* @param uid Уникальный идентификатор отправителя * @param uid Уникальный идентификатор отправителя