Professional Documents
Culture Documents
Диплом - Немцова Олена - 19 - 12 - 23
Диплом - Немцова Олена - 19 - 12 - 23
Пояснювальна записка
до кваліфікаційної роботи
магістра
(освітньо-кваліфікаційний рівень)
«ЗАТВЕРДЖУЮ»
Завідувач кафедри КНСА
_______________ Юрій ТРИУС
«06» жовтня 2023 року
ЗАВДАННЯ
на кваліфікаційну роботу магістра студенту
Немцовій Олені Геннадіївній
(прізвище, ім‘я, по батькові)
КАЛЕНДАРНИЙ ПЛАН
Строк виконання
№ з/п Назва етапів кваліфікаційної роботи магістра Примітка
етапів роботи
1 Видача завдання на кваліфікаційну роботу 1.09.2023 - виконано
магістра. 2.10.2023
2 Аналіз літературних джерел, об’єкту та предмету 3.10.2023 - виконано
дослідження. 20.10.2023
3 Написання теоретичного розділу кваліфікаційної 21.10.2023 - виконано
роботи магістра. 5.11.2023
4 Написання аналітичного розділу (аналіз об’єкту й 6.11.2023 - виконано
предмету дослідження). 20.11.2023
5 Написання практичних розділів й висновків 21.11.2023 - виконано
кваліфікаційної роботи магістра. 5.12.2023
6 Передзахист кваліфікаційної роботи магістра на виконано
13.12.2023
засіданні випускової кафедри.
7 Подання роботи завідувачу кафедри КНСА. 19.12.2023 виконано
8 Захист кваліфікаційної роботи магістра. 21.12.2023 виконано
РЕФЕРАТ
Обсяг кваліфікаційної роботи магістра складає 109 сторінок, у тому числі вступ,
чотири розділи, висновки, список використаних джерел і додатки. Робота містить 36
рисунків та 19 таблиць. Для виконання роботи використано 11 джерел.
Актуальність кваліфікаційної роботи магістра обумовлюється тим, що в
умовах посилення жорстких методів конкуренції на ринку, сучасні умови бізнес-
середовища, насичені стрімким розвитком технологій та активним ростом
електронної комерції, що змушує компанії шукати ефективні та інноваційні підходи
до управління своїми ресурсами. Виникла об’єктивна потреба у розробці та втіленні
нових підходів до управління конкурентоспроможністю продукції компаній.
Сучасний бізнес потребує постійної адаптації до швидко змінюючогося електронного
середовища, де онлайн-платформи відіграють важливу роль у торгівлі та комунікації
з клієнтами. У цьому контексті однією з ключових сфер управління є ефективне
ведення обліку залишків товарів на різних онлайн-платформах, що стає важливим
етапом стратегії успіху компанії в умовах глобального електронного ринку.
Мета роботи і задачі дослідження. Метою кваліфікаційної роботи є розробка
ІТ-проєкту створення інформаційної системи управління залишками товарів,
розміщених на сторонніх платформах, що оптимізує процес управління запасами та
підвищує рівень обслуговування клієнтів. Об'єктом дослідження є процес управління
проєктом створення інформаційної системи управління залишками товарів,
розміщених на сторонніх платформах. Для досягнення поставленої мети в
дослідженні необхідно вирішити такі задачі:
виконати огляд методів та засобів для розробки інформаційної системи
управління залишками;
дослідити аналоги та провести системний аналіз проблеми, визначити
оточення проєкту;
визначити оточення проєкту та основні вимоги до системи, спроєктувати
систему відповідно до визначених вимог;
5
ABSTRACT
The volume of the master's thesis is 109 pages, including an introduction, four
chapters, conclusions and a list of sources used. The work contains 36 drawings and 19
tables. 11 sources were used to perform the work.
The relevance of the master's qualification work is due to the fact that in the
conditions of strengthening of tough methods of competition in the market, modern
conditions of the business environment, saturated with the rapid development of
technologies and the active growth of electronic commerce, which forces companies to look
for effective and innovative approaches to managing their resources. There was an objective
need to develop and implement new approaches to managing the competitiveness of
companies' products. Modern business needs constant adaptation to a rapidly changing
electronic environment, where online platforms play an important role in commerce and
communication with customers. In this context, one of the key areas of management is
effective accounting of product balances on various online platforms, which becomes an
important stage of the company's success strategy in the global electronic market.
Purpose and tasks of research. The purpose of the qualification work is the
development of an IT project to create an information system for managing product balances
placed on third-party platforms, which optimizes the inventory management process and
improves the level of customer service. The object of the research is the process of managing
the project of creating an information system for managing the balance of goods placed on
third-party platforms. To achieve the goal of the research, it is necessary to solve the
following problems:
carry out a review of methods and means for the development of an information
system for the management of residues;
research analogues and conduct a systemic analysis of the problem, determine
the environment of the project;
determine the project environment and basic requirements for the system,
design the system in accordance with the specified requirements;
to develop the concept of an information system and carry out its practical
implementation, aimed at automating the management of product balances on
7
various platforms;
approbation of the system in practice in order to assess its effectiveness and
suitability in real business.
Object of research: the project management process of the development of an
information system for managing the balance of the company's goods on various online
platforms in the conditions of competitive rivalry between market entities based on the
implementation of effective inventory management carried out by the company.
Subject of research: the project of developing an information system for managing
the balance of the company's goods on various online platforms.
Research methods. System analysis, network planning, decomposition method, risk
management methods, bottom-up budgeting method, SWOT analysis, PEST
analysis,programming techniques in programming languages: Python, JavaScript.
Approval of the results of work. The results of the master's qualification work are
published in the collection of abstracts of the student scientific-practical conference of
ChSTU «ITEST-2022», Cherkasy, 6 december, 2023.
The key words: INFORMATION SYSTEM, REMAINDER MANAGEMENT,
ELECTRONIC COMMERCE, IT PROJECT, PROCESS OPTIMIZATION, THIRD-
PARTY PLATFORMS
8
ЗМІСТ
ВСТУП .................................................................................................................................. 9
РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ
ДОСЛІДЖЕННЯ................................................................................................................ 12
1.1 Системний аналіз об’єкта дослідження та предметної області .......................... 12
1.2 Постановка та обґрунтування проблеми .............................................................. 18
1.3 Методи та засоби вирішення проблеми ............................................................... 21
Висновки до розділу 1 .................................................................................................. 29
РОЗДІЛ 2 РОЗРОБКА КОНЦЕПЦІЇ ІНФОРМАЦІЙНОЇ СИСТЕМИ УПРАВЛІННЯ
ЗАЛИШКАМИ НА СТОРОННІХ ПЛАТФОРМАХ ...................................................... 30
2.1 Аналіз первинних та вторинних зацікавлених сторін та їх впливу на проєкт . 30
2.2 Формування цілей та місії проєкту розробки інформаціної системи ............... 33
2.3 Аналіз життєвого циклу проєкту .......................................................................... 38
Висновки до розділу 2 .................................................................................................. 41
РОЗДІЛ 3 ПЛАНУВАННЯ ПРОЄКТУ РОЗРОБКИ ІНФОРМАЦНОЇ СИСТЕМИ
УПРАВЛІННЯ ЗАЛИШКАМИ НА СТОРОННІХ ПЛАТФОРМАХ ........................... 42
3.1 Планування змісту проєкту ................................................................................... 42
3.2 Планування ресурсів та бюджету проєкту .......................................................... 46
3.3 Ідентифікація та аналіз ризиків проєкту ............................................................... 49
3.4 Планування якості проєкту ................................................................................... 55
Висновки до розділу 3 .................................................................................................. 63
РОЗДІЛ 4 ПРАКТИЧНА РЕАЛІЗАЦІЯ ПРОДУКТУ ПРОЄКТУ ................................ 65
4.1 Структурно-функціональне моделювання процесу розробки інформаційної
системи управління залишками на сторонніх платформах ...................................... 65
4.2 Опис реалізації інформаційної системи управління залишками на сторонніх
платформах .................................................................................................................... 72
4.3 Аналіз отриманих результатів .............................................................................. 82
Висновки до розділу 4 .................................................................................................. 88
ВИСНОВКИ ....................................................................................................................... 89
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ......................................................................... 91
ДОДАТОК А Специфікація 482.ЧДТУ. 32244-01 ......................................................... 92
ДОДАТОК Б Текст програми управління залишками товарів в межах інформаційної
системи та на сторонній платформі eBay ....................................................................... 94
ДОДАТОК В Інструкція користувача щодо пошуку та перегляду інформації про
товари ............................................................................................................................... 102
ДОДАТОК Г Публікація по темі кваліфікаційної роботи магістра .......................... 105
9
ВСТУП
Критерії якості
1
pi = = 0,33, i ∈ {1,2,3}.
3
Очікувані витрати для різних альтернатив побудови системи А1 , А2 , А3
становлять:
E(A1 ) = 0,33 ⋅ (0,3 + 0,3 + 0,2) = 0,26 → min
E(A2 ) = 0,33 ⋅ (0,3 + 0,2 + 0,5) = 0,33
E(A3 ) = 0,33 ⋅ (0,2 + 0,7 + 0,1) = 0,33
𝑟11 = 0,3 − 0,2 = 0,1 𝑟12 = 0,3 − 0,2 = 0,1 𝑟13 = 0,2 − 0,1 = 0,1
𝑅𝐴 = (𝑟21 = 0,3 − 0,2 = 0,1 𝑟22 = 0,2 − 0,2 = 0 𝑟23 = 0,5 − 0,1 = 0,4).
𝑟31 = 0,2 − 0,2 = 0 𝑟32 = 0,7 − 0,2 = 0,5 𝑟33 = 0,1 − 0,1 = 0
17
A3 0 0,5 0 0,5 -
1. MySQL:
Стандарт SQL: 7 – Хоча MySQL використовує стандарт SQL, існують
відмінності в підтримці деяких опцій, що може вплинути на
переносимість коду;
Розширюваність: 8 – Забезпечує прийнятну розширюваність для середніх
проєктів, але може виникнути обмеження на великих обсягах даних або
високому навантаженні;
Використання ресурсів: 7 – Має низькі вимоги до ресурсів, що робить
його ефективним для проєктів з обмеженими ресурсами;
Підтримка масштабування: 9 – Є гнучким у масштабуванні, але високий
рівень масштабування може вимагати додаткових зусиль;
Вільна ліцензія: 9 - Використовує дві ліцензії: GPLv2 та комерційну.
Безкоштовний використання, але комерційні додатки можуть вимагати
платної ліцензії.
2. PostgreSQL
Стандарт SQL: 9 – Широко визнаний своєю дотриманістю стандартів
SQL, PostgreSQL надає повну підтримку SQL та навіть розширює його
деякими додатковими функціями;
Розширюваність: 9 – Висока гнучкість та можливості розширення.
Використання ресурсів: 7 – Має високе споживання ресурсів, особливо
для великих проєктів;
Підтримка масштабування: 8 – Забезпечує високий рівень
масштабованості, включаючи реплікацію та кластеризацію;
Вільна ліцензія: 9 – PostgreSQL має вільну ліцензію.
3. SQLite:
Стандарт SQL: 6 – Обмежений функціонал, особливо у порівнянні з
серверними СУБД;
Розширюваність: 6 – Підходить для простих проєктів, але не ефективний
для великих систем;
24
Стандарт SQL
10
4
Вільна ліцензія Розширюваність
2
Підримка
Використання ресурсів
масштабування
Висновки до розділу 1
Вирішення проблем
Гарантія зайнятості
Премія персоналу
Командна робота
Процеси проєкту
Прогрес проєкту
Робота команди
Інфраструктура
Розклад роботи
Успіх проєкту
Організаційні
Специфікації
Компетенції
Обладнання
Пріоритети
Інформація
Технологія
Матеріали
Бюджет
Знання
Якість
Гроші
Люди
Первинні Цілі
Компанія-власник 1 4 1 1 3 3 3 4 4 2 2 3 1 2 1 2 2 3 2 3 1 2 2 1
Замовник 1 4 1 2 3 3 4 4 4 2 3 3 1 2 3 2 3 3 3 3 2 2 3 2
Менеджер 4 3 3 3 3 4 3 2 2 2 2 3 4 4 4 2 3 4 4 4 4 4 3 4
Команда розробки 2 1 1 1 1 3 1 3 2 2 2 3 4 4 3 2 4 3 3 3 3 2 2 2
Постачальники 1 1 1 4 1 1 1 2 1 1 1 1 1 2 2 2 1 1 2 2 1 1 1 1
Користувачі системи 1 1 1 1 2 2 3 4 4 1 1 2 1 2 1 1 2 1 1 2 1 2 1 1
Партнери компанії 1 1 1 1 1 1 1 2 2 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1
Галузеві експерти 1 1 1 1 3 3 2 2 3 1 1 2 1 1 1 2 1 2 2 1 1 1 1 1
Вторинні
Конкуренти 1 1 1 1 3 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Клієнти компанії 1 2 1 1 2 1 2 3 2 1 1 2 1 1 1 1 1 1 1 3 1 1 1 1
Регулюючі органи 1 1 1 1 2 1 2 1 2 1 1 1 1 1 1 2 1 2 1 2 1 1 1 1
Ресурси:
Замовник: Визначає бюджет та ресурси, які можуть бути виділені проєкту.
Рішення замовника впливають на можливість використання нових
технологій та розширення команди.
Менеджер проєкту: Оптимізує використання ресурсів, забезпечує ефективне
розподілення завдань серед команди та контролює вартість проєкту.
Планування та контроль:
Замовник: Задає терміни та етапи реалізації проєкту. Активно бере участь у
прийнятті ключових рішень на кожному етапі.
Менеджер проєкту: Розробляє детальний план проєкту, враховуючи вимоги
замовника. Відповідає за виконання графіка та вчасне вирішення проблем.
33
Контроль якості:
Замовник: Визначає критерії прийняття продукту та вимоги якості.
Відповідає за фінальне затвердження виконаної роботи.
Менеджер проєкту: Забезпечує використання методів контролю якості,
організовує тестування та перевірку відповідності стандартам.
Таким чином, замовник і менеджер проєкту, взаємодіючи, визначають та
контролюють ключові аспекти проєкту, забезпечуючи його успішну реалізацію.
отримання прибутку;
зменшення ризиків порушення законодавства через автоматизований та
точний облік в управлінні залишками товарів.
Загалом, можна зробити висновок, що цілі проєкту цілком відповідають
очікуванням та потребам всіх зацікавлених сторін, сприяючи розвитку бізнесу,
оптимізації бізнес-процесів, та полегшенню роботи користувачів системи. Реалізація
проєкту має потенціал для позитивного впливу на всі аспекти діяльності компанії.
Обмеження проєкту є факторами або умовами, які обмежують чи визначають
область дії проєкту та можуть впливати на його виконання. Після формування цілей
проєкту та критеріїв їх досягнення, важливо визначити обмеження, які можуть
впливати на реалізацію проєкту. Перелік обмежень для проєкту створення
інформаційної системи управління залишками товарів, розміщених на сторонніх
платформах поданий у таблиці 2.3.
Життєвий цикл проєкту – це сукупність етапів, які проєкт пройде від початку
до завершення. Кожен етап має свої особливості та завдання, спрямовані на
досягнення конкретних цілей.
Чітке розуміння цих фаз дозволить менеджеру максимально ефективно
контролювати проєкти. Метою життєвого циклу є створення простої в користуванні
структури для керівництва та управління проєктами.
Життєвий цикл проєкту допомагає:
ефективно розподіляти завдання та ресурси серед членів команди,
забезпечуючи оптимальне використання їх потенціалу;
забезпечувати зручний механізм відстеження прогресу проєкту та вчасні
корективи у випадку виникнення змін або непередбачених ситуацій;
створювати базу для подальшого вдосконалення процесів та методів
роботи команди на майбутніх проєктах;
забезпечувати прозорість управління проєктом, що сприяє довірі між
усіма учасниками та стейкхолдерами.
Загалом життєвий цикл проєкту відіграє ключову роль у забезпеченні
успішного виконання завдань, сприяє вдосконаленню комунікації та зменшенню
ризиків на різних етапах розробки та реалізації проєкту.
Згідно зі стандартом Project Management Body of Knowledge, або PMBOK [7],
життєвий цикл складається з п'яти фаз (рисунок 2.1).
39
Ініціалізація
Завершення Планування
Контроль Реалізація
Висновки до розділу 2
0.8 – 1.0
0.6 – 0.8 2
0.4 – 0.6 12 3
0.2 – 0.4 11 9, 10 8 1, 5, 7
0.0 – 0.2 6, 4
- Чітке
- Проактивне
визначення Менеджер Менеджер
вирішення
цілей та
конфліктів,
завдань
виявлення та
проєкту,
вирішення
Управлінсь- - Виявлення та Менеджер На фазі
7 непорозумінь;
кий ризик управління інціалізації
- Ревізія
конфліктами в Менеджер
стратегій та
команді;
планів проєкту;
- Проведення Замовник
-Наймання
сертифікації Замовник
консультанта
менеджера
- Пошук Замовник
- Резервування
додаткових
коштів у
джерел
бюджеті
фінансування;
проєкту;
- Перегляд Менеджер
- Періодична
бюджетних
оцінка
Нестабільне На фазі планів,
8 фінансового Менеджер
фінансування планування оптимізація
стану проєкту;
витрат;
- Ретельне
- Використання
фінансове
резерву
планування,
бюджету;
розробка
- Призупинення
альтернативни
проєкту Замовник
54
х фінансових
стратегій
- Перегляд Менеджер
бюджету та
-Постійний
внесення змін в
моніторинг Кожен
управлінські
рівня інфляції; день
Зростання рішення
12 -Резервування Менеджер
інфляції відповідно до
коштів у На фазі
нових умов;
бюджеті планування
- Призупинення Замовник
проєкту
проєкту
PRODUCTS
1 get product log info by product id changing product details (with data time):
price (discount)
title
count etc.
CATEGORIES
61
2 update categories
IMAGES
SEARCH
FILTER
ADDITIONAL INFO
CHEAPENING GOODS
Висновки до розділу 3
Інформація Інтеграція зі
Правила та
у базі сторонніми
процедури
даних платформами
Дані користувача Синхронізовані дані про
Управління залишками на сторонніх залишки
Дані платформи платформах
RESTful API
HTTP заголовки (необхідно надати набір заголовків HTTP, під час надсилання
запиту, спеціальні заголовки eBay починаються з « X-EBAY-C-»);
Операція REST (або кінцева точка);
Корисне навантаження запиту (або тіло запиту, як того вимагає операція);
Деякі спеціальні заголовки eBay можуть містити кілька пар ім’я/значення.
Формат пари ім’я/значення – <name>=<value>, кілька значень в одному заголовку
необхідно розділяти комами. У наступному прикладі показано загальний формат:
X-EBAY-C-PACKED-EXAMPLE: fig=7,bar=«quux»,value=42
У таблиці 4.3 представлено стандартні заголовки запитів, які приймає eBay, а
також спеціальні заголовки eBay, які використовуються за потребою.
Таблиця 4.3 – Стандартні заголовки запитів до eBay
Заголовок HTTP Необхідність Опис
Accept вказує формати, які клієнт
приймає для відповіді.
Accept Умовно необхідний JSON є стандартним і єдиним форматом,
який повертається в тілах відповіді.
приклад:
Accept: application/json
Authorization визначає маркер OAuth і тип
маркера, які використовуються для
Authorization Необхідний авторизації запиту.
приклад:
Authorization: Bearer <accessToken>
Content-Type вказує формат тіла запиту,
Content-Type Умовно необхідний наданий клієнтом.
приклад:
Content-Type: application/json
Content-Language визначає мову, яка
використовуватиметься в полях корисного
Content-Language Умовно необхідний навантаження запиту.
приклад:
Content-Language: en-US
this.webClient = webClientBuilder
.baseUrl(url)
.defaultHeader("Authorization", "Bearer " + Token.getEbayToken())
.defaultHeader("Accept", "application/json")
.defaultHeader("Content-Type", "application/json")
.defaultHeader("Content-Language", "de-DE")
.filter(getFilter())
.build();
Рисунок 4.11 – WebClient для виконання запитів до eBay API
inventoryItems.forEach(
inventoryItem -> {
Part part = partMapper.toEntity(inventoryItem,
getOfferBySku(inventoryItem.getSku()));
parts.add(part);
}
);
Рисунок 4.12 – Отримання інформації про розміщенні товари
78
String requestBodyXml =
requestBodyXmlBuilder.buildCategoriesRequestBody(Token.getEbayToken());
categories.addAll(categoryMapper.toEntities(
categoryXmlParser.parse(xmlCategories)
));
Рисунок 4.13 – Отримання інформації про категорії
saveInventoryItem(inventoryItem);
if (carUuid != null) {
long carId = carRepository.findFirstByUuid(carUuid)
.map(Car::getId)
.orElseThrow(
() -> new NotFoundException("Not found Car by uuid:
%s ".formatted(carUuid))
);
criteria = criteria.and(Criteria.where("car_id").is(carId));
}
jdbcAggregateTemplate.findAll(Query.query(criteria).sort(sort).limit(limit).
offset(pageable.getOffset()), Part.class)
);
long count = jdbcAggregateTemplate.count(Query.query(criteria),
Part.class);
return pageMapper.toDto(
new PageImpl<>(partMapper.toDtos(parts), pageable, count)
);
}
Рисунок 4.16 – Функція параметризованого пошуку товарів
Тепер під час пошуку цієї категорії буде доступний за вказаним переліком
ключових слів (рисунок 4.24).
Висновки до розділу 4
ВИСНОВКИ
ДОДАТОК А
Затверджую
Зав. кафедри КНСА,
______________ Юрій ТРИУС
«____»____________2023 р.
Специфікація
482. ЧДТУ. 32244-01 90 01
Листів 2
Черкаси – 2023
93
Документація
ДОДАТОК Б
Затверджую
Зав. кафедри КНСА,
______________ Юрій ТРИУС
«____»____________2023 р.
Листів 8
Черкаси – 2023
95
@RequiredArgsConstructor
public abstract class EbayAdapter {
private final EbayTokenAdapter tokenAdapter;
protected final WebClient.Builder webClientBuilder;
protected final String url;
if (httpStatusCode.equals(HttpStatus.UNAUTHORIZED)) {
return response.bodyToMono(String.class)
.flatMap(
body -> Mono.error(new TokenExpiredException(body))
);
}
if (!httpStatusCode.equals(HttpStatus.NOT_FOUND) &&
httpStatusCode.isError()) {
return response.bodyToMono(String.class)
.flatMap(
body -> Mono.error(new
IllegalArgumentException(body))
);
}
return Mono.just(response);
});
}
@Override
protected void buildWebClient() {
this.webClient = webClientBuilder
.baseUrl(url)
.defaultHeader("Authorization", "Bearer " + Token.getEbayToken())
.defaultHeader("Accept", "application/json")
.defaultHeader("Content-Type", "application/json")
.defaultHeader("Content-Language", "de-DE")
.filter(getFilter())
.build();
}
handleTokenExpiration(() -> {
InventoryItemsResp inventoryItemsResp = webClient.get().uri(uriBuilder ->
uriBuilder
.path(INVENTORY_PATH)
.queryParam("limit", limit)
.queryParam("offset", offset)
.build())
.retrieve()
.bodyToMono(InventoryItemsResp.class)
.block();
inventoryItems.forEach(
inventoryItem -> {
Part part = partMapper.toEntity(inventoryItem,
getOfferBySku(inventoryItem.getSku()));
parts.add(part);
}
);
});
return parts;
}
handleTokenExpiration(() -> {
saveInventoryItem(inventoryItem);
}
}
if (carUuid != null) {
long carId = carRepository.findFirstByUuid(carUuid)
.map(Car::getId)
.orElseThrow(
() -> new NotFoundException("Not found Car by uuid: %s
".formatted(carUuid))
);
criteria = criteria.and(Criteria.where("car_id").is(carId));
}
jdbcAggregateTemplate.findAll(Query.query(criteria).sort(sort).limit(limit).
offset(pageable.getOffset()), Part.class)
);
long count = jdbcAggregateTemplate.count(Query.query(criteria), Part.class);
return pageMapper.toDto(
new PageImpl<>(partMapper.toDtos(parts), pageable, count)
);
}
.orElseThrow(
() -> new
NotFoundException(NOT_FOUND_MESSAGE.formatted(uuid))
);
}
@Transactional
public PartRespDto add(PartRespDto partRespDto) {
Part part = partMapper.toEntity(partRespDto);
part.setUuid(uuidService.getUUid());
setExternalId(part);
part.setDescription(null);
Part saved = partRepository.save(part);
saveAtProviders(part);
saved.getMedias().forEach(media -> media.setFile(null));
return partMapper.toDto(
saved
);
}
@Transactional
public PartRespDto update(String uuid, PartRespDto partRespDto) {
Part exists = partRepository.findFirstByUuid(uuid).orElseThrow(
() -> new NotFoundException(NOT_FOUND_MESSAGE.formatted(uuid))
);
saveAtProviders(exists);
saved.getMedias().forEach(media -> media.setFile(null));
return partMapper.toDto(
saved
);
}
partAdapter.save(
ProviderType.valueOf(categoryProvider.getProviderId()),
part
);
});
}
if (updatedProviders.stream()
.noneMatch(updatedPartProvider ->
updatedPartProvider.getCategoryProvider().getProviderId()
== providerId)) {
partAdapter.remove(ProviderType.valueOf(providerId),
partProvider.getExternalId());
}
});
}
@Transactional
public void delete(String uuid) {
Part part = partRepository.findFirstByUuid(uuid)
.orElseThrow(
() -> new
NotFoundException(NOT_FOUND_MESSAGE.formatted(uuid))
);
deleteAtProviders(partMapper.toEntity(partMapper.toDto(part)));
partRepository.deleteById(part.getId());
}
partProviders.forEach(partProvider -> {
CategoryProvider categoryProvider = partProvider.getCategoryProvider();
partAdapter.remove(
ProviderType.valueOf(categoryProvider.getProviderId()),
partProvider.getExternalId()
);
});
}
}
102
ДОДАТОК В
Затверджую
Зав. кафедри КНСА,
______________ Юрій ТРИУС
«____»____________2023 р.
Листів 3
Черкаси – 2023
103
«ⓘ», редагувати інформацію про товар (рисунок В.3) – іконка «•••» та видалити товар
– іконка «🗑».
ДОДАТОК Г
Затверджую
Зав. кафедри КНСА,
______________ Юрій ТРИУС
«____»____________2023 р.
Листів 4
Черкаси – 2023
107
108