Наполнение справочников
Содержание
Справочники
| № | Справочник | Наименование справочника в 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": "Виноградов М.С." - отображаемое имя } ,
{                     "personnelNumber": "2085996177",                     "positionName": null,                     "positionId": null,                     "isSystemUser": false,                     "surname": "Gray1",                     "name": "User1",                     "patronymic": "User's son1",                     "language": "ru-RU",                     "blocked": false,                     "id": 50225409,                     "displayName": "user1"                 }
           ]
       }
   
   Получение списка групп:
       [POST] api/security/groupRecords
       тело:
      
{ - опции спискового отображения (описание есть в вопрос №1) "sort": null, "requireTotalCount": true, "searchOperation": "contains", "searchValue": null, "skip": 0, "take": 20, }
       Возращаемая структура данных:
       {
           totalCount: 30,
           data:[
              
{ "name": "Операторы", - наименование "description": null, - описание "id": 2, - идентификатор "displayName": "Операторы" - отображаемое наименование } ,
{                     "name": "Технологи",                     "description": null,                     "id": 3,                     "displayName": "Технологи"                 }
           ]
       }