diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 1e9792c..e5fa5c7 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -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", diff --git a/WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Данные образца и ФИЗы.canvas b/WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Данные образца и ФИЗы.canvas index 4f6af0f..e3ee9ab 100644 --- a/WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Данные образца и ФИЗы.canvas +++ b/WORK & PROJECTS/Mol/Планы и диаграммы/Заказы/Данные образца и ФИЗы.canvas @@ -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"},