diff --git a/backend/app.pid b/backend/app.pid index 377e29128..556cae2dd 100644 --- a/backend/app.pid +++ b/backend/app.pid @@ -1 +1 @@ -87270 +12254 diff --git a/backend/app/api/admin.py b/backend/app/api/admin.py index b52f2765e..15ffedd49 100644 --- a/backend/app/api/admin.py +++ b/backend/app/api/admin.py @@ -5,6 +5,7 @@ from typing import Any, List, Optional from fastapi import APIRouter, Depends, Query, UploadFile, File, Form from pydantic import BaseModel, ConfigDict, Field +from sqlalchemy import or_ from sqlalchemy.orm import Session from app.core.config import settings @@ -25,7 +26,7 @@ from app.crud import menu as menu_svc from app.crud import role as role_svc from app.crud import user as user_svc from app.crud.collection_protocol import _lookup_attachment_by_url -from app.models.models import BizAttachment, SysRole, SysUser +from app.models.models import BizAttachment, SysDept, SysRole, SysUser from app.services.web_auth_roles import _map_role_name_to_web router = APIRouter(prefix="/web/admin", tags=["运营端管理"]) @@ -272,8 +273,16 @@ async def list_users( SysUser.del_flag == 0, SysUser.tenant_no == tenant_no, ) - if keyword: - query = query.filter(SysUser.nick_name.like(f"%{keyword}%")) + kw = (keyword or "").strip() + if kw: + like = f"%{kw}%" + query = query.filter( + or_( + SysUser.user_no.like(like), + SysUser.nick_name.like(like), + SysUser.phone_no.like(like), + ) + ) if deptId: query = query.filter(SysUser.dept_id == deptId) if status: @@ -281,7 +290,14 @@ async def list_users( query = apply_data_scope(query, SysUser, user, db, tenant_no) total = query.count() items = query.order_by(SysUser.create_time.desc()).offset((page - 1) * pageSize).limit(pageSize).all() - result_list = [user_svc._row_to_dict(r) for r in items] + dept_ids = list({r.dept_id for r in items if r.dept_id}) + dept_map: dict[str, str] = {} + if dept_ids: + for d in db.query(SysDept).filter(SysDept.id.in_(dept_ids), SysDept.del_flag == 0).all(): + dept_map[d.id] = d.dept_name or "" + result_list = [ + user_svc._row_to_dict(r, dept_name=dept_map.get(r.dept_id or "", "")) for r in items + ] tp = user_svc.total_pages(total, pageSize) return success_response({"list": result_list, "total": total, "page": page, "pageSize": pageSize, "totalPages": tp}) diff --git a/backend/app/crud/dept.py b/backend/app/crud/dept.py index 1482212e1..77bf6bc31 100644 --- a/backend/app/crud/dept.py +++ b/backend/app/crud/dept.py @@ -35,6 +35,22 @@ def _build_tree(items: List[Dict[str, Any]], parent_id: str = "0") -> List[Dict[ return children +def _collect_with_ancestors( + items: List[Dict[str, Any]], seed_ids: set[str] +) -> List[Dict[str, Any]]: + """保留匹配节点及其全部上级,供关键词检索后仍能正确组树。""" + by_id = {item["id"]: item for item in items if item.get("id")} + keep: set[str] = set() + for sid in seed_ids: + cur = (sid or "").strip() + while cur and cur != "0": + if cur not in by_id: + break + keep.add(cur) + cur = (by_id[cur].get("parentId") or "0").strip() + return [by_id[i] for i in keep if i in by_id] + + def list_depts( db: Session, *, @@ -58,8 +74,19 @@ def list_depts_tree( keyword: Optional[str] = None, tenant_no: Optional[str] = None, ) -> List[Dict[str, Any]]: - flat = list_depts(db, keyword=keyword, tenant_no=tenant_no) - return _build_tree(flat, "0") + kw = (keyword or "").strip() + if not kw: + flat = list_depts(db, keyword=None, tenant_no=tenant_no) + return _build_tree(flat, "0") + + matched = list_depts(db, keyword=keyword, tenant_no=tenant_no) + if not matched: + return [] + + all_flat = list_depts(db, keyword=None, tenant_no=tenant_no) + seed_ids = {m["id"] for m in matched if m.get("id")} + expanded = _collect_with_ancestors(all_flat, seed_ids) + return _build_tree(expanded, "0") def get_dept(db: Session, dept_id: str) -> Optional[SysDept]: diff --git a/backend/app/graphify-out/cache/ast/5f0e9bae2fbc86fffb6c205f941007475943651b59cdb146bc43d9b9fee77b71.json b/backend/app/graphify-out/cache/ast/5f0e9bae2fbc86fffb6c205f941007475943651b59cdb146bc43d9b9fee77b71.json new file mode 100644 index 000000000..df8d3e204 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/5f0e9bae2fbc86fffb6c205f941007475943651b59cdb146bc43d9b9fee77b71.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "label": "dept.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L1"}, {"id": "crud_dept_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L13"}, {"id": "crud_dept_build_tree", "label": "_build_tree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L30"}, {"id": "crud_dept_collect_with_ancestors", "label": "_collect_with_ancestors()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L38"}, {"id": "crud_dept_list_depts", "label": "list_depts()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L54"}, {"id": "crud_dept_list_depts_tree", "label": "list_depts_tree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L71"}, {"id": "crud_dept_get_dept", "label": "get_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L92"}, {"id": "crud_dept_create_dept", "label": "create_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L100"}, {"id": "crud_dept_update_dept", "label": "update_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L141"}, {"id": "crud_dept_cascade_soft_delete", "label": "_cascade_soft_delete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L179"}, {"id": "crud_dept_soft_delete_dept", "label": "soft_delete_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L192"}, {"id": "crud_dept_rationale_41", "label": "\u4fdd\u7559\u5339\u914d\u8282\u70b9\u53ca\u5176\u5168\u90e8\u4e0a\u7ea7\uff0c\u4f9b\u5173\u952e\u8bcd\u68c0\u7d22\u540e\u4ecd\u80fd\u6b63\u786e\u7ec4\u6811\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L41"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_build_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_collect_with_ancestors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L38", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_list_depts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L54", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_list_depts_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L71", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_get_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L92", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_create_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_update_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L141", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_cascade_soft_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L179", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_soft_delete_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L192", "weight": 1.0}, {"source": "crud_dept_list_depts", "target": "crud_dept_row_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L68", "weight": 1.0}, {"source": "crud_dept_list_depts_tree", "target": "crud_dept_list_depts", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L79", "weight": 1.0}, {"source": "crud_dept_list_depts_tree", "target": "crud_dept_build_tree", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L80", "weight": 1.0}, {"source": "crud_dept_list_depts_tree", "target": "crud_dept_collect_with_ancestors", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L88", "weight": 1.0}, {"source": "crud_dept_update_dept", "target": "crud_dept_get_dept", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L154", "weight": 1.0}, {"source": "crud_dept_soft_delete_dept", "target": "crud_dept_get_dept", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L193", "weight": 1.0}, {"source": "crud_dept_soft_delete_dept", "target": "crud_dept_cascade_soft_delete", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L196", "weight": 1.0}, {"source": "crud_dept_rationale_41", "target": "crud_dept_collect_with_ancestors", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L41", "weight": 1.0}], "raw_calls": [{"caller_nid": "crud_dept_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L25"}, {"caller_nid": "crud_dept_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L26"}, {"caller_nid": "crud_dept_build_tree", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L31"}, {"caller_nid": "crud_dept_build_tree", "callee": "sort", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L34"}, {"caller_nid": "crud_dept_build_tree", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L34"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L42"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L43"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L45"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L49"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L50"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L50"}, {"caller_nid": "crud_dept_list_depts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L60"}, {"caller_nid": "crud_dept_list_depts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L60"}, {"caller_nid": "crud_dept_list_depts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L62"}, {"caller_nid": "crud_dept_list_depts", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L63"}, {"caller_nid": "crud_dept_list_depts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L66"}, {"caller_nid": "crud_dept_list_depts", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L66"}, {"caller_nid": "crud_dept_list_depts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L67"}, {"caller_nid": "crud_dept_list_depts", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L67"}, {"caller_nid": "crud_dept_list_depts", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L67"}, {"caller_nid": "crud_dept_list_depts_tree", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L77"}, {"caller_nid": "crud_dept_list_depts_tree", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L87"}, {"caller_nid": "crud_dept_get_dept", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L94"}, {"caller_nid": "crud_dept_get_dept", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L94"}, {"caller_nid": "crud_dept_get_dept", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L94"}, {"caller_nid": "crud_dept_get_dept", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L95"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L114"}, {"caller_nid": "crud_dept_create_dept", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L116"}, {"caller_nid": "crud_dept_create_dept", "callee": "SysDept", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L117"}, {"caller_nid": "crud_dept_create_dept", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L118"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L119"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L121"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L123"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L124"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L127"}, {"caller_nid": "crud_dept_create_dept", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L130"}, {"caller_nid": "crud_dept_create_dept", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L132"}, {"caller_nid": "crud_dept_create_dept", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L135"}, {"caller_nid": "crud_dept_create_dept", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L136"}, {"caller_nid": "crud_dept_create_dept", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L137"}, {"caller_nid": "crud_dept_update_dept", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L156"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L158"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L160"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L164"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L166"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L170"}, {"caller_nid": "crud_dept_update_dept", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L172"}, {"caller_nid": "crud_dept_update_dept", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L173"}, {"caller_nid": "crud_dept_update_dept", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L174"}, {"caller_nid": "crud_dept_update_dept", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L175"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L181"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L181"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L181"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L182"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L188"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L189"}, {"caller_nid": "crud_dept_soft_delete_dept", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L195"}, {"caller_nid": "crud_dept_soft_delete_dept", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L198"}, {"caller_nid": "crud_dept_soft_delete_dept", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L199"}, {"caller_nid": "crud_dept_soft_delete_dept", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L200"}]} \ No newline at end of file diff --git a/backend/graphify-out/.graphify_analysis.json b/backend/graphify-out/.graphify_analysis.json index 18157d43c..6a89ce7a5 100644 --- a/backend/graphify-out/.graphify_analysis.json +++ b/backend/graphify-out/.graphify_analysis.json @@ -1,6 +1,411 @@ { "communities": { "0": [ + "api_admin_attachmentdownloadurlbody", + "api_admin_deptcreatebody", + "api_admin_deptupdatebody", + "api_admin_dictdatacreatebody", + "api_admin_dictdataupdatebody", + "api_admin_dicttypecreatebody", + "api_admin_dicttypeupdatebody", + "api_admin_expresscompanycreatebody", + "api_admin_expresscompanyupdatebody", + "api_admin_itemunitcreatebody", + "api_admin_itemunitupdatebody", + "api_admin_menucreatebody", + "api_admin_menuupdatebody", + "api_admin_postcreatebody", + "api_admin_postupdatebody", + "api_admin_postusersupdatebody", + "api_admin_rationale_1521", + "api_admin_rationale_44", + "api_admin_rationale_76", + "api_admin_rationale_91", + "api_admin_rolecreatebody", + "api_admin_roledatascopebody", + "api_admin_rolemenubody", + "api_admin_roleupdatebody", + "api_admin_sitecreatebody", + "api_admin_siteupdatebody", + "api_admin_tenantcreatebody", + "api_admin_tenantupdatebody", + "api_admin_usercreatebody", + "api_admin_userupdatebody", + "api_material_materialbody", + "api_material_materialupdatebody", + "api_material_stockinbody", + "api_material_stockoutbody", + "api_pilot_service_cellproductpricecreatebody", + "api_pilot_service_cellproductpriceupdatebody", + "api_pilot_service_cellproductspeccreatebody", + "api_pilot_service_cellproductspecupdatebody", + "api_pilot_service_cellproducttypecreatebody", + "api_pilot_service_cellproducttypeupdatebody", + "api_pilot_service_channelagreementcreatebody", + "api_pilot_service_channelagreementpricecreatebody", + "api_pilot_service_channelagreementpriceupdatebody", + "api_pilot_service_channelagreementupdatebody", + "api_pilot_service_channelcreatebody", + "api_pilot_service_channelinvoicecreatebody", + "api_pilot_service_channelinvoiceupdatebody", + "api_pilot_service_channelmailaddresscreatebody", + "api_pilot_service_channelmailaddressupdatebody", + "api_pilot_service_channelupdatebody", + "api_pilot_service_checkupinstitutioncreatebody", + "api_pilot_service_checkupinstitutioninvoicecreatebody", + "api_pilot_service_checkupinstitutioninvoiceupdatebody", + "api_pilot_service_checkupinstitutionpackagecreatebody", + "api_pilot_service_checkupinstitutionpackageupdatebody", + "api_pilot_service_checkupinstitutionprojectcreatebody", + "api_pilot_service_checkupinstitutionprojectupdatebody", + "api_pilot_service_checkupinstitutionupdatebody", + "api_pilot_service_checkuppackageitembody", + "api_pilot_service_projectsystemcreatebody", + "api_pilot_service_projectsystemitemcreatebody", + "api_pilot_service_projectsystemitemupdatebody", + "api_pilot_service_projectsystemupdatebody", + "api_pilot_service_rationale_1", + "api_production_consumablecreatebody", + "api_production_consumablepackcreatebody", + "api_production_consumablepackupdatebody", + "api_production_consumableupdatebody", + "api_production_outputtypecreatebody", + "api_production_outputtypeupdatebody", + "api_production_packiteminput", + "api_production_processcategorycreatebody", + "api_production_processcategoryupdatebody", + "api_production_processconsumableinput", + "api_production_processcreatebody", + "api_production_processdatacollectioninput", + "api_production_processoutputinput", + "api_production_processreagentinput", + "api_production_processupdatebody", + "api_production_rationale_1", + "api_production_reagentcreatebody", + "api_production_reagentupdatebody", + "api_production_sopdocumentcreatebody", + "api_production_sopdocumentupdatebody", + "api_public_rationale_215", + "api_qc_itemparambody", + "api_qc_labtestitembody", + "api_qc_labtestitemupdatebody", + "api_qc_qcmaterialbody", + "api_qc_qcmaterialupdatebody", + "api_qc_stockinbody", + "api_qc_taskattachmentsbody", + "api_qc_taskcompletewithresultbody", + "api_qc_taskresultbody", + "api_qc_thirdpartycompanybody", + "api_qc_thirdpartycompanyupdatebody", + "api_qc_thirdpartyitembody", + "api_qc_thirdpartyitemupdatebody", + "api_qc_workorderconfigurebody", + "api_research_donation_auditsubmitbody", + "api_research_donation_batchdeletebody", + "api_research_donation_convertfromstoragebody", + "api_research_donation_donationcreatebody", + "api_research_donation_donationupdatebody", + "api_research_donation_rationale_1", + "api_research_donation_statuschangebody", + "basemodel", + "core_response_config", + "core_response_pageresult", + "core_response_py", + "core_response_responsemodel", + "models_models_bizattachment", + "models_models_sysrole", + "models_models_sysuser", + "schemas_attachment_attachmentuploadresponse", + "schemas_attachment_py", + "schemas_auth_changepasswordrequest", + "schemas_auth_config", + "schemas_auth_loginrequest", + "schemas_auth_loginresponse", + "schemas_auth_py", + "schemas_auth_rationale_1", + "schemas_auth_resetpasswordrequest", + "schemas_auth_usercreate", + "schemas_auth_userresponse", + "schemas_category_categorybase", + "schemas_category_categorycreate", + "schemas_category_categorylistresponse", + "schemas_category_categoryresponse", + "schemas_category_categorytreenode", + "schemas_category_categoryupdate", + "schemas_category_config", + "schemas_category_parameter_categoryparameterbase", + "schemas_category_parameter_categoryparameterbatchupdate", + "schemas_category_parameter_categoryparametercreate", + "schemas_category_parameter_categoryparameteritem", + "schemas_category_parameter_categoryparameterlistresponse", + "schemas_category_parameter_categoryparameterresponse", + "schemas_category_parameter_categoryparameterupdate", + "schemas_category_parameter_categoryparameterwithdetailresponse", + "schemas_category_parameter_config", + "schemas_category_parameter_py", + "schemas_category_parameter_rationale_1", + "schemas_category_parameter_rationale_19", + "schemas_category_py", + "schemas_cell_product_cellproductcreate", + "schemas_cell_product_cellproductlistquery", + "schemas_cell_product_cellproductupdate", + "schemas_cell_product_py", + "schemas_common_deleteinput", + "schemas_common_idinput", + "schemas_common_paginationparams", + "schemas_common_paginationresult", + "schemas_common_py", + "schemas_common_statusinput", + "schemas_delivery_config", + "schemas_delivery_deliveryassignbatchrequest", + "schemas_delivery_deliveryassignrequest", + "schemas_delivery_deliveryattachmentresponse", + "schemas_delivery_deliverycancelrequest", + "schemas_delivery_deliverydeliveritem", + "schemas_delivery_deliverydeliverrequest", + "schemas_delivery_deliverypickuprequest", + "schemas_delivery_deliveryreassignrequest", + "schemas_delivery_deliverystatisticsresponse", + "schemas_delivery_deliverystatusresponse", + "schemas_delivery_deliverytaskassignrequest", + "schemas_delivery_deliverytaskcancelrequest", + "schemas_delivery_deliverytaskcreaterequest", + "schemas_delivery_deliverytaskdeliverrequest", + "schemas_delivery_deliverytaskdetailresponse", + "schemas_delivery_deliverytaskitemresponse", + "schemas_delivery_deliverytasklistresponse", + "schemas_delivery_deliverytaskpickuprequest", + "schemas_delivery_deliverytaskresponse", + "schemas_delivery_deliverytaskstatistics", + "schemas_delivery_deliverytaskstatusupdaterequest", + "schemas_delivery_deliverywarningitem", + "schemas_delivery_deliverywarninglistresponse", + "schemas_delivery_py", + "schemas_delivery_rationale_1", + "schemas_delivery_supplierconfirmpickuprequest", + "schemas_delivery_supplierconfirmpreparedrequest", + "schemas_delivery_suppliertasklistresponse", + "schemas_delivery_suppliertaskresponse", + "schemas_leave_config", + "schemas_leave_leavecreate", + "schemas_leave_leaveresponse", + "schemas_leave_leaveupdate", + "schemas_leave_py", + "schemas_leave_rationale_1", + "schemas_menu_menuitem", + "schemas_menu_menulistresponse", + "schemas_menu_menumeta", + "schemas_menu_py", + "schemas_order_assigndelivererrequest", + "schemas_order_assigndelivererresponse", + "schemas_order_config", + "schemas_order_deliveryprogressresponse", + "schemas_order_deliverywarningresponse", + "schemas_order_deliverywarningstatistics", + "schemas_order_orderadjustitem", + "schemas_order_orderadjustrequest", + "schemas_order_orderadjustresponse", + "schemas_order_orderadjustresult", + "schemas_order_ordercancelrequest", + "schemas_order_orderconfirmpartialrequest", + "schemas_order_orderconfirmpartialresponse", + "schemas_order_ordercreate", + "schemas_order_orderdetailresponse", + "schemas_order_orderdirectcancelrequest", + "schemas_order_orderforcecompleterequest", + "schemas_order_orderforcecompleteresponse", + "schemas_order_orderitembase", + "schemas_order_orderitemcreate", + "schemas_order_orderitemresponse", + "schemas_order_orderlistresponse", + "schemas_order_orderlockrequest", + "schemas_order_orderlockresponse", + "schemas_order_orderpartialdeliveredrequest", + "schemas_order_orderpartialdeliveredresponse", + "schemas_order_orderpreviewrequest", + "schemas_order_orderpreviewresponse", + "schemas_order_orderresponse", + "schemas_order_orderreviewcancelrequest", + "schemas_order_orderstatuslogresponse", + "schemas_order_orderstatusresponse", + "schemas_order_orderunlockrequest", + "schemas_order_orderunlockresponse", + "schemas_order_py", + "schemas_order_rationale_1", + "schemas_order_reassigndeliveryrequest", + "schemas_order_reassigndeliveryresponse", + "schemas_price_list_config", + "schemas_price_list_pricelistbase", + "schemas_price_list_pricelistcreate", + "schemas_price_list_pricelistdetailresponse", + "schemas_price_list_pricelistgeneraterequest", + "schemas_price_list_pricelistinvalidaterequest", + "schemas_price_list_pricelistitembase", + "schemas_price_list_pricelistitemcreate", + "schemas_price_list_pricelistitemresponse", + "schemas_price_list_pricelistitemupdate", + "schemas_price_list_pricelistlistresponse", + "schemas_price_list_pricelistpublishrequest", + "schemas_price_list_pricelistresponse", + "schemas_price_list_priceliststatusresponse", + "schemas_price_list_pricelistupdate", + "schemas_price_list_productpricehistoryitem", + "schemas_price_list_productpricehistoryresponse", + "schemas_price_list_productpriceresponse", + "schemas_price_list_py", + "schemas_price_list_rationale_1", + "schemas_process_route_processroutecreatebody", + "schemas_process_route_processrouteupdatebody", + "schemas_process_route_py", + "schemas_process_route_rationale_1", + "schemas_process_route_setcurrentbody", + "schemas_process_route_stepaddbody", + "schemas_process_route_stepconsumableitem", + "schemas_process_route_stepconsumableupdatebody", + "schemas_process_route_stepcopybody", + "schemas_process_route_stepdatacollectionitem", + "schemas_process_route_stepdatacollectionupdatebody", + "schemas_process_route_stepoutputitem", + "schemas_process_route_stepoutputupdatebody", + "schemas_process_route_stepreagentitem", + "schemas_process_route_stepreagentupdatebody", + "schemas_process_route_stepreorderbody", + "schemas_process_route_stepupdatebody", + "schemas_product_banner_productbannerbase", + "schemas_product_banner_productbannercreate", + "schemas_product_banner_productbannercreatebatch", + "schemas_product_banner_productbannerlistresponse", + "schemas_product_banner_productbannerresponse", + "schemas_product_banner_productbannersortitem", + "schemas_product_banner_productbannersortupdate", + "schemas_product_banner_productbannerupdate", + "schemas_product_banner_py", + "schemas_product_banner_rationale_1", + "schemas_product_detail_media_productdetailmediabase", + "schemas_product_detail_media_productdetailmediacreate", + "schemas_product_detail_media_productdetailmediacreatebatch", + "schemas_product_detail_media_productdetailmedialistresponse", + "schemas_product_detail_media_productdetailmediaresponse", + "schemas_product_detail_media_productdetailmediasortitem", + "schemas_product_detail_media_productdetailmediasortupdate", + "schemas_product_detail_media_productdetailmediaupdate", + "schemas_product_detail_media_py", + "schemas_product_detail_media_rationale_1", + "schemas_product_parameter_config", + "schemas_product_parameter_productparameterbase", + "schemas_product_parameter_productparametercreate", + "schemas_product_parameter_productparameterlistresponse", + "schemas_product_parameter_productparameterresponse", + "schemas_product_parameter_productparametersimpleresponse", + "schemas_product_parameter_productparameterupdate", + "schemas_product_parameter_py", + "schemas_product_parameter_rationale_1", + "schemas_product_parameter_value_config", + "schemas_product_parameter_value_productparametervaluebase", + "schemas_product_parameter_value_productparametervaluebatchsave", + "schemas_product_parameter_value_productparametervaluecreate", + "schemas_product_parameter_value_productparametervaluelistresponse", + "schemas_product_parameter_value_productparametervalueresponse", + "schemas_product_parameter_value_productparametervalueupdate", + "schemas_product_parameter_value_productparametervaluewithparameterresponse", + "schemas_product_parameter_value_py", + "schemas_product_parameter_value_rationale_1", + "schemas_product_review_config", + "schemas_product_review_media_config", + "schemas_product_review_media_productreviewmediabase", + "schemas_product_review_media_productreviewmediacreate", + "schemas_product_review_media_productreviewmediacreatebatch", + "schemas_product_review_media_productreviewmedialistresponse", + "schemas_product_review_media_productreviewmediaresponse", + "schemas_product_review_media_productreviewmediaupdate", + "schemas_product_review_media_py", + "schemas_product_review_media_rationale_1", + "schemas_product_review_minireviewlistrequest", + "schemas_product_review_productreviewadminlistrequest", + "schemas_product_review_productreviewbase", + "schemas_product_review_productreviewcreate", + "schemas_product_review_productreviewdetailresponse", + "schemas_product_review_productreviewlistresponse", + "schemas_product_review_productreviewrejectrequest", + "schemas_product_review_productreviewreplyrequest", + "schemas_product_review_productreviewresponse", + "schemas_product_review_productreviewstatisticsresponse", + "schemas_product_review_productreviewtoprequest", + "schemas_product_review_productreviewupdate", + "schemas_product_review_py", + "schemas_product_review_rationale_1", + "schemas_production_task_productiontaskcreate", + "schemas_production_task_productiontasklistquery", + "schemas_production_task_productiontaskstatusupdate", + "schemas_production_task_productiontaskupdate", + "schemas_production_task_py", + "schemas_production_task_taskinputitem", + "schemas_production_task_taskoutputitem", + "schemas_production_task_taskstepadd", + "schemas_production_task_taskstepdatacollectionitem", + "schemas_production_task_taskstepmaterialitem", + "schemas_production_task_taskstepoutputitem", + "schemas_production_task_taskstepupdate", + "schemas_production_work_order_productionworkorderbase", + "schemas_production_work_order_productionworkordercomplete", + "schemas_production_work_order_productionworkorderlistquery", + "schemas_production_work_order_py", + "schemas_quotation_config", + "schemas_quotation_py", + "schemas_quotation_quotationbase", + "schemas_quotation_quotationcreate", + "schemas_quotation_quotationdetailresponse", + "schemas_quotation_quotationitembase", + "schemas_quotation_quotationitemcreate", + "schemas_quotation_quotationitemresponse", + "schemas_quotation_quotationitemupdate", + "schemas_quotation_quotationlistresponse", + "schemas_quotation_quotationresponse", + "schemas_quotation_quotationstatusresponse", + "schemas_quotation_quotationupdate", + "schemas_quotation_quotationwithitemsresponse", + "schemas_quotation_quotationwithsupplierresponse", + "schemas_quotation_rationale_1", + "schemas_region_py", + "schemas_region_regionbase", + "schemas_region_regioncreate", + "schemas_region_regionlistresponse", + "schemas_region_regionresponse", + "schemas_region_regionupdate", + "schemas_unit_config", + "schemas_unit_py", + "schemas_unit_unitbase", + "schemas_unit_unitcreate", + "schemas_unit_unitlistresponse", + "schemas_unit_unitresponse", + "schemas_unit_unitupdate", + "schemas_user_changepasswordrequest", + "schemas_user_config", + "schemas_user_loginrequest", + "schemas_user_loginresponse", + "schemas_user_py", + "schemas_user_resetpasswordrequest", + "schemas_user_userbase", + "schemas_user_usercreate", + "schemas_user_userlistresponse", + "schemas_user_userresponse", + "schemas_user_userupdate", + "schemas_workflow_approverequest", + "schemas_workflow_config", + "schemas_workflow_instanceresponse", + "schemas_workflow_nodedata", + "schemas_workflow_processdefcreate", + "schemas_workflow_processdefresponse", + "schemas_workflow_processdefupdate", + "schemas_workflow_publishversionrequest", + "schemas_workflow_py", + "schemas_workflow_rationale_1", + "schemas_workflow_startinstancerequest", + "schemas_workflow_taskresponse", + "schemas_workflow_transitiondata", + "schemas_workflow_versionresponse" + ], + "1": [ "api_admin_attachment_download_url", "api_admin_create_dept", "api_admin_create_dict_data", @@ -68,28 +473,12 @@ "api_basic_info_batch_revoke_protocol_nos", "api_basic_info_batch_revoke_sample_codes", "api_basic_info_create_cell_sample_type", - "api_basic_info_create_collection_region", "api_basic_info_create_customer", - "api_basic_info_create_hospital", "api_basic_info_create_protocol_no", "api_basic_info_create_sample_code", - "api_basic_info_delete_cell_sample_type", - "api_basic_info_delete_collection_region", - "api_basic_info_delete_customer", - "api_basic_info_delete_hospital", - "api_basic_info_delete_protocol_no", - "api_basic_info_delete_sample_code", - "api_basic_info_get_tenant_no", - "api_basic_info_list_cell_sample_types", - "api_basic_info_list_collection_regions", - "api_basic_info_list_customers", "api_basic_info_list_hospitals", - "api_basic_info_list_protocol_nos", - "api_basic_info_list_sample_codes", "api_basic_info_update_cell_sample_type", - "api_basic_info_update_collection_region", "api_basic_info_update_customer", - "api_basic_info_update_hospital", "api_basic_info_update_protocol_no", "api_basic_info_update_sample_code", "api_collection_protocol_create_collection_protocol", @@ -118,29 +507,6 @@ "api_collection_protocol_submit_collection_protocol_audit", "api_collection_protocol_update_collection_protocol", "api_collection_protocol_update_fullmoon_todo_insurance", - "api_insurance_company_create_insurance_company", - "api_insurance_company_create_insurance_company_invoice", - "api_insurance_company_create_insurance_project_price", - "api_insurance_company_delete_insurance_company", - "api_insurance_company_delete_insurance_company_invoice", - "api_insurance_company_delete_insurance_project_price", - "api_insurance_company_fmt_dt", - "api_insurance_company_generate_uuid", - "api_insurance_company_get_tenant_no", - "api_insurance_company_list_insurance_companies", - "api_insurance_company_list_insurance_company_invoices", - "api_insurance_company_list_insurance_project_prices", - "api_insurance_company_py", - "api_insurance_company_row_to_dict_company", - "api_insurance_company_row_to_dict_invoice", - "api_insurance_company_row_to_dict_project_price", - "api_insurance_company_soft_delete_insurance_company", - "api_insurance_company_soft_delete_insurance_company_invoice", - "api_insurance_company_soft_delete_insurance_project_price", - "api_insurance_company_total_pages", - "api_insurance_company_update_insurance_company", - "api_insurance_company_update_insurance_company_invoice", - "api_insurance_company_update_insurance_project_price", "api_leave_create_leave", "api_leave_delete_leave", "api_leave_get_leave", @@ -371,6 +737,8 @@ "api_research_donation_py", "api_research_donation_submit_donation_audit", "api_research_donation_update_research_donation", + "api_sample_reception_checkitembody", + "api_sample_reception_checkitemupdatebody", "api_sample_reception_create_check_item", "api_sample_reception_delete_check_item", "api_sample_reception_get_current_user_id", @@ -384,23 +752,17 @@ "api_sample_reception_post_sample_reception", "api_sample_reception_put_sample_reception", "api_sample_reception_py", + "api_sample_reception_receptionchecksubmit", + "api_sample_reception_samplereceptioncreatebody", + "api_sample_reception_samplereceptionupdatebody", "api_sample_reception_update_check_item", "api_workflow_approve_task", - "api_workflow_business_type_label", "api_workflow_create_process_def", "api_workflow_delete_process_def", - "api_workflow_enrich_task_list", - "api_workflow_get_business_all_tasks", - "api_workflow_get_business_form_fields", - "api_workflow_get_instance_detail", "api_workflow_leave_form_fields", - "api_workflow_list_completed_tasks", - "api_workflow_list_my_instances", - "api_workflow_list_pending_tasks", "api_workflow_list_process_defs", "api_workflow_list_versions", "api_workflow_publish_version", - "api_workflow_py", "api_workflow_reject_task", "api_workflow_start_instance", "api_workflow_update_process_def", @@ -408,682 +770,27 @@ "core_admin_request_json_py", "core_admin_request_json_rationale_1", "core_admin_request_json_rationale_25", - "core_data_scope_apply_data_scope", "core_response_error_response", "core_response_success_response", - "core_wechat_pay_rationale_254", - "core_wechat_pay_rationale_410", - "core_wechat_pay_rationale_443", - "core_wechat_pay_wechatpayclient_refund", - "core_wechat_pay_wechatpayv2client_build_miniprogram_pay_params", - "core_wechat_pay_wechatpayv2client_unified_order", "crud_base_crudbase_get", "crud_exhibition_appointment_format_visit_date", "crud_exhibition_appointment_rationale_16", "crud_exhibition_appointment_row_to_dict", "crud_exhibition_appointment_total_pages", "crud_leave_update_leave_status", + "crud_pilot_service_row_to_dict_cell_product_type", "crud_pilot_service_row_to_dict_channel_agreement", "crud_process_route_update_step", "crud_production_task_task_to_dict", "crud_production_task_update_task_step", "crud_qc_material_usage_deduct_for_task", - "crud_workflow_get_all_tasks_for_business", + "crud_research_donation_batch_delete_donations", "schemas_order_adjust_adjuststatus", "schemas_order_adjust_adjusttype", "schemas_order_adjust_py", "str" ], - "1": [ - "api_material_materialbody", - "api_material_materialupdatebody", - "api_material_stockinbody", - "api_material_stockoutbody", - "api_pilot_service_cellproductpricecreatebody", - "api_pilot_service_cellproductpriceupdatebody", - "api_pilot_service_cellproductspeccreatebody", - "api_pilot_service_cellproductspecupdatebody", - "api_pilot_service_cellproducttypecreatebody", - "api_pilot_service_cellproducttypeupdatebody", - "api_pilot_service_channelagreementcreatebody", - "api_pilot_service_channelagreementpricecreatebody", - "api_pilot_service_channelagreementpriceupdatebody", - "api_pilot_service_channelagreementupdatebody", - "api_pilot_service_channelcreatebody", - "api_pilot_service_channelinvoicecreatebody", - "api_pilot_service_channelinvoiceupdatebody", - "api_pilot_service_channelmailaddresscreatebody", - "api_pilot_service_channelmailaddressupdatebody", - "api_pilot_service_channelupdatebody", - "api_pilot_service_checkupinstitutioncreatebody", - "api_pilot_service_checkupinstitutioninvoicecreatebody", - "api_pilot_service_checkupinstitutioninvoiceupdatebody", - "api_pilot_service_checkupinstitutionpackagecreatebody", - "api_pilot_service_checkupinstitutionpackageupdatebody", - "api_pilot_service_checkupinstitutionprojectcreatebody", - "api_pilot_service_checkupinstitutionprojectupdatebody", - "api_pilot_service_checkupinstitutionupdatebody", - "api_pilot_service_checkuppackageitembody", - "api_pilot_service_projectsystemcreatebody", - "api_pilot_service_projectsystemitemcreatebody", - "api_pilot_service_projectsystemitemupdatebody", - "api_pilot_service_projectsystemupdatebody", - "api_production_consumablecreatebody", - "api_production_consumablepackcreatebody", - "api_production_consumablepackupdatebody", - "api_production_consumableupdatebody", - "api_production_outputtypecreatebody", - "api_production_outputtypeupdatebody", - "api_production_packiteminput", - "api_production_processcategorycreatebody", - "api_production_processcategoryupdatebody", - "api_production_processconsumableinput", - "api_production_processcreatebody", - "api_production_processdatacollectioninput", - "api_production_processoutputinput", - "api_production_processreagentinput", - "api_production_processupdatebody", - "api_production_rationale_1", - "api_production_reagentcreatebody", - "api_production_reagentupdatebody", - "api_production_sopdocumentcreatebody", - "api_production_sopdocumentupdatebody", - "api_qc_itemparambody", - "api_qc_labtestitembody", - "api_qc_labtestitemupdatebody", - "api_qc_qcmaterialbody", - "api_qc_qcmaterialupdatebody", - "api_qc_stockinbody", - "api_qc_taskattachmentsbody", - "api_qc_taskcompletewithresultbody", - "api_qc_taskresultbody", - "api_qc_thirdpartycompanybody", - "api_qc_thirdpartycompanyupdatebody", - "api_qc_thirdpartyitembody", - "api_qc_thirdpartyitemupdatebody", - "api_qc_workorderconfigurebody", - "basemodel", - "core_response_config", - "core_response_pageresult", - "core_response_py", - "core_response_responsemodel", - "schemas_attachment_attachmentuploadresponse", - "schemas_attachment_py", - "schemas_auth_changepasswordrequest", - "schemas_auth_config", - "schemas_auth_loginrequest", - "schemas_auth_loginresponse", - "schemas_auth_py", - "schemas_auth_rationale_1", - "schemas_auth_resetpasswordrequest", - "schemas_auth_usercreate", - "schemas_auth_userresponse", - "schemas_category_categorybase", - "schemas_category_categorycreate", - "schemas_category_categorylistresponse", - "schemas_category_categoryresponse", - "schemas_category_categorytreenode", - "schemas_category_categoryupdate", - "schemas_category_config", - "schemas_category_parameter_categoryparameterbase", - "schemas_category_parameter_categoryparameterbatchupdate", - "schemas_category_parameter_categoryparametercreate", - "schemas_category_parameter_categoryparameteritem", - "schemas_category_parameter_categoryparameterlistresponse", - "schemas_category_parameter_categoryparameterresponse", - "schemas_category_parameter_categoryparameterupdate", - "schemas_category_parameter_categoryparameterwithdetailresponse", - "schemas_category_parameter_config", - "schemas_category_parameter_py", - "schemas_category_parameter_rationale_1", - "schemas_category_parameter_rationale_19", - "schemas_category_py", - "schemas_cell_product_cellproductcreate", - "schemas_cell_product_cellproductlistquery", - "schemas_cell_product_cellproductupdate", - "schemas_cell_product_py", - "schemas_common_deleteinput", - "schemas_common_idinput", - "schemas_common_paginationparams", - "schemas_common_paginationresult", - "schemas_common_py", - "schemas_common_statusinput", - "schemas_delivery_config", - "schemas_delivery_deliveryassignbatchrequest", - "schemas_delivery_deliveryassignrequest", - "schemas_delivery_deliveryattachmentresponse", - "schemas_delivery_deliverycancelrequest", - "schemas_delivery_deliverydeliveritem", - "schemas_delivery_deliverydeliverrequest", - "schemas_delivery_deliverypickuprequest", - "schemas_delivery_deliveryreassignrequest", - "schemas_delivery_deliverystatisticsresponse", - "schemas_delivery_deliverystatusresponse", - "schemas_delivery_deliverytaskassignrequest", - "schemas_delivery_deliverytaskcancelrequest", - "schemas_delivery_deliverytaskcreaterequest", - "schemas_delivery_deliverytaskdeliverrequest", - "schemas_delivery_deliverytaskdetailresponse", - "schemas_delivery_deliverytaskitemresponse", - "schemas_delivery_deliverytasklistresponse", - "schemas_delivery_deliverytaskpickuprequest", - "schemas_delivery_deliverytaskresponse", - "schemas_delivery_deliverytaskstatistics", - "schemas_delivery_deliverytaskstatusupdaterequest", - "schemas_delivery_deliverywarningitem", - "schemas_delivery_deliverywarninglistresponse", - "schemas_delivery_py", - "schemas_delivery_rationale_1", - "schemas_delivery_supplierconfirmpickuprequest", - "schemas_delivery_supplierconfirmpreparedrequest", - "schemas_delivery_suppliertasklistresponse", - "schemas_delivery_suppliertaskresponse", - "schemas_inquiry_config", - "schemas_inquiry_inquirybase", - "schemas_inquiry_inquirycreate", - "schemas_inquiry_inquirydetailresponse", - "schemas_inquiry_inquiryitembase", - "schemas_inquiry_inquiryitemcreate", - "schemas_inquiry_inquiryitemresponse", - "schemas_inquiry_inquirylistresponse", - "schemas_inquiry_inquiryresponse", - "schemas_inquiry_inquirystatusresponse", - "schemas_inquiry_inquiryupdate", - "schemas_inquiry_py", - "schemas_inquiry_rationale_1", - "schemas_leave_config", - "schemas_leave_leavecreate", - "schemas_leave_leaveresponse", - "schemas_leave_leaveupdate", - "schemas_leave_py", - "schemas_leave_rationale_1", - "schemas_menu_menuitem", - "schemas_menu_menulistresponse", - "schemas_menu_menumeta", - "schemas_menu_py", - "schemas_order_assigndelivererrequest", - "schemas_order_assigndelivererresponse", - "schemas_order_config", - "schemas_order_deliveryprogressresponse", - "schemas_order_deliverywarningresponse", - "schemas_order_deliverywarningstatistics", - "schemas_order_orderadjustitem", - "schemas_order_orderadjustrequest", - "schemas_order_orderadjustresponse", - "schemas_order_orderadjustresult", - "schemas_order_ordercancelrequest", - "schemas_order_orderconfirmpartialrequest", - "schemas_order_orderconfirmpartialresponse", - "schemas_order_ordercreate", - "schemas_order_orderdetailresponse", - "schemas_order_orderdirectcancelrequest", - "schemas_order_orderforcecompleterequest", - "schemas_order_orderforcecompleteresponse", - "schemas_order_orderitembase", - "schemas_order_orderitemcreate", - "schemas_order_orderitemresponse", - "schemas_order_orderlistresponse", - "schemas_order_orderlockrequest", - "schemas_order_orderlockresponse", - "schemas_order_orderpartialdeliveredrequest", - "schemas_order_orderpartialdeliveredresponse", - "schemas_order_orderpreviewrequest", - "schemas_order_orderpreviewresponse", - "schemas_order_orderresponse", - "schemas_order_orderreviewcancelrequest", - "schemas_order_orderstatuslogresponse", - "schemas_order_orderstatusresponse", - "schemas_order_orderunlockrequest", - "schemas_order_orderunlockresponse", - "schemas_order_py", - "schemas_order_rationale_1", - "schemas_order_reassigndeliveryrequest", - "schemas_order_reassigndeliveryresponse", - "schemas_price_list_config", - "schemas_price_list_pricelistbase", - "schemas_price_list_pricelistcreate", - "schemas_price_list_pricelistdetailresponse", - "schemas_price_list_pricelistgeneraterequest", - "schemas_price_list_pricelistinvalidaterequest", - "schemas_price_list_pricelistitembase", - "schemas_price_list_pricelistitemcreate", - "schemas_price_list_pricelistitemresponse", - "schemas_price_list_pricelistitemupdate", - "schemas_price_list_pricelistlistresponse", - "schemas_price_list_pricelistpublishrequest", - "schemas_price_list_pricelistresponse", - "schemas_price_list_priceliststatusresponse", - "schemas_price_list_pricelistupdate", - "schemas_price_list_productpricehistoryitem", - "schemas_price_list_productpricehistoryresponse", - "schemas_price_list_productpriceresponse", - "schemas_price_list_py", - "schemas_price_list_rationale_1", - "schemas_process_route_processroutecreatebody", - "schemas_process_route_processrouteupdatebody", - "schemas_process_route_py", - "schemas_process_route_rationale_1", - "schemas_process_route_setcurrentbody", - "schemas_process_route_stepaddbody", - "schemas_process_route_stepconsumableitem", - "schemas_process_route_stepconsumableupdatebody", - "schemas_process_route_stepcopybody", - "schemas_process_route_stepdatacollectionitem", - "schemas_process_route_stepdatacollectionupdatebody", - "schemas_process_route_stepoutputitem", - "schemas_process_route_stepoutputupdatebody", - "schemas_process_route_stepreagentitem", - "schemas_process_route_stepreagentupdatebody", - "schemas_process_route_stepreorderbody", - "schemas_process_route_stepupdatebody", - "schemas_product_banner_productbannerbase", - "schemas_product_banner_productbannercreate", - "schemas_product_banner_productbannercreatebatch", - "schemas_product_banner_productbannerlistresponse", - "schemas_product_banner_productbannerresponse", - "schemas_product_banner_productbannersortitem", - "schemas_product_banner_productbannersortupdate", - "schemas_product_banner_productbannerupdate", - "schemas_product_banner_py", - "schemas_product_banner_rationale_1", - "schemas_product_detail_media_productdetailmediabase", - "schemas_product_detail_media_productdetailmediacreate", - "schemas_product_detail_media_productdetailmediacreatebatch", - "schemas_product_detail_media_productdetailmedialistresponse", - "schemas_product_detail_media_productdetailmediaresponse", - "schemas_product_detail_media_productdetailmediasortitem", - "schemas_product_detail_media_productdetailmediasortupdate", - "schemas_product_detail_media_productdetailmediaupdate", - "schemas_product_detail_media_py", - "schemas_product_detail_media_rationale_1", - "schemas_product_parameter_config", - "schemas_product_parameter_productparameterbase", - "schemas_product_parameter_productparametercreate", - "schemas_product_parameter_productparameterlistresponse", - "schemas_product_parameter_productparameterresponse", - "schemas_product_parameter_productparametersimpleresponse", - "schemas_product_parameter_productparameterupdate", - "schemas_product_parameter_py", - "schemas_product_parameter_rationale_1", - "schemas_product_parameter_value_config", - "schemas_product_parameter_value_productparametervaluebase", - "schemas_product_parameter_value_productparametervaluebatchsave", - "schemas_product_parameter_value_productparametervaluecreate", - "schemas_product_parameter_value_productparametervaluelistresponse", - "schemas_product_parameter_value_productparametervalueresponse", - "schemas_product_parameter_value_productparametervalueupdate", - "schemas_product_parameter_value_productparametervaluewithparameterresponse", - "schemas_product_parameter_value_py", - "schemas_product_parameter_value_rationale_1", - "schemas_product_review_config", - "schemas_product_review_media_config", - "schemas_product_review_media_productreviewmediabase", - "schemas_product_review_media_productreviewmediacreate", - "schemas_product_review_media_productreviewmediacreatebatch", - "schemas_product_review_media_productreviewmedialistresponse", - "schemas_product_review_media_productreviewmediaresponse", - "schemas_product_review_media_productreviewmediaupdate", - "schemas_product_review_media_py", - "schemas_product_review_media_rationale_1", - "schemas_product_review_minireviewlistrequest", - "schemas_product_review_productreviewadminlistrequest", - "schemas_product_review_productreviewbase", - "schemas_product_review_productreviewcreate", - "schemas_product_review_productreviewdetailresponse", - "schemas_product_review_productreviewlistresponse", - "schemas_product_review_productreviewrejectrequest", - "schemas_product_review_productreviewreplyrequest", - "schemas_product_review_productreviewresponse", - "schemas_product_review_productreviewstatisticsresponse", - "schemas_product_review_productreviewtoprequest", - "schemas_product_review_productreviewupdate", - "schemas_product_review_py", - "schemas_product_review_rationale_1", - "schemas_production_task_productiontaskcreate", - "schemas_production_task_productiontasklistquery", - "schemas_production_task_productiontaskstatusupdate", - "schemas_production_task_productiontaskupdate", - "schemas_production_task_py", - "schemas_production_task_taskinputitem", - "schemas_production_task_taskoutputitem", - "schemas_production_task_taskstepadd", - "schemas_production_task_taskstepdatacollectionitem", - "schemas_production_task_taskstepmaterialitem", - "schemas_production_task_taskstepoutputitem", - "schemas_production_task_taskstepupdate", - "schemas_production_work_order_productionworkorderbase", - "schemas_production_work_order_productionworkordercomplete", - "schemas_production_work_order_productionworkorderlistquery", - "schemas_production_work_order_py", - "schemas_quotation_config", - "schemas_quotation_py", - "schemas_quotation_quotationbase", - "schemas_quotation_quotationcreate", - "schemas_quotation_quotationdetailresponse", - "schemas_quotation_quotationitembase", - "schemas_quotation_quotationitemcreate", - "schemas_quotation_quotationitemresponse", - "schemas_quotation_quotationitemupdate", - "schemas_quotation_quotationlistresponse", - "schemas_quotation_quotationresponse", - "schemas_quotation_quotationstatusresponse", - "schemas_quotation_quotationupdate", - "schemas_quotation_quotationwithitemsresponse", - "schemas_quotation_quotationwithsupplierresponse", - "schemas_quotation_rationale_1", - "schemas_region_py", - "schemas_region_regionbase", - "schemas_region_regioncreate", - "schemas_region_regionlistresponse", - "schemas_region_regionresponse", - "schemas_region_regionupdate", - "schemas_unit_config", - "schemas_unit_py", - "schemas_unit_unitbase", - "schemas_unit_unitcreate", - "schemas_unit_unitlistresponse", - "schemas_unit_unitresponse", - "schemas_unit_unitupdate", - "schemas_user_changepasswordrequest", - "schemas_user_config", - "schemas_user_loginrequest", - "schemas_user_loginresponse", - "schemas_user_py", - "schemas_user_resetpasswordrequest", - "schemas_user_userbase", - "schemas_user_usercreate", - "schemas_user_userlistresponse", - "schemas_user_userresponse", - "schemas_user_userupdate", - "schemas_workflow_approverequest", - "schemas_workflow_config", - "schemas_workflow_instanceresponse", - "schemas_workflow_nodedata", - "schemas_workflow_processdefcreate", - "schemas_workflow_processdefresponse", - "schemas_workflow_processdefupdate", - "schemas_workflow_publishversionrequest", - "schemas_workflow_py", - "schemas_workflow_rationale_1", - "schemas_workflow_startinstancerequest", - "schemas_workflow_taskresponse", - "schemas_workflow_transitiondata", - "schemas_workflow_versionresponse" - ], "2": [ - "api_workflow_get_designer_data", - "core_utils_generate_uuid", - "crud_api_request_log_delete", - "crud_api_request_log_get", - "crud_api_request_log_get_multi_with_filters", - "crud_api_request_log_py", - "crud_base_crudbase_count", - "crud_base_crudbase_exists", - "crud_cell_product_create_cell_product", - "crud_cell_product_delete_cell_product", - "crud_cell_product_get_cell_product", - "crud_cell_product_list_cell_products", - "crud_cell_product_py", - "crud_cell_product_rationale_1", - "crud_cell_product_row_to_dict", - "crud_cell_product_total_pages", - "crud_cell_product_update_cell_product", - "crud_clean_room_access_log_to_dict", - "crud_clean_room_create_access_log", - "crud_clean_room_create_clean_room", - "crud_clean_room_get_access_log", - "crud_clean_room_get_clean_room", - "crud_clean_room_list_access_logs", - "crud_clean_room_list_clean_rooms", - "crud_clean_room_py", - "crud_clean_room_room_code_exists", - "crud_clean_room_row_to_dict", - "crud_clean_room_soft_delete_access_log", - "crud_clean_room_soft_delete_clean_room", - "crud_clean_room_total_pages", - "crud_clean_room_update_access_log", - "crud_clean_room_update_clean_room", - "crud_consumable_pack_create_consumable_pack", - "crud_consumable_pack_get_consumable_pack", - "crud_consumable_pack_get_pack_detail", - "crud_consumable_pack_item_row_to_dict", - "crud_consumable_pack_list_all_packs", - "crud_consumable_pack_list_consumable_packs", - "crud_consumable_pack_pack_code_exists", - "crud_consumable_pack_py", - "crud_consumable_pack_row_to_dict", - "crud_consumable_pack_soft_delete_consumable_pack", - "crud_consumable_pack_total_pages", - "crud_consumable_pack_update_consumable_pack", - "crud_exhibition_appointment_appointment_no_exists", - "crud_exhibition_appointment_create_exhibition_appointment", - "crud_exhibition_appointment_generate_appointment_no", - "crud_exhibition_appointment_get_exhibition_appointment", - "crud_exhibition_appointment_list_exhibition_appointments", - "crud_exhibition_appointment_py", - "crud_exhibition_appointment_rationale_1", - "crud_exhibition_appointment_rationale_100", - "crud_exhibition_appointment_soft_delete_exhibition_appointment", - "crud_exhibition_appointment_update_exhibition_appointment", - "crud_leave_create_leave", - "crud_leave_get_leave", - "crud_leave_list_leaves", - "crud_leave_py", - "crud_leave_row_to_dict", - "crud_leave_soft_delete_leave", - "crud_leave_total_pages", - "crud_leave_update_leave", - "crud_material_stock_log_dec", - "crud_material_stock_log_fmt_dt", - "crud_material_stock_log_list_stock_logs", - "crud_material_stock_log_py", - "crud_material_stock_log_row_to_dict", - "crud_pilot_service_activate_channel_agreement", - "crud_pilot_service_cell_product_price_code_exists", - "crud_pilot_service_cell_product_spec_code_exists", - "crud_pilot_service_cell_product_type_code_exists", - "crud_pilot_service_channel_agreement_price_exists", - "crud_pilot_service_channel_agreement_price_item_key", - "crud_pilot_service_checkup_package_code_exists", - "crud_pilot_service_create_cell_product_price", - "crud_pilot_service_create_cell_product_spec", - "crud_pilot_service_create_cell_product_type", - "crud_pilot_service_create_channel", - "crud_pilot_service_create_channel_agreement", - "crud_pilot_service_create_channel_agreement_price", - "crud_pilot_service_create_channel_invoice", - "crud_pilot_service_create_channel_mail_address", - "crud_pilot_service_create_checkup_institution", - "crud_pilot_service_create_checkup_institution_invoice", - "crud_pilot_service_create_checkup_institution_package", - "crud_pilot_service_create_checkup_institution_project", - "crud_pilot_service_create_project_system", - "crud_pilot_service_create_project_system_item", - "crud_pilot_service_get_cell_product_price", - "crud_pilot_service_get_cell_product_spec", - "crud_pilot_service_get_cell_product_type", - "crud_pilot_service_get_channel", - "crud_pilot_service_get_checkup_institution", - "crud_pilot_service_get_checkup_institution_package", - "crud_pilot_service_get_checkup_institution_package_detail", - "crud_pilot_service_get_checkup_project_for_package", - "crud_pilot_service_get_project_system", - "crud_pilot_service_insert_package_items", - "crud_pilot_service_list_cell_product_prices", - "crud_pilot_service_list_cell_product_specs", - "crud_pilot_service_list_cell_product_types", - "crud_pilot_service_list_channel_agreement_prices", - "crud_pilot_service_list_channel_agreements", - "crud_pilot_service_list_channel_invoices", - "crud_pilot_service_list_channel_mail_addresses", - "crud_pilot_service_list_channels", - "crud_pilot_service_list_checkup_institution_invoices", - "crud_pilot_service_list_checkup_institution_packages", - "crud_pilot_service_list_checkup_institution_projects", - "crud_pilot_service_list_checkup_institutions", - "crud_pilot_service_list_package_items_raw", - "crud_pilot_service_list_project_system_items", - "crud_pilot_service_list_project_systems", - "crud_pilot_service_package_items_to_dicts", - "crud_pilot_service_project_system_code_exists", - "crud_pilot_service_py", - "crud_pilot_service_rationale_1253", - "crud_pilot_service_row_to_dict_cell_product_price", - "crud_pilot_service_row_to_dict_cell_product_spec", - "crud_pilot_service_row_to_dict_cell_product_type", - "crud_pilot_service_row_to_dict_channel", - "crud_pilot_service_row_to_dict_channel_agreement_price", - "crud_pilot_service_row_to_dict_channel_invoice", - "crud_pilot_service_row_to_dict_channel_mail_address", - "crud_pilot_service_row_to_dict_checkup_institution", - "crud_pilot_service_row_to_dict_checkup_institution_invoice", - "crud_pilot_service_row_to_dict_checkup_institution_package", - "crud_pilot_service_row_to_dict_checkup_institution_package_item", - "crud_pilot_service_row_to_dict_checkup_institution_project", - "crud_pilot_service_row_to_dict_project_system", - "crud_pilot_service_row_to_dict_project_system_item", - "crud_pilot_service_soft_delete_cell_product_price", - "crud_pilot_service_soft_delete_cell_product_spec", - "crud_pilot_service_soft_delete_cell_product_type", - "crud_pilot_service_soft_delete_channel", - "crud_pilot_service_soft_delete_channel_agreement", - "crud_pilot_service_soft_delete_channel_agreement_price", - "crud_pilot_service_soft_delete_channel_invoice", - "crud_pilot_service_soft_delete_channel_mail_address", - "crud_pilot_service_soft_delete_checkup_institution", - "crud_pilot_service_soft_delete_checkup_institution_invoice", - "crud_pilot_service_soft_delete_checkup_institution_package", - "crud_pilot_service_soft_delete_checkup_institution_project", - "crud_pilot_service_soft_delete_project_system", - "crud_pilot_service_soft_delete_project_system_item", - "crud_pilot_service_sum_package_item_fees", - "crud_pilot_service_total_pages", - "crud_pilot_service_update_cell_product_price", - "crud_pilot_service_update_cell_product_spec", - "crud_pilot_service_update_cell_product_type", - "crud_pilot_service_update_channel", - "crud_pilot_service_update_channel_agreement", - "crud_pilot_service_update_channel_agreement_price", - "crud_pilot_service_update_channel_invoice", - "crud_pilot_service_update_channel_mail_address", - "crud_pilot_service_update_checkup_institution", - "crud_pilot_service_update_checkup_institution_invoice", - "crud_pilot_service_update_checkup_institution_package", - "crud_pilot_service_update_checkup_institution_project", - "crud_pilot_service_update_project_system", - "crud_pilot_service_update_project_system_item", - "crud_pilot_service_validate_package_items_for_save", - "crud_pilot_service_void_channel_agreement", - "crud_production_task_add_task_step", - "crud_production_task_clone_route_to_task", - "crud_production_task_clone_step_consumables", - "crud_production_task_clone_step_data_collections", - "crud_production_task_clone_step_outputs", - "crud_production_task_clone_step_reagents", - "crud_production_task_create_production_task", - "crud_production_task_delete_task_step", - "crud_production_task_fmt_dt", - "crud_production_task_generate_task_no", - "crud_production_task_get_production_task_detail", - "crud_production_task_list_production_tasks", - "crud_production_task_py", - "crud_production_task_replace_step_consumables", - "crud_production_task_replace_step_data_collections", - "crud_production_task_replace_step_outputs", - "crud_production_task_replace_step_reagents", - "crud_production_task_set_task_inputs", - "crud_production_task_set_task_outputs", - "crud_production_task_soft_delete_sub", - "crud_production_task_step_consumable_to_dict", - "crud_production_task_step_data_collection_to_dict", - "crud_production_task_step_output_to_dict", - "crud_production_task_step_reagent_to_dict", - "crud_production_task_step_to_dict", - "crud_production_task_task_input_to_dict", - "crud_production_task_task_output_to_dict", - "crud_production_task_total_pages", - "crud_production_task_update_production_task", - "crud_production_task_update_task_status", - "crud_qc_item_param_list_params_by_item", - "crud_qc_item_param_py", - "crud_qc_item_param_row_to_dict", - "crud_qc_item_param_save_params_for_item", - "crud_qc_material_code_exists", - "crud_qc_material_create_material", - "crud_qc_material_dec", - "crud_qc_material_fmt_dt", - "crud_qc_material_get_material", - "crud_qc_material_list_materials", - "crud_qc_material_options_list", - "crud_qc_material_py", - "crud_qc_material_row_to_dict", - "crud_qc_material_soft_delete_material", - "crud_qc_material_stock_in", - "crud_qc_material_total_pages", - "crud_qc_material_update_material", - "crud_qc_material_usage_list_usages", - "crud_qc_material_usage_py", - "crud_qc_material_usage_row_to_dict", - "crud_qc_task_result_list_results_by_task", - "crud_qc_task_result_list_saved_results_by_task", - "crud_qc_task_result_merge_saved_into_template", - "crud_qc_task_result_py", - "crud_qc_task_result_resolve_task_item_ref", - "crud_qc_task_result_row_to_dict", - "crud_qc_task_result_save_results_for_task", - "crud_qc_work_order_gen_daily_no", - "crud_workflow_create_instance", - "crud_workflow_create_process_def", - "crud_workflow_get_instance", - "crud_workflow_get_latest_version", - "crud_workflow_get_nodes_by_version", - "crud_workflow_get_pending_tasks_by_node", - "crud_workflow_get_process_def", - "crud_workflow_get_task", - "crud_workflow_get_transitions_by_version", - "crud_workflow_list_completed_tasks", - "crud_workflow_list_my_instances", - "crud_workflow_list_pending_tasks", - "crud_workflow_list_process_defs", - "crud_workflow_list_versions", - "crud_workflow_process_code_exists", - "crud_workflow_py", - "crud_workflow_row_to_dict", - "crud_workflow_soft_delete_process_def", - "crud_workflow_task_row_to_dict", - "crud_workflow_total_pages", - "crud_workflow_update_instance_status", - "crud_workflow_update_process_def", - "crud_workflow_version_to_dict", - "services_workflow_callback_dispatch_local", - "services_workflow_callback_py", - "services_workflow_callback_rationale_1", - "services_workflow_callback_rationale_24", - "services_workflow_callback_rationale_29", - "services_workflow_callback_rationale_61", - "services_workflow_callback_register_local_callback", - "services_workflow_callback_trigger_callback", - "services_workflow_engine_compare", - "services_workflow_engine_get_variable", - "services_workflow_engine_parse_node_config", - "services_workflow_engine_parse_variables", - "services_workflow_engine_py", - "services_workflow_engine_workflowengine_advance", - "services_workflow_engine_workflowengine_approve_task", - "services_workflow_engine_workflowengine_check_rules", - "services_workflow_engine_workflowengine_evaluate_condition", - "services_workflow_engine_workflowengine_execute_node", - "services_workflow_engine_workflowengine_reject_task", - "services_workflow_engine_workflowengine_start_process" - ], - "3": [ - "api_insurance_company_insurancecompanycreatebody", - "api_insurance_company_insurancecompanyinvoicecreatebody", - "api_insurance_company_insurancecompanyinvoiceupdatebody", - "api_insurance_company_insurancecompanyupdatebody", - "api_insurance_company_insuranceprojectpricecreatebody", - "api_insurance_company_insuranceprojectpriceupdatebody", - "api_insurance_company_rationale_1", "api_operations_accesslogcreatebody", "api_operations_accesslogupdatebody", "api_operations_cleanroomcreatebody", @@ -1096,22 +803,12 @@ "api_operations_storageslotbatchcreatebody", "api_operations_storageslotcreatebody", "api_operations_storageslotupdatebody", - "api_workflow_processdefcreatebody", - "api_workflow_processdefupdatebody", - "api_workflow_publishversionbody", - "api_workflow_rationale_135", - "api_workflow_startinstancebody", - "api_workflow_taskactionbody", "base", - "core_data_scope_get_child_dept_ids", - "core_data_scope_get_user_dept_id", - "core_data_scope_py", "core_data_scope_rationale_1", "core_data_scope_rationale_113", "core_data_scope_rationale_28", "core_data_scope_rationale_38", "core_data_scope_rationale_65", - "core_data_scope_resolve_user_role_scopes", "crud_api_request_log_apirequestlogcrud", "crud_clean_room_rationale_1", "crud_consumable_pack_rationale_1", @@ -1138,8 +835,6 @@ "crud_user_rationale_134", "crud_user_rationale_181", "crud_user_usercrudcompat", - "crud_workflow_publish_version", - "crud_workflow_rationale_1", "models_material_bizmaterial", "models_material_bizmaterialstocklog", "models_material_py", @@ -1166,9 +861,6 @@ "models_models_bizconsumablepackitem", "models_models_bizexhibitionappointment", "models_models_bizexpresscompany", - "models_models_bizinsurancecompany", - "models_models_bizinsurancecompanyinvoice", - "models_models_bizinsuranceprojectprice", "models_models_bizitemunit", "models_models_bizleaverequest", "models_models_bizoutputtype", @@ -1302,11 +994,7 @@ "models_models_sysuserpost", "models_models_sysuserrole", "models_models_userrole", - "models_models_wfnode", - "models_models_wfprocessdef", "models_models_wfprocessinstance", - "models_models_wfprocessversion", - "models_models_wftask", "models_models_wftransition", "models_qc_material_bizqcmaterial", "models_qc_material_bizqcmaterialusage", @@ -1317,50 +1005,27 @@ "services_web_auth_roles_rationale_1", "services_web_auth_roles_rationale_14", "services_web_auth_roles_rationale_26", - "services_web_auth_roles_rationale_54", - "services_workflow_engine_rationale_1", - "services_workflow_engine_workflowengine", - "services_workflow_engine_workflowengine_init" + "services_web_auth_roles_rationale_54" ], - "4": [ - "api_admin_attachmentdownloadurlbody", - "api_admin_deptcreatebody", - "api_admin_deptupdatebody", - "api_admin_dictdatacreatebody", - "api_admin_dictdataupdatebody", - "api_admin_dicttypecreatebody", - "api_admin_dicttypeupdatebody", - "api_admin_expresscompanycreatebody", - "api_admin_expresscompanyupdatebody", - "api_admin_itemunitcreatebody", - "api_admin_itemunitupdatebody", - "api_admin_menucreatebody", - "api_admin_menuupdatebody", - "api_admin_postcreatebody", - "api_admin_postupdatebody", - "api_admin_postusersupdatebody", - "api_admin_rationale_1521", - "api_admin_rationale_44", - "api_admin_rationale_76", - "api_admin_rationale_91", - "api_admin_rolecreatebody", - "api_admin_roledatascopebody", - "api_admin_rolemenubody", - "api_admin_roleupdatebody", - "api_admin_sitecreatebody", - "api_admin_siteupdatebody", - "api_admin_tenantcreatebody", - "api_admin_tenantupdatebody", - "api_admin_usercreatebody", - "api_admin_userupdatebody", + "3": [ "api_basic_info_cellsampletypecreatebody", "api_basic_info_cellsampletypeupdatebody", "api_basic_info_collectionregioncreatebody", "api_basic_info_collectionregionupdatebody", + "api_basic_info_create_collection_region", + "api_basic_info_create_hospital", "api_basic_info_customercreatebody", "api_basic_info_customerupdatebody", + "api_basic_info_delete_cell_sample_type", + "api_basic_info_delete_collection_region", + "api_basic_info_delete_customer", + "api_basic_info_delete_hospital", + "api_basic_info_delete_protocol_no", + "api_basic_info_delete_sample_code", + "api_basic_info_get_tenant_no", "api_basic_info_hospitalcreatebody", "api_basic_info_hospitalupdatebody", + "api_basic_info_list_collection_regions", "api_basic_info_protocolnobatchgeneratebody", "api_basic_info_protocolnobatchissuebody", "api_basic_info_protocolnobatchrevokebody", @@ -1373,32 +1038,23 @@ "api_basic_info_samplecodebatchrevokebody", "api_basic_info_samplecodecreatebody", "api_basic_info_samplecodeupdatebody", + "api_basic_info_update_collection_region", + "api_basic_info_update_hospital", "api_collection_protocol_auditcreatebody", "api_collection_protocol_batchdetailidsbody", "api_collection_protocol_batchrefundfinancesubmitbody", "api_collection_protocol_financeconfirmbody", "api_collection_protocol_fullmoontodoinsurancebody", + "api_collection_protocol_parse_datetime_fields", "api_collection_protocol_protocolcreatebody", "api_collection_protocol_protocolupdatebody", "api_collection_protocol_rationale_1", "api_collection_protocol_rationale_68", "api_collection_protocol_refundfinanceconfirmbody", "api_collection_protocol_refundfinancesubmitbody", - "api_pilot_service_rationale_1", - "api_public_rationale_215", - "api_research_donation_auditsubmitbody", - "api_research_donation_batchdeletebody", - "api_research_donation_convertfromstoragebody", - "api_research_donation_donationcreatebody", - "api_research_donation_donationupdatebody", - "api_research_donation_rationale_1", - "api_research_donation_statuschangebody", - "api_sample_reception_checkitembody", - "api_sample_reception_checkitemupdatebody", - "api_sample_reception_receptionchecksubmit", - "api_sample_reception_samplereceptioncreatebody", - "api_sample_reception_samplereceptionupdatebody", - "crud_collection_protocol_create_collection_protocol", + "core_utils_parse_datetime", + "crud_collection_protocol_no_batch_generate_protocol_nos", + "crud_collection_protocol_no_rationale_185", "crud_collection_protocol_rationale_1", "crud_collection_protocol_rationale_1102", "crud_collection_protocol_rationale_1158", @@ -1414,6 +1070,20 @@ "crud_collection_protocol_rationale_55", "crud_collection_protocol_rationale_604", "crud_collection_protocol_rationale_89", + "crud_collection_region_create_collection_region", + "crud_collection_region_create_hospital", + "crud_collection_region_get_collection_region", + "crud_collection_region_get_hospital", + "crud_collection_region_hospital_to_dict", + "crud_collection_region_list_collection_regions", + "crud_collection_region_list_hospitals", + "crud_collection_region_py", + "crud_collection_region_region_to_dict", + "crud_collection_region_soft_delete_collection_region", + "crud_collection_region_soft_delete_hospital", + "crud_collection_region_total_pages", + "crud_collection_region_update_collection_region", + "crud_collection_region_update_hospital", "crud_production_work_order_rationale_85", "crud_protocol_donation_convert_active_link_query", "crud_protocol_donation_convert_assert_biz_no_available", @@ -1430,11 +1100,35 @@ "crud_protocol_donation_convert_rationale_84", "crud_protocol_donation_convert_upsert_convert_link_for_to_storage", "crud_qc_task_rationale_411", - "crud_qc_work_order_create_work_order_from_reception", "crud_qc_work_order_rationale_231", "crud_qc_work_order_rationale_462", "crud_qc_work_order_rationale_571", + "crud_research_donation_audit_to_dict", + "crud_research_donation_change_status", + "crud_research_donation_collection_to_dict", "crud_research_donation_convert_from_storage", + "crud_research_donation_convert_to_storage", + "crud_research_donation_create_collection", + "crud_research_donation_create_donation", + "crud_research_donation_create_party", + "crud_research_donation_create_samples", + "crud_research_donation_create_transport", + "crud_research_donation_dec", + "crud_research_donation_delete_donation", + "crud_research_donation_donation_to_dict", + "crud_research_donation_fmt_dt", + "crud_research_donation_get_collection", + "crud_research_donation_get_donation_detail", + "crud_research_donation_get_party", + "crud_research_donation_list_audits", + "crud_research_donation_list_donations", + "crud_research_donation_list_sample_transports", + "crud_research_donation_list_samples", + "crud_research_donation_merge_comma_separated_urls", + "crud_research_donation_normalize_fields", + "crud_research_donation_optional_decimal", + "crud_research_donation_party_to_dict", + "crud_research_donation_py", "crud_research_donation_rationale_1", "crud_research_donation_rationale_109", "crud_research_donation_rationale_1317", @@ -1444,7 +1138,20 @@ "crud_research_donation_rationale_82", "crud_research_donation_rationale_93", "crud_research_donation_rationale_934", + "crud_research_donation_resolve_donation_payload", + "crud_research_donation_sample_to_dict", + "crud_research_donation_soft_delete_all", + "crud_research_donation_soft_delete_collection", + "crud_research_donation_soft_delete_party", + "crud_research_donation_soft_delete_samples", + "crud_research_donation_soft_delete_transports", "crud_research_donation_submit_audit", + "crud_research_donation_total_pages", + "crud_research_donation_transport_to_dict", + "crud_research_donation_update_donation", + "crud_research_donation_user_nick_name_map", + "crud_sample_code_batch_generate_sample_codes", + "crud_sample_code_rationale_182", "crud_sample_reception_rationale_108", "crud_sample_reception_rationale_179", "crud_sample_reception_rationale_254", @@ -1453,7 +1160,6 @@ "crud_sample_reception_rationale_818", "crud_sample_reception_rationale_922", "crud_sample_reception_rationale_966", - "models_models_bizattachment", "models_models_bizcellsampletype", "models_models_bizcollectionhospital", "models_models_bizcollectionprotocol", @@ -1472,8 +1178,6 @@ "models_models_bizqcworkorder", "models_models_bizsamplecode", "models_models_bizsamplereception", - "models_models_sysrole", - "models_models_sysuser", "models_research_donation_bizprotocoldonationconvert", "models_research_donation_bizresearchdonation", "models_research_donation_bizresearchdonationaudit", @@ -1490,187 +1194,152 @@ "models_research_donation_rationale_43", "models_research_donation_rationale_64" ], - "5": [ - "crud_collection_protocol_format_attachment_file_size", - "crud_collection_protocol_urls_to_attachment_list", - "crud_production_work_order_complete_production_work_order", - "crud_production_work_order_create_production_work_order_from_reception", - "crud_production_work_order_fmt_dt", - "crud_production_work_order_generate_work_order_no", - "crud_production_work_order_get_production_work_order", - "crud_production_work_order_list_production_work_orders", - "crud_production_work_order_py", - "crud_production_work_order_wo_to_dict", - "crud_qc_task_apply_task_result", - "crud_qc_task_complete_task", - "crud_qc_task_conclusion_label", - "crud_qc_task_create_task_for_line", - "crud_qc_task_dec", - "crud_qc_task_enrich_tasks_reception_fields", - "crud_qc_task_fmt_dt", - "crud_qc_task_gen_task_no", - "crud_qc_task_get_task", - "crud_qc_task_get_task_detail", - "crud_qc_task_list_tasks", - "crud_qc_task_list_tasks_by_work_order", - "crud_qc_task_py", - "crud_qc_task_set_task_remark", - "crud_qc_task_start_task", - "crud_qc_task_task_row_to_dict", - "crud_qc_task_task_to_dict", - "crud_qc_task_task_work_order_context", - "crud_qc_task_update_task_attachments", - "crud_qc_work_order_accept_conclusion_label", - "crud_qc_work_order_configure_work_order", - "crud_qc_work_order_dec", - "crud_qc_work_order_enrich_work_order_list_items", - "crud_qc_work_order_fmt_dt", - "crud_qc_work_order_get_qc_info_map_for_samples", - "crud_qc_work_order_get_work_order", - "crud_qc_work_order_get_work_order_detail", - "crud_qc_work_order_lab_lines", - "crud_qc_work_order_list_work_orders", - "crud_qc_work_order_load_sample_type_name_map", - "crud_qc_work_order_py", - "crud_qc_work_order_qc_biz_type_label", - "crud_qc_work_order_qc_info_item", - "crud_qc_work_order_reception_source_label", - "crud_qc_work_order_sample_type_name_for_reception", - "crud_qc_work_order_soft_delete_pending_work_order_tasks", - "crud_qc_work_order_third_lines", - "crud_qc_work_order_try_complete_work_order", - "crud_qc_work_order_wo_to_dict", - "crud_qc_work_order_work_order_qc_biz_type", - "crud_sample_reception_check_result_get_check_results_for_reception", - "crud_sample_reception_check_result_legacy_results_from_reception", - "crud_sample_reception_check_result_list_results_by_reception_ids", - "crud_sample_reception_check_result_py", - "crud_sample_reception_check_result_result_to_dict", - "crud_sample_reception_check_result_save_reception_check_results", - "crud_sample_reception_check_result_soft_delete_reception_check_results", - "crud_sample_reception_check_result_sync_legacy_columns_from_results", - "crud_sample_reception_create_sample_reception", - "crud_sample_reception_dec", - "crud_sample_reception_donation_rows_to_sample_list_items", - "crud_sample_reception_donation_sample_detail_rows_query", - "crud_sample_reception_donation_sample_id_col", - "crud_sample_reception_donation_sample_pending_query", - "crud_sample_reception_fmt_dt", - "crud_sample_reception_get_reception_by_id", - "crud_sample_reception_get_receptions_map_for_donation_samples", - "crud_sample_reception_get_receptions_map_for_samples", - "crud_sample_reception_list_pending_protocol_samples", - "crud_sample_reception_list_received_protocol_samples", - "crud_sample_reception_py", - "crud_sample_reception_reception_detail_item", - "crud_sample_reception_reception_sample_code", - "crud_sample_reception_reception_to_dict", - "crud_sample_reception_rows_to_sample_list_items", - "crud_sample_reception_sample_detail_rows_query", - "crud_sample_reception_sample_pending_query", - "crud_sample_reception_update_sample_reception", - "crud_sop_document_create_sop_document", - "crud_sop_document_get_sop_document", - "crud_sop_document_list_sop_documents", - "crud_sop_document_py", - "crud_sop_document_rationale_1", - "crud_sop_document_row_to_dict", - "crud_sop_document_soft_delete_sop_document", - "crud_sop_document_sop_code_exists", - "crud_sop_document_total_pages", - "crud_sop_document_update_sop_document" - ], - "6": [ - "core_api_request_log_middleware_apirequestlogmiddleware", - "core_api_request_log_middleware_apirequestlogmiddleware_dispatch", - "core_api_request_log_middleware_claims_from_auth", - "core_api_request_log_middleware_format_body_bytes", - "core_api_request_log_middleware_persist_log", - "core_api_request_log_middleware_py", - "core_api_request_log_middleware_rationale_1", - "core_api_request_log_middleware_redact_obj", - "core_api_request_log_middleware_schedule_persist_log", - "core_api_request_log_middleware_should_skip", - "core_api_request_log_middleware_truncate", - "core_utils_format_datetime", - "core_utils_generate_id", - "core_utils_generate_random_password", - "core_utils_get_current_time", - "core_utils_get_file_size_display", - "core_utils_py", - "crud_base_camel_to_snake", - "crud_base_crudbase", - "crud_base_crudbase_create", - "crud_base_crudbase_delete", - "crud_base_crudbase_get_all", - "crud_base_crudbase_get_multi", - "crud_base_crudbase_hard_delete", - "crud_base_crudbase_init", - "crud_base_crudbase_update", - "crud_base_get_model_attr", - "crud_base_historycrud", - "crud_base_historycrud_create_history", - "crud_base_py", + "4": [ + "api_basic_info_list_cell_sample_types", + "api_basic_info_list_customers", + "api_basic_info_list_protocol_nos", + "api_basic_info_list_sample_codes", + "core_data_scope_apply_data_scope", + "core_data_scope_get_child_dept_ids", + "core_data_scope_get_user_dept_id", + "core_data_scope_py", + "core_data_scope_resolve_user_role_scopes", + "crud_api_request_log_delete", + "crud_api_request_log_get", + "crud_api_request_log_get_multi_with_filters", + "crud_api_request_log_py", + "crud_base_crudbase_count", + "crud_cell_product_create_cell_product", + "crud_cell_product_delete_cell_product", + "crud_cell_product_get_cell_product", + "crud_cell_product_list_cell_products", + "crud_cell_product_py", + "crud_cell_product_rationale_1", + "crud_cell_product_row_to_dict", + "crud_cell_product_total_pages", + "crud_cell_product_update_cell_product", + "crud_clean_room_access_log_to_dict", + "crud_clean_room_create_access_log", + "crud_clean_room_create_clean_room", + "crud_clean_room_get_access_log", + "crud_clean_room_get_clean_room", + "crud_clean_room_list_access_logs", + "crud_clean_room_list_clean_rooms", + "crud_clean_room_py", + "crud_clean_room_room_code_exists", + "crud_clean_room_row_to_dict", + "crud_clean_room_soft_delete_access_log", + "crud_clean_room_soft_delete_clean_room", + "crud_clean_room_total_pages", + "crud_clean_room_update_access_log", + "crud_clean_room_update_clean_room", "crud_collection_protocol_get_protocol_nos_used_in_protocols", - "crud_dict_type_create_dict_type", - "crud_dict_type_dict_type_code_exists", - "crud_dict_type_get_dict_type", - "crud_dict_type_list_dict_types", - "crud_dict_type_py", - "crud_dict_type_row_to_dict", - "crud_dict_type_soft_delete_dict_type", - "crud_dict_type_total_pages", - "crud_dict_type_update_dict_type", - "crud_role_create_role", - "crud_role_get_role", - "crud_role_get_role_data_scope", - "crud_role_get_role_menu_ids", - "crud_role_list_roles", - "crud_role_py", - "crud_role_role_name_exists", - "crud_role_row_to_dict", - "crud_role_soft_delete_role", - "crud_role_total_pages", - "crud_role_update_role", - "crud_role_update_role_data_scope", - "crud_role_update_role_menus", - "crud_storage_facility_batch_create_slots", - "crud_storage_facility_collect_descendant_ids", - "crud_storage_facility_create_facility", - "crud_storage_facility_create_slot", - "crud_storage_facility_get_children", - "crud_storage_facility_get_facility", - "crud_storage_facility_get_slot", - "crud_storage_facility_list_all_facilities", - "crud_storage_facility_list_slots", - "crud_storage_facility_py", - "crud_storage_facility_row_to_dict", - "crud_storage_facility_slot_to_dict", - "crud_storage_facility_soft_delete_facility", - "crud_storage_facility_soft_delete_slot", - "crud_storage_facility_update_facility", - "crud_storage_facility_update_slot", - "crud_user_create_user", - "crud_user_get_user", - "crud_user_get_user_with_relations", - "crud_user_hash_password", - "crud_user_list_post_ids_for_user", - "crud_user_list_user_ids_bound_to_post", - "crud_user_list_users", - "crud_user_py", - "crud_user_replace_associations", - "crud_user_reset_password", - "crud_user_row_to_dict", - "crud_user_set_user_post_ids_only", - "crud_user_soft_delete_user", - "crud_user_sync_post_user_bindings", - "crud_user_total_pages", - "crud_user_update_user", - "crud_user_user_no_exists", - "crud_workflow_create_task" + "crud_collection_protocol_no_batch_issue_protocol_nos", + "crud_collection_protocol_no_batch_revoke_protocol_nos", + "crud_collection_protocol_no_create_protocol_no", + "crud_collection_protocol_no_get_protocol_no", + "crud_collection_protocol_no_list_protocol_nos", + "crud_collection_protocol_no_protocol_no_exists", + "crud_collection_protocol_no_py", + "crud_collection_protocol_no_rationale_1", + "crud_collection_protocol_no_row_to_dict", + "crud_collection_protocol_no_soft_delete_protocol_no", + "crud_collection_protocol_no_total_pages", + "crud_collection_protocol_no_update_protocol_no", + "crud_consumable_pack_create_consumable_pack", + "crud_consumable_pack_get_consumable_pack", + "crud_consumable_pack_get_pack_detail", + "crud_consumable_pack_item_row_to_dict", + "crud_consumable_pack_list_all_packs", + "crud_consumable_pack_list_consumable_packs", + "crud_consumable_pack_pack_code_exists", + "crud_consumable_pack_py", + "crud_consumable_pack_row_to_dict", + "crud_consumable_pack_soft_delete_consumable_pack", + "crud_consumable_pack_total_pages", + "crud_consumable_pack_update_consumable_pack", + "crud_dict_data_create_dict_data", + "crud_dict_data_get_dict_data", + "crud_dict_data_list_dict_data", + "crud_dict_data_list_dict_data_options", + "crud_dict_data_py", + "crud_dict_data_rationale_1", + "crud_dict_data_row_to_dict", + "crud_dict_data_soft_delete_dict_data", + "crud_dict_data_total_pages", + "crud_dict_data_update_dict_data", + "crud_exhibition_appointment_appointment_no_exists", + "crud_exhibition_appointment_create_exhibition_appointment", + "crud_exhibition_appointment_generate_appointment_no", + "crud_exhibition_appointment_get_exhibition_appointment", + "crud_exhibition_appointment_list_exhibition_appointments", + "crud_exhibition_appointment_py", + "crud_exhibition_appointment_rationale_1", + "crud_exhibition_appointment_rationale_100", + "crud_exhibition_appointment_soft_delete_exhibition_appointment", + "crud_exhibition_appointment_update_exhibition_appointment", + "crud_item_unit_create_item_unit", + "crud_item_unit_get_item_unit", + "crud_item_unit_list_item_units", + "crud_item_unit_py", + "crud_item_unit_rationale_1", + "crud_item_unit_row_to_dict", + "crud_item_unit_soft_delete_item_unit", + "crud_item_unit_total_pages", + "crud_item_unit_unit_code_exists", + "crud_item_unit_update_item_unit", + "crud_leave_create_leave", + "crud_leave_get_leave", + "crud_leave_list_leaves", + "crud_leave_py", + "crud_leave_row_to_dict", + "crud_leave_soft_delete_leave", + "crud_leave_total_pages", + "crud_leave_update_leave", + "crud_material_stock_log_dec", + "crud_material_stock_log_fmt_dt", + "crud_material_stock_log_list_stock_logs", + "crud_material_stock_log_py", + "crud_material_stock_log_row_to_dict", + "crud_pilot_service_list_cell_product_types", + "crud_qc_material_code_exists", + "crud_qc_material_create_material", + "crud_qc_material_dec", + "crud_qc_material_fmt_dt", + "crud_qc_material_get_material", + "crud_qc_material_list_materials", + "crud_qc_material_options_list", + "crud_qc_material_py", + "crud_qc_material_row_to_dict", + "crud_qc_material_soft_delete_material", + "crud_qc_material_stock_in", + "crud_qc_material_total_pages", + "crud_qc_material_update_material", + "crud_qc_material_usage_list_usages", + "crud_qc_material_usage_py", + "crud_qc_material_usage_row_to_dict", + "crud_reagent_create_reagent", + "crud_reagent_get_reagent", + "crud_reagent_list_reagents", + "crud_reagent_py", + "crud_reagent_reagent_code_exists", + "crud_reagent_row_to_dict", + "crud_reagent_soft_delete_reagent", + "crud_reagent_total_pages", + "crud_reagent_update_reagent", + "crud_tenant_create_tenant", + "crud_tenant_get_tenant", + "crud_tenant_list_tenants", + "crud_tenant_py", + "crud_tenant_row_to_dict", + "crud_tenant_soft_delete_tenant", + "crud_tenant_tenant_no_exists", + "crud_tenant_total_pages", + "crud_tenant_update_tenant" ], - "7": [ + "5": [ "api_collection_protocol_persist_protocol_sub_resources", + "core_utils_generate_uuid", "crud_collection_protocol_add_months_yyyymmdd", "crud_collection_protocol_align_fq_payment_details_payload", "crud_collection_protocol_apply_submit_receipt_finance", @@ -1685,6 +1354,7 @@ "crud_collection_protocol_confirm_receipt", "crud_collection_protocol_confirm_refund", "crud_collection_protocol_create_audit", + "crud_collection_protocol_create_collection_protocol", "crud_collection_protocol_dec", "crud_collection_protocol_detail_query_with_protocol", "crud_collection_protocol_detail_to_dict", @@ -1747,83 +1417,248 @@ "crud_collection_protocol_upsert_payment", "crud_collection_protocol_upsert_storage_cert", "crud_collection_protocol_user_nick_name_map", - "crud_collection_protocol_validate_sample_codes_not_used" + "crud_collection_protocol_validate_sample_codes_not_used", + "crud_process_consumable_row_to_dict", + "crud_process_create_process", + "crud_process_create_sub_consumable", + "crud_process_create_sub_data_collection", + "crud_process_create_sub_output", + "crud_process_create_sub_reagent", + "crud_process_data_collection_row_to_dict", + "crud_process_get_process", + "crud_process_get_process_detail", + "crud_process_list_all_processes", + "crud_process_list_processes", + "crud_process_output_row_to_dict", + "crud_process_process_code_exists", + "crud_process_py", + "crud_process_reagent_row_to_dict", + "crud_process_row_to_dict", + "crud_process_soft_delete_process", + "crud_process_soft_delete_sub_records", + "crud_process_total_pages", + "crud_process_update_process", + "crud_production_task_add_task_step", + "crud_production_task_clone_route_to_task", + "crud_production_task_clone_step_consumables", + "crud_production_task_clone_step_data_collections", + "crud_production_task_clone_step_outputs", + "crud_production_task_clone_step_reagents", + "crud_production_task_create_production_task", + "crud_production_task_delete_task_step", + "crud_production_task_fmt_dt", + "crud_production_task_generate_task_no", + "crud_production_task_get_production_task_detail", + "crud_production_task_list_production_tasks", + "crud_production_task_py", + "crud_production_task_replace_step_consumables", + "crud_production_task_replace_step_data_collections", + "crud_production_task_replace_step_outputs", + "crud_production_task_replace_step_reagents", + "crud_production_task_set_task_inputs", + "crud_production_task_set_task_outputs", + "crud_production_task_soft_delete_sub", + "crud_production_task_step_consumable_to_dict", + "crud_production_task_step_data_collection_to_dict", + "crud_production_task_step_output_to_dict", + "crud_production_task_step_reagent_to_dict", + "crud_production_task_step_to_dict", + "crud_production_task_task_input_to_dict", + "crud_production_task_task_output_to_dict", + "crud_production_task_total_pages", + "crud_production_task_update_production_task", + "crud_production_task_update_task_status" + ], + "6": [ + "crud_pilot_service_activate_channel_agreement", + "crud_pilot_service_cell_product_price_code_exists", + "crud_pilot_service_cell_product_spec_code_exists", + "crud_pilot_service_cell_product_type_code_exists", + "crud_pilot_service_channel_agreement_price_exists", + "crud_pilot_service_channel_agreement_price_item_key", + "crud_pilot_service_checkup_package_code_exists", + "crud_pilot_service_create_cell_product_price", + "crud_pilot_service_create_cell_product_spec", + "crud_pilot_service_create_cell_product_type", + "crud_pilot_service_create_channel", + "crud_pilot_service_create_channel_agreement", + "crud_pilot_service_create_channel_agreement_price", + "crud_pilot_service_create_channel_invoice", + "crud_pilot_service_create_channel_mail_address", + "crud_pilot_service_create_checkup_institution", + "crud_pilot_service_create_checkup_institution_invoice", + "crud_pilot_service_create_checkup_institution_package", + "crud_pilot_service_create_checkup_institution_project", + "crud_pilot_service_create_project_system", + "crud_pilot_service_create_project_system_item", + "crud_pilot_service_get_cell_product_price", + "crud_pilot_service_get_cell_product_spec", + "crud_pilot_service_get_cell_product_type", + "crud_pilot_service_get_channel", + "crud_pilot_service_get_checkup_institution", + "crud_pilot_service_get_checkup_institution_package", + "crud_pilot_service_get_checkup_institution_package_detail", + "crud_pilot_service_get_checkup_project_for_package", + "crud_pilot_service_get_project_system", + "crud_pilot_service_insert_package_items", + "crud_pilot_service_list_cell_product_prices", + "crud_pilot_service_list_cell_product_specs", + "crud_pilot_service_list_channel_agreement_prices", + "crud_pilot_service_list_channel_agreements", + "crud_pilot_service_list_channel_invoices", + "crud_pilot_service_list_channel_mail_addresses", + "crud_pilot_service_list_channels", + "crud_pilot_service_list_checkup_institution_invoices", + "crud_pilot_service_list_checkup_institution_packages", + "crud_pilot_service_list_checkup_institution_projects", + "crud_pilot_service_list_checkup_institutions", + "crud_pilot_service_list_package_items_raw", + "crud_pilot_service_list_project_system_items", + "crud_pilot_service_list_project_systems", + "crud_pilot_service_package_items_to_dicts", + "crud_pilot_service_project_system_code_exists", + "crud_pilot_service_py", + "crud_pilot_service_rationale_1253", + "crud_pilot_service_row_to_dict_cell_product_price", + "crud_pilot_service_row_to_dict_cell_product_spec", + "crud_pilot_service_row_to_dict_channel", + "crud_pilot_service_row_to_dict_channel_agreement_price", + "crud_pilot_service_row_to_dict_channel_invoice", + "crud_pilot_service_row_to_dict_channel_mail_address", + "crud_pilot_service_row_to_dict_checkup_institution", + "crud_pilot_service_row_to_dict_checkup_institution_invoice", + "crud_pilot_service_row_to_dict_checkup_institution_package", + "crud_pilot_service_row_to_dict_checkup_institution_package_item", + "crud_pilot_service_row_to_dict_checkup_institution_project", + "crud_pilot_service_row_to_dict_project_system", + "crud_pilot_service_row_to_dict_project_system_item", + "crud_pilot_service_soft_delete_cell_product_price", + "crud_pilot_service_soft_delete_cell_product_spec", + "crud_pilot_service_soft_delete_cell_product_type", + "crud_pilot_service_soft_delete_channel", + "crud_pilot_service_soft_delete_channel_agreement", + "crud_pilot_service_soft_delete_channel_agreement_price", + "crud_pilot_service_soft_delete_channel_invoice", + "crud_pilot_service_soft_delete_channel_mail_address", + "crud_pilot_service_soft_delete_checkup_institution", + "crud_pilot_service_soft_delete_checkup_institution_invoice", + "crud_pilot_service_soft_delete_checkup_institution_package", + "crud_pilot_service_soft_delete_checkup_institution_project", + "crud_pilot_service_soft_delete_project_system", + "crud_pilot_service_soft_delete_project_system_item", + "crud_pilot_service_sum_package_item_fees", + "crud_pilot_service_total_pages", + "crud_pilot_service_update_cell_product_price", + "crud_pilot_service_update_cell_product_spec", + "crud_pilot_service_update_cell_product_type", + "crud_pilot_service_update_channel", + "crud_pilot_service_update_channel_agreement", + "crud_pilot_service_update_channel_agreement_price", + "crud_pilot_service_update_channel_invoice", + "crud_pilot_service_update_channel_mail_address", + "crud_pilot_service_update_checkup_institution", + "crud_pilot_service_update_checkup_institution_invoice", + "crud_pilot_service_update_checkup_institution_package", + "crud_pilot_service_update_checkup_institution_project", + "crud_pilot_service_update_project_system", + "crud_pilot_service_update_project_system_item", + "crud_pilot_service_validate_package_items_for_save", + "crud_pilot_service_void_channel_agreement" + ], + "7": [ + "crud_base_crudbase_update", + "crud_collection_protocol_format_attachment_file_size", + "crud_collection_protocol_urls_to_attachment_list", + "crud_production_work_order_complete_production_work_order", + "crud_production_work_order_create_production_work_order_from_reception", + "crud_production_work_order_fmt_dt", + "crud_production_work_order_generate_work_order_no", + "crud_production_work_order_get_production_work_order", + "crud_production_work_order_list_production_work_orders", + "crud_production_work_order_py", + "crud_production_work_order_wo_to_dict", + "crud_qc_task_apply_task_result", + "crud_qc_task_complete_task", + "crud_qc_task_conclusion_label", + "crud_qc_task_create_task_for_line", + "crud_qc_task_dec", + "crud_qc_task_enrich_tasks_reception_fields", + "crud_qc_task_fmt_dt", + "crud_qc_task_gen_task_no", + "crud_qc_task_get_task", + "crud_qc_task_get_task_detail", + "crud_qc_task_list_tasks", + "crud_qc_task_list_tasks_by_work_order", + "crud_qc_task_py", + "crud_qc_task_set_task_remark", + "crud_qc_task_start_task", + "crud_qc_task_task_row_to_dict", + "crud_qc_task_task_to_dict", + "crud_qc_task_task_work_order_context", + "crud_qc_task_update_task_attachments", + "crud_qc_work_order_accept_conclusion_label", + "crud_qc_work_order_configure_work_order", + "crud_qc_work_order_create_work_order_from_reception", + "crud_qc_work_order_dec", + "crud_qc_work_order_enrich_work_order_list_items", + "crud_qc_work_order_fmt_dt", + "crud_qc_work_order_gen_daily_no", + "crud_qc_work_order_get_qc_info_map_for_samples", + "crud_qc_work_order_get_work_order", + "crud_qc_work_order_get_work_order_detail", + "crud_qc_work_order_lab_lines", + "crud_qc_work_order_list_work_orders", + "crud_qc_work_order_load_sample_type_name_map", + "crud_qc_work_order_py", + "crud_qc_work_order_qc_biz_type_label", + "crud_qc_work_order_qc_info_item", + "crud_qc_work_order_reception_source_label", + "crud_qc_work_order_sample_type_name_for_reception", + "crud_qc_work_order_soft_delete_pending_work_order_tasks", + "crud_qc_work_order_third_lines", + "crud_qc_work_order_try_complete_work_order", + "crud_qc_work_order_wo_to_dict", + "crud_qc_work_order_work_order_qc_biz_type", + "crud_sample_reception_check_result_get_check_results_for_reception", + "crud_sample_reception_check_result_legacy_results_from_reception", + "crud_sample_reception_check_result_list_results_by_reception_ids", + "crud_sample_reception_check_result_py", + "crud_sample_reception_check_result_result_to_dict", + "crud_sample_reception_check_result_save_reception_check_results", + "crud_sample_reception_check_result_soft_delete_reception_check_results", + "crud_sample_reception_check_result_sync_legacy_columns_from_results", + "crud_sample_reception_create_sample_reception", + "crud_sample_reception_dec", + "crud_sample_reception_donation_rows_to_sample_list_items", + "crud_sample_reception_donation_sample_detail_rows_query", + "crud_sample_reception_donation_sample_id_col", + "crud_sample_reception_donation_sample_pending_query", + "crud_sample_reception_fmt_dt", + "crud_sample_reception_get_reception_by_id", + "crud_sample_reception_get_receptions_map_for_donation_samples", + "crud_sample_reception_get_receptions_map_for_samples", + "crud_sample_reception_list_pending_protocol_samples", + "crud_sample_reception_list_received_protocol_samples", + "crud_sample_reception_py", + "crud_sample_reception_reception_detail_item", + "crud_sample_reception_reception_sample_code", + "crud_sample_reception_reception_to_dict", + "crud_sample_reception_rows_to_sample_list_items", + "crud_sample_reception_sample_detail_rows_query", + "crud_sample_reception_sample_pending_query", + "crud_sample_reception_update_sample_reception", + "crud_sop_document_create_sop_document", + "crud_sop_document_get_sop_document", + "crud_sop_document_list_sop_documents", + "crud_sop_document_py", + "crud_sop_document_rationale_1", + "crud_sop_document_row_to_dict", + "crud_sop_document_soft_delete_sop_document", + "crud_sop_document_sop_code_exists", + "crud_sop_document_total_pages", + "crud_sop_document_update_sop_document" ], "8": [ - "api_admin_list_roles_for_select", - "api_public_avatar_url_field", - "api_public_build_user_info_payload", - "api_public_get_web_auth_menu_codes", - "api_public_jwt_user_payload", - "api_public_logout", - "api_public_py", - "api_public_rationale_1", - "api_public_rationale_196", - "api_public_rationale_248", - "api_public_rationale_42", - "api_public_rationale_69", - "api_public_rationale_80", - "api_public_refresh_token", - "api_public_web_login", - "api_public_web_login_rsa_public_key", - "app_main_health_check", - "app_main_lifespan", - "app_main_mask_secret", - "app_main_root", - "core_auth_create_access_token", - "core_auth_create_refresh_token", - "core_auth_decode_token", - "core_auth_extend_session", - "core_auth_get_client_ip", - "core_auth_get_current_user", - "core_auth_get_current_user_by_token", - "core_auth_get_current_user_simple", - "core_auth_get_redis_client", - "core_auth_is_refresh_token_valid", - "core_auth_is_session_valid", - "core_auth_py", - "core_auth_rationale_107", - "core_auth_rationale_190", - "core_auth_rationale_76", - "core_auth_redis_session_enabled", - "core_auth_refresh_key", - "core_auth_revoke_refresh_token", - "core_auth_revoke_session", - "core_auth_session_key", - "core_auth_store_refresh_token", - "core_auth_store_session", - "core_login_crypto_decrypt_login_payload", - "core_login_crypto_ensure_initialized", - "core_login_crypto_extract_login_credentials", - "core_login_crypto_get_public_pem", - "core_login_crypto_py", - "core_login_crypto_rationale_1", - "core_login_crypto_rationale_63", - "core_login_crypto_rationale_84", - "core_login_crypto_validate_ts", - "core_menu_guard_get_user_menu_codes", - "core_menu_guard_py", - "core_menu_guard_rationale_1", - "core_menu_guard_rationale_16", - "core_menu_guard_rationale_24", - "core_menu_guard_rationale_29", - "core_menu_guard_require_admin_or_super_admin", - "core_menu_guard_require_menu_code", - "core_security_get_password_hash", - "core_security_py", - "core_security_rationale_5", - "core_security_verify_password", - "crud_user_usercrudcompat_get_by_user_no", - "main_py", - "services_web_auth_roles_iter_user_menu_perm_codes", - "services_web_auth_roles_map_role_name_to_web", - "services_web_auth_roles_py", - "services_web_auth_roles_resolve_web_role_for_user", - "tasks_init_init_scheduled_tasks", - "tasks_init_py", - "tasks_init_shutdown_scheduler" - ], - "9": [ "core_exceptions_businessexception", "core_exceptions_businessexception_init", "core_exceptions_invalidstatustransitionexception", @@ -1892,50 +1727,306 @@ "core_storage_rationale_53", "core_storage_rationale_83", "exception", - "services_workflow_engine_workflowengine_resolve_approvers" + "services_workflow_callback_dispatch_local", + "services_workflow_callback_py", + "services_workflow_callback_rationale_1", + "services_workflow_callback_rationale_24", + "services_workflow_callback_rationale_29", + "services_workflow_callback_rationale_61", + "services_workflow_callback_register_local_callback", + "services_workflow_callback_trigger_callback" + ], + "9": [ + "api_workflow_business_type_label", + "api_workflow_enrich_task_list", + "api_workflow_get_business_all_tasks", + "api_workflow_get_business_form_fields", + "api_workflow_get_designer_data", + "api_workflow_get_instance_detail", + "api_workflow_list_completed_tasks", + "api_workflow_list_my_instances", + "api_workflow_list_pending_tasks", + "api_workflow_processdefcreatebody", + "api_workflow_processdefupdatebody", + "api_workflow_publishversionbody", + "api_workflow_py", + "api_workflow_rationale_135", + "api_workflow_startinstancebody", + "api_workflow_taskactionbody", + "crud_qc_item_param_list_params_by_item", + "crud_qc_item_param_py", + "crud_qc_item_param_row_to_dict", + "crud_qc_item_param_save_params_for_item", + "crud_qc_task_result_list_results_by_task", + "crud_qc_task_result_list_saved_results_by_task", + "crud_qc_task_result_merge_saved_into_template", + "crud_qc_task_result_py", + "crud_qc_task_result_resolve_task_item_ref", + "crud_qc_task_result_row_to_dict", + "crud_qc_task_result_save_results_for_task", + "crud_workflow_create_instance", + "crud_workflow_create_process_def", + "crud_workflow_create_task", + "crud_workflow_get_all_tasks_for_business", + "crud_workflow_get_instance", + "crud_workflow_get_latest_version", + "crud_workflow_get_nodes_by_version", + "crud_workflow_get_pending_tasks_by_node", + "crud_workflow_get_process_def", + "crud_workflow_get_task", + "crud_workflow_get_transitions_by_version", + "crud_workflow_list_completed_tasks", + "crud_workflow_list_my_instances", + "crud_workflow_list_pending_tasks", + "crud_workflow_list_process_defs", + "crud_workflow_list_versions", + "crud_workflow_process_code_exists", + "crud_workflow_publish_version", + "crud_workflow_py", + "crud_workflow_rationale_1", + "crud_workflow_row_to_dict", + "crud_workflow_soft_delete_process_def", + "crud_workflow_task_row_to_dict", + "crud_workflow_total_pages", + "crud_workflow_update_instance_status", + "crud_workflow_update_process_def", + "crud_workflow_version_to_dict", + "models_models_wfnode", + "models_models_wfprocessdef", + "models_models_wfprocessversion", + "models_models_wftask", + "services_workflow_engine_compare", + "services_workflow_engine_get_variable", + "services_workflow_engine_parse_node_config", + "services_workflow_engine_parse_variables", + "services_workflow_engine_py", + "services_workflow_engine_rationale_1", + "services_workflow_engine_workflowengine", + "services_workflow_engine_workflowengine_advance", + "services_workflow_engine_workflowengine_approve_task", + "services_workflow_engine_workflowengine_check_rules", + "services_workflow_engine_workflowengine_evaluate_condition", + "services_workflow_engine_workflowengine_execute_node", + "services_workflow_engine_workflowengine_init", + "services_workflow_engine_workflowengine_reject_task", + "services_workflow_engine_workflowengine_resolve_approvers", + "services_workflow_engine_workflowengine_start_process" ], "10": [ - "api_collection_protocol_parse_datetime_fields", - "core_utils_parse_datetime", - "crud_research_donation_audit_to_dict", - "crud_research_donation_batch_delete_donations", - "crud_research_donation_change_status", - "crud_research_donation_collection_to_dict", - "crud_research_donation_convert_to_storage", - "crud_research_donation_create_collection", - "crud_research_donation_create_donation", - "crud_research_donation_create_party", - "crud_research_donation_create_samples", - "crud_research_donation_create_transport", - "crud_research_donation_dec", - "crud_research_donation_delete_donation", - "crud_research_donation_donation_to_dict", - "crud_research_donation_fmt_dt", - "crud_research_donation_get_collection", - "crud_research_donation_get_donation_detail", - "crud_research_donation_get_party", - "crud_research_donation_list_audits", - "crud_research_donation_list_donations", - "crud_research_donation_list_sample_transports", - "crud_research_donation_list_samples", - "crud_research_donation_merge_comma_separated_urls", - "crud_research_donation_normalize_fields", - "crud_research_donation_optional_decimal", - "crud_research_donation_party_to_dict", - "crud_research_donation_py", - "crud_research_donation_resolve_donation_payload", - "crud_research_donation_sample_to_dict", - "crud_research_donation_soft_delete_all", - "crud_research_donation_soft_delete_collection", - "crud_research_donation_soft_delete_party", - "crud_research_donation_soft_delete_samples", - "crud_research_donation_soft_delete_transports", - "crud_research_donation_total_pages", - "crud_research_donation_transport_to_dict", - "crud_research_donation_update_donation", - "crud_research_donation_user_nick_name_map" + "api_admin_list_roles_for_select", + "api_public_avatar_url_field", + "api_public_build_user_info_payload", + "api_public_get_web_auth_menu_codes", + "api_public_jwt_user_payload", + "api_public_logout", + "api_public_py", + "api_public_rationale_1", + "api_public_rationale_196", + "api_public_rationale_248", + "api_public_rationale_42", + "api_public_rationale_69", + "api_public_rationale_80", + "api_public_refresh_token", + "api_public_web_login", + "api_public_web_login_rsa_public_key", + "app_main_health_check", + "app_main_lifespan", + "app_main_mask_secret", + "app_main_root", + "core_auth_create_access_token", + "core_auth_create_refresh_token", + "core_auth_decode_token", + "core_auth_extend_session", + "core_auth_get_client_ip", + "core_auth_get_current_user", + "core_auth_get_current_user_by_token", + "core_auth_get_current_user_simple", + "core_auth_get_redis_client", + "core_auth_is_refresh_token_valid", + "core_auth_is_session_valid", + "core_auth_py", + "core_auth_rationale_107", + "core_auth_rationale_190", + "core_auth_rationale_76", + "core_auth_redis_session_enabled", + "core_auth_refresh_key", + "core_auth_revoke_refresh_token", + "core_auth_revoke_session", + "core_auth_session_key", + "core_auth_store_refresh_token", + "core_auth_store_session", + "core_login_crypto_decrypt_login_payload", + "core_login_crypto_ensure_initialized", + "core_login_crypto_extract_login_credentials", + "core_login_crypto_get_public_pem", + "core_login_crypto_py", + "core_login_crypto_rationale_1", + "core_login_crypto_rationale_63", + "core_login_crypto_rationale_84", + "core_login_crypto_validate_ts", + "core_menu_guard_get_user_menu_codes", + "core_menu_guard_py", + "core_menu_guard_rationale_1", + "core_menu_guard_rationale_16", + "core_menu_guard_rationale_24", + "core_menu_guard_rationale_29", + "core_menu_guard_require_admin_or_super_admin", + "core_menu_guard_require_menu_code", + "core_security_get_password_hash", + "core_security_py", + "core_security_rationale_5", + "core_security_verify_password", + "crud_base_crudbase_exists", + "crud_user_usercrudcompat_get_by_user_no", + "main_py", + "services_web_auth_roles_iter_user_menu_perm_codes", + "services_web_auth_roles_map_role_name_to_web", + "services_web_auth_roles_py", + "services_web_auth_roles_resolve_web_role_for_user", + "tasks_init_init_scheduled_tasks", + "tasks_init_py", + "tasks_init_shutdown_scheduler" ], "11": [ + "basehttpmiddleware", + "core_api_crypto_apicryptoerror", + "core_api_crypto_b64url_decode", + "core_api_crypto_b64url_encode", + "core_api_crypto_decrypt_json", + "core_api_crypto_derive_key", + "core_api_crypto_encrypt_json", + "core_api_crypto_gen_nonce_hex", + "core_api_crypto_is_ts_in_window", + "core_api_crypto_middleware_apicryptomiddleware", + "core_api_crypto_middleware_apicryptomiddleware_dispatch", + "core_api_crypto_middleware_claims_from_auth", + "core_api_crypto_middleware_coerce_post_method_override_to_get", + "core_api_crypto_middleware_get_redis_client", + "core_api_crypto_middleware_is_crypto_api", + "core_api_crypto_middleware_json_error_response", + "core_api_crypto_middleware_mark_nonce_once", + "core_api_crypto_middleware_nonce_key", + "core_api_crypto_middleware_py", + "core_api_crypto_middleware_rationale_106", + "core_api_crypto_middleware_rationale_38", + "core_api_crypto_middleware_should_skip_path", + "core_api_crypto_py", + "core_api_request_log_middleware_apirequestlogmiddleware", + "core_api_request_log_middleware_apirequestlogmiddleware_dispatch", + "core_api_request_log_middleware_claims_from_auth", + "core_api_request_log_middleware_format_body_bytes", + "core_api_request_log_middleware_persist_log", + "core_api_request_log_middleware_py", + "core_api_request_log_middleware_rationale_1", + "core_api_request_log_middleware_redact_obj", + "core_api_request_log_middleware_schedule_persist_log", + "core_api_request_log_middleware_should_skip", + "core_api_request_log_middleware_truncate", + "core_request_payload_py", + "core_request_payload_rationale_1", + "core_request_payload_rationale_18", + "core_request_payload_resolve_request_payload", + "core_utils_format_datetime", + "core_utils_generate_id", + "core_utils_generate_random_password", + "core_utils_get_current_time", + "core_utils_get_file_size_display", + "core_utils_py", + "crud_base_camel_to_snake", + "crud_base_crudbase", + "crud_base_crudbase_create", + "crud_base_crudbase_delete", + "crud_base_crudbase_get_all", + "crud_base_crudbase_get_multi", + "crud_base_crudbase_hard_delete", + "crud_base_crudbase_init", + "crud_base_get_model_attr", + "crud_base_historycrud", + "crud_base_historycrud_create_history", + "crud_base_py", + "crud_role_create_role", + "crud_role_get_role", + "crud_role_get_role_data_scope", + "crud_role_get_role_menu_ids", + "crud_role_list_roles", + "crud_role_py", + "crud_role_role_name_exists", + "crud_role_row_to_dict", + "crud_role_soft_delete_role", + "crud_role_total_pages", + "crud_role_update_role", + "crud_role_update_role_data_scope", + "crud_role_update_role_menus" + ], + "12": [ + "api_insurance_company_create_insurance_company", + "api_insurance_company_create_insurance_company_invoice", + "api_insurance_company_create_insurance_project_price", + "api_insurance_company_delete_insurance_company", + "api_insurance_company_delete_insurance_company_invoice", + "api_insurance_company_delete_insurance_project_price", + "api_insurance_company_fmt_dt", + "api_insurance_company_generate_uuid", + "api_insurance_company_get_tenant_no", + "api_insurance_company_insurancecompanycreatebody", + "api_insurance_company_insurancecompanyinvoicecreatebody", + "api_insurance_company_insurancecompanyinvoiceupdatebody", + "api_insurance_company_insurancecompanyupdatebody", + "api_insurance_company_insuranceprojectpricecreatebody", + "api_insurance_company_insuranceprojectpriceupdatebody", + "api_insurance_company_list_insurance_companies", + "api_insurance_company_list_insurance_company_invoices", + "api_insurance_company_list_insurance_project_prices", + "api_insurance_company_py", + "api_insurance_company_rationale_1", + "api_insurance_company_row_to_dict_company", + "api_insurance_company_row_to_dict_invoice", + "api_insurance_company_row_to_dict_project_price", + "api_insurance_company_soft_delete_insurance_company", + "api_insurance_company_soft_delete_insurance_company_invoice", + "api_insurance_company_soft_delete_insurance_project_price", + "api_insurance_company_total_pages", + "api_insurance_company_update_insurance_company", + "api_insurance_company_update_insurance_company_invoice", + "api_insurance_company_update_insurance_project_price", + "models_models_bizinsurancecompany", + "models_models_bizinsurancecompanyinvoice", + "models_models_bizinsuranceprojectprice" + ], + "13": [ + "core_wechat_pay_get_wechat_pay_client", + "core_wechat_pay_get_wechat_pay_v2", + "core_wechat_pay_py", + "core_wechat_pay_rationale_1", + "core_wechat_pay_rationale_131", + "core_wechat_pay_rationale_254", + "core_wechat_pay_rationale_410", + "core_wechat_pay_rationale_443", + "core_wechat_pay_rationale_60", + "core_wechat_pay_wechat_pay", + "core_wechat_pay_wechatpayclient", + "core_wechat_pay_wechatpayclient_close_order", + "core_wechat_pay_wechatpayclient_generate_nonce_str", + "core_wechat_pay_wechatpayclient_generate_pay_sign", + "core_wechat_pay_wechatpayclient_generate_sign", + "core_wechat_pay_wechatpayclient_generate_sign_v3", + "core_wechat_pay_wechatpayclient_init", + "core_wechat_pay_wechatpayclient_make_request", + "core_wechat_pay_wechatpayclient_query_order", + "core_wechat_pay_wechatpayclient_refund", + "core_wechat_pay_wechatpayclient_unified_order", + "core_wechat_pay_wechatpayv2client", + "core_wechat_pay_wechatpayv2client_build_miniprogram_pay_params", + "core_wechat_pay_wechatpayv2client_dict_to_xml", + "core_wechat_pay_wechatpayv2client_generate_sign", + "core_wechat_pay_wechatpayv2client_init", + "core_wechat_pay_wechatpayv2client_parse_notify", + "core_wechat_pay_wechatpayv2client_query_order", + "core_wechat_pay_wechatpayv2client_refund", + "core_wechat_pay_wechatpayv2client_unified_order", + "core_wechat_pay_wechatpayv2client_xml_to_dict" + ], + "14": [ "crud_process_route_add_step", "crud_process_route_copy_step", "crud_process_route_create_route", @@ -1965,87 +2056,6 @@ "crud_process_route_update_step_outputs", "crud_process_route_update_step_reagents" ], - "12": [ - "basehttpmiddleware", - "core_api_crypto_apicryptoerror", - "core_api_crypto_b64url_decode", - "core_api_crypto_b64url_encode", - "core_api_crypto_decrypt_json", - "core_api_crypto_derive_key", - "core_api_crypto_encrypt_json", - "core_api_crypto_gen_nonce_hex", - "core_api_crypto_is_ts_in_window", - "core_api_crypto_middleware_apicryptomiddleware", - "core_api_crypto_middleware_apicryptomiddleware_dispatch", - "core_api_crypto_middleware_claims_from_auth", - "core_api_crypto_middleware_coerce_post_method_override_to_get", - "core_api_crypto_middleware_get_redis_client", - "core_api_crypto_middleware_is_crypto_api", - "core_api_crypto_middleware_json_error_response", - "core_api_crypto_middleware_mark_nonce_once", - "core_api_crypto_middleware_nonce_key", - "core_api_crypto_middleware_py", - "core_api_crypto_middleware_rationale_106", - "core_api_crypto_middleware_rationale_38", - "core_api_crypto_middleware_should_skip_path", - "core_api_crypto_py", - "core_request_payload_py", - "core_request_payload_rationale_1", - "core_request_payload_rationale_18", - "core_request_payload_resolve_request_payload" - ], - "13": [ - "core_wechat_pay_get_wechat_pay_client", - "core_wechat_pay_get_wechat_pay_v2", - "core_wechat_pay_py", - "core_wechat_pay_rationale_1", - "core_wechat_pay_rationale_131", - "core_wechat_pay_rationale_60", - "core_wechat_pay_wechat_pay", - "core_wechat_pay_wechatpayclient", - "core_wechat_pay_wechatpayclient_close_order", - "core_wechat_pay_wechatpayclient_generate_nonce_str", - "core_wechat_pay_wechatpayclient_generate_pay_sign", - "core_wechat_pay_wechatpayclient_generate_sign", - "core_wechat_pay_wechatpayclient_generate_sign_v3", - "core_wechat_pay_wechatpayclient_init", - "core_wechat_pay_wechatpayclient_make_request", - "core_wechat_pay_wechatpayclient_query_order", - "core_wechat_pay_wechatpayclient_unified_order", - "core_wechat_pay_wechatpayv2client", - "core_wechat_pay_wechatpayv2client_dict_to_xml", - "core_wechat_pay_wechatpayv2client_generate_sign", - "core_wechat_pay_wechatpayv2client_init", - "core_wechat_pay_wechatpayv2client_parse_notify", - "core_wechat_pay_wechatpayv2client_query_order", - "core_wechat_pay_wechatpayv2client_refund", - "core_wechat_pay_wechatpayv2client_xml_to_dict" - ], - "14": [ - "crud_collection_region_create_collection_region", - "crud_collection_region_create_hospital", - "crud_collection_region_get_collection_region", - "crud_collection_region_get_hospital", - "crud_collection_region_hospital_to_dict", - "crud_collection_region_list_collection_regions", - "crud_collection_region_list_hospitals", - "crud_collection_region_py", - "crud_collection_region_region_to_dict", - "crud_collection_region_soft_delete_collection_region", - "crud_collection_region_soft_delete_hospital", - "crud_collection_region_total_pages", - "crud_collection_region_update_collection_region", - "crud_collection_region_update_hospital", - "crud_reagent_create_reagent", - "crud_reagent_get_reagent", - "crud_reagent_list_reagents", - "crud_reagent_py", - "crud_reagent_reagent_code_exists", - "crud_reagent_row_to_dict", - "crud_reagent_soft_delete_reagent", - "crud_reagent_total_pages", - "crud_reagent_update_reagent" - ], "15": [ "crud_qc_third_party_company_company_code_exists", "crud_qc_third_party_company_create_company", @@ -2069,60 +2079,43 @@ "crud_qc_third_party_item_update_item" ], "16": [ - "crud_process_consumable_row_to_dict", - "crud_process_create_process", - "crud_process_create_sub_consumable", - "crud_process_create_sub_data_collection", - "crud_process_create_sub_output", - "crud_process_create_sub_reagent", - "crud_process_data_collection_row_to_dict", - "crud_process_get_process", - "crud_process_get_process_detail", - "crud_process_list_all_processes", - "crud_process_list_processes", - "crud_process_output_row_to_dict", - "crud_process_process_code_exists", - "crud_process_py", - "crud_process_reagent_row_to_dict", - "crud_process_row_to_dict", - "crud_process_soft_delete_process", - "crud_process_soft_delete_sub_records", - "crud_process_total_pages", - "crud_process_update_process" + "crud_user_create_user", + "crud_user_get_user", + "crud_user_get_user_with_relations", + "crud_user_hash_password", + "crud_user_list_post_ids_for_user", + "crud_user_list_user_ids_bound_to_post", + "crud_user_list_users", + "crud_user_py", + "crud_user_replace_associations", + "crud_user_reset_password", + "crud_user_row_to_dict", + "crud_user_set_user_post_ids_only", + "crud_user_soft_delete_user", + "crud_user_sync_post_user_bindings", + "crud_user_total_pages", + "crud_user_update_user", + "crud_user_user_no_exists" ], "17": [ - "crud_sample_code_batch_generate_sample_codes", - "crud_sample_code_batch_issue_sample_codes", - "crud_sample_code_batch_revoke_sample_codes", - "crud_sample_code_create_sample_code", - "crud_sample_code_get_sample_code", - "crud_sample_code_list_sample_codes", - "crud_sample_code_py", - "crud_sample_code_rationale_1", - "crud_sample_code_rationale_182", - "crud_sample_code_row_to_dict", - "crud_sample_code_sample_code_exists", - "crud_sample_code_soft_delete_sample_code", - "crud_sample_code_total_pages", - "crud_sample_code_update_sample_code" + "crud_storage_facility_batch_create_slots", + "crud_storage_facility_collect_descendant_ids", + "crud_storage_facility_create_facility", + "crud_storage_facility_create_slot", + "crud_storage_facility_get_children", + "crud_storage_facility_get_facility", + "crud_storage_facility_get_slot", + "crud_storage_facility_list_all_facilities", + "crud_storage_facility_list_slots", + "crud_storage_facility_py", + "crud_storage_facility_row_to_dict", + "crud_storage_facility_slot_to_dict", + "crud_storage_facility_soft_delete_facility", + "crud_storage_facility_soft_delete_slot", + "crud_storage_facility_update_facility", + "crud_storage_facility_update_slot" ], "18": [ - "crud_collection_protocol_no_batch_generate_protocol_nos", - "crud_collection_protocol_no_batch_issue_protocol_nos", - "crud_collection_protocol_no_batch_revoke_protocol_nos", - "crud_collection_protocol_no_create_protocol_no", - "crud_collection_protocol_no_get_protocol_no", - "crud_collection_protocol_no_list_protocol_nos", - "crud_collection_protocol_no_protocol_no_exists", - "crud_collection_protocol_no_py", - "crud_collection_protocol_no_rationale_1", - "crud_collection_protocol_no_rationale_185", - "crud_collection_protocol_no_row_to_dict", - "crud_collection_protocol_no_soft_delete_protocol_no", - "crud_collection_protocol_no_total_pages", - "crud_collection_protocol_no_update_protocol_no" - ], - "19": [ "core_wechat_message_py", "core_wechat_message_rationale_1", "core_wechat_message_rationale_86", @@ -2137,6 +2130,21 @@ "core_wechat_message_wechatmessageservice_init", "core_wechat_message_wechatmessageservice_send_template_message" ], + "19": [ + "schemas_inquiry_config", + "schemas_inquiry_inquirybase", + "schemas_inquiry_inquirycreate", + "schemas_inquiry_inquirydetailresponse", + "schemas_inquiry_inquiryitembase", + "schemas_inquiry_inquiryitemcreate", + "schemas_inquiry_inquiryitemresponse", + "schemas_inquiry_inquirylistresponse", + "schemas_inquiry_inquiryresponse", + "schemas_inquiry_inquirystatusresponse", + "schemas_inquiry_inquiryupdate", + "schemas_inquiry_py", + "schemas_inquiry_rationale_1" + ], "20": [ "schemas_product_config", "schemas_product_productbase", @@ -2168,6 +2176,34 @@ "crud_material_update_material" ], "22": [ + "crud_sample_code_batch_issue_sample_codes", + "crud_sample_code_batch_revoke_sample_codes", + "crud_sample_code_create_sample_code", + "crud_sample_code_get_sample_code", + "crud_sample_code_list_sample_codes", + "crud_sample_code_py", + "crud_sample_code_rationale_1", + "crud_sample_code_row_to_dict", + "crud_sample_code_sample_code_exists", + "crud_sample_code_soft_delete_sample_code", + "crud_sample_code_total_pages", + "crud_sample_code_update_sample_code" + ], + "23": [ + "crud_dept_build_tree", + "crud_dept_cascade_soft_delete", + "crud_dept_collect_with_ancestors", + "crud_dept_create_dept", + "crud_dept_get_dept", + "crud_dept_list_depts", + "crud_dept_list_depts_tree", + "crud_dept_py", + "crud_dept_rationale_41", + "crud_dept_row_to_dict", + "crud_dept_soft_delete_dept", + "crud_dept_update_dept" + ], + "24": [ "crud_menu_build_tree", "crud_menu_cascade_soft_delete", "crud_menu_create_menu", @@ -2180,7 +2216,7 @@ "crud_menu_soft_delete_menu", "crud_menu_update_menu" ], - "23": [ + "25": [ "crud_consumable_consumable_code_exists", "crud_consumable_create_consumable", "crud_consumable_get_consumable", @@ -2192,7 +2228,7 @@ "crud_consumable_total_pages", "crud_consumable_update_consumable" ], - "24": [ + "26": [ "crud_express_company_create_express_company", "crud_express_company_express_code_exists", "crud_express_company_get_express_company", @@ -2204,7 +2240,7 @@ "crud_express_company_total_pages", "crud_express_company_update_express_company" ], - "25": [ + "27": [ "crud_sample_reception_check_item_create_check_item", "crud_sample_reception_check_item_get_check_item", "crud_sample_reception_check_item_item_code_exists", @@ -2216,19 +2252,7 @@ "crud_sample_reception_check_item_soft_delete_check_item", "crud_sample_reception_check_item_update_check_item" ], - "26": [ - "crud_dict_data_create_dict_data", - "crud_dict_data_get_dict_data", - "crud_dict_data_list_dict_data", - "crud_dict_data_list_dict_data_options", - "crud_dict_data_py", - "crud_dict_data_rationale_1", - "crud_dict_data_row_to_dict", - "crud_dict_data_soft_delete_dict_data", - "crud_dict_data_total_pages", - "crud_dict_data_update_dict_data" - ], - "27": [ + "28": [ "crud_process_category_category_code_exists", "crud_process_category_create_process_category", "crud_process_category_get_process_category", @@ -2240,18 +2264,6 @@ "crud_process_category_total_pages", "crud_process_category_update_process_category" ], - "28": [ - "crud_item_unit_create_item_unit", - "crud_item_unit_get_item_unit", - "crud_item_unit_list_item_units", - "crud_item_unit_py", - "crud_item_unit_rationale_1", - "crud_item_unit_row_to_dict", - "crud_item_unit_soft_delete_item_unit", - "crud_item_unit_total_pages", - "crud_item_unit_unit_code_exists", - "crud_item_unit_update_item_unit" - ], "29": [ "crud_customer_create_customer", "crud_customer_get_customer", @@ -2277,18 +2289,6 @@ "crud_cell_sample_type_update_cell_sample_type" ], "31": [ - "crud_dept_build_tree", - "crud_dept_cascade_soft_delete", - "crud_dept_create_dept", - "crud_dept_get_dept", - "crud_dept_list_depts", - "crud_dept_list_depts_tree", - "crud_dept_py", - "crud_dept_row_to_dict", - "crud_dept_soft_delete_dept", - "crud_dept_update_dept" - ], - "32": [ "crud_output_type_create_output_type", "crud_output_type_get_output_type", "crud_output_type_list_output_types", @@ -2300,7 +2300,7 @@ "crud_output_type_type_code_exists", "crud_output_type_update_output_type" ], - "33": [ + "32": [ "crud_post_create_post", "crud_post_get_post", "crud_post_list_posts", @@ -2311,18 +2311,18 @@ "crud_post_total_pages", "crud_post_update_post" ], - "34": [ - "crud_tenant_create_tenant", - "crud_tenant_get_tenant", - "crud_tenant_list_tenants", - "crud_tenant_py", - "crud_tenant_row_to_dict", - "crud_tenant_soft_delete_tenant", - "crud_tenant_tenant_no_exists", - "crud_tenant_total_pages", - "crud_tenant_update_tenant" + "33": [ + "crud_dict_type_create_dict_type", + "crud_dict_type_dict_type_code_exists", + "crud_dict_type_get_dict_type", + "crud_dict_type_list_dict_types", + "crud_dict_type_py", + "crud_dict_type_row_to_dict", + "crud_dict_type_soft_delete_dict_type", + "crud_dict_type_total_pages", + "crud_dict_type_update_dict_type" ], - "35": [ + "34": [ "crud_qc_lab_test_item_create_lab_item", "crud_qc_lab_test_item_get_lab_item", "crud_qc_lab_test_item_item_code_exists", @@ -2333,7 +2333,7 @@ "crud_qc_lab_test_item_soft_delete_lab_item", "crud_qc_lab_test_item_update_lab_item" ], - "36": [ + "35": [ "crud_site_create_site", "crud_site_get_site", "crud_site_list_sites", @@ -2344,7 +2344,7 @@ "crud_site_total_pages", "crud_site_update_site" ], - "37": [ + "36": [ "models_base_basemodel", "models_base_basemodel_to_dict", "models_base_get_active", @@ -2354,7 +2354,7 @@ "models_base_softdeletemodel_soft_delete", "models_base_tablename" ], - "38": [ + "37": [ "core_order_status_compat_derive_legacy_status_from_three", "core_order_status_compat_derive_three_status_from_legacy", "core_order_status_compat_py", @@ -2363,7 +2363,7 @@ "core_order_status_compat_threestatus", "core_order_status_compat_to_decimal" ], - "39": [ + "38": [ "api_ethnic_list_ethnics_for_select", "api_ethnic_py", "crud_ethnic_list_ethnics", @@ -2371,112 +2371,112 @@ "crud_ethnic_rationale_1", "crud_ethnic_row_to_dict" ], - "40": [ + "39": [ "basesettings", "core_config_config", "core_config_py", "core_config_settings" ], - "41": [ + "40": [ "core_database_auto_fill_create_dept_id", "core_database_get_db", "core_database_py", "core_database_rationale_31" ], - "42": [ + "41": [ "api_menu_get_menu_list", "api_menu_py", "api_menu_rationale_1" ], - "43": [ + "42": [ "core_context_py", "core_context_rationale_1" ], - "44": [ + "43": [ "api_init_py", "api_init_rationale_1" ], - "45": [ + "44": [ "init_py" ], - "46": [ + "45": [ "core_init_py" ], - "47": [ + "46": [ "core_wechat_message_rationale_143" ], - "48": [ + "47": [ "core_wechat_message_rationale_179" ], - "49": [ + "48": [ "core_wechat_message_rationale_215" ], - "50": [ + "49": [ "core_wechat_message_rationale_251" ], - "51": [ + "50": [ "core_wechat_message_rationale_289" ], - "52": [ + "51": [ "core_wechat_message_rationale_325" ], - "53": [ + "52": [ "models_init_py" ], - "54": [ + "53": [ "schemas_init_py" ], - "55": [ + "54": [ "crud_init_py" ], - "56": [ + "55": [ "ws_init_py" ] }, "cohesion": { "0": 0.02, "1": 0.02, - "2": 0.01, + "2": 0.06, "3": 0.05, - "4": 0.07, - "5": 0.05, - "6": 0.04, - "7": 0.06, - "8": 0.05, - "9": 0.05, - "10": 0.13, - "11": 0.16, - "12": 0.12, - "13": 0.14, - "14": 0.13, + "4": 0.02, + "5": 0.04, + "6": 0.03, + "7": 0.05, + "8": 0.04, + "9": 0.06, + "10": 0.05, + "11": 0.04, + "12": 0.16, + "13": 0.12, + "14": 0.16, "15": 0.18, - "16": 0.22, - "17": 0.22, - "18": 0.22, - "19": 0.24, + "16": 0.23, + "17": 0.2, + "18": 0.24, + "19": 0.22, "20": 0.23, "21": 0.31, - "22": 0.29, - "23": 0.31, - "24": 0.31, - "25": 0.38, - "26": 0.27, - "27": 0.31, + "22": 0.27, + "23": 0.27, + "24": 0.29, + "25": 0.31, + "26": 0.31, + "27": 0.38, "28": 0.31, "29": 0.31, "30": 0.31, - "31": 0.33, - "32": 0.31, + "31": 0.31, + "32": 0.36, "33": 0.36, - "34": 0.36, - "35": 0.39, - "36": 0.36, - "37": 0.29, - "38": 0.38, - "39": 0.4, + "34": 0.39, + "35": 0.36, + "36": 0.29, + "37": 0.38, + "38": 0.4, + "39": 0.5, "40": 0.5, - "41": 0.5, - "42": 0.67, + "41": 0.67, + "42": 1.0, "43": 1.0, "44": 1.0, "45": 1.0, @@ -2489,8 +2489,7 @@ "52": 1.0, "53": 1.0, "54": 1.0, - "55": 1.0, - "56": 1.0 + "55": 1.0 }, "gods": [ { diff --git a/backend/graphify-out/.graphify_extract.json b/backend/graphify-out/.graphify_extract.json index 6b8f25730..93276044e 100644 --- a/backend/graphify-out/.graphify_extract.json +++ b/backend/graphify-out/.graphify_extract.json @@ -11550,54 +11550,68 @@ "source_file": "crud/dept.py", "source_location": "L30" }, + { + "id": "crud_dept_collect_with_ancestors", + "label": "_collect_with_ancestors()", + "file_type": "code", + "source_file": "crud/dept.py", + "source_location": "L38" + }, { "id": "crud_dept_list_depts", "label": "list_depts()", "file_type": "code", "source_file": "crud/dept.py", - "source_location": "L38" + "source_location": "L54" }, { "id": "crud_dept_list_depts_tree", "label": "list_depts_tree()", "file_type": "code", "source_file": "crud/dept.py", - "source_location": "L55" + "source_location": "L71" }, { "id": "crud_dept_get_dept", "label": "get_dept()", "file_type": "code", "source_file": "crud/dept.py", - "source_location": "L65" + "source_location": "L92" }, { "id": "crud_dept_create_dept", "label": "create_dept()", "file_type": "code", "source_file": "crud/dept.py", - "source_location": "L73" + "source_location": "L100" }, { "id": "crud_dept_update_dept", "label": "update_dept()", "file_type": "code", "source_file": "crud/dept.py", - "source_location": "L114" + "source_location": "L141" }, { "id": "crud_dept_cascade_soft_delete", "label": "_cascade_soft_delete()", "file_type": "code", "source_file": "crud/dept.py", - "source_location": "L152" + "source_location": "L179" }, { "id": "crud_dept_soft_delete_dept", "label": "soft_delete_dept()", "file_type": "code", "source_file": "crud/dept.py", - "source_location": "L165" + "source_location": "L192" + }, + { + "id": "crud_dept_rationale_41", + "label": "\u4fdd\u7559\u5339\u914d\u8282\u70b9\u53ca\u5176\u5168\u90e8\u4e0a\u7ea7\uff0c\u4f9b\u5173\u952e\u8bcd\u68c0\u7d22\u540e\u4ecd\u80fd\u6b63\u786e\u7ec4\u6811\u3002", + "file_type": "rationale", + "source_file": "crud/dept.py", + "source_location": "L41" }, { "id": "crud_base_py", @@ -45800,20 +45814,29 @@ }, { "source": "crud_dept_py", - "target": "crud_dept_list_depts", + "target": "crud_dept_collect_with_ancestors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/dept.py", "source_location": "L38", "weight": 1.0 }, + { + "source": "crud_dept_py", + "target": "crud_dept_list_depts", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/dept.py", + "source_location": "L54", + "weight": 1.0 + }, { "source": "crud_dept_py", "target": "crud_dept_list_depts_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L55", + "source_location": "L71", "weight": 1.0 }, { @@ -45822,7 +45845,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L65", + "source_location": "L92", "weight": 1.0 }, { @@ -45831,7 +45854,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L73", + "source_location": "L100", "weight": 1.0 }, { @@ -45840,7 +45863,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L114", + "source_location": "L141", "weight": 1.0 }, { @@ -45849,7 +45872,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L152", + "source_location": "L179", "weight": 1.0 }, { @@ -45858,7 +45881,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L165", + "source_location": "L192", "weight": 1.0 }, { @@ -45867,7 +45890,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L52", + "source_location": "L68", "weight": 1.0 }, { @@ -45876,7 +45899,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L61", + "source_location": "L79", "weight": 1.0 }, { @@ -45885,7 +45908,16 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L62", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "crud_dept_list_depts_tree", + "target": "crud_dept_collect_with_ancestors", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/dept.py", + "source_location": "L88", "weight": 1.0 }, { @@ -45894,7 +45926,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L127", + "source_location": "L154", "weight": 1.0 }, { @@ -45903,7 +45935,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L166", + "source_location": "L193", "weight": 1.0 }, { @@ -45912,7 +45944,16 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/dept.py", - "source_location": "L169", + "source_location": "L196", + "weight": 1.0 + }, + { + "source": "crud_dept_rationale_41", + "target": "crud_dept_collect_with_ancestors", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "crud/dept.py", + "source_location": "L41", "weight": 1.0 }, { @@ -76011,6 +76052,15 @@ "source_location": "L12", "weight": 0.8 }, + { + "source": "crud_dept_rationale_41", + "target": "models_models_sysdept", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/dept.py", + "source_location": "L10", + "weight": 0.8 + }, { "source": "crud_protocol_donation_convert_rationale_1", "target": "models_models_bizcollectionprotocol", @@ -91422,6 +91472,26 @@ "source_location": "L31", "weight": 1.0 }, + { + "source": "crud_dept_collect_with_ancestors", + "target": "crud_base_crudbase_get", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/dept.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "crud_dept_list_depts_tree", + "target": "crud_base_crudbase_get", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/dept.py", + "source_location": "L87", + "weight": 1.0 + }, { "source": "crud_dept_create_dept", "target": "models_models_sysdept", @@ -91429,7 +91499,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/dept.py", - "source_location": "L90", + "source_location": "L117", "weight": 1.0 }, { @@ -91439,7 +91509,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/dept.py", - "source_location": "L91", + "source_location": "L118", "weight": 1.0 }, { diff --git a/backend/graphify-out/GRAPH_REPORT.md b/backend/graphify-out/GRAPH_REPORT.md index 5338413a3..71e9909ea 100644 --- a/backend/graphify-out/GRAPH_REPORT.md +++ b/backend/graphify-out/GRAPH_REPORT.md @@ -1,12 +1,12 @@ # Graph Report - app (2026-05-20) ## Corpus Check -- 135 files · ~112,579 words +- 135 files · ~112,681 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 2318 nodes · 9000 edges · 51 communities detected -- Extraction: 42% EXTRACTED · 58% INFERRED · 0% AMBIGUOUS · INFERRED: 5206 edges (avg confidence: 0.63) +- 2320 nodes · 9006 edges · 50 communities detected +- Extraction: 42% EXTRACTED · 58% INFERRED · 0% AMBIGUOUS · INFERRED: 5209 edges (avg confidence: 0.63) - Token cost: 0 input · 0 output ## Community Hubs (Navigation) @@ -54,13 +54,12 @@ - [[_COMMUNITY_Community 41|Community 41]] - [[_COMMUNITY_Community 42|Community 42]] - [[_COMMUNITY_Community 43|Community 43]] -- [[_COMMUNITY_Community 44|Community 44]] +- [[_COMMUNITY_Community 46|Community 46]] - [[_COMMUNITY_Community 47|Community 47]] - [[_COMMUNITY_Community 48|Community 48]] - [[_COMMUNITY_Community 49|Community 49]] - [[_COMMUNITY_Community 50|Community 50]] - [[_COMMUNITY_Community 51|Community 51]] -- [[_COMMUNITY_Community 52|Community 52]] ## God Nodes (most connected - your core abstractions) 1. `success_response()` - 368 edges @@ -90,84 +89,84 @@ ### Community 0 - "Community 0" Cohesion: 0.02 -Nodes (414): attachment_download_url(), create_dept(), create_dict_data(), create_dict_type(), create_express_company(), create_item_unit(), create_menu(), create_post() (+406 more) +Nodes (377): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody, ExpressCompanyCreateBody (+369 more) ### Community 1 - "Community 1" Cohesion: 0.02 -Nodes (347): MaterialBody, MaterialUpdateBody, StockInBody, StockOutBody, CellProductPriceCreateBody, CellProductPriceUpdateBody, CellProductSpecCreateBody, CellProductSpecUpdateBody (+339 more) +Nodes (370): attachment_download_url(), create_dept(), create_dict_data(), create_dict_type(), create_express_company(), create_item_unit(), create_menu(), create_post() (+362 more) ### Community 2 - "Community 2" -Cohesion: 0.01 -Nodes (224): get_designer_data(), generate_uuid(), delete(), get_multi_with_filters(), create_cell_product(), delete_cell_product(), get_cell_product(), list_cell_products() (+216 more) +Cohesion: 0.06 +Nodes (211): AccessLogCreateBody, AccessLogUpdateBody, CleanRoomCreateBody, CleanRoomUpdateBody, ExhibitionAppointmentCreateBody, ExhibitionAppointmentUpdateBody, 运营支撑 API(洁净室、进出记录、仓储设施、储位、展厅预约), StorageFacilityCreateBody (+203 more) ### Community 3 - "Community 3" Cohesion: 0.05 -Nodes (238): InsuranceCompanyCreateBody, InsuranceCompanyInvoiceCreateBody, InsuranceCompanyInvoiceUpdateBody, InsuranceCompanyUpdateBody, InsuranceProjectPriceCreateBody, InsuranceProjectPriceUpdateBody, 保险公司及险种价格管理 API(保险公司 + 开票信息 + 险种价格), AccessLogCreateBody (+230 more) +Nodes (179): CellSampleTypeCreateBody, CellSampleTypeUpdateBody, CollectionRegionCreateBody, CollectionRegionUpdateBody, create_collection_region(), create_hospital(), CustomerCreateBody, CustomerUpdateBody (+171 more) ### Community 4 - "Community 4" -Cohesion: 0.07 -Nodes (163): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody, ExpressCompanyCreateBody (+155 more) +Cohesion: 0.02 +Nodes (114): list_cell_sample_types(), list_customers(), list_protocol_nos(), list_sample_codes(), apply_data_scope(), _get_child_dept_ids(), get_user_dept_id(), _resolve_user_role_scopes() (+106 more) ### Community 5 - "Community 5" -Cohesion: 0.05 -Nodes (81): _format_attachment_file_size(), urls_to_attachment_list(), complete_production_work_order(), create_production_work_order_from_reception(), _fmt_dt(), _generate_work_order_no(), get_production_work_order(), list_production_work_orders() (+73 more) +Cohesion: 0.04 +Nodes (124): _persist_protocol_sub_resources(), generate_uuid(), _add_months_yyyymmdd(), align_fq_payment_details_payload(), _apply_submit_receipt_finance(), _apply_submit_refund_finance(), attachments_to_urls(), _audit_to_dict() (+116 more) ### Community 6 - "Community 6" -Cohesion: 0.04 -Nodes (63): ApiRequestLogMiddleware, _claims_from_auth(), _format_body_bytes(), _persist_log(), 统一记录 API 请求/响应出入参的中间件, _redact_obj(), _schedule_persist_log(), _should_skip() (+55 more) +Cohesion: 0.03 +Nodes (86): activate_channel_agreement(), cell_product_price_code_exists(), cell_product_spec_code_exists(), cell_product_type_code_exists(), _channel_agreement_price_exists(), _channel_agreement_price_item_key(), checkup_package_code_exists(), create_cell_product_price() (+78 more) ### Community 7 - "Community 7" -Cohesion: 0.06 -Nodes (76): _persist_protocol_sub_resources(), _add_months_yyyymmdd(), align_fq_payment_details_payload(), _apply_submit_receipt_finance(), _apply_submit_refund_finance(), attachments_to_urls(), _audit_to_dict(), batch_submit_receipt_finance() (+68 more) +Cohesion: 0.05 +Nodes (83): _format_attachment_file_size(), urls_to_attachment_list(), complete_production_work_order(), create_production_work_order_from_reception(), _fmt_dt(), _generate_work_order_no(), get_production_work_order(), list_production_work_orders() (+75 more) ### Community 8 - "Community 8" +Cohesion: 0.04 +Nodes (33): BusinessException, InvalidStatusTransitionException, log_delivery_operation(), log_operation(), log_order_operation(), log_settlement_operation(), log_user_operation(), OrderLockedException (+25 more) + +### Community 9 - "Community 9" +Cohesion: 0.06 +Nodes (59): _business_type_label(), _enrich_task_list(), get_business_all_tasks(), _get_business_form_fields(), get_designer_data(), get_instance_detail(), list_completed_tasks(), list_my_instances() (+51 more) + +### Community 10 - "Community 10" Cohesion: 0.05 Nodes (59): list_roles_for_select(), _avatar_url_field(), _build_user_info_payload(), get_web_auth_menu_codes(), _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/zkxw.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。 (+51 more) -### Community 9 - "Community 9" -Cohesion: 0.05 -Nodes (26): BusinessException, InvalidStatusTransitionException, log_delivery_operation(), log_operation(), log_order_operation(), log_settlement_operation(), log_user_operation(), OrderLockedException (+18 more) - -### Community 10 - "Community 10" -Cohesion: 0.13 -Nodes (38): _parse_datetime_fields(), parse_datetime(), _audit_to_dict(), batch_delete_donations(), change_status(), _collection_to_dict(), convert_to_storage(), _create_collection() (+30 more) - ### Community 11 - "Community 11" -Cohesion: 0.16 -Nodes (26): add_step(), copy_step(), create_route(), _create_step_consumable(), _create_step_data_collection(), _create_step_output(), _create_step_reagent(), get_route() (+18 more) +Cohesion: 0.04 +Nodes (47): BaseHTTPMiddleware, ApiCryptoError, _b64url_decode(), _b64url_encode(), decrypt_json(), derive_key(), encrypt_json(), gen_nonce_hex() (+39 more) ### Community 12 - "Community 12" -Cohesion: 0.12 -Nodes (23): BaseHTTPMiddleware, ApiCryptoError, _b64url_decode(), _b64url_encode(), decrypt_json(), derive_key(), encrypt_json(), gen_nonce_hex() (+15 more) +Cohesion: 0.16 +Nodes (32): _create_insurance_company(), _create_insurance_company_invoice(), _create_insurance_project_price(), delete_insurance_company(), delete_insurance_company_invoice(), delete_insurance_project_price(), _fmt_dt(), _generate_uuid() (+24 more) ### Community 13 - "Community 13" -Cohesion: 0.14 -Nodes (8): get_wechat_pay_client(), get_wechat_pay_v2(), 微信支付工具模块 支持微信支付 V3 API 文档参考: https://pay.weixin.qq.com/docs/v3/apis/index.ht, 统一下单接口 (V3) Args: out_trade_no: 商户订单号 total, 生成签名 V3 (SHA256 with RSA), wechat_pay(), WechatPayClient, WechatPayV2Client +Cohesion: 0.12 +Nodes (11): get_wechat_pay_client(), get_wechat_pay_v2(), 微信支付工具模块 支持微信支付 V3 API 文档参考: https://pay.weixin.qq.com/docs/v3/apis/index.ht, 统一下单接口 (V3) Args: out_trade_no: 商户订单号 total, 申请退款 Args: out_trade_no: 商户订单号 total_amount, 小程序调起支付的二次签名参数(与公众号 JSAPI 规则一致), 统一下单 (V2 API) Args: out_trade_no: 商户订单号 tot, 生成签名 V3 (SHA256 with RSA) (+3 more) ### Community 14 - "Community 14" -Cohesion: 0.13 -Nodes (19): create_collection_region(), create_hospital(), get_collection_region(), get_hospital(), _hospital_to_dict(), list_collection_regions(), list_hospitals(), _region_to_dict() (+11 more) +Cohesion: 0.16 +Nodes (26): add_step(), copy_step(), create_route(), _create_step_consumable(), _create_step_data_collection(), _create_step_output(), _create_step_reagent(), get_route() (+18 more) ### Community 15 - "Community 15" Cohesion: 0.18 Nodes (18): company_code_exists(), create_company(), get_company(), list_companies(), list_company_options(), _row_to_dict(), soft_delete_company(), update_company() (+10 more) ### Community 16 - "Community 16" -Cohesion: 0.22 -Nodes (18): _consumable_row_to_dict(), create_process(), _create_sub_consumable(), _create_sub_data_collection(), _create_sub_output(), _create_sub_reagent(), _data_collection_row_to_dict(), get_process() (+10 more) +Cohesion: 0.23 +Nodes (15): create_user(), get_user(), get_user_with_relations(), _hash_password(), list_post_ids_for_user(), list_user_ids_bound_to_post(), list_users(), _replace_associations() (+7 more) ### Community 17 - "Community 17" -Cohesion: 0.22 -Nodes (12): batch_generate_sample_codes(), batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), 样本编码池 CRUD(biz_sample_code), 批量生成样本编码: 类型前缀 + 中间段 + 补零序号 (+4 more) +Cohesion: 0.2 +Nodes (15): batch_create_slots(), collect_descendant_ids(), create_facility(), create_slot(), get_children(), get_facility(), get_slot(), list_all_facilities() (+7 more) ### Community 18 - "Community 18" -Cohesion: 0.22 -Nodes (12): batch_generate_protocol_nos(), batch_issue_protocol_nos(), batch_revoke_protocol_nos(), create_protocol_no(), get_protocol_no(), list_protocol_nos(), protocol_no_exists(), 采集协议号池 CRUD(biz_collection_protocol_no) (+4 more) - -### Community 19 - "Community 19" Cohesion: 0.24 Nodes (9): 微信消息通知服务 支持微信小程序模板消息推送 使用方式: from app.core.wechat_message import Wech, 发送模板消息 Args: openid: 用户openid templ, send_delivery_notice(), send_delivery_warning(), send_order_status(), send_payment_success(), send_refund_result(), send_urge_notification() (+1 more) +### Community 19 - "Community 19" +Cohesion: 0.22 +Nodes (12): Config, InquiryBase, InquiryCreate, InquiryDetailResponse, InquiryItemBase, InquiryItemCreate, InquiryItemResponse, InquiryListResponse (+4 more) + ### Community 20 - "Community 20" Cohesion: 0.23 Nodes (12): Config, ProductBase, ProductCategoryBase, ProductCategoryCreate, ProductCategoryResponse, ProductCreate, ProductResponse, ProductUnitBase (+4 more) @@ -177,32 +176,32 @@ Cohesion: 0.31 Nodes (12): _code_exists(), create_material(), _dec(), _fmt_dt(), get_material(), list_materials(), options_list(), _row_to_dict() (+4 more) ### Community 22 - "Community 22" +Cohesion: 0.27 +Nodes (10): batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), 样本编码池 CRUD(biz_sample_code), _row_to_dict(), sample_code_exists() (+2 more) + +### Community 23 - "Community 23" +Cohesion: 0.27 +Nodes (11): _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), create_dept(), get_dept(), list_depts(), list_depts_tree(), 保留匹配节点及其全部上级,供关键词检索后仍能正确组树。 (+3 more) + +### Community 24 - "Community 24" Cohesion: 0.29 Nodes (9): _build_tree(), _cascade_soft_delete(), create_menu(), get_menu(), list_menus(), list_menus_tree(), _row_to_dict(), soft_delete_menu() (+1 more) -### Community 23 - "Community 23" +### Community 25 - "Community 25" Cohesion: 0.31 Nodes (8): consumable_code_exists(), create_consumable(), get_consumable(), list_consumables(), 耗材 CRUD(biz_consumable), _row_to_dict(), soft_delete_consumable(), update_consumable() -### Community 24 - "Community 24" +### Community 26 - "Community 26" Cohesion: 0.31 Nodes (8): create_express_company(), express_code_exists(), get_express_company(), list_express_companies(), 快递公司 CRUD(biz_express_company), _row_to_dict(), soft_delete_express_company(), update_express_company() -### Community 25 - "Community 25" +### Community 27 - "Community 27" Cohesion: 0.38 Nodes (9): create_check_item(), get_check_item(), item_code_exists(), list_active_check_items(), list_check_items(), _order_query(), _row_to_dict(), soft_delete_check_item() (+1 more) -### Community 26 - "Community 26" -Cohesion: 0.27 -Nodes (8): create_dict_data(), get_dict_data(), list_dict_data(), list_dict_data_options(), 字典数据 CRUD(sys_dict_data), _row_to_dict(), soft_delete_dict_data(), update_dict_data() - -### Community 27 - "Community 27" -Cohesion: 0.31 -Nodes (8): category_code_exists(), create_process_category(), get_process_category(), list_process_categories(), 工艺工序分类 CRUD(biz_process_category), _row_to_dict(), soft_delete_process_category(), update_process_category() - ### Community 28 - "Community 28" Cohesion: 0.31 -Nodes (8): create_item_unit(), get_item_unit(), list_item_units(), 物品单位 CRUD(biz_item_unit), _row_to_dict(), soft_delete_item_unit(), unit_code_exists(), update_item_unit() +Nodes (8): category_code_exists(), create_process_category(), get_process_category(), list_process_categories(), 工艺工序分类 CRUD(biz_process_category), _row_to_dict(), soft_delete_process_category(), update_process_category() ### Community 29 - "Community 29" Cohesion: 0.31 @@ -213,120 +212,116 @@ Cohesion: 0.31 Nodes (8): create_cell_sample_type(), get_cell_sample_type(), list_cell_sample_types(), 细胞样本类型 CRUD(biz_cell_sample_type), _row_to_dict(), soft_delete_cell_sample_type(), type_code_exists(), update_cell_sample_type() ### Community 31 - "Community 31" -Cohesion: 0.33 -Nodes (9): _build_tree(), _cascade_soft_delete(), create_dept(), get_dept(), list_depts(), list_depts_tree(), _row_to_dict(), soft_delete_dept() (+1 more) - -### Community 32 - "Community 32" Cohesion: 0.31 Nodes (8): create_output_type(), get_output_type(), list_output_types(), 工艺产出物类型 CRUD(biz_output_type), _row_to_dict(), soft_delete_output_type(), type_code_exists(), update_output_type() -### Community 33 - "Community 33" +### Community 32 - "Community 32" Cohesion: 0.36 Nodes (7): create_post(), get_post(), list_posts(), post_code_exists(), _row_to_dict(), soft_delete_post(), update_post() -### Community 34 - "Community 34" +### Community 33 - "Community 33" Cohesion: 0.36 -Nodes (7): create_tenant(), get_tenant(), list_tenants(), _row_to_dict(), soft_delete_tenant(), tenant_no_exists(), update_tenant() +Nodes (7): create_dict_type(), dict_type_code_exists(), get_dict_type(), list_dict_types(), _row_to_dict(), soft_delete_dict_type(), update_dict_type() -### Community 35 - "Community 35" +### Community 34 - "Community 34" Cohesion: 0.39 Nodes (8): create_lab_item(), get_lab_item(), item_code_exists(), list_active_lab_items(), list_lab_items(), _row_to_dict(), soft_delete_lab_item(), update_lab_item() -### Community 36 - "Community 36" +### Community 35 - "Community 35" Cohesion: 0.36 Nodes (7): create_site(), get_site(), list_sites(), _row_to_dict(), site_code_exists(), soft_delete_site(), update_site() -### Community 37 - "Community 37" +### Community 36 - "Community 36" Cohesion: 0.29 Nodes (2): BaseModel, SoftDeleteModel -### Community 38 - "Community 38" +### Community 37 - "Community 37" Cohesion: 0.38 Nodes (6): derive_legacy_status_from_three(), derive_three_status_from_legacy(), 阶段A兼容:从旧 status 推导三字段。 约束:旧 status 本身混合了支付/配送/订单生命周期,因此只能尽力推断; 若业务侧已有更精确, 阶段A兼容:从三字段反推旧 status(用于旧前端/旧筛选参数兼容)。, ThreeStatus, _to_decimal() -### Community 39 - "Community 39" +### Community 38 - "Community 38" Cohesion: 0.4 Nodes (4): list_ethnics_for_select(), list_ethnics(), 民族码表 CRUD(全局 sys_ethnic), _row_to_dict() -### Community 40 - "Community 40" +### Community 39 - "Community 39" Cohesion: 0.5 Nodes (3): BaseSettings, Config, Settings -### Community 41 - "Community 41" +### Community 40 - "Community 40" Cohesion: 0.5 Nodes (2): _auto_fill_create_dept_id(), ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID -### Community 42 - "Community 42" +### Community 41 - "Community 41" Cohesion: 0.67 Nodes (2): get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,供后端菜单模式联调) -### Community 43 - "Community 43" +### Community 42 - "Community 42" Cohesion: 1.0 Nodes (1): 请求级别的用户上下文变量 通过 contextvars 在请求处理链路中传递当前用户信息, 供 SQLAlchemy 事件监听器等底层机制使用,避免逐层手动传 -### Community 44 - "Community 44" +### Community 43 - "Community 43" Cohesion: 1.0 Nodes (1): API 路由包(骨架:公共鉴权 + 静态菜单 + 运营端占位) -### Community 47 - "Community 47" +### Community 46 - "Community 46" Cohesion: 1.0 Nodes (1): 发送订单状态通知 Args: openid: 用户openid ord -### Community 48 - "Community 48" +### Community 47 - "Community 47" Cohesion: 1.0 Nodes (1): 发送支付成功通知 Args: openid: 用户openid ord -### Community 49 - "Community 49" +### Community 48 - "Community 48" Cohesion: 1.0 Nodes (1): 发送配送通知 Args: openid: 配送员openid task -### Community 50 - "Community 50" +### Community 49 - "Community 49" Cohesion: 1.0 Nodes (1): 发送配送时效预警 Args: openid: 配送员openid ta -### Community 51 - "Community 51" +### Community 50 - "Community 50" Cohesion: 1.0 Nodes (1): 发送退款结果通知 Args: openid: 用户openid ord -### Community 52 - "Community 52" +### Community 51 - "Community 51" Cohesion: 1.0 Nodes (1): 发送催单通知给配送员 Args: deliver_openid: 配送员openid ## Knowledge Gaps - **86 isolated node(s):** `刷新会话 TTL(refreshToken 续期;已登录用户每次 API 校验通过后滑动续期)`, `写入 refreshToken(用于 one-time 使用/吊销)`, `根据 token 获取当前用户(包含 Redis 会话校验;会话滑动续期)`, `登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。`, `Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。` (+81 more) These have ≤1 connection - possible missing edges or undocumented components. -- **Thin community `Community 37`** (8 nodes): `BaseModel`, `.to_dict()`, `get_active()`, `base.py`, `SoftDeleteModel`, `.restore()`, `.soft_delete()`, `__tablename__()` +- **Thin community `Community 36`** (8 nodes): `BaseModel`, `.to_dict()`, `get_active()`, `base.py`, `SoftDeleteModel`, `.restore()`, `.soft_delete()`, `__tablename__()` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 41`** (4 nodes): `_auto_fill_create_dept_id()`, `get_db()`, `database.py`, `ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID` +- **Thin community `Community 40`** (4 nodes): `_auto_fill_create_dept_id()`, `get_db()`, `database.py`, `ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 42`** (3 nodes): `get_menu_list()`, `menu.py`, `运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,供后端菜单模式联调)` +- **Thin community `Community 41`** (3 nodes): `get_menu_list()`, `menu.py`, `运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,供后端菜单模式联调)` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 43`** (2 nodes): `context.py`, `请求级别的用户上下文变量 通过 contextvars 在请求处理链路中传递当前用户信息, 供 SQLAlchemy 事件监听器等底层机制使用,避免逐层手动传` +- **Thin community `Community 42`** (2 nodes): `context.py`, `请求级别的用户上下文变量 通过 contextvars 在请求处理链路中传递当前用户信息, 供 SQLAlchemy 事件监听器等底层机制使用,避免逐层手动传` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 44`** (2 nodes): `__init__.py`, `API 路由包(骨架:公共鉴权 + 静态菜单 + 运营端占位)` +- **Thin community `Community 43`** (2 nodes): `__init__.py`, `API 路由包(骨架:公共鉴权 + 静态菜单 + 运营端占位)` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 47`** (1 nodes): `发送订单状态通知 Args: openid: 用户openid ord` +- **Thin community `Community 46`** (1 nodes): `发送订单状态通知 Args: openid: 用户openid ord` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 48`** (1 nodes): `发送支付成功通知 Args: openid: 用户openid ord` +- **Thin community `Community 47`** (1 nodes): `发送支付成功通知 Args: openid: 用户openid ord` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 49`** (1 nodes): `发送配送通知 Args: openid: 配送员openid task` +- **Thin community `Community 48`** (1 nodes): `发送配送通知 Args: openid: 配送员openid task` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 50`** (1 nodes): `发送配送时效预警 Args: openid: 配送员openid ta` +- **Thin community `Community 49`** (1 nodes): `发送配送时效预警 Args: openid: 配送员openid ta` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 51`** (1 nodes): `发送退款结果通知 Args: openid: 用户openid ord` +- **Thin community `Community 50`** (1 nodes): `发送退款结果通知 Args: openid: 用户openid ord` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 52`** (1 nodes): `发送催单通知给配送员 Args: deliver_openid: 配送员openid` +- **Thin community `Community 51`** (1 nodes): `发送催单通知给配送员 Args: deliver_openid: 配送员openid` Too small to be a meaningful cluster - may be noise or needs more connections extracted. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `generate_uuid()` connect `Community 2` to `Community 0`, `Community 3`, `Community 4`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 10`, `Community 11`, `Community 14`, `Community 15`, `Community 16`, `Community 17`, `Community 18`, `Community 21`, `Community 22`, `Community 23`, `Community 24`, `Community 25`, `Community 26`, `Community 27`, `Community 28`, `Community 29`, `Community 30`, `Community 31`, `Community 32`, `Community 33`, `Community 34`, `Community 35`, `Community 36`?** +- **Why does `generate_uuid()` connect `Community 5` to `Community 1`, `Community 3`, `Community 4`, `Community 6`, `Community 7`, `Community 9`, `Community 10`, `Community 11`, `Community 14`, `Community 15`, `Community 16`, `Community 17`, `Community 21`, `Community 22`, `Community 23`, `Community 24`, `Community 25`, `Community 26`, `Community 27`, `Community 28`, `Community 29`, `Community 30`, `Community 31`, `Community 32`, `Community 33`, `Community 34`, `Community 35`?** _High betweenness centrality (0.122) - this node is a cross-community bridge._ -- **Why does `success_response()` connect `Community 0` to `Community 1`, `Community 2`, `Community 39`, `Community 8`, `Community 42`?** - _High betweenness centrality (0.077) - this node is a cross-community bridge._ -- **Why does `SysUser` connect `Community 4` to `Community 8`, `Community 1`, `Community 3`, `Community 6`?** - _High betweenness centrality (0.072) - this node is a cross-community bridge._ +- **Why does `SysUser` connect `Community 0` to `Community 1`, `Community 2`, `Community 3`, `Community 9`, `Community 10`, `Community 12`, `Community 16`?** + _High betweenness centrality (0.088) - this node is a cross-community bridge._ +- **Why does `success_response()` connect `Community 1` to `Community 0`, `Community 3`, `Community 4`, `Community 38`, `Community 41`, `Community 10`, `Community 9`, `Community 12`?** + _High betweenness centrality (0.066) - this node is a cross-community bridge._ - **Are the 367 inferred relationships involving `success_response()` (e.g. with `web_login_rsa_public_key()` and `web_login()`) actually correct?** _`success_response()` has 367 INFERRED edges - model-reasoned connections that need verification._ - **Are the 332 inferred relationships involving `str` (e.g. with `extract_login_credentials()` and `._make_request()`) actually correct?** diff --git a/backend/graphify-out/graph.html b/backend/graphify-out/graph.html index 7ae77e956..7c927bf43 100644 --- a/backend/graphify-out/graph.html +++ b/backend/graphify-out/graph.html @@ -57,12 +57,12 @@
-