Наполнение справочников
Содержание
Опции спискового отображения
{
"sort": [
{
"selector": "name",
"desc": false
}
],
"filter": [
[
"sortOrder",
"=",
123
],
"and",
[
[
[
"reasonCategory",
"=",
1
]
]
Параметры и их описание:
RequireTotalCount - Возвращать ли общее количество записей, результат в зависимости от значения:
{ data: <массив данных>, totalCount: <число-общее количество записей>} или
Skip - сколько сначала записей пропустить (используется для постраничного вывода)
Take - сколько записей вернуть
Sort - параметры сортировки в виде массива:
SearchOperation - принимает значение "contains". на текущий момент другие значения параметра не поддерживаются. Используется совместно с SearchValue и SearchExpr для множественного поиска по вхождению строки в строку по одному или нескольким полям записи.
SearchValue - одно или несколько строковых значений для поиска, разделенных знаками пробела, например: "строка1" или "строка1 строка2 строка3"
SearchExpr - поле/поля, в которых будет производиться поиск строки/строк по вхождению:
"field" - одно поле
["field1", "field2", ...] - несколько полей
DataField - не используется
{selector: "category", - наименование поля для сортировки desc: false - порядок сортировки по возрастанию/убыванию }, - сортировка №1
{selector: "name", desc: false} - сортировка №2
Filter - фильтр записей в виде массива фильтров:
[
[
"name", - наименование поля фильтрации
"contains", - операция фильтра:
contains - содержит
notcontains - не содержит
startswith - начинается с
endswith - заканчивается на
= - равно
<> - не рвано
"программа" - значение фильтра
],
"and", - тип соединения условий фильтра: and/or
["category", "startswith", "категория"]]
Справочники
| № | Справочник | Наименование справочника в API |
|---|---|---|
| 1 | 3D-модели рабочих центров | ReferenceBookOfThreeDModel |
| 2 | Анализ циклов | ReferenceBookOfCycleAnalize |
| 3 | Бригады | ReferenceBookOfBrigade |
| 4 | Группы рабочих центров | ReferenceBookOfGroupOfWorkingCenters |
| 5 | Диапазоны значений | ValueRange |
| 6 | Должности | ReferenceBookOfPositions |
| 7 | Имена смен | ShiftName |
| 8 | Метатеги УП | ReferenceBookOfControlProgramTag |
| 9 | Недопроизводство | UnderproductionReason |
| 10 | Обработки | ReferenceBookOfControlProgramProcessingType |
| 11 | Отклонения | ReferenceBookReasonsOfOvertime |
| 12 | Приостановки/Пропуски | OperationRunSuspendReason |
| 13 | Простои | ReferenceBookReasonsOfDowntime |
| 15 | Типы изделий | ReferenceBookOfProductType |
| 16 | Типы причин простоя | ReferenceBookOfDowntimeReasonType |
| 17 | Типы программ | ReferenceBookOfControlProgramType |
| 18 | Шаблоны расписаний | ScheduleTemplate |
| 19 | Шаблоны сообщений | MessageTemplate |
Другие метаданные
| № | Наименование | Наименование справочника в API |
|---|---|---|
| 1 | Изделия | (ReferenceBookOfProducts) |
| 2 | УП | (ReferenceBookOfControlPrograms) |
| 3 | Подпрограммы | (ReferenceBookOfSubprograms) |
| 4 | Группа тикета | (TicketGroup) |
| 5 | Источник тикета | (TicketSource) |
| 6 | Тип тикета | (TicketType) |
| 7 | Фильтр тикета | (TicketFilter) |
| 8 | Оповещение тикета | (TicketNotification) |
Работа со структурой предприятия
Получение информации о конкретном предприятии
api/dpaEnterpriseStrusture/getEnterprise/{id} api/ManageEnterpriseStructure/getEnterprise/{id}
Получение информации о конкретном цехе
api/dpaEnterpriseStrusture/getSite/{id} api/ManageEnterpriseStructure/getSite/{id}
Получение информации о конкретном подразделении
api/dpaEnterpriseStrusture/getDepartment/{id} api/ManageEnterpriseStructure/getDepartment/{id}>
Получение информации о конкретном рабочем центре
api/dpaEnterpriseStrusture/getEquipment/{id} api/ManageEnterpriseStructure/getEquipment/{id}
Создание предприятия
api/dpaEnterpriseStrusture/create api/ManageEnterpriseStructure/create
POST {
"name": "Предприятие", - наименование
"description": "Описание строкой", - описание
}
Cохранение информации о предприятии
api/dpaEnterpriseStrusture/saveEnterprise api/ManageEnterpriseStructure/saveEnterprise
POST {
"id": 348, - идентификатор
"name": "Предприятие", - наименование
"description": "Описание строкой", - описание // Настройки безопасности общие для всех структурных единиц: Предприятия/Цех/Подразделение/Рабочий центр - поэтому в остальных запросах описание пропущено
"inherit": false, - признак наследуемости настроек безопасности (не используется для предприятия)
"groupIds": [], - идентификаторы групп безопасности, которым будет доступен просмотр структурной единицы (в случае, если настройки не наследуются)
"availableToAll": true, - признак доступности всем группам безопасности (в случае, если настройки не наследуются)
}
Создание цеха
api/dpaEnterpriseStrusture/createSite api/ManageEnterpriseStructure/createSite
POST {
"name": "Цех №1", - наименование
"description": "Описание строкой", - описание
"enterpriseId": 123456 - идентификатор родительского предприятия
}
Сохранение информации о цехе
api/dpaEnterpriseStrusture/saveSite api/ManageEnterpriseStructure/saveSite
POST {
"id": 21, - идентификатор
"name": "Цех №1", - наименование
"description": "Описание строкой", - описание
"inherit": true,
"groupIds": [],
"availableToAll": false,
}
Создание подразделения
api/dpaEnterpriseStrusture/createDepartment api/ManageEnterpriseStructure/createDepartment
POST {
"name": "Подразделение №1", - наименование
"description": "Описание строкой", - описание
"siteId": 123456 - идентификатор родительского цеха
"ownerDepartmentId": 123456 - идентификатор родительского подразделения (не указывается если родителем является цех)
}
Сохранение информации о подразделении
api/dpaEnterpriseStrusture/saveDepartment api/ManageEnterpriseStructure/saveDepartment
POST {
"id": 22, - идентификатор
"name": "Подразделение Alpha", - наименование
"description": "описание", - описание
"threeDModelId": 50253885, - идентификатор привязанной 3D-модели подразделения
"inherit": true,
"groupIds": [],
"availableToAll": false,
}
Cоздание РЦ
api/dpaEnterpriseStrusture/createEquipment api/ManageEnterpriseStructure/createEquipment
POST {
"departmentId": 56539853, - идентификатор родительского подразделения
"name": "Alpha 700-IST-1", - наименование
"description": "описание", - описание
"equipmentGroupIds": [], - идентификаторы групп РЦ, в которые входи РЦ
"driverIdentifier": "68f6e95d-fa95-4dd6-a670-3f4181a693ab", - идентификатор драйвера, к которому привязан РЦ
"serverId": 23, - идентификатор сервера DPA, к которому привязан РЦ
}
Cохранение информации о РЦ
api/dpaEnterpriseStrusture/saveEquipment api/ManageEnterpriseStructure/saveEquipment
POST {
"id": 26, - идентификатор
"name": "Alpha 700-IST-1", - наименование
"model": "модель рабочего центра", - наименование модели
"inventoryNumber": "ITX-111", - инвентарный номер
"description": "", - описание
"equipmentGroupIds": [], - идентификаторы групп РЦ, в которые входи РЦ
"driverIdentifier": "68f6e95d-fa95-4dd6-a670-3f4181a693ab", - идентификатор драйвера, к которому привязан РЦ
"serverId": 23, - идентификатор сервера DPA, к которому привязан РЦ
"mainChannel": 0, - номер основного канала драйвера
"channelInfoList": [ - информация о каналах драйвера
{ "channelNumber": 0, - номер канала "isUsedInSummaryState": true - учавствует ли канал в формировании состояния РЦ }
,
{ "channelNumber": 1, "isUsedInSummaryState": false }
],
"releaseCountingType": 0, - тип подсчета выпуска (0-по нормам УП; 1-по счётчику; 2-без выпуска)
"counterIncrementType": 0, - тип инкрементации счетчика (0-инкрементация на разницу значений счетчика; 1-инкрементация на единицу)
"releaseDiscreteness": 1, - дискретность выпуска по счётчику
"normativeReleaseDiscreteness": 1, - дискретность выпуска по норме
"releaseQualityMark": 0, - отметка качества(0-условно-годные; 1-годные; 2-брак)
"masterMustComfirmIncompleteJobClose": true, - Мастер должен подтверждать закрытие задания с недопроизводством или перепроизводством
"masterMustComfirmDisorderedJobStart": true, - Мастер должен подтверждать запуск задания не по порядку и пропуск задания
"allowMultipleTasksSimultaneously": true, - разрешить запуск нескольких заданий одновременно
"prohibitedJobStartWhenAnotherJobIsSuspended": false, - Запретить запуск задания, если другое задание стоит на паузе
"allowMultiplePersonalShifts": true, - Разрешить открытие больше одной смены оператора одновременно
"useMachineStatisticsOutput": true, - Использовать выпуск по по машинным данным
"parseNcDataType": 1, - тип определения УП (0-отключено; 1-по имени УП; 2-по метатегам УП)
"threeDModelId": 25, - идентификатор 3D-модели
"inherit": false,
"groupIds": [ 5 ],
"availableToAll": false,
}
Шаблоны расписаний
[POST] /api/schedule/saveScheduleTemplateRecord пример недельного шаблона расписания: {
"id": -1, - идентификатор шаблона (-1 для создания нового) "name": "наименование шаблона расписания", - наименование "templateType": 2, - тип шаблона (1-дневной; 2-недельный) "intervals": [ - коллекция интервалов, описывающих расписание
{ "shiftId": 641, - идентификатор имени смены "start": "00.00:00:00", - время начала интервала (смещение от начала недели, т.е. от понедельника 00:00) "end": "00.04:10:00" - время окончания интервала // время начала и окончания интервала передается в разрезе дней. В случае если смена переходит из одного дня в другой, необходимо передать два интервала - для первого дня и для второго. // интервалы времени должны передаваться в хронологическом порядке. } ,
{ "shiftId": 642, "start": "00.04:10:00", "end": "00.09:20:00" },
{ "shiftId": 641, "start": "00.09:20:00", "end": "01.00:00:00" },
{ "shiftId": 641, "start": "01.00:00:00", "end": "01.07:30:00" },
{ "shiftId": 643, "start": "01.07:30:00", "end": "01.13:40:00" },
{ "shiftId": 641, "start": "01.13:40:00", "end": "02.00:00:00" },
{ "shiftId": 641, "start": "02.00:00:00", "end": "02.04:30:00" },
{ "shiftId": 644, "start": "02.04:30:00", "end": "02.11:50:00" },
{ "shiftId": 641, "start": "02.11:50:00", "end": "02.14:20:00" },
{ "shiftId": 53144555, "start": "02.14:20:00", "end": "02.21:10:00" },
{ "shiftId": 641, "start": "02.21:10:00", "end": "03.00:00:00" },
{ "shiftId": 641, "start": "03.00:00:00", "end": "04.00:00:00" },
{ "shiftId": 641, "start": "04.00:00:00", "end": "05.00:00:00" },
{ "shiftId": 641, "start": "05.00:00:00", "end": "06.00:00:00" },
{ "shiftId": 641, "start": "06.00:00:00", "end": "07.00:00:00" }
]
}
Дополнительно к расписанию
Отвязка структурной единицы от родительского расписания:
[POST] api/schedule/detachScheduleFromParent/{scheduleOwnerType}/{scheduleOwnerId}
где:
scheduleOwnerType - тип структурной единицы открепляемой от родительского расписания (1-РЦ; 2-подразделение; 3-цех; 5-предприятие)
scheduleOwnerId - идентификатор структурной единицы
при отвязке от родительского расписания для структурной единицы содается собственное расписание и далее работа производится уже с ним
Приявязка структурной единицы к родительскому расписанию:
[POST] api/schedule/attachScheduleToParent/{scheduleOwnerType}/{scheduleOwnerId}
где:
scheduleOwnerType - тип структурной единицы прикрепляемой к родительскому расписанию (1-РЦ; 2-подразделение; 3-цех; 5-предприятие)
scheduleOwnerId - идентификатор структурной единицы
при привязке к родительскому расписанию происходит удаление собственного расписания работы структурной единицы
Применения шаблона расписания к расписанию структурной единицы:
[POST] api/schedule/applyScheduleTemplateToSchedule/{scheduleOwnerType}/{scheduleOwnerId}/{scheduleTemplateId}
где:
scheduleOwnerType - тип структурной единицы (1-РЦ; 2-подразделение; 3-цех; 5-предприятие) scheduleOwnerId - идентификатор структурной единицы scheduleTemplateId - идентификатор шаблона расписания
тело метода:
{
"start": "2022-07-03T19:00:00.000Z", - начало периода, на который применяется шаблон расписания
"end": "2022-07-10T19:00:00.000Z" - окончание периода, на который применяется шаблон расписания }
Получение информации по простоям
Журнал простоев
[POST] http://dpadev/api/journals/getJournalDatas/DowntimeReason
Тело:
{
"dateTimeFrom": "2022-07-10T21:00:00.000Z", - время начала периода
"dateTimeUntil": "2022-07-11T20:59:59.999Z", - время окончания периода
"itemIds": [1, 2, 3], - список идентификаторов оборудования
"gridOptions": { - опции спискового отображения (описание есть в вопрос №1)
"requireTotalCount": true,
"skip": 0,
"take": 20,
"sort": [
{ "selector": "startDate", "desc": true }
]
}
}
Возращаемая структура данных:
[
{
"downtimeInfo": "Delta UQ-3",
"startDate": "2022-07-11T08:13:49.1990938+00:00", - начало периода причины простоя
"endDate": "2022-07-11T08:13:49.6935685+00:00", - окончание периода причины простоя
"status": 2, - статус простоя (1-необработанный;2-обработанный)
"reason": "Перерыв между сменами", - наименование причины простоя
"timeStamp": "2022-07-11T11:13:52.477789+03:00", - время последней классификации периода простоя
"operatorComment": null, - комментарий причины простоя
"user": "Пользоватль 123", - имя пользователя классифицировашего период простоя
"id": 356166430, - идентификатор периода причины простоя
"createdOn": "2022-07-11T08:13:52.477789+03:00", - время создания периода причины простоя
"createdBy": 1 - идентификатор пользователя создавшего период причины простоя }
]
Работа с пользователями
Добавление/удаление пользователей в/из группы
[POST] api/securityManagment/subjectInheritance/{userId}
где: userId - идентификатор пользователя
тело:
{ "added": [1, 2, 3], - список идентификаторов добавляемых пользователю групп
"removed": [4, 5, 6] - список идентификаторов удаляемых у пользователя групп }
Получение списка пользователей:
[POST] api/security/userRecords
тело:
{ - опции спискового отображения (описание есть в вопрос №1) "sort": null, "requireTotalCount": true, "searchOperation": "contains", "searchValue": null, "skip": 0, "take": 20, }
Возращаемая структура данных:
{
totalCount: 10,
data:[
{
"personnelNumber": "1378698466", - табельный номер
"positionName": null, - наименование занимаемой должности
"positionId": null, - идентификатор занимаемой должности
"isSystemUser": false, - признак того, что пользователь системный
"surname": "Виноградов", - фамилия
"name": "Михаил", - имя
"patronymic": "Сергеевич", - отчество
"language": "ru-RU", - текущая локализация
"blocked": false, - признак заблокированности
"id": 2689, - идентификатор пользователя
"displayName": "Виноградов М.С." - отображаемое имя }
Получение списка групп:
[POST] api/security/groupRecords
{ - опции спискового отображения
"sort": null,
"requireTotalCount": true,
"searchOperation": "contains",
"searchValue": null,
"skip": 0,
"take": 20, }
Возвращаемая структура данных:
{
totalCount: 30,
data:[
{
"name": "Операторы", - наименование
"description": null, - описание
"id": 2, - идентификатор
"displayName": "Операторы" - отображаемое наименование }
Работа с заданиями
Получение списка заданий:
[POST] api/jobs/getJobDatas
{ - опции спискового отображения (описание есть в вопрос №1)
"requireTotalCount": true,
"skip": 0,
"take": 20,
"sort": [ { "selector": "startDate", "desc": true } ]
}