vault backup: 2025-06-04 12:06:53

This commit is contained in:
sShemet
2025-06-04 12:06:53 +05:00
parent 5a93413e7d
commit b621116917
2 changed files with 8 additions and 8 deletions

View File

@@ -15,9 +15,9 @@
"state": {
"file": "WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Данные образца и ФИЗы.canvas",
"viewState": {
"x": -3.8443146012970715,
"y": -266.221875773694,
"zoom": -0.33333333333333326
"x": -378.24801244453647,
"y": 269.3282157619669,
"zoom": -0.9999999999999999
}
},
"icon": "lucide-layout-dashboard",

View File

@@ -9,11 +9,11 @@
{"id":"ae68b7d5dfd17b3e","x":-765,"y":-560,"width":565,"height":140,"type":"text","text":"Участвующие в динамическом распределении данных таблицы sample_details, requests и т.д. **ОБЯЗАНЫ** привязку к текущему incoming_object и иметь поле dynamic_data, в котором будут храниться данные, сохранённые из динамических полей"},
{"id":"b630f9de672de8d5","type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/dynamic_controls_table.md","x":-40,"y":-1309,"width":1360,"height":749},
{"id":"330a5e6e96216ba6","x":-1500,"y":-1206,"width":400,"height":464,"type":"file","file":"WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/pgo_to_groups.md"},
{"id":"2219c7c391038f10","x":-1247,"y":-283,"width":812,"height":280,"type":"text","text":"### Инициация\n\nКрасные поля в таблице “Распределение данных” и поля, **которые ни от чего не зависят** - грузятся в форму на фронте и сохраняются в свои соответствующие таблицы (поля с заказчиком, основание, договор, контактные лица, менеджер и тд) - они общие для всех и их лучше обрабатывать как нормальные данные.\n\nПосле выбора ТИПА ОИ, ТИПА ИСПЫТАНИЙ, ГРУППЫ ОИ (в окне Заявки или Образца) начинается подгрузка динамических полей."},
{"id":"78a47b6bae2c6690","x":-1247,"y":17,"width":812,"height":280,"type":"text","text":"### Определение динамических полей\n\nИз группы ОИ получается PGO (пакет группы испытаний (бывший ФИЗ)) из таблицы pgo_to_groups\nВыполняется выборка dyn_controls_id из таблицы **modules_to_dyn_controls** согласно выбранным object_type, trials_type, pgo и модуля (page), запрашивающего данные.\nПо каждому элементу массива dyn_controls_id выполняется выборка из таблицы dynamic_controls_table c сортировкой по sort_id."},
{"id":"d3bed003864f4b06","x":-1247,"y":340,"width":812,"height":280,"type":"text","text":"### Форматирование динамических полей\n\nКаждый элемент поля проходит проверку и подготавливается для отправки на фронтэнд.\nПроверяется каждое поле renderData и если есть ключ table, то делается выборка из соответствующей таблицы с параметрами и поле трансформируется в options с готовыми данными.\n\nКаждому полю на фронте присваивается свойство dynamic_control, чтобы обработать его данные при сохранении"},
{"id":"4c9e712b802ea35e","x":-1247,"y":637,"width":812,"height":246,"type":"text","text":"### Подгрузка сохранённых данных\n\nЭту процедуру можно выполнять в предыдущем цикле обработки.\n"},
{"id":"36f032eaa8b89a57","x":225,"y":-157,"width":535,"height":517,"type":"text","text":"### Содержание поля dynamic_data у таблиц с данными динамических полей\n\n```json\n[\n\t{\n\t\t\"dynamic_control_id\": \"3\",\n\t\t\"dya\"\n\t}\n]\n```"}
{"id":"2219c7c391038f10","x":-1247,"y":-283,"width":812,"height":263,"type":"text","text":"### Инициация\n\nКрасные поля в таблице “Распределение данных” и поля, **которые ни от чего не зависят** - грузятся в форму на фронте и сохраняются в свои соответствующие таблицы (поля с заказчиком, основание, договор, контактные лица, менеджер и тд) - они общие для всех и их лучше обрабатывать как нормальные данные.\n\nПосле выбора ТИПА ОИ, ТИПА ИСПЫТАНИЙ, ГРУППЫ ОИ (в окне Заявки или Образца) начинается подгрузка динамических полей."},
{"id":"d3bed003864f4b06","x":-1247,"y":300,"width":812,"height":280,"type":"text","text":"### Форматирование динамических полей\n\nКаждый элемент поля проходит проверку и подготавливается для отправки на фронтэнд.\nПроверяется каждое поле renderData и если есть ключ table, то делается выборка из соответствующей таблицы с параметрами и поле трансформируется в options с готовыми данными.\n\nКаждому полю на фронте присваивается свойство dynamic_control, чтобы обработать его данные при сохранении"},
{"id":"78a47b6bae2c6690","x":-1247,"y":0,"width":812,"height":280,"type":"text","text":"### Определение динамических полей\n\nИз группы ОИ получается PGO (пакет группы испытаний (бывший ФИЗ)) из таблицы pgo_to_groups\nВыполняется выборка dyn_controls_id из таблицы **modules_to_dyn_controls** согласно выбранным object_type, trials_type, pgo и модуля (page), запрашивающего данные.\nПо каждому элементу массива dyn_controls_id выполняется выборка из таблицы dynamic_controls_table c сортировкой по sort_id."},
{"id":"4c9e712b802ea35e","x":-1247,"y":600,"width":812,"height":320,"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Таким образом можно собирать данные, присвоенные в совершенно разных динамических полях заявки/документов. Пример со"},
{"id":"36f032eaa8b89a57","x":-160,"y":63,"width":535,"height":517,"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```"}
],
"edges":[
{"id":"0d9077e7e1292cd9","fromNode":"5145a7e528f0982d","fromSide":"right","toNode":"a88fb2abcad3e173","toSide":"left"},