vault backup: 2026-02-03 12:46:28
This commit is contained in:
5
.obsidian/community-plugins.json
vendored
5
.obsidian/community-plugins.json
vendored
@@ -4,5 +4,8 @@
|
||||
"obsidian-kanban",
|
||||
"obsidian-icon-folder",
|
||||
"obsidian-git",
|
||||
"obsidian-mind-map"
|
||||
"obsidian-mind-map",
|
||||
"table-editor-obsidian",
|
||||
"dataview",
|
||||
"obsidian-tasks-plugin"
|
||||
]
|
||||
20876
.obsidian/plugins/dataview/main.js
vendored
Normal file
20876
.obsidian/plugins/dataview/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
11
.obsidian/plugins/dataview/manifest.json
vendored
Normal file
11
.obsidian/plugins/dataview/manifest.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "dataview",
|
||||
"name": "Dataview",
|
||||
"version": "0.5.68",
|
||||
"minAppVersion": "0.13.11",
|
||||
"description": "Complex data views for the data-obsessed.",
|
||||
"author": "Michael Brenan <blacksmithgu@gmail.com>",
|
||||
"authorUrl": "https://github.com/blacksmithgu",
|
||||
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
141
.obsidian/plugins/dataview/styles.css
vendored
Normal file
141
.obsidian/plugins/dataview/styles.css
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
.block-language-dataview {
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
/*****************/
|
||||
/** Table Views **/
|
||||
/*****************/
|
||||
|
||||
/* List View Default Styling; rendered internally as a table. */
|
||||
.table-view-table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.table-view-table > thead > tr, .table-view-table > tbody > tr {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.table-view-table > tbody > tr:hover {
|
||||
background-color: var(--table-row-background-hover);
|
||||
}
|
||||
|
||||
.table-view-table > thead > tr > th {
|
||||
font-weight: 700;
|
||||
font-size: larger;
|
||||
border-top: none;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
border-bottom: solid;
|
||||
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.table-view-table > tbody > tr > td {
|
||||
text-align: left;
|
||||
border: none;
|
||||
font-weight: 400;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.table-view-table ul, .table-view-table ol {
|
||||
margin-block-start: 0.2em !important;
|
||||
margin-block-end: 0.2em !important;
|
||||
}
|
||||
|
||||
/** Rendered value styling for any view. */
|
||||
.dataview-result-list-root-ul {
|
||||
padding: 0em !important;
|
||||
margin: 0em !important;
|
||||
}
|
||||
|
||||
.dataview-result-list-ul {
|
||||
margin-block-start: 0.2em !important;
|
||||
margin-block-end: 0.2em !important;
|
||||
}
|
||||
|
||||
/** Generic grouping styling. */
|
||||
.dataview.result-group {
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
/*******************/
|
||||
/** Inline Fields **/
|
||||
/*******************/
|
||||
|
||||
.dataview.inline-field-key {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-primary-alt);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
.dataview.inline-field-value {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-secondary-alt);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
.dataview.inline-field-standalone-value {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-secondary-alt);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
/***************/
|
||||
/** Task View **/
|
||||
/***************/
|
||||
|
||||
.dataview.task-list-item, .dataview.task-list-basic-item {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
transition: 0.4s;
|
||||
}
|
||||
|
||||
.dataview.task-list-item:hover, .dataview.task-list-basic-item:hover {
|
||||
background-color: var(--text-selection);
|
||||
box-shadow: -40px 0 0 var(--text-selection);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*****************/
|
||||
/** Error Views **/
|
||||
/*****************/
|
||||
|
||||
div.dataview-error-box {
|
||||
width: 100%;
|
||||
min-height: 150px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 4px dashed var(--background-secondary);
|
||||
}
|
||||
|
||||
.dataview-error-message {
|
||||
color: var(--text-muted);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/*************************/
|
||||
/** Additional Metadata **/
|
||||
/*************************/
|
||||
|
||||
.dataview.small-text {
|
||||
font-size: smaller;
|
||||
color: var(--text-muted);
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.dataview.small-text::before {
|
||||
content: "(";
|
||||
}
|
||||
|
||||
.dataview.small-text::after {
|
||||
content: ")";
|
||||
}
|
||||
12
.obsidian/plugins/obsidian-icon-folder/data.json
vendored
12
.obsidian/plugins/obsidian-icon-folder/data.json
vendored
@@ -6,7 +6,11 @@
|
||||
"emojiStyle": "native",
|
||||
"iconColor": null,
|
||||
"recentlyUsedIcons": [
|
||||
"🎲"
|
||||
"🧑",
|
||||
"📔",
|
||||
"👩👦",
|
||||
"🤢",
|
||||
"LiPcCase"
|
||||
],
|
||||
"recentlyUsedIconsSize": 5,
|
||||
"rules": [],
|
||||
@@ -30,5 +34,9 @@
|
||||
"debugMode": false,
|
||||
"useInternalPlugins": false
|
||||
},
|
||||
"Своя игра.md": "🎲"
|
||||
"Работа": "LiPcCase",
|
||||
"Интеграция СУП": "🤢",
|
||||
"Мама": "👩👦",
|
||||
"Другое": "📔",
|
||||
"Личное": "🧑"
|
||||
}
|
||||
504
.obsidian/plugins/obsidian-tasks-plugin/main.js
vendored
Normal file
504
.obsidian/plugins/obsidian-tasks-plugin/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
12
.obsidian/plugins/obsidian-tasks-plugin/manifest.json
vendored
Normal file
12
.obsidian/plugins/obsidian-tasks-plugin/manifest.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"id": "obsidian-tasks-plugin",
|
||||
"name": "Tasks",
|
||||
"version": "7.22.0",
|
||||
"minAppVersion": "1.4.0",
|
||||
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
|
||||
"helpUrl": "https://publish.obsidian.md/tasks/",
|
||||
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
|
||||
"authorUrl": "https://github.com/obsidian-tasks-group",
|
||||
"fundingUrl": "https://github.com/sponsors/claremacrae",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
1
.obsidian/plugins/obsidian-tasks-plugin/styles.css
vendored
Normal file
1
.obsidian/plugins/obsidian-tasks-plugin/styles.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
.obsidian/plugins/table-editor-obsidian/data.json
vendored
Normal file
6
.obsidian/plugins/table-editor-obsidian/data.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"formatType": "normal",
|
||||
"showRibbonIcon": true,
|
||||
"bindEnter": true,
|
||||
"bindTab": true
|
||||
}
|
||||
236
.obsidian/plugins/table-editor-obsidian/main.js
vendored
Normal file
236
.obsidian/plugins/table-editor-obsidian/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
17
.obsidian/plugins/table-editor-obsidian/manifest.json
vendored
Normal file
17
.obsidian/plugins/table-editor-obsidian/manifest.json
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"id": "table-editor-obsidian",
|
||||
"name": "Advanced Tables",
|
||||
"author": "Tony Grosinger",
|
||||
"authorUrl": "https://grosinger.net",
|
||||
"description": "Improved table navigation, formatting, manipulation, and formulas",
|
||||
"isDesktopOnly": false,
|
||||
"minAppVersion": "1.0.0",
|
||||
"version": "0.22.1",
|
||||
"js": "main.js",
|
||||
"fundingUrl": {
|
||||
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
|
||||
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
|
||||
"Paypal": "https://paypal.me/tgrosinger"
|
||||
},
|
||||
"donation": "https://buymeacoffee.com/tgrosinger"
|
||||
}
|
||||
78
.obsidian/plugins/table-editor-obsidian/styles.css
vendored
Normal file
78
.obsidian/plugins/table-editor-obsidian/styles.css
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
:root {
|
||||
--advanced-tables-helper-size: 28px;
|
||||
}
|
||||
|
||||
.HyperMD-table-row span.cm-inline-code {
|
||||
font-size: 100%;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.advanced-tables-buttons>div>.title {
|
||||
font-weight: var(--font-medium);
|
||||
font-size: var(--nav-item-size);
|
||||
color: var(--nav-item-color);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
[data-type="advanced-tables-toolbar"] .nav-buttons-container {
|
||||
column-gap: 0.2rem;
|
||||
margin: 0.2rem 0 0.2rem 0;
|
||||
justify-content: start;
|
||||
}
|
||||
|
||||
[data-type="advanced-tables-toolbar"] .nav-buttons-container::before {
|
||||
min-width: 2.6rem;
|
||||
line-height: var(--advanced-tables-helper-size);
|
||||
font-size: var(--nav-item-size);
|
||||
font-weight: var(--nav-item-weight);
|
||||
color: var(--nav-item-color);
|
||||
}
|
||||
|
||||
[data-type="advanced-tables-toolbar"] .nav-buttons-container>* {
|
||||
height: var(--advanced-tables-helper-size);
|
||||
line-height: var(--advanced-tables-helper-size);
|
||||
}
|
||||
|
||||
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button {
|
||||
width: var(--advanced-tables-helper-size);
|
||||
height: var(--advanced-tables-helper-size);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: var(--radius-s);
|
||||
}
|
||||
|
||||
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button:hover {
|
||||
background-color: var(--nav-item-background-hover);
|
||||
color: var(--nav-item-color-hover);
|
||||
font-weight: var(--nav-item-weight-hover);
|
||||
}
|
||||
|
||||
.advanced-tables-row-label {
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
.widget-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
fill: var(--text-muted);
|
||||
}
|
||||
|
||||
.widget-icon:hover {
|
||||
fill: var(--text-normal);
|
||||
}
|
||||
|
||||
.advanced-tables-csv-export textarea {
|
||||
height: 200px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.advanced-tables-donation {
|
||||
width: 70%;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.advanced-tables-donate-button {
|
||||
margin: 10px;
|
||||
}
|
||||
28
.obsidian/types.json
vendored
Normal file
28
.obsidian/types.json
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"types": {
|
||||
"aliases": "aliases",
|
||||
"cssclasses": "multitext",
|
||||
"tags": "tags",
|
||||
"TQ_explain": "checkbox",
|
||||
"TQ_extra_instructions": "text",
|
||||
"TQ_short_mode": "checkbox",
|
||||
"TQ_show_backlink": "checkbox",
|
||||
"TQ_show_cancelled_date": "checkbox",
|
||||
"TQ_show_created_date": "checkbox",
|
||||
"TQ_show_depends_on": "checkbox",
|
||||
"TQ_show_done_date": "checkbox",
|
||||
"TQ_show_due_date": "checkbox",
|
||||
"TQ_show_edit_button": "checkbox",
|
||||
"TQ_show_id": "checkbox",
|
||||
"TQ_show_on_completion": "checkbox",
|
||||
"TQ_show_postpone_button": "checkbox",
|
||||
"TQ_show_priority": "checkbox",
|
||||
"TQ_show_recurrence_rule": "checkbox",
|
||||
"TQ_show_scheduled_date": "checkbox",
|
||||
"TQ_show_start_date": "checkbox",
|
||||
"TQ_show_tags": "checkbox",
|
||||
"TQ_show_task_count": "checkbox",
|
||||
"TQ_show_tree": "checkbox",
|
||||
"TQ_show_urgency": "checkbox"
|
||||
}
|
||||
}
|
||||
23
Hysteria2.md
23
Hysteria2.md
@@ -1,28 +1,5 @@
|
||||
https://blitz.digital-home.site:443/eb4643570d60cb40ef62b5bc7c7b92c4/
|
||||
|
||||
|
||||
```js
|
||||
callTemporalService: function () {
|
||||
const serviceOptions = {
|
||||
// ClientData: {
|
||||
// Name: this.get("Name"), // AccountId: this.get("Id") // }, OrderData: {
|
||||
OrderName: this.get("Number"),
|
||||
OrderDate: this.get("NrbStartDate"),
|
||||
ClientId: "123-123",
|
||||
ManagerProjectId: "00123036",
|
||||
HeadProjectId: "00123037",
|
||||
DirectorProjectId: "00123038",
|
||||
OrderAmount: this.get("NrbAmountDeal"),
|
||||
ProductAttribute: 1,
|
||||
ProjectId: "",
|
||||
OrderId: this.get("Id")
|
||||
} };
|
||||
|
||||
ServiceHelper.callService("PresaleProjectService", "CreatePresaleProject", function (response) {
|
||||
}, serviceOptions, this);
|
||||
},
|
||||
```
|
||||
|
||||
19 - 100000 (ap +)
|
||||
20 - 150000 (изменение + - согласование идет) - 1 заявка
|
||||
21 - 120000 () - 1 заявка (нужно перевыпуск)
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
Есть идея продавать готовые комплекты умного дома для людей
|
||||
Есть ключевая потребность, что Алиса и остальные моменты очень дорогие, так как для устройств Zigbee нужно покупать более дорогую колонку, хочется сделать более дешевый проект, чтобы люди могли купить коробочку, в которой уже все будет настроено и им пришлось бы просто подключить ее к Алисе минимальными затратами и управлять своим умным домом через колонку, приложение или настройку автоматизаций через приложение.
|
||||
Главная идея купить Raspberry Pi, корпус и установить туда необходимый софт для работы
|
||||
1. Нужно понять какую версию и с какими характеристиками нужно покупать Raspberry Pi для различных задач
|
||||
1. Минимальный набор умного дома - Home Assistant с установленными интеграциями
|
||||
2. Набор умного дома + облако - Home Assistant и Nextcloud
|
||||
3. Умный дом и медиаплеер - Home Assistant + Plex + QbitTorrent
|
||||
2. Нужно сделать так, чтобы люди просто покупали коробочку, делали минимальную настройку и минимальные трудозатраты и могли подключаться к своим серверам в независимости от того, где они находятся (нужно продумать как делать красивый URL для их дома, они могут сами придумывать домен для доступа к сервисами)
|
||||
3. Нужно посчитать сколько примерно денег будет стоить каждый проект, который я описал в пункте 1
|
||||
4. Нужно подумать возможная ли такая реализация и какие шаги должны будет выполнить пользователь для подключения коробочки и начала работы с ней, трудозатраты пользователя должны быть минимальны
|
||||
5. Подключение новых устройств умного дома должно быть быстрым и не особо сложным
|
||||
|
||||
-----------------
|
||||
@@ -1,11 +0,0 @@
|
||||
1. Интеграция на создание клиента
|
||||
1. Какой endpoint будет использоваться на стороне СУП (ссылка)
|
||||
2. Какой протокол будет использоваться при интеграции (REST или SOAP)
|
||||
3. По поводу авторизации ранее договаривались кастомный header в запросе (дополнительно обсудить его название и значение)
|
||||
4. Ответ по созданию клиента будет синхронным или асинхронным
|
||||
5. Если в п. 4 ответ асинхронный, то нужно будет договориться по поводу интеграции СУП -> СРМ (endpoint, протокол, авторизация)
|
||||
2. Интеграция на создание некоммерческого проекта
|
||||
1. Какой endpoint будет использоваться на стороне СУП (ссылка)
|
||||
2. Какой протокол будет использоваться при интеграции (REST или SOAP)
|
||||
3. По поводу авторизации ранее договаривались кастомный header в запросе (дополнительно обсудить его название и значение)
|
||||
4. Ответ по созданию некоммерческого проекта будет скорее всего асинхронным (иногда потребуется дополнительное согласование для проекта), поэтому нужно будет договориться по поводу интеграции СУП -> СРМ (endpoint, протокол, авторизация)
|
||||
@@ -1,26 +0,0 @@
|
||||
## Взаимодействие систем
|
||||
|
||||
### Rabbit
|
||||
|
||||
### Temporal
|
||||
|
||||
## Примеры запросов
|
||||
|
||||
### Создание клиента
|
||||
|
||||
### Создание presale-проекта
|
||||
|
||||
### Ответы
|
||||
|
||||
|
||||
У меня новые вводные, схема взаимодействия должна быть следующая:
|
||||
1. Я инициирую запрос в Temporal
|
||||
2. Создается активность CreatePresaleProject (Отправляется POST запрос в систему ERP)
|
||||
3. Эта активность должна будет периодически (раз в 10 минут, настраиваемый диапазон запрашивать данные у другой системы)
|
||||
4. Если я получаю ответ, то активность CreatePresaleProject завершается и запускается UpdateOrderInCRM
|
||||
5. Если получаю какую-то ошибку, то уже завершаю активность с ошибкой
|
||||
|
||||
Это делаем для StartOrderOnly Worker.
|
||||
Учти, что POST и GET запросы должны посылаться из Temporal
|
||||
|
||||
Скажи, что нужно сделать, какой план?
|
||||
@@ -1,11 +1,12 @@
|
||||
## Статусы объектов
|
||||
|
||||
Заявка
|
||||
- Черновик -
|
||||
- На утверждении -
|
||||
- На рассмотрении в ЦПРП -
|
||||
- Зарегистрирована (финальный) -
|
||||
- Отклонена -
|
||||
- Черновик - 1
|
||||
- На утверждении - 2
|
||||
- На рассмотрении в ЦПРП - 3
|
||||
- Зарегистрирована (финальный) - 4
|
||||
- Отклонена - 5
|
||||
- Отозвана - 6
|
||||
|
||||
Проект
|
||||
- Открыт - E0001
|
||||
@@ -62,14 +63,14 @@
|
||||
{
|
||||
"projects": [
|
||||
{
|
||||
"projectId": "AP001", // AP ID проекта
|
||||
"applicationStatus": "...", // Id статуса заявки
|
||||
"projectStatus": "E0005" // Id статуса проекта
|
||||
"projectId": "AP001",
|
||||
"applicationStatus": "4",
|
||||
"projectStatus": "E0001"
|
||||
},
|
||||
{
|
||||
"projectId": "AP002", // AP ID проекта
|
||||
"applicationStatus": "...", // Id статуса заявки
|
||||
"projectStatus": "E0001" // Id статуса проекта
|
||||
"projectId": "AP002",
|
||||
"applicationStatus": "4",
|
||||
"projectStatus": "E0005"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -131,7 +132,7 @@
|
||||
```json
|
||||
{
|
||||
"status": "Waiting",
|
||||
"projectId": "",
|
||||
"projectId": "AP001",
|
||||
"errorMessage": ""
|
||||
}
|
||||
```
|
||||
@@ -140,7 +141,7 @@
|
||||
```json
|
||||
{
|
||||
"status": "Success",
|
||||
"projectId": "123-123-124",
|
||||
"projectId": "AP001",
|
||||
"errorMessage": ""
|
||||
}
|
||||
```
|
||||
@@ -149,7 +150,7 @@
|
||||
```json
|
||||
{
|
||||
"status": "Error",
|
||||
"projectId": "",
|
||||
"projectId": "AP001",
|
||||
"errorMessage": "Описание ошибки"
|
||||
}
|
||||
```
|
||||
9
Интеграция СУП/Интеграция с ERP.md
Normal file
9
Интеграция СУП/Интеграция с ERP.md
Normal file
@@ -0,0 +1,9 @@
|
||||
1. Проставить значение настройки "NrbErpHeadProject"
|
||||
2. Проставить значение настройки "NrbAsyncServiceUri"
|
||||
3. Проставить значение настройки "NrbPresaleProjectServiceKey"
|
||||
4. Проверить настройку "GatewayURLKey"
|
||||
|
||||
Секреты
|
||||
1. Dev CRM `20b6702d-a3f7-4dfa-baad-640da98b727c`
|
||||
2. Preprod CRM `347bf64d-8920-4de6-a0f1-654c2ab15fda`
|
||||
3. Prod CRM `24b9aef3-dffb-4f9e-9c5d-fa8a9802276f`
|
||||
@@ -1,3 +1,10 @@
|
||||
## Авторизация
|
||||
|
||||
Используется кастомный header `X-Erp-Integration`
|
||||
Значение хранится в конфигах у системы СУП.
|
||||
Для дев и прод разные значения.
|
||||
При получении значения необходимо его сравнить со значением хранящимся в конфиге.
|
||||
Если значения не соответствуют, то вернуть ошибку.
|
||||
## Создание клиента
|
||||
|
||||
Используется endpoint с методом POST
|
||||
@@ -8,16 +15,25 @@
|
||||
|
||||
```json
|
||||
{
|
||||
"companyId": "", // Компания
|
||||
"typeId": "", // Тип заявки
|
||||
"kindId": "", // Вид заявки
|
||||
"name": "Альфа-Пласт",
|
||||
"shortName": "Альфа-Пласт",
|
||||
"managerId": "123456", // Значение ИНС (залили данные в AD и храним их в CRM. Значение без нулей в начале)
|
||||
"managerId": "00123456", // Значение ИНС сотрудника
|
||||
"countryCode": "RU", // Двухбуквенный код страны
|
||||
"industryCode": "0015", // Код отрасли ERP
|
||||
"authorId": "00123456", // Значение ИНС сотрудника
|
||||
"accountId": "57ef229c-d8e4-4da5-b87a-7205e7eb7c42"
|
||||
}
|
||||
```
|
||||
|
||||
```
|
||||
"name" - Наименование клиента
|
||||
"shortName" - Краткое название
|
||||
"managerId" - Менеджер по продажам
|
||||
"countryCode" - Страна
|
||||
"industryCode" - Отрасль
|
||||
"authorId" - Автор клиента в CRM
|
||||
"accountId" - Id контрагента в CRM
|
||||
```
|
||||
### Ответ
|
||||
|
||||
Успешный
|
||||
@@ -40,7 +56,7 @@
|
||||
Используется endpoint с методом GET
|
||||
|
||||
Предлагаемый вариант
|
||||
`api/1.0/openRequest/view?accountId={accountId}`
|
||||
`api/1.0/openRequest/viewAccount?accountId={accountId}`
|
||||
|
||||
Главная суть метода, что мы по значению `accountId` из пункта `Создание клиента` получаем готовность создания клиента.
|
||||
Клиент считается созданным, если у него заполнено поле `ClientId` (уточнить как называется в базе данных поле `Код клиента из R3`)
|
||||
@@ -58,8 +74,8 @@
|
||||
Создание клиента завершено
|
||||
```json
|
||||
{
|
||||
"status": "Done",
|
||||
"clientId": "123-123-123",
|
||||
"status": "Success",
|
||||
"clientId": "0000101202",
|
||||
"errorMessage": ""
|
||||
}
|
||||
```
|
||||
31
Интеграция СУП/Тестирование интеграции CRM - СУП.md
Normal file
31
Интеграция СУП/Тестирование интеграции CRM - СУП.md
Normal file
@@ -0,0 +1,31 @@
|
||||
## Описание ошибок
|
||||
|
||||
### Получение готовности проекта /viewApplication
|
||||
|
||||
| **Причина** | **Код статуса** | **Сообщение** |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | -------------------------------------------------------------------------------------------- |
|
||||
| Значение заголовка X-Erp-Integration не совпадает со значением, прописанным в конфигурации приложения | 403 | - |
|
||||
| Не найден проект по указанному applicationId | 404 | Project not found or an error occurred while creating. |
|
||||
| Не найден сотрудник по указанному значению ИНС в свойстве headProjectId (руководитель проекта) | 500 | projectManagerEmployee not found or an invalid ID was provided. |
|
||||
| Не найден сотрудник по указанному значению ИНС в свойстве directorProjectId (директор проекта) | 500 | projectDirectorEmployee not found or an invalid ID was provided. |
|
||||
| Не найден клиент по указанному коду R3 | 500 | customer not found or an invalid ID was provided. |
|
||||
| У указанного клиента нет привязанного к нему менеджера по продажам, и при этом не указан явный идентификатор менеджера по продажам в свойстве managerProjectId тела | 500 | Customer does not have a sale manager, and sale manager ID was not specified in the request. |
|
||||
| Не найден сотрудник по указанному значению ИНС в свойстве managerProjectId (менеджер по продажам проекта) | 500 | saleManager not found or an invalid ID was provided. |
|
||||
| Произошла ошибка при регистрации проекта в SAP | 500 | SAP returned error code. Project not registered. |
|
||||
| **При перевыпуске**: заявка, привязанная к ID сделки, не найдена, либо проект ещё не зарегистрирован | 500 | Project not found or not yet created. |
|
||||
| **При перевыпуске**: Статус заявки не равен значению «Зарегистрирована» | 500 | Invalid request status. |
|
||||
| **При перевыпуске**: не найден проект, соответствующий заявке | 500 | Error getting corresponding project. |
|
||||
| **При перевыпуске**: Статус проекта не соответствует значениям «Открыт» либо «Закрыт для списания TS» | 500 | Invalid project status. |
|
||||
| **При перевыпуске**: есть активная заявка на закрытие проекта | 500 | An active close request already exists for this project, meaning it cannot be reissued. |
|
||||
### Создание проекта /createPresaleProject
|
||||
|
||||
| **Причина** | **Код статуса** | **Сообщение** |
|
||||
| ----------------------------------------------------------------------------------------------------- | --------------- | -------------------------------------------------------------------------- |
|
||||
| Значение заголовка X-Erp-Integration не совпадает со значением, прописанным в конфигурации приложения | 403 | - |
|
||||
| Нет тела запроса | 400 | No body has been provided. |
|
||||
| Проект с указанным applicationId уже существует, при этом projectId не указан (повторное создание) | 400 | Cannot create project. Project with the same applicationId already exists. |
|
||||
### Получение статусов заявок и проектов /getPresaleProjectsStatus
|
||||
|
||||
| **Причина** | **Код статуса** | **Сообщение** |
|
||||
| ----------------------------------------------------------------------------------------------------- | --------------- | ------------- |
|
||||
| Значение заголовка X-Erp-Integration не совпадает со значением, прописанным в конфигурации приложения | 403 | - |
|
||||
@@ -1,3 +0,0 @@
|
||||
```
|
||||
export CONFIG_FILE="configs/config.yaml
|
||||
```
|
||||
293
Мама/Исследовательский проект по теме ЗОЖ.md
Normal file
293
Мама/Исследовательский проект по теме ЗОЖ.md
Normal file
@@ -0,0 +1,293 @@
|
||||
## Исследовательский проект "Секреты здоровья: юные учёные"
|
||||
|
||||
### Общая информация о проекте
|
||||
|
||||
**Проблема:** Дети дошкольного возраста имеют поверхностные представления о здоровом образе жизни, не понимают причинно-следственные связи между своими действиями и состоянием здоровья.
|
||||
|
||||
**Актуальность:** Формирование осознанного отношения к своему здоровью необходимо начинать с дошкольного возраста, когда закладываются основные привычки и паттерны поведения.
|
||||
|
||||
**Цель проекта:** Формирование у детей осознанного отношения к здоровому образу жизни через экспериментально-исследовательскую деятельность.
|
||||
|
||||
**Задачи:**
|
||||
|
||||
- Познакомить детей с основными составляющими здорового образа жизни
|
||||
- Развивать познавательную активность через экспериментирование
|
||||
- Формировать умение делать выводы на основе наблюдений
|
||||
- Воспитывать желание заботиться о своём здоровье
|
||||
|
||||
**Продолжительность:** 4 недели
|
||||
|
||||
**Участники:** дети 6-7 лет, воспитатели, родители
|
||||
|
||||
---
|
||||
|
||||
## Тематический план занятий
|
||||
|
||||
### Неделя 1. "Почему нужно мыть руки?"
|
||||
|
||||
#### Занятие 1. "Невидимые жители"
|
||||
|
||||
**Проблемная ситуация:** Почему взрослые постоянно говорят "помой руки"? Руки же чистые!
|
||||
|
||||
**Цель:** Показать детям необходимость соблюдения гигиены рук.
|
||||
|
||||
**Опыт 1: "Путешествие микробов"**
|
||||
|
||||
_Материалы:_ хлеб белый (3 кусочка), зип-пакеты (3 шт.), перчатки, маркер
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Кусочек №1 - берём чистыми руками в перчатках, кладём в пакет (контрольный образец)
|
||||
2. Кусочек №2 - трогаем немытыми руками после игры, кладём в пакет
|
||||
3. Кусочек №3 - трогаем руками, вымытыми с мылом, кладём в пакет
|
||||
4. Подписываем пакеты, убираем в тёплое место
|
||||
5. Наблюдаем 5-7 дней
|
||||
|
||||
_Ожидаемый результат:_ На хлебе №2 появится плесень быстрее всего, на №3 - медленнее или не появится.
|
||||
|
||||
_Вывод:_ На грязных руках живут микробы, которые могут вызвать болезни.
|
||||
|
||||
**Опыт 2: "Как мыло борется с грязью"**
|
||||
|
||||
_Материалы:_ тарелки с водой (2 шт.), перец молотый, жидкое мыло, ватные палочки
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Насыпаем перец на поверхность воды (это "микробы")
|
||||
2. Опускаем палец в воду - ничего не происходит
|
||||
3. Макаем палочку в мыло, опускаем в воду с перцем
|
||||
4. Перец разбегается к краям тарелки
|
||||
|
||||
_Вывод:_ Мыло "отталкивает" грязь и микробов от наших рук.
|
||||
|
||||
**Практическая часть:** Учимся правильно мыть руки (6 этапов мытья рук по ВОЗ в игровой форме)
|
||||
|
||||
---
|
||||
|
||||
### Неделя 2. "Что происходит с нашей едой?"
|
||||
|
||||
#### Занятие 2. "Почему нужно жевать?"
|
||||
|
||||
**Проблемная ситуация:** Зачем долго жевать? Можно же быстро проглотить!
|
||||
|
||||
**Цель:** Показать важность тщательного пережёвывания пищи.
|
||||
|
||||
**Опыт 3: "Волшебная слюна"**
|
||||
|
||||
_Материалы:_ крекеры несладкие, секундомер, зеркала
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Кладём кусочек крекера в рот, не жуём - засекаем время, когда он начнёт растворяться
|
||||
2. Второй кусочек тщательно жуём - наблюдаем, как быстро он становится мягким
|
||||
3. Смотрим в зеркало - какой язык становится? (влажный)
|
||||
|
||||
_Вывод:_ Слюна помогает переваривать пищу, а жевание делает еду мягкой и удобной для желудка.
|
||||
|
||||
**Опыт 4: "Путь яблока"**
|
||||
|
||||
_Материалы:_ яблоко, тёрка, прозрачные стаканы, вода, пакет зип-лок
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Кусочек яблока - это еда во рту (целый кусок)
|
||||
2. Натираем яблоко - так работают зубы
|
||||
3. Кладём в пакет с водой, мнём - так работает желудок
|
||||
4. Показываем, как из кашицы организм берёт полезное
|
||||
|
||||
_Вывод:_ Хорошо пережёванная пища легче переваривается.
|
||||
|
||||
**Творческая работа:** Рисуем "Путешествие яблока по организму"
|
||||
|
||||
---
|
||||
|
||||
### Неделя 3. "Зачем нужна вода и свежий воздух?"
|
||||
|
||||
#### Занятие 3. "Вода - помощница здоровья"
|
||||
|
||||
**Проблемная ситуация:** Зачем пить воду, если можно сок или компот?
|
||||
|
||||
**Цель:** Показать важность чистой воды для организма.
|
||||
|
||||
**Опыт 5: "Фильтр нашего тела"**
|
||||
|
||||
_Материалы:_ фильтр для кофе, воронка, стаканы, вода с землёй, чистая вода, сок, компот
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Фильтруем грязную воду - она становится чище
|
||||
2. Фильтруем сок - фильтр окрашивается, засоряется
|
||||
3. Фильтруем чистую воду - фильтр остаётся чистым
|
||||
|
||||
_Объяснение:_ Наши почки работают как фильтр. Чистой воде их легче очищать, а сладкие напитки - это дополнительная работа.
|
||||
|
||||
_Вывод:_ Чистая вода лучше всего утоляет жажду и помогает организму.
|
||||
|
||||
**Опыт 6: "Растение без воды"**
|
||||
|
||||
_Материалы:_ 2 одинаковых растения в горшках
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Одно растение поливаем регулярно
|
||||
2. Второе не поливаем неделю
|
||||
3. Наблюдаем и зарисовываем изменения каждый день
|
||||
|
||||
_Вывод:_ Без воды всё живое вянет и может погибнуть. Нашему телу тоже нужна вода.
|
||||
|
||||
**Практическое задание:** Ведём дневник "Сколько стаканов воды я выпил сегодня"
|
||||
|
||||
---
|
||||
|
||||
#### Занятие 4. "Чистый воздух - здоровые лёгкие"
|
||||
|
||||
**Проблемная ситуация:** Почему в комнате нужно открывать окна? Зимой же холодно!
|
||||
|
||||
**Цель:** Показать важность свежего воздуха и проветривания.
|
||||
|
||||
**Опыт 7: "Объём лёгких"**
|
||||
|
||||
_Материалы:_ воздушные шары, сантиметровая лента
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Дети надувают шары одним выдохом
|
||||
2. Измеряем объём шара
|
||||
3. Делаем физкультминутку
|
||||
4. Надуваем снова - шар больше!
|
||||
|
||||
_Вывод:_ Физические упражнения развивают лёгкие.
|
||||
|
||||
**Опыт 8: "Свежий и спёртый воздух"**
|
||||
|
||||
_Материалы:_ 2 банки с крышками, свеча, спички
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Одну банку открываем на улице/у окна на 5 минут
|
||||
2. Вторую держим закрытой в комнате
|
||||
3. Зажигаем свечу, опускаем в первую банку - горит дольше
|
||||
4. Опускаем во вторую - гаснет быстрее
|
||||
|
||||
_Вывод:_ В свежем воздухе больше кислорода, который нужен для дыхания.
|
||||
|
||||
**Дыхательная гимнастика:** Комплекс упражнений "Лесной воздух"
|
||||
|
||||
---
|
||||
|
||||
### Неделя 4. "Движение - это жизнь!"
|
||||
|
||||
#### Занятие 5. "Что происходит, когда мы двигаемся?"
|
||||
|
||||
**Проблемная ситуация:** Почему после бега сердце стучит быстрее?
|
||||
|
||||
**Цель:** Показать влияние физической активности на организм.
|
||||
|
||||
**Опыт 9: "Пульс до и после"**
|
||||
|
||||
_Материалы:_ секундомер, стетоскоп (игрушечный)
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Считаем пульс в спокойном состоянии (педагог помогает найти пульс на запястье)
|
||||
2. Делаем 20 приседаний
|
||||
3. Снова считаем пульс
|
||||
4. Отдыхаем 3 минуты, считаем снова
|
||||
|
||||
_Вывод:_ При движении сердце работает активнее, разгоняя кровь с кислородом по телу. Тренированное сердце быстрее восстанавливается.
|
||||
|
||||
**Опыт 10: "Сила мышц"**
|
||||
|
||||
_Материалы:_ эспандер детский или резиновая лента, таблица наблюдений
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Сжимаем эспандер максимальное количество раз (считаем)
|
||||
2. Каждый день тренируемся
|
||||
3. Через неделю проверяем - получается больше раз!
|
||||
|
||||
_Вывод:_ Мышцы от тренировок становятся сильнее.
|
||||
|
||||
**Подвижные игры:** Эстафеты "Весёлые старты здоровья"
|
||||
|
||||
---
|
||||
|
||||
#### Занятие 6. "Сон - лучшее лекарство"
|
||||
|
||||
**Проблемная ситуация:** Зачем ложиться спать рано? Хочу ещё играть!
|
||||
|
||||
**Цель:** Показать важность полноценного сна для здоровья.
|
||||
|
||||
**Опыт 11: "Усталые глаза"**
|
||||
|
||||
_Материалы:_ мелкие картинки, таймер, таблица для фиксации результатов
|
||||
|
||||
_Ход опыта:_
|
||||
|
||||
1. Утром дети рассматривают и запоминают картинки (сколько деталей увидели за 30 сек)
|
||||
2. Вечером перед сном повторяем - результат хуже
|
||||
3. После выходного (когда выспались) проверяем снова - лучше!
|
||||
|
||||
_Вывод:_ Уставший мозг хуже работает, а сон помогает восстановиться.
|
||||
|
||||
**Опыт 12: "Растения тоже спят"**
|
||||
|
||||
_Материалы:_ растение кислица (оксалис) или мимоза стыдливая
|
||||
|
||||
_Ход наблюдения:_
|
||||
|
||||
1. Наблюдаем за растением днём - листья открыты
|
||||
2. Смотрим вечером - листья закрыты
|
||||
3. Делаем фото, сравниваем
|
||||
|
||||
_Вывод:_ Всему живому нужен отдых и сон для восстановления сил.
|
||||
|
||||
**Релаксация:** Упражнение "Готовимся ко сну" (дыхание, расслабление)
|
||||
|
||||
---
|
||||
|
||||
## Итоговое мероприятие (конец 4-й недели)
|
||||
|
||||
### Научная конференция "Мы - исследователи здоровья!"
|
||||
|
||||
**Формат:** Презентация результатов проекта для родителей и других групп
|
||||
|
||||
**Содержание:**
|
||||
|
||||
1. Выставка исследовательских дневников
|
||||
2. Демонстрация опытов (дети показывают 2-3 самых ярких)
|
||||
3. Презентация плакатов "Секреты здоровья"
|
||||
4. Вручение дипломов "Юный исследователь ЗОЖ"
|
||||
|
||||
---
|
||||
|
||||
## Работа с родителями
|
||||
|
||||
1. **Информационный стенд:** "Простые опыты дома"
|
||||
2. **Домашние задания:**
|
||||
- Вести дневник питья воды
|
||||
- Зарисовывать полезные продукты
|
||||
- Фиксировать время сна
|
||||
3. **Консультации:** "Как поддержать исследовательский интерес ребёнка"
|
||||
|
||||
---
|
||||
|
||||
## Результаты проекта
|
||||
|
||||
**Дети научатся:**
|
||||
|
||||
- Понимать необходимость гигиены, правильного питания, физической активности
|
||||
- Проводить простые опыты и делать выводы
|
||||
- Объяснять, почему важен ЗОЖ
|
||||
- Применять знания в повседневной жизни
|
||||
|
||||
**Педагоги получат:**
|
||||
|
||||
- Методическую копилку опытов по ЗОЖ
|
||||
- Опыт проектной деятельности
|
||||
- Материалы для портфолио
|
||||
|
||||
**Родители:**
|
||||
|
||||
- Станут союзниками в формировании ЗОЖ
|
||||
- Получат практические рекомендации
|
||||
3
Работа/Локальная разработка.md
Normal file
3
Работа/Локальная разработка.md
Normal file
@@ -0,0 +1,3 @@
|
||||
```
|
||||
export CONFIG_FILE="configs/config.yaml"
|
||||
```
|
||||
@@ -1,80 +0,0 @@
|
||||
## Заявка
|
||||
|
||||
- Черновик
|
||||
- На утверждении
|
||||
- На рассмотрении в ЦПРП
|
||||
- Зарегистрирована (финальный)
|
||||
- Отклонена
|
||||
## Проект
|
||||
|
||||
- Открыт - 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 статуса проекта
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user