Compare commits
2 Commits
df446242d0
...
0febea824f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0febea824f | ||
|
|
1d482afd62 |
56
.obsidian/workspace.json
vendored
56
.obsidian/workspace.json
vendored
@@ -13,7 +13,7 @@
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля Заявок (декомпозиция) 2026.02.md",
|
||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/Динамические поля Заявок (декомпозиция) 2026.02.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
@@ -27,19 +27,36 @@
|
||||
"state": {
|
||||
"type": "canvas",
|
||||
"state": {
|
||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/ТЗ динамических полей и ФИЗов.canvas",
|
||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/Динамические поля заявки v2.canvas",
|
||||
"viewState": {
|
||||
"x": 60.02897813813283,
|
||||
"y": 2.568911463242898,
|
||||
"zoom": -1.6666666666666665
|
||||
"x": 64.5,
|
||||
"y": 425.5,
|
||||
"zoom": -0.36721020129267584
|
||||
}
|
||||
},
|
||||
"icon": "lucide-layout-dashboard",
|
||||
"title": "ТЗ динамических полей и ФИЗов"
|
||||
"title": "Динамические поля заявки v2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b976d8650bf8acd4",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "canvas",
|
||||
"state": {
|
||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/Динамические поля заявки v2 логика.canvas",
|
||||
"viewState": {
|
||||
"x": 694.6675450455695,
|
||||
"y": -611.8848934991277,
|
||||
"zoom": -0.6666666666666666
|
||||
}
|
||||
},
|
||||
"icon": "lucide-layout-dashboard",
|
||||
"title": "Динамические поля заявки v2 логика"
|
||||
}
|
||||
}
|
||||
],
|
||||
"currentTab": 1
|
||||
"currentTab": 2
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
@@ -160,13 +177,13 @@
|
||||
"state": {
|
||||
"type": "outline",
|
||||
"state": {
|
||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/ТЗ динамических полей и ФИЗов.canvas",
|
||||
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/Динамические поля заявки v2 логика.canvas",
|
||||
"followCursor": false,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-list",
|
||||
"title": "Outline of ТЗ динамических полей и ФИЗов"
|
||||
"title": "Outline of Динамические поля заявки v2 логика"
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -174,7 +191,8 @@
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 311.5
|
||||
"width": 200,
|
||||
"collapsed": true
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
@@ -189,15 +207,18 @@
|
||||
"obsidian-git:Open Git source control": false
|
||||
}
|
||||
},
|
||||
"active": "6b48f00544f0a713",
|
||||
"active": "b976d8650bf8acd4",
|
||||
"lastOpenFiles": [
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/pgo_to_groups.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля Заявок (декомпозиция) 2026.02.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/ТЗ динамических полей и ФИЗов.canvas",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля заявки v2.canvas",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/Динамические поля заявки v2.canvas",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/Динамические поля заявки v2 логика.canvas",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/samplings table.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/test logic.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/Динамические поля Заявок (декомпозиция) 2026.02.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/ТЗ динамических полей и ФИЗов.canvas",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/pgo_to_groups.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 08_2025.md",
|
||||
"WORK & PROJECTS/Mol/Deepseek API-key.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/test logic.md",
|
||||
"WORK & PROJECTS/Mol/Ideas/Все идеи для Моли.md",
|
||||
"WORK & PROJECTS/UAS/Счета оплаты серверов/01_2026_UAS_FIRSTVDS.pdf",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Alfa Cloud/Alfa cloud readme.md",
|
||||
@@ -221,7 +242,6 @@
|
||||
"WORK & PROJECTS/Mol/Серверы/mail.mol-soft.ru.md",
|
||||
"WORK & PROJECTS/Untitled",
|
||||
"WORK & PROJECTS/Mol/Документы ООО Моль-софт/Счета оплаты серверов/beget_2026_01.pdf",
|
||||
"WORK & PROJECTS/Mol/Документы ООО Моль-софт/Счета оплаты серверов/beget_2026_01.pdf.crdownload",
|
||||
"PERSONAL PROJECTS/P2EP/logo.canvas",
|
||||
"PERSONAL PROJECTS/P2EP/pseudoCode/fade calculation.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Структура таблиц. Основа + заказы.canvas",
|
||||
@@ -236,8 +256,6 @@
|
||||
"WORK & PROJECTS/Mol/Серверы/Jira - Service - Confluence - Crm.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 07_2025.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 06_2025.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - 04_2025.md",
|
||||
"WORK & PROJECTS/Mol/Планы и диаграммы/Согласования и статусы/status_stage_logs.md",
|
||||
"Структура объектов испытаний.png",
|
||||
"Схема связей юрлиц и адресов.png",
|
||||
"WORK & PROJECTS/img/Pasted image 20241212175419.png",
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"nodes":[
|
||||
{"id":"eaf8029d981c7fde","type":"text","text":"Динамические поля\n\\[\\[object types], \\[gpos\\]]","x":60,"y":-520,"width":320,"height":80},
|
||||
{"id":"7016561d48ff982b","type":"text","text":"Сервис OptionalFieldsService","x":95,"y":-652,"width":250,"height":60},
|
||||
{"id":"7fe6dcb37ae00f3a","type":"text","text":"Контроллер\nOptionalFieldsController","x":95,"y":-800,"width":250,"height":60},
|
||||
{"id":"9fcba45f24a17111","type":"text","text":"Типы ОИ (выбор с фронта)\n1. Продукция\n2. Биологические материалы\n3. Атмосферные\n…….","x":-65,"y":-330,"width":250,"height":180},
|
||||
{"id":"311f4e1efdc5f6ae","type":"text","text":"Пакет Групп Испытаний\n(object group package)","x":440,"y":-390,"width":250,"height":60},
|
||||
{"id":"fdf86c47886dc7a7","type":"text","text":"Группы ОИ","x":440,"y":-210,"width":250,"height":60},
|
||||
{"id":"346bf02d73932212","type":"text","text":"Классификатор продукции\n………..","x":190,"y":-10,"width":250,"height":60},
|
||||
{"id":"a4a06647b44fa5ac","type":"text","text":"Окружающая среда\n……….\n","x":440,"y":-10,"width":250,"height":60},
|
||||
{"id":"a440405c2d30e2c8","type":"text","text":"Производственная среда\n…….","x":690,"y":-10,"width":250,"height":60},
|
||||
{"id":"40c24af613dd3270","type":"text","text":"Frontend","x":95,"y":-920,"width":250,"height":60,"color":"5"},
|
||||
{"id":"975525ee56508717","type":"text","text":"Сервис\nOrder / Request Service","x":-260,"y":-652,"width":250,"height":60}
|
||||
],
|
||||
"edges":[
|
||||
{"id":"0c924b9f022d82f3","fromNode":"fdf86c47886dc7a7","fromSide":"bottom","toNode":"346bf02d73932212","toSide":"top"},
|
||||
{"id":"2cb09cda5fc0e2e2","fromNode":"fdf86c47886dc7a7","fromSide":"bottom","toNode":"a4a06647b44fa5ac","toSide":"top"},
|
||||
{"id":"4e0c76341c80d465","fromNode":"fdf86c47886dc7a7","fromSide":"bottom","toNode":"a440405c2d30e2c8","toSide":"top"},
|
||||
{"id":"96590a1f74f044b9","fromNode":"7016561d48ff982b","fromSide":"left","toNode":"975525ee56508717","toSide":"right"},
|
||||
{"id":"375d4c396b3b4d13","fromNode":"975525ee56508717","fromSide":"top","toNode":"40c24af613dd3270","toSide":"left","label":"open"},
|
||||
{"id":"abb0f5b93cbb514f","fromNode":"eaf8029d981c7fde","fromSide":"top","toNode":"7016561d48ff982b","toSide":"bottom"},
|
||||
{"id":"15f10ef4cfa0bee3","fromNode":"9fcba45f24a17111","fromSide":"top","toNode":"eaf8029d981c7fde","toSide":"bottom"},
|
||||
{"id":"8d095bac68164314","fromNode":"311f4e1efdc5f6ae","fromSide":"top","toNode":"eaf8029d981c7fde","toSide":"right"},
|
||||
{"id":"69f142277df11fa4","fromNode":"fdf86c47886dc7a7","fromSide":"top","toNode":"311f4e1efdc5f6ae","toSide":"bottom","label":"m2m ogp to groups"},
|
||||
{"id":"ee33053ddf3dc84e","fromNode":"7016561d48ff982b","fromSide":"top","toNode":"7fe6dcb37ae00f3a","toSide":"bottom"},
|
||||
{"id":"ca97a1d860cb438f","fromNode":"7fe6dcb37ae00f3a","fromSide":"top","toNode":"40c24af613dd3270","toSide":"bottom"}
|
||||
]
|
||||
}
|
||||
@@ -10,8 +10,8 @@
|
||||
{"id":"4c9e712b802ea35e","type":"text","text":"### Подгрузка сохранённых данных\n\nЭту процедуру можно выполнять в предыдущем цикле обработки каждого поля\nСобираются все уникальные значения destination_table у текущих выбранных полей\nДелается выборка по таблицам destination_table по id открытого документа или destination_table.incoming_object.id\nУ выбранных объектов получаются json-массивы сохранённых данных из поля dynamic_data\nКаждое динамическое поле проверяется на соответствие и присутствие в сохранённых данных.\nЕсли данные присутствуют - динамическому полю добавляется поле “value” со значением из документа.\nТаким образом можно собирать данные, присвоенные в совершенно разных динамических полях заявки/документов. Пример сохранённых данных показан ниже","x":600,"y":-260,"width":600,"height":463},
|
||||
{"id":"d3bed003864f4b06","type":"text","text":"### Форматирование динамических полей\n\nКаждый элемент поля проходит проверку и подготавливается для отправки на фронтэнд.\nПроверяется каждое поле renderData и если есть ключ table, то делается выборка из соответствующей таблицы с параметрами и поле трансформируется в options с готовыми данными.\n\nКаждому полю на фронте присваивается свойство dynamic_control_id, чтобы обработать его данные при сохранении","x":-80,"y":-260,"width":600,"height":463},
|
||||
{"id":"36f032eaa8b89a57","type":"text","text":"### Содержание поля dynamic_data у таблиц с данными динамических полей.\n\n```json\n[\n\t{\n\t\t\"id\": \"3\",\n\t\t\"name: \"tn_ved\",\n\t\t\"value\" : \"3022 4433\"\n\t},\n\t{\n\t\t\"id\": \"7\",\n\t\t\"name: \"storage_conditions\",\n\t\t\"value\" : \"Пакет целлофановый\"\n\t},\n\t{\n\t\t\"id\": \"9\",\n\t\t\"name: \"trials_in_OA_range\",\n\t\t\"value\" : true\n\t},\n]\n```","x":-400,"y":283,"width":535,"height":517},
|
||||
{"id":"4aefb6d2d59c1c9a","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/modules_to_dyn_controls.md","x":-960,"y":-1309,"width":760,"height":669},
|
||||
{"id":"330a5e6e96216ba6","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/pgo_to_groups.md","x":-1500,"y":-1206,"width":400,"height":464},
|
||||
{"id":"4aefb6d2d59c1c9a","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/modules_to_dyn_controls.md","x":-960,"y":-1309,"width":760,"height":669},
|
||||
{"id":"330a5e6e96216ba6","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/pgo_to_groups.md","x":-1500,"y":-1206,"width":400,"height":464},
|
||||
{"id":"68b998893332eba2","type":"text","text":"trials_type\n1 - Лабораторные\n2 - Выездные","x":-560,"y":-1440,"width":250,"height":103},
|
||||
{"id":"3c06fbe8ba52b772","type":"text","text":"### Отправка данных на backend\n\nС фронтенда прилетают данные полей со свойством dynamic_control_id и value","x":-1120,"y":940,"width":600,"height":380},
|
||||
{"id":"2f8ebcf398e207de","type":"text","text":"### Формирование и сохранение массива данных\n\nДелается выборка полей id, name, destination_table из таблицы dynamic_control_id из массива всех полученных dynamic_control_id\n\nСобирается несколько массивов dynamic_data с группировкой по destination_table\nПроходя по каждой записи destination_table выбирается объект для записи из таблицы по текущему incoming_object_id (прилетает с фронтенда или создаётся при первичном сохранении).\nТекущий массив данных сохраняется в поле dynamic_data в таблицу destination_table","x":340,"y":940,"width":600,"height":380},
|
||||
@@ -20,7 +20,7 @@
|
||||
{"id":"2ec086ec8e32925e","type":"text","text":"Сформировать первичные данные таблиц pgo_to_groups, dynamic_controls_table и modules_to_dyn_controls, необходимые для отображения/сохранения данных по текущим данным. Для начала вручную. Можно задуматься о ТЗ редактора :)","x":-782,"y":1510,"width":1342,"height":70},
|
||||
{"id":"ddb16308453a51d9","type":"text","text":"Продумать поддержку зависимости от объектов, глубже incoming_object (Испытания/протоколы)","x":-779,"y":1580,"width":1339,"height":60},
|
||||
{"id":"e968c77fea8190c3","type":"text","text":"Валидация полей","x":-779,"y":1640,"width":1339,"height":60},
|
||||
{"id":"b630f9de672de8d5","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/dynamic_controls_table.md","x":-40,"y":-1349,"width":1360,"height":749}
|
||||
{"id":"b630f9de672de8d5","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Динамические поля/dynamic_controls_table.md","x":-40,"y":-1349,"width":1360,"height":749}
|
||||
],
|
||||
"edges":[
|
||||
{"id":"15a75fcef9b6166b","fromNode":"4aefb6d2d59c1c9a","fromSide":"right","toNode":"b630f9de672de8d5","toSide":"left"},
|
||||
Reference in New Issue
Block a user