Initial commit

This commit is contained in:
d.klimov
2026-01-20 16:11:38 +03:00
commit d42b28060e
50 changed files with 15886 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
## Заявка
- Черновик
- На утверждении
- На рассмотрении в ЦПРП
- Зарегистрирована (финальный)
- Отклонена
## Проект
- Открыт - 01
- Закрыт (финальный) - 02
- Приостановлен - 03
- На закрытии в ЦПРП (финальный) - 04
- На закрытии в ФС (финальный) - 05
- Аннулирован (финальный) - 06
- Закрыт для списания TS - 07
## Рассуждения
1. Когда мы получаем AP ID (Id проекта) по интеграции, то Заявка в статусе "Зарегистрирована", а проект в статусе "Открыт"
2. Мы можем посылать изменения в статусах "Зарегистрирована и Открыт" или "Зарегистрирована и Закрыт для списания TS"
3. Заявка в статусах "Черновик", "На утверждении", "На рассмотрении в ЦПРП" в CRM не хранятся, так как мы не можем получить по ним такие данные или нужно будет интегрировать статус заявки в ответ по готовности проекта.
4. Каждый день отправляем запрос по измененным данным в заявках, у которых статус "Зарегистрирована" и проект в статусе "Открыт" или "Приостановлен" или "Закрыт для списания TS".
5. Если получаем статус проекта "Закрыт" или "На закрытии в ФС" или "Аннулирован" или "На закрытии в ЦПРП", то по таким заявкам мы больше не будем отправлять данные, так как статусы проектов финальные.
6. В конечном итоге получается, что отправляются измененные данные, у которых
1. Заявка "Зарегистрирована" и Проект "Открыт"
2. Заявка "Зарегистрирована" и Проект "Приостановлен"
3. Заявка "Зарегистрирована" и Проект "Закрыт для списания TS"
4. Все измененные данные будут отправляться каждый день, пока по ним не будет получен положительный ответ, то есть будет присутствовать накопительный эффект, но как только статус проекта перейдет в финальный, то данные больше не будут посылаться в систему
## Пример запросов
```json
{
    "projects": [
        {
            "orderName": "Сделка-1", // Название проекта
            "orderDate": "2025-12-31", // Дата сделки из CRM
            "clientId": "123-123", // Код клиента
            "headProjectId": "00123123", // ИНС руководителя проекта
            "managerProjectId": "00123124", // ИНС менеджера по продажам
            "directorProjectId": "00123125", // ИНС директора проекта
            "orderAmount": 12345.67, // Сумма сделки
            "projectId": "AP001", // AP ID проекта
            "applicationId": "57ef229c-d8e4-4da5-b87a-7205e7eb7c43" // Id заявки в CRM
        },
        {
            "orderName": "Сделка-2", // Название проекта
            "orderDate": "2026-01-31", // Дата сделки из CRM
            "clientId": "123-124", // Код клиента
            "headProjectId": "00123123", // ИНС руководителя проекта
            "managerProjectId": "00123124", // ИНС менеджера по продажам
            "directorProjectId": "00123125", // ИНС директора проекта
            "orderAmount": 12348.67, // Сумма сделки
            "projectId": "AP002", // AP ID проекта
            "applicationId": "57ef229c-d8e4-4da5-b87a-7205e7eb7c44" // Id заявки в CRM
        }
    ]
}
```
## Пример ответов
```json
{
    "projects": [
        {
            "success": true, // Статус обработки (true - Успешно, false - Ошибка)
            "projectId": "AP001", // AP ID проекта
            "errorMessage": "", // Текст ошибки, если не получилось изменить
            "projectStatus": "01" // Id статуса проекта
        },
        {
            "success": false, // Статус обработки (true - Успешно, false - Ошибка)
            "projectId": "AP002", // AP ID проекта
            "errorMessage": "Нельзя менять данные в рамках текущего статуса", // Текст ошибки, если не получилось изменить
            "projectStatus": "02" // Id статуса проекта
        }
    ]
}
```