Документы проекта

План-график проекта СЗР

Техническое задание (ТЗ) для разработки системы отслеживания перемещения средств защиты растений

Описание API

Диаграмма WBS

Ссылка на проект

Описание API

Методы загрузки Маркируемых СЗР
Метод: POST
Адрес:http:<http:<адресСервера>/upload_data
Заголовки:
«Content-Type»: «application/json»
Используется Basic авторизация (Логин и Пароль)
Тело запроса:json

   {
       "part": "e08dff7e-0c3e-11ef-9258-00155d3b6368", // GUID Документа
       "data": [ // Массив данных из документа
           {
               "produkt_name": "Изагри Молибден", // Наименование
               "quantity": 3, // //Количество//
               "code_number_1c": "2111874383452", // Штрихкод
               "linenumber": 1 // строка документа
           }
       ],
       "alias": "Поступление товаров ГР00001059 от 01.05.2024 12:00:01", // Представление документа
       "depot": "БП-00140" // Код склада
   },
   {
       "part": "d9c8eee4-0246-11ef-982e-00155d3b6368", // GUID Документа
       "data": [ // Массив данных из документа
           {
               "produkt_name": "Цепеллин", // Наименование
               "quantity": 6, // Количество
               "code_number_1c": "2111379014050", // Штрихкод
               "linenumber": 35 // строка документа
           }
       ],
       "alias": "Инвентаризация товаров ГР00000004 от 24.04.2024 17:27:59", // Представление документа
       "depot": "БП-00140" // Код склада
   }

Пример кода: python

import http.client
import json
 
conn = http.client.HTTPSConnection("<адресСервера>",<порт>)
payload = json.dumps({
  "parts": [
    {
      "part": "e08dff7e-0c3e-11ef-9258-00155d3b6368",
      "data": [
        {
          "produkt_name": "Изагри Молибден",
          "quantity": 3,
          "code_number_1c": "2111874383452",
          "linenumber": 1
        }
      ],
      "alias": "Поступление товаров ГР00001059 от 01.05.2024 12:00:01",
      "depot": "БП-00140"
    },
    {
      "part": "d9c8eee4-0246-11ef-982e-00155d3b6368",
      "data": [
        {
          "produkt_name": "Цепеллин",
          "quantity": 6,
          "code_number_1c": "2111379014050",
          "linenumber": 35
        }
      ],
      "alias": "Инвентаризация товаров ГР00000004 от 24.04.2024 17:27:59",
      "depot": "БП-00140"
    }
  ]
})
headers = {
  'secret': 'secretkey',
  'Content-Type': 'application/json',
  'Authorization': 'Basic c3pyX3JvamVjdDpTWlJfcm9qZWN0MTIz'
}
conn.request("POST", "/upload_data", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Методы загрузки Выдаваемых СЗР
Метод: POST
Адрес: http:<http:<адресСервера>/upload_data_accept
Заголовки:
«Content-Type»: «application/json»
Используется Basic авторизация (Логин и Пароль)
Тело запроса:json

{
"docs": [ // Массив Документов
{
"doc": "2d71bee0-3a05-11ef-9815-bc241160c6fa", //GUID Документа
       "data": [ // Массив данных из документа
           {
               "produkt_name": "АДЪЮВАНТ Н-408", // Наименование
               "quantity": 2, // Количество
               "code_number_1c": "2111996693694", // Штрих Код
               "volume": 1 // Объем тары
           },
           {
               "produkt_name": "Липедоцид П",
               "quantity": 2,
               "code_number_1c": "8888888888888",
               "volume": 10
           }
       ],
       "alias": "Перемещение материалов на поле БА00000387 от 01.07.2024 0:00:00", // Представление документа
       "depot": "БП-00136" // Склад
   },
   {
       "doc": "df004214-3a03-11ef-9815-bc241160c6fa",
       "data": [
           {
               "produkt_name": "АДЪЮВАНТ Н-408",
               "quantity": 3,
               "code_number_1c": "2111996693694",
               "volume": 1\
           },
           {
               "produkt_name": "Липедоцид СК",
               "quantity": 7,
               "code_number_1c": "8888888888888",
               "volume": 10
           }
       ],
       "alias": "Перемещение материалов на поле БА00000383 от 01.07.2024 0:00:00",
       "depot": "БП-00136"
   }
]}

Пример кода:python

import http.client
import json
 
conn = http.client.HTTPSConnection("<адресСервера>",<порт>)
payload = json.dumps({
  "docs": [
    {
      "doc": "2d71bee0-3a05-11ef-9815-bc241160c6fa",
      "data": [
        {
          "produkt_name": "АДЪЮВАНТ Н-408",
          "quantity": 2,
          "code_number_1c": "2111996693694",
          "volume": 1
        },
        {
          "produkt_name": "Липедоцид П",
          "quantity": 2,
          "code_number_1c": "8888888888888",
          "volume": 10
        }
      ],
      "alias": "Перемещение материалов на поле БА00000387 от 01.07.2024 0:00:00",
      "depot": "БП-00136"
    },
    {
      "doc": "df004214-3a03-11ef-9815-bc241160c6fa",
      "data": [
        {
          "produkt_name": "АДЪЮВАНТ Н-408",
          "quantity": 3,
          "code_number_1c": "2111996693694",
          "volume": 1
        },
        {
          "produkt_name": "Липедоцид СК",
          "quantity": 7,
          "code_number_1c": "8888888888888",
          "volume": 10
        }
      ],
      "alias": "Перемещение материалов на поле БА00000383 от 01.07.2024 0:00:00",
      "depot": "БП-00136"
    }
  ]
})
headers = {
  'secret': 'secretkey',
  'Content-Type': 'application/json',
  'Authorization': 'Basic c3pyX3JvamVjdDpTWlJfcm9qZWN0MTIz'
}
conn.request("POST", "/upload_data_accept", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Метод Получения данных
Метод: GET
Адрес: http:<http:<адресСервера>/get_data_1c
Заголовки:
«Content-Type»: «application/json»
Используется Basic авторизация (Логин и Пароль)
Ответ от сервера:json

{
"body": [ // Массив Данных
   {
        "id": 11153, // ID Объекта
        "data": { // Содержание объекта
            "type": 4, // Тип объекта 4 - Возврат на склад тары
            "history": [ // Данные с метки
                {
                    "type": 1, // Тип 1 - маркировка
                    "timestamp": 1721106094, // Время маркировки
                    "userrfid": 452, // ID Пользователя
                    "productid": "A15872111", // Пломба
                    "productbr": "2111379183543", // Штрихкод товара
                    "productplace": "", // Ячейка хранения
                    "productrfid": "213137050164", // Метка
                    "lat": 0, // Координаты
                    "lon": 0,
                    "productpart": "012673b2-139f-11ef-8244-00155d031ab3", // Guid документа
                   "productline": 1 // Номер строки
                },
                {
                    "type": 2, // Тип 2 Выдача со склада
                    "timestamp": 1721189027, // Время
                    "userrfid": 453, // ID Пользователя
                    "productid": "A15872111", // Пломба
                    "productrfid": "213137050164", // Метка
                    "uiddoc": "8233f762-43ed-11ef-8d6f-bc241160c6fa" // Guid документа
                },
                {
                    "type": 3, // Тип 3 Использование в поле
                    "timestamp": 1721193563, // Время
                    "userrfid": 225, // ID Пользователя
                    "productid": "A15872111", // Пломба
                    "trailerrfid": 2054, // ID Прицепного
                    "productrfid": "213137050164", // Метка
                    "value": 10, // Использованный объем
                    "lat": 55.597923278808594, // Координаты
                    "lon": 44.59489059448242
                }
            ],
            "timestamp": 1721275417, // Время
            "userrfid": "453", // ID Пользователя
            "productid": "2111379183543", // ШК товара
            "productbr": "A15872111", // Пломба
            "productrfid": "213137050164", // Метка
            "value": 0, // Оставшийся объем в канистре
            "uid": 1086 // ИД записи от приложения
        },\
        "timestamp": 1721275417505 // Время записи на сервер
    },
    {
        "id": 11173, // ID Объекта
        "data": { // Содержание объекта
            "uid": 6, // ИД записи от приложения
            "timestamp": 1722198437, // Время
            "user": "Ушаков Сергей Михайлович", // Имя пользователя
            "userrfid": "184", // ID Пользователя
            "productname": "Альбит", // Наименование СЗР
            "productid": "2111662549154", // Штрихкод
            "productpart": "c0625ad4-af81-11ee-9f4d-00155d3b6368", // GUID документа
            "productplace": "", // Ячейка хранения
            "productbr": "A13302597", // Пломба
            "productrfid": "095238214060", // Метка
            "lat": 0, // Координаты
            "lon": 0,
            "productline": 1, // Строка документа
            "uidmarkirovka": 105, // Сервисный ID
            "type": 1  // Тип объекта 1 - Маркировка
        },
        "timestamp": 1722198437852 // Время записи на сервер
    },
    {
        "id": 11174, // ID Объекта
        "data": { // Содержание объекта
            "type": 3, // Тип объекта 3 - Использование в поле
            "timestamp": "1722198530", // Время
            "userrfid": "184", // ID Пользователя
            "userName": "Ушаков Сергей Михайлович", // Имя пользователя
            "trailerrfid": "2045", // ID прицепного
            "trailerName": "ПСК-11 №47", // Наименование прицепного
            "productrfid": "095238214060", // Метка
            "productid": "A13302597", // Пломба
            "value": "1", // Объем использованного
            "lat": 54.39096333333334, // Координаты
            "lon": 48.57888500000001,
            "uid": 2 // Сервисный ID
        },
        "timestamp": 1722198530492 // Время записи на сервер
    },
    {
        "id": 11176, // ID Объекта
        "data": { // Содержание объекта
            "type": 2, // Тип объекта 1 - Выдача со склада
            "timestamp": "1722198782", // Время
            "uiddoc": "b749a6fa-3d1b-11ef-8994-bc241160c6fa", // GUID документа
            "user": "Ушаков Сергей Михайлович", // Имя пользователя
            "userrfid": "184", // ID Пользователя
            "szr": [ // Массив выданных СЗР
                {
                    "productid": "2111662549154", // Штрихкод
                    "productname": "Альбит", // Наименование
                    "markirovka": [ // Массив канистр
                        {\
                            "productbr": "A13302597", // Пломба
                            "productrfid": "095238214060", // Метка
                            "value": "2.0" // Остаток в канистре
                        },
                        {
                            "productbr": "A13302597", // Пломба
                            "productrfid": "095238214060", // Метка
                            "value": "1.0" // Остаток в канистре
                        }
                    ]
                }
            ],
            "uid": 4 // Сервисный ID
        },
        "timestamp": 1722198782535 // Время записи на сервер
    }
]
}

Метод Подтверждения получения записей
Метод: GET
Адрес: http:<http:<адресСервера>/set_data_1c?id=1223,2566
Параметры: В параметр id передаются через запятую id до 20 шт
Заголовки:
«Content-Type»: «application/json»
Используется Basic авторизация (Логин и Пароль)
Ответ от сервера:
Код 200 в случае успеха