=Опции спискового отображения=
<pre>
{
"sort": [
{
"selector": "name",
"desc": false
}
],
"filter": [
[
"sortOrder",
"=",
123
],
"and",
[
[
[
"reasonCategory",
"=",
1
]
]
</pre>
Параметры и их описание:
''RequireTotalCount''' - Возвращать ли общее количество записей, результат в зависимости от значения:<br> { data: <массив данных>, totalCount: <число-общее количество записей>} или
''Skip'' - сколько сначала записей пропустить (используется для постраничного вывода)<br>
''Take'' - сколько записей вернуть <br>
''Sort'' - параметры сортировки в виде массива: <br>
''SearchOperation'' - принимает значение "contains". на текущий момент другие значения параметра не поддерживаются. Используется совместно с SearchValue и ''SearchExpr'' для множественного поиска по вхождению строки в строку по одному или нескольким полям записи.
''SearchValue'' - одно или несколько строковых значений для поиска, разделенных знаками пробела, например: "строка1" или "строка1 строка2 строка3"
''SearchExpr'' - поле/поля, в которых будет производиться поиск строки/строк по вхождению: <br>
<pre>
"field" - одно поле
["field1", "field2", ...] - несколько полей
</pre>
''DataField'' - не используется
<pre>
{selector: "category", - наименование поля для сортировки desc: false - порядок сортировки по возрастанию/убыванию }, - сортировка №1
{selector: "name", desc: false} - сортировка №2
</pre>
Filter - фильтр записей в виде массива фильтров:
<pre> [
[
"name", - наименование поля фильтрации
"contains", - операция фильтра:
contains - содержит
notcontains - не содержит
startswith - начинается с
endswith - заканчивается на
= - равно
<> - не рвано
"программа" - значение фильтра
],
"and", - тип соединения условий фильтра: and/or
["category", "startswith", "категория"]]
</pre>
=Справочники=
{| class="wikitable"
|-
!№ !! Справочник!! Наименование справочника в 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
|}
=Другие метаданные=
{| class="wikitable"
|-
!№ !!Наименование!!Наименование справочника в API
|-
|1||Изделия||(ReferenceBookOfProducts)
|-
|2||УП||(ReferenceBookOfControlPrograms)
|-
|3||Подпрограммы||(ReferenceBookOfSubprograms)
|-
|4||Группа тикета||(TicketGroup)
|-
|5||Источник тикета||(TicketSource)
|-
|6||Тип тикета||(TicketType)
|-
|7||Фильтр тикета||(TicketFilter)
|-
||8||Оповещение тикета||(TicketNotification)
|}
=Работа со структурой предприятия=
'''Получение информации о конкретном предприятии
<pre> api/dpaEnterpriseStrusture/getEnterprise/{id} api/ManageEnterpriseStructure/getEnterprise/{id} </pre>
'''Получение информации о конкретном цехе
<pre> api/dpaEnterpriseStrusture/getSite/{id} api/ManageEnterpriseStructure/getSite/{id}</pre>
'''Получение информации о конкретном подразделении
<pre> api/dpaEnterpriseStrusture/getDepartment/{id} api/ManageEnterpriseStructure/getDepartment/{id}></pre>
'''Получение информации о конкретном рабочем центре
<pre> api/dpaEnterpriseStrusture/getEquipment/{id} api/ManageEnterpriseStructure/getEquipment/{id}</pre>
'''Создание предприятия
<pre> api/dpaEnterpriseStrusture/create api/ManageEnterpriseStructure/create
POST {
"name": "Предприятие", - наименование
"description": "Описание строкой", - описание
} </pre>
'''Cохранение информации о предприятии
<pre> api/dpaEnterpriseStrusture/saveEnterprise api/ManageEnterpriseStructure/saveEnterprise
POST {
"id": 348, - идентификатор
"name": "Предприятие", - наименование
"description": "Описание строкой", - описание // Настройки безопасности общие для всех структурных единиц: Предприятия/Цех/Подразделение/Рабочий центр - поэтому в остальных запросах описание пропущено
"inherit": false, - признак наследуемости настроек безопасности (не используется для предприятия)
"groupIds": [], - идентификаторы групп безопасности, которым будет доступен просмотр структурной единицы (в случае, если настройки не наследуются)
"availableToAll": true, - признак доступности всем группам безопасности (в случае, если настройки не наследуются)
} </pre>
'''Создание цеха
<pre> api/dpaEnterpriseStrusture/createSite api/ManageEnterpriseStructure/createSite
POST {
"name": "Цех №1", - наименование
"description": "Описание строкой", - описание
"enterpriseId": 123456 - идентификатор родительского предприятия
}
</pre>
'''Сохранение информации о цехе
<pre>api/dpaEnterpriseStrusture/saveSite api/ManageEnterpriseStructure/saveSite
POST {
"id": 21, - идентификатор
"name": "Цех №1", - наименование
"description": "Описание строкой", - описание
"inherit": true,
"groupIds": [],
"availableToAll": false,
}</pre>
'''Создание подразделения
<pre> api/dpaEnterpriseStrusture/createDepartment api/ManageEnterpriseStructure/createDepartment
POST {
"name": "Подразделение №1", - наименование
"description": "Описание строкой", - описание
"siteId": 123456 - идентификатор родительского цеха
"ownerDepartmentId": 123456 - идентификатор родительского подразделения (не указывается если родителем является цех)
} </pre>
'''Сохранение информации о подразделении
<pre> api/dpaEnterpriseStrusture/saveDepartment api/ManageEnterpriseStructure/saveDepartment
POST {
"id": 22, - идентификатор
"name": "Подразделение Alpha", - наименование
"description": "описание", - описание
"threeDModelId": 50253885, - идентификатор привязанной 3D-модели подразделения
"inherit": true,
"groupIds": [],
"availableToAll": false,
} </pre>
'''Cоздание РЦ
<pre> 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, к которому привязан РЦ
} </pre>
'''Cохранение информации о РЦ
<pre> 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,
}
</pre>
=Шаблоны расписаний=
[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" }
]
}
==Дополнительно к расписанию==
'''Отвязка структурной единицы от родительского расписания:
<pre>
[POST] api/schedule/detachScheduleFromParent/{scheduleOwnerType}/{scheduleOwnerId}
где:
scheduleOwnerType - тип структурной единицы открепляемой от родительского расписания (1-РЦ; 2-подразделение; 3-цех; 5-предприятие)
scheduleOwnerId - идентификатор структурной единицы </pre>
при отвязке от родительского расписания для структурной единицы содается собственное расписание и далее работа производится уже с ним
'''Приявязка структурной единицы к родительскому расписанию:'''
<pre> [POST] api/schedule/attachScheduleToParent/{scheduleOwnerType}/{scheduleOwnerId}
где:
scheduleOwnerType - тип структурной единицы прикрепляемой к родительскому расписанию (1-РЦ; 2-подразделение; 3-цех; 5-предприятие)
scheduleOwnerId - идентификатор структурной единицы </pre>
при привязке к родительскому расписанию происходит удаление собственного расписания работы структурной единицы
'''Применения шаблона расписания к расписанию структурной единицы:
<pre> [POST] api/schedule/applyScheduleTemplateToSchedule/{scheduleOwnerType}/{scheduleOwnerId}/{scheduleTemplateId}</pre>
где:
scheduleOwnerType - тип структурной единицы (1-РЦ; 2-подразделение; 3-цех; 5-предприятие)
scheduleOwnerId - идентификатор структурной единицы
scheduleTemplateId - идентификатор шаблона расписания
тело метода:
<pre>{
"start": "2022-07-03T19:00:00.000Z", - начало периода, на который применяется шаблон расписания
"end": "2022-07-10T19:00:00.000Z" - окончание периода, на который применяется шаблон расписания } </pre>
=Получение информации по простоям=
'''Журнал простоев
<pre> [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 }
]
}
}
</pre>
Возращаемая структура данных:
<pre> [
{
"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 - идентификатор пользователя создавшего период причины простоя }
]
</pre>
=Работа с пользователями=
'''Добавление/удаление пользователей в/из группы'''
<pre> [POST] api/securityManagment/subjectInheritance/{userId}
где: userId - идентификатор пользователя
</pre>
тело:
<pre>
{ "added": [1, 2, 3], - список идентификаторов добавляемых пользователю групп
"removed": [4, 5, 6] - список идентификаторов удаляемых у пользователя групп } </pre>
'''Получение списка пользователей:'''
[POST] api/security/userRecords
тело:
{ - опции спискового отображения (описание есть в вопрос №1) "sort": null, "requireTotalCount": true, "searchOperation": "contains", "searchValue": null, "skip": 0, "take": 20, }
Возращаемая структура данных:
<pre> {
totalCount: 10,
data:[
{
"personnelNumber": "1378698466", - табельный номер
"positionName": null, - наименование занимаемой должности
"positionId": null, - идентификатор занимаемой должности
"isSystemUser": false, - признак того, что пользователь системный
"surname": "Виноградов", - фамилия
"name": "Михаил", - имя
"patronymic": "Сергеевич", - отчество
"language": "ru-RU", - текущая локализация
"blocked": false, - признак заблокированности
"id": 2689, - идентификатор пользователя
"displayName": "Виноградов М.С." - отображаемое имя }</pre>
'''Получение списка групп:
<pre> [POST] api/security/groupRecords
{ - опции спискового отображения
"sort": null,
"requireTotalCount": true,
"searchOperation": "contains",
"searchValue": null,
"skip": 0,
"take": 20, } </pre>
Возвращаемая структура данных:
<pre> {
totalCount: 30,
data:[
{
"name": "Операторы", - наименование
"description": null, - описание
"id": 2, - идентификатор
"displayName": "Операторы" - отображаемое наименование } </pre>
=Работа с заданиями=
'''Получение списка заданий:
<pre> [POST] api/jobs/getJobDatas
{
"requireTotalCount": true,
"skip": 0,
"take": 20,
"sort": [ { "selector": "startDate", "desc": true } ]
} </pre>
Результат:
<pre>
{
"id": 9347, - идентификатор
"equipmentId": 899, - идентификатор оборудования, на которое запланировано задание
"equipment": "WC2", - наименование оборудования, на которое запланировано задание
"isMaintenance": true, - признак того, что задание является ТОиР
"productionType": 5, - тип задания (1-производство, 2-Наладка, 3-Внедрение, 4-Производство с наладкой, 5-ТОиР)
"order": null, - Название задания (в версии 5.7 не используется для ТОиР)
"productName": null, - наименование производимого изделия (для заданий типа 1-4)
"productVersion": null, - номер версии производимого изделия (для заданий типа 1-4)
"plannedCount": null, - плановое количество (для заданий типа 1,3,4)
"actualCount": null, - фактическое количество (для заданий типа 1,3,4)
"rejectedCount": null, - количество брака (для заданий типа 1,3,4)
"technologyVersion": null, - версия технологии, по которой производится изделие (для заданий типа 1-4)
"stage": null, - наименование этапа технологии (для заданий типа 1-4)
"plannedStart": "2022-07-19T12:20:00+05:00", - плановое время начала
"plannedEnd": "2022-07-19T13:20:00+05:00", - плановое время окончания
"actualStart": null, - фактическое время начала
"actualEnd": null, - фактическое время окончания
"status": 1, - первичный статус задания (0-создани, 1-запланировано, 2-начато, 3-завершено)
"secondaryStatus": 0, - вторичный статус задания (0-нет, 1-пауза, 2-пропущено, 3- ---, 4-пропущено и скрыто)
"isImported": false - признак того, что задание получено через импорт
}
</pre>
'''Создание задания на производство
<pre>
[POST] api/jobs/createAndAssign
{
"order": "job/order name", - Название задания
"lot": null, - партия(не используется)
"productVersionId": 1424, - идентификатор версии производимого изделия (может не указываться)
"technologyVersionId": 1455, - идентификатор версии технологии, по которой производится изделие (может не указываться)
"technologyStageId": 1456, - идентификатор этапа технологии, по которому производится изделие (указываться совместно с technologyVersionId)
"count": "111", - плановое количество
"startDate": "2022-07-19T08:16:00.000Z", - плановое время начала (указывается совместно с временем окончания и оборудованием)
"endDate": "2022-07-19T18:03:00.000Z", - плановое время окончания (указывается совместно с временем начала и оборудованием)
"productionType": 1, - тип задания (1-производство, 2-Наладка, 3-Внедрение, 4-Производство с наладкой)
"comment": "some comment here", - комментарий
"equipmentId": 898 - идентификатор оборудования, на которое запланировано задание (указывается совместно с временем начала и окончания)
}
</pre>
'''Редактировоание задания на производство:
<Pre>
[POST] api/jobs/updateAndAssign/{идентификатор_задания}
{
"order": "job/order name", - Название задания
"lot": null, - партия(не используется)
"productVersionId": 1424, - идентификатор версии производимого изделия (может не указываться)
"technologyVersionId": 1455, - идентификатор версии технологии, по которой производится изделие (может не указываться)
"technologyStageId": 1456, - идентификатор этапа технологии, по которому производится изделие (указывается совместно с technologyVersionId)
"count": "111", - плановое количество
"startDate": "2022-07-19T08:16:00.000Z", - плановое время начала (указывается совместно с временем окончания и оборудованием)
"endDate": "2022-07-19T18:03:00.000Z", - плановое время окончания (указывается совместно с временем начала и оборудованием)
"productionType": 1, - тип задания (1-производство, 2-Наладка, 3-Внедрение, 4-Производство с наладкой)
"comment": "some comment here", - комментарий
"equipmentId": 898 - идентификатор оборудования, на которое запланировано задание (указывается совместно с временем начала и окончания)
}
</pre>
'''Создание и редактирование задания ТОиР:
<pre>[POST] api/jobs/saveMaintenanceJob
{
"id": 0, - идентификатор задания (0-при создании)
"equipmentId": 899, - идентификатор оборудования, на которое запланировано задание
"startTime": "2022-07-19T07:20:00.000Z", - плановое время начала
"endTime": "2022-07-19T08:20:00.000Z", - плановое время окончания
"type": 1, - тип ТОиР (1-плановый, 2-внеплановый, 3-авария)
"cause": "reason", - причина(текст)
"mode": 2, - всегда=2
"comment": "comment", - комментарий
}
</pre>
=Работа с технологиями=
'''Получение списка технологий
<pre>
[POST] api/technology/getGridRecords
{ - опции спискового отображения
"sort": null,
"requireTotalCount": true,
"searchOperation": "contains",
"searchValue": null,
"skip": 0,
"take": 20
}
</pre>
Результат:
<pre>
{
"rootId": "1454_1455", - ключ
"displayName": "Подшипник 58.6*10/C12 от 01.04.2021 #1", - наименование версии технологии
"productVersionId": 1424, - идентификатор вкрсии изделия
"productVersionName": "Подшипник 58.6*10/C12 #1", - наименование версии изделия
"technology": { - технология
"key": {
"id": 1454, - идентификатор технологии
"typeId": 326 - идентификатор типа объекта "технология"
},
"id": 1454, - идентификатор технологии
"name": "Подшипник 58.6*10/C12 от 01.04.2021", - наименование технологии
"description": "", - описание
"authorName": "SystemUserName", - имя пользователя, создавшего технологию
"productVersionName": "Подшипник 58.6*10/C12 #1",
},
"technologyVersion": { - версия технологии
"key": { - ключ
"id": 1455, - идентификатор версии технологии
"typeId": 333 - идентификатор типа объекта "версия технология"
},
"id": 1455,
"name": "Подшипник 58.6*10/C12 от 01.04.2021 #1", - наименование версии технологии
"description": null, - описание
"authorName": "SystemUserName", - имя пользователя, создавшего версию технологии
"lifeCycleState": 1, - состояние (0-новая, 1-действующая, 2-недействительная, 3-ожидает проверки, 4-редактируемая, 5-устаревшая)
"stateChangeAuthorName": "SystemUserName", - имя пользователя, установившего состояние
"activeFrom": "2021-04-01T05:00:00+05:00", - начало периода активности
"activeTo": "2030-01-01T05:00:00+05:00", - окончание периода активности
},
"displayAuthorName": "SystemUserName", - имя пользователя, создавшего версию технологии
}
</pre>
'''Создание технологий:
Для созданной технологии сразу создается версия технологии. Версия технологии в свою очередь заполняется демонстрационными данными (этап->операции).
<pre>
[POST] api/technology/createTechnology
{
"name": "Technology Name", - наименование технологии
"description": "description here", - описание
"productVersionId": 1424 - идентификатор версии производимого изделия
}
</pre>
Результат: идентификатор технологии
'''Редактирование технологии:
<pre>
[POST] api/technology/updateTechnology
{
"key": { - ключ
"id": 9378, - идентификатор технологии
"typeId": 326 - идентификатор типа объекта "технология"
},
"description": "description here" - описание
}
</pre>
Результат: идентификатор технологии
'''Добавление версии технологии:
<pre>
[POST] api/technology/createTechnologyVersion/{id},{typeId}
</pre>
Результат:
<pre>
{ - ключ
"id": 9442, - идентификатор версии технологии
"typeId": 333 - идентификатор типа объекта "версия технология"
}
</pre>
'''Редактирование версии технологии:
<pre>
[POST] api/technology/updateTechnologyVersion
{
"key": { - ключ
"id": 9442,
"typeId": 333,
},
"versionDescription": "description here", - описание
"activeFrom": "2022-07-19T00:00:00+05:00", - начало периода активности
"activeTo": "2072-07-19T00:00:00+05:00", - окончание периода активности
"lifeCycleState": 0, - состояние (0-новая, 1-действующая, 2-недействительная, 3-ожидает проверки, 4-редактируемая, 5-устаревшая)
}
</pre>
==Работа с этапами технологии==
'''Cоздание этапа версии технологии:
<pre>
[POST] api/technology/createStage/{id},{typeId}
// {id},{typeId} - идентификатор версии технологии и объекта "версия технологии"
{
"name": "stage name here" - наименование
}
</pre>
'''Редактирование этапа технологии:
<pre>[PUT] api/technology/updateStage
тело:
{
"key": { - ключ этапа технологии
"id": 9443, - идентификатор этапа технологии
"typeId": 331 - идентификатор типа объекта "этап технологии"
},
"name": "Stage name here", - наименование этапа
"description": "description here" - описание
}
</pre>
'''Удаление этапа технологии:
<pre> [DELETE] api/technology/removeStage/{id},{typeId} </pre>
'''Получение списка привязанных к этапу РЦ/групп РЦ:
<pre>[GET] api/technology/getStageEquipments/{id},{typeId}
{id},{typeId} - идентификатор этапа и объекта "этап" </pre>
Результат массив объектов, привязанных рабочих центров и групп рабочих центров, вида:
<pre>
{ - для рабочего центра
"department": "Предприятие\\Производственная площадка №1\\Подразделение №1", - подразделение
"group": "", - наименование групп РЦ, в которые входит оборудование
"key": { - ключ привязки РЦ
"id": 9564, - идентификатор привязки РЦ к этапу технологии
"typeId": 332 - идентификатор типа объекта "привязка РЦ к этапу технологии"
},
"objectKey": { - ключ РЦ
"id": 899, - идентификатор РЦ
"typeId": 150 - идентификатор типа объекта "РЦ"
},
"name": "WC2" - наименование РЦ
},
{ - для группы РЦ
"equipments": [ - список РЦ входящих в группу
{
"department": "Предприятие\\Производственная площадка №1\\Подразделение №1",
"group": "new group",
"key": null,
"objectKey": {
"id": 898,
"typeId": 150
},
"name": "WC1"
},
{
"department": "Предприятие\\Производственная площадка №1\\Подразделение №1",
"group": "new group",
"key": null,
"objectKey": {
"id": 899,
"typeId": 150
},
"name": "WC2"
}
],
"key": { - ключ привязки РЦ/группы РЦ
"id": 9602,
"typeId": 332
},
"objectKey": { - ключ группы РЦ
"id": 9601,
"typeId": 255
},
"name": "new group" - наименование группы оборудования
}
</pre>
'''Добавление рабочего центра к этапу технологии:
<pre>[PUT] api/technology/addStageEquipment/{id},{typeId}
{id},{typeId} - идентификатор этапа и объекта "этап"</pre>
тело: [898,899] - список идентификаторов РЦ
результат аналогичен результату для получения списка привязанных к этапу РЦ/групп РЦ
'''Добавление группы рабочих центров к этапу технологии:
<pre> [PUT] /api/technology/addStageEquipmentGroup/{id},{typeId}
{id},{typeId} - идентификатор этапа и объекта "этап"</pre>
тело: 9601 - идентификатор группы РЦ
результат аналогичен результату для получения списка привязанных к этапу РЦ/групп РЦ
'''Удаление РЦ из этапа технологии:
<pre>[DELETE] api/technology/removeEquipmentFromStage/{id},{typeId}
{id},{typeId} - идентификатор привязки РЦ/группы РЦ к этапу и объекта "привязка РЦ/группа РЦ к этапу"
{ - ключ привязки РЦ
"id": 9563, - идентификатор привязки РЦ к этапу технологии
"typeId": 332 - идентификатор типа объекта "привязка РЦ к этапу технологии"
}</pre>
'''Добавление операции в этап технологии:
<pre> [POST] api/technology/addOperation/{id},{typeId}
{id},{typeId} - идентификатор этапа и объекта "этап"
{
"name": "operation name here", - наименование операции
"category": 0 - категория операции(0-инструкция/текст, 1-работа по УП, 2-контроль качества, 3-ввод данных)
}
</pre>
Результат:
<pre>
{
"id": 9572, - идентификатор операции
"key": { - ключ операции
"id": 9572, - идентификатор операции
"typeId": 336 - идентификатор типа объекта "технологическая операция"
},
"name": "operation name here", - наименование операции
"description": null, - описание
"category": 0, - категория операции(0-инструкция/текст, 1-работа по УП, 2-контроль качества, 3-ввод данных)
"type": 4, - тип операции (0-подготовка партии, 1-подготовка штуки, 2-основная, 3-завершение штука, 5-завершение партия)
"typeString": "Завершающая - партия", - строковое представление типа операции
"duration": "00:00:00", - длительность
"durationSeconds": 0, - длительность в секундах
"durationHumanized": "0 сек.", - текстовое представление длительности
"order": 7, - порядковый номер операции в этапе
"stageKey": { - ключ родительского этапа технологии
"id": 9443,
"typeId": 331
},
"inputFields": null, - поля ввода(для операции "ввод данных")
"text": null - текст (для операции инструкция/текст)
}
</pre>
'''Редактирование операции:
<pre>[PUT] api/technology/updateOperation
{
"id": 9448, - идентификатор операции
"key": { - ключ операции
"id": 9448,
"typeId": 336
},
"name": "operation name here", - наименование
"description": "operation description here", - описание
"category": 0, - категория(0-инструкция/текст, 1-работа по УП, 2-контроль качества, 3-ввод данных)
"type": 3, - тип (0-подготовка партии, 1-подготовка штуки, 2-основная, 3-завершение штука, 5-завершение партия)
"duration": "00:12:34", - длительность
"stageKey": { - ключ этапа
"id": 9443,
"typeId": 331
},
"inputFields": [ - поля ввода для категории 3
{ - поле ввода типа индикатор (значение берется из индикатора)
"name": "measurement 1", - наименование
"fromIndicator": true, - признак того, что значение из индикатора
"editable": true, - признак возможности ручного редактирования
"equipmentIndicators": [ - список привязки индикаторов для каждого РЦ этапа
{
"equipmentId": 8708, - идентификатор РЦ
"indicatorId": 8749 - идентификатор индикатора
}
]
},
{ - поле ввода (ручной ввод)
"name": "measurement 2", - наименование
"fromIndicator": false, - признак того, что значение из индикатора
}
],
"text": "some text here", - ткст для категории 0
}
</pre>
результат аналогичен результату при добавлении операции
'''Назначение УП для РЦ по операции категории 1-работа по УП:
<pre>
[POST] api/technology/setNcProgramForOperation/{id},{typeId}/{programVersionId}
{id},{typeId} - идентификатор операции и объекта "технологическая операция"
{programVersionId} - идентификатор версии УП
[ - список ключей привязок РЦ/групп РЦ к этапу, на которые применяется выбранная УП
{ - ключ
"id": 9626,
"typeId": 332
},
{ - ключ
"id": 9569,
"typeId": 332
}
]
</pre>
Результат:
<pre>
[ - список привязок РЦ/группа РЦ к версиям УП
{
"key": { - ключ привязки РЦ/группы РЦ к этапу
"id": 9626,
"typeId": 332
},
"equipmentId": null, - идентификатор оборудования (для РЦ)
"isGroup": true, - признак того, что это группа РЦ
"name": "new group", - наименование группы РЦ (для группы РЦ)
"department": "", - подразделение (для РЦ)
"group": "", - группы РЦ, в которые входит РЦ (для РЦ)
"programKey": { - ключ версии УП
"id": 1429,
"typeId": 245
},
"programName": "Подшипник 58.6*10/C12",
"versionNumber": 1,
"equipments": [
{
"department": "Предприятие\\Производственная площадка №1\\Подразделение №1",
"group": "new group",
"key": null,
"objectKey": {
"id": 898,
"typeId": 150
},
"name": "WC1"
},
{
"department": "Предприятие\\Производственная площадка №1\\Подразделение №1",
"group": "new group",
"key": null,
"objectKey": {
"id": 899,
"typeId": 150
},
"name": "WC2"
}
]
},
{
"key": {
"id": 9569,
"typeId": 332
},
"equipmentId": 8708,
"isGroup": false,
"name": "MMC Emulator",
"department": "Предприятие\\Производственная площадка №1\\Подразделение №1",
"group": "group 2",
"programKey": {
"id": 1429,
"typeId": 245
},
"programName": "Подшипник 58.6*10/C12",
"versionNumber": 1,
"equipments": null
}
]
</pre>
'''Cмена порядка операции в этапе:
<pre>
[PUT] api/technology/reorderOperation/{id},{typeId}
{id},{typeId} - идентификатор операции и объекта "технологическая операция"
тело: 2 - новый порядковый номер операции в этапе
</pre>
'''Удаление операции:
<pre> [DELETE] api/technology/removeOperation/{id},{typeId}
{id},{typeId} - идентификатор операции и объекта "технологическая операция" </pre>
результат:
<pre>
{ - ключ операции
"id": 9448,
"typeId": 336
}</pre>
'''Добавление медиа-файла к версии технологии/операции:
<pre> [POST] api/mediaFile/addFile/{id},{typeId}
{id} - идентификатор версии технологии или операции
{typeId} - идентификатор соответствующего типа версии технологии или операции
в form прикрепляется тело файла </pre>