|
|
@@ -1,12 +1,12 @@
|
|
|
# Graph Report - sqxp_副本2 (2026-04-30)
|
|
|
|
|
|
## Corpus Check
|
|
|
-- 701 files · ~637,582 words
|
|
|
+- 701 files · ~640,190 words
|
|
|
- Verdict: corpus is large enough that graph structure adds value.
|
|
|
|
|
|
## Summary
|
|
|
-- 4853 nodes · 23872 edges · 60 communities detected
|
|
|
-- Extraction: 22% EXTRACTED · 78% INFERRED · 0% AMBIGUOUS · INFERRED: 18723 edges (avg confidence: 0.55)
|
|
|
+- 4916 nodes · 25358 edges · 65 communities detected
|
|
|
+- Extraction: 20% EXTRACTED · 80% INFERRED · 0% AMBIGUOUS · INFERRED: 20196 edges (avg confidence: 0.55)
|
|
|
- Token cost: 0 input · 0 output
|
|
|
|
|
|
## Community Hubs (Navigation)
|
|
|
@@ -30,58 +30,63 @@
|
|
|
- [[_COMMUNITY_Community 17|Community 17]]
|
|
|
- [[_COMMUNITY_Community 18|Community 18]]
|
|
|
- [[_COMMUNITY_Community 19|Community 19]]
|
|
|
-- [[_COMMUNITY_Community 20|Community 20]]
|
|
|
-- [[_COMMUNITY_Community 21|Community 21]]
|
|
|
- [[_COMMUNITY_Community 22|Community 22]]
|
|
|
+- [[_COMMUNITY_Community 23|Community 23]]
|
|
|
+- [[_COMMUNITY_Community 24|Community 24]]
|
|
|
- [[_COMMUNITY_Community 25|Community 25]]
|
|
|
- [[_COMMUNITY_Community 26|Community 26]]
|
|
|
-- [[_COMMUNITY_Community 27|Community 27]]
|
|
|
- [[_COMMUNITY_Community 28|Community 28]]
|
|
|
-- [[_COMMUNITY_Community 29|Community 29]]
|
|
|
+- [[_COMMUNITY_Community 30|Community 30]]
|
|
|
- [[_COMMUNITY_Community 31|Community 31]]
|
|
|
+- [[_COMMUNITY_Community 32|Community 32]]
|
|
|
- [[_COMMUNITY_Community 33|Community 33]]
|
|
|
- [[_COMMUNITY_Community 34|Community 34]]
|
|
|
-- [[_COMMUNITY_Community 35|Community 35]]
|
|
|
- [[_COMMUNITY_Community 36|Community 36]]
|
|
|
+- [[_COMMUNITY_Community 37|Community 37]]
|
|
|
- [[_COMMUNITY_Community 38|Community 38]]
|
|
|
- [[_COMMUNITY_Community 39|Community 39]]
|
|
|
- [[_COMMUNITY_Community 40|Community 40]]
|
|
|
-- [[_COMMUNITY_Community 41|Community 41]]
|
|
|
-- [[_COMMUNITY_Community 42|Community 42]]
|
|
|
+- [[_COMMUNITY_Community 45|Community 45]]
|
|
|
- [[_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]]
|
|
|
-- [[_COMMUNITY_Community 53|Community 53]]
|
|
|
- [[_COMMUNITY_Community 54|Community 54]]
|
|
|
-- [[_COMMUNITY_Community 56|Community 56]]
|
|
|
-- [[_COMMUNITY_Community 57|Community 57]]
|
|
|
-- [[_COMMUNITY_Community 61|Community 61]]
|
|
|
-- [[_COMMUNITY_Community 64|Community 64]]
|
|
|
+- [[_COMMUNITY_Community 55|Community 55]]
|
|
|
+- [[_COMMUNITY_Community 59|Community 59]]
|
|
|
+- [[_COMMUNITY_Community 62|Community 62]]
|
|
|
+- [[_COMMUNITY_Community 63|Community 63]]
|
|
|
- [[_COMMUNITY_Community 65|Community 65]]
|
|
|
-- [[_COMMUNITY_Community 67|Community 67]]
|
|
|
-- [[_COMMUNITY_Community 80|Community 80]]
|
|
|
+- [[_COMMUNITY_Community 78|Community 78]]
|
|
|
+- [[_COMMUNITY_Community 88|Community 88]]
|
|
|
- [[_COMMUNITY_Community 90|Community 90]]
|
|
|
-- [[_COMMUNITY_Community 92|Community 92]]
|
|
|
+- [[_COMMUNITY_Community 143|Community 143]]
|
|
|
+- [[_COMMUNITY_Community 144|Community 144]]
|
|
|
- [[_COMMUNITY_Community 145|Community 145]]
|
|
|
- [[_COMMUNITY_Community 146|Community 146]]
|
|
|
- [[_COMMUNITY_Community 147|Community 147]]
|
|
|
- [[_COMMUNITY_Community 148|Community 148]]
|
|
|
-- [[_COMMUNITY_Community 149|Community 149]]
|
|
|
-- [[_COMMUNITY_Community 150|Community 150]]
|
|
|
+- [[_COMMUNITY_Community 416|Community 416]]
|
|
|
+- [[_COMMUNITY_Community 417|Community 417]]
|
|
|
+- [[_COMMUNITY_Community 418|Community 418]]
|
|
|
+- [[_COMMUNITY_Community 419|Community 419]]
|
|
|
+- [[_COMMUNITY_Community 420|Community 420]]
|
|
|
+- [[_COMMUNITY_Community 421|Community 421]]
|
|
|
+- [[_COMMUNITY_Community 422|Community 422]]
|
|
|
|
|
|
## God Nodes (most connected - your core abstractions)
|
|
|
-1. `BizPriceListItem` - 699 edges
|
|
|
-2. `BizInquiry` - 628 edges
|
|
|
-3. `BizQuotation` - 626 edges
|
|
|
-4. `BizAttachment` - 616 edges
|
|
|
-5. `BasProduct` - 615 edges
|
|
|
-6. `SysUser` - 606 edges
|
|
|
-7. `BasProductCategory` - 605 edges
|
|
|
-8. `BasProductUnit` - 605 edges
|
|
|
-9. `BizDeliveryTask` - 598 edges
|
|
|
-10. `BizOrder` - 595 edges
|
|
|
+1. `BizPriceListItem` - 753 edges
|
|
|
+2. `BizInquiry` - 682 edges
|
|
|
+3. `BizQuotation` - 680 edges
|
|
|
+4. `BizAttachment` - 670 edges
|
|
|
+5. `BasProduct` - 669 edges
|
|
|
+6. `SysUser` - 660 edges
|
|
|
+7. `BasProductCategory` - 659 edges
|
|
|
+8. `BasProductUnit` - 659 edges
|
|
|
+9. `BizDeliveryTask` - 652 edges
|
|
|
+10. `BizOrder` - 649 edges
|
|
|
|
|
|
## Surprising Connections (you probably didn't know these)
|
|
|
- `get_active()` --calls--> `query()` [INFERRED]
|
|
|
@@ -92,315 +97,349 @@
|
|
|
web-admin/src/views/system/inquiry-quotation/index.vue → sqxp-wx/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue
|
|
|
- `number()` --calls--> `mounted()` [INFERRED]
|
|
|
web-admin/src/views/system/inquiry-quotation/index.vue → sqxp-wx/uni_modules/uni-table/components/uni-tr/uni-tr.vue
|
|
|
-- `showMenu()` --calls--> `nextTick()` [INFERRED]
|
|
|
- web-admin/src/views/widgets/context-menu/index.vue → sqxp-wx/wxcomponents/vant/common/utils.js
|
|
|
+- `number()` --calls--> `onPickerChange()` [INFERRED]
|
|
|
+ web-admin/src/views/system/inquiry-quotation/index.vue → sqxp-wx/pages/client/invoice/invoice.vue
|
|
|
|
|
|
## Communities
|
|
|
|
|
|
### Community 0 - "Community 0"
|
|
|
Cohesion: 0.01
|
|
|
-Nodes (647): adjust_order(), _aggregate_client_settlement_history(), _aggregate_supplier_settlement_history(), _apply_region_minutes_to_data(), approve_quotation(), assign_deliverer_to_order(), assign_delivery_alias(), batch_create_settlements() (+639 more)
|
|
|
+Nodes (815): adjust_order(), _aggregate_client_settlement_history(), _aggregate_supplier_settlement_history(), _apply_region_minutes_to_data(), approve_quotation(), assign_deliverer_to_order(), assign_delivery_alias(), batch_create_settlements() (+807 more)
|
|
|
|
|
|
### Community 1 - "Community 1"
|
|
|
-Cohesion: 0.08
|
|
|
-Nodes (618): 获取管理员的区域过滤条件 对于区域管理员,返回其所属区域ID(用于过滤数据) 对于超级管理员(无区域绑定),返回None(不过滤), 更新用户菜单授权(按 code 全量覆盖;兼容明文/密文载荷)。, 更新用户菜单授权(按 code 全量覆盖;兼容明文/密文载荷)。, 与 PUT 同逻辑:前端按 POST 模式调用时复用。, 兼容旧逻辑:返回单区域过滤ID。多区域场景返回排序后首个区域。, 更新用户菜单授权(按 code 全量覆盖;兼容明文/密文载荷)。, 兼容旧逻辑:返回单区域过滤ID。多区域场景返回排序后首个区域。, 上传用户头像图片,返回可写入 avatarUrl 的地址 (+610 more)
|
|
|
+Cohesion: 0.07
|
|
|
+Nodes (665): 获取管理员的区域过滤条件 对于区域管理员,返回其所属区域ID(用于过滤数据) 对于超级管理员(无区域绑定),返回None(不过滤), 更新用户菜单授权(按 code 全量覆盖;兼容明文/密文载荷)。, 更新用户菜单授权(按 code 全量覆盖;兼容明文/密文载荷)。, 与 PUT 同逻辑:前端按 POST 模式调用时复用。, 兼容旧逻辑:返回单区域过滤ID。多区域场景返回排序后首个区域。, 更新用户菜单授权(按 code 全量覆盖;兼容明文/密文载荷)。, 兼容旧逻辑:返回单区域过滤ID。多区域场景返回排序后首个区域。, 兼容旧逻辑:返回单区域过滤ID。多区域场景返回排序后首个区域。 (+657 more)
|
|
|
|
|
|
### Community 2 - "Community 2"
|
|
|
Cohesion: 0.01
|
|
|
-Nodes (206): fullRegion(), if(), if(), FireworkSystem, mapKeys(), VantComponent(), HTMLParser(), parseAttrs() (+198 more)
|
|
|
+Nodes (196): fullRegion(), if(), if(), FireworkSystem, mapKeys(), VantComponent(), HTMLParser(), parseAttrs() (+188 more)
|
|
|
|
|
|
### Community 3 - "Community 3"
|
|
|
Cohesion: 0.01
|
|
|
-Nodes (186): handleSubmit(), loadDetail(), onRegionMultiConfirm(), regionLabel(), syncMultiFromForm(), validate(), fetchActiveRegions(), fetchAssignableMenuCodes() (+178 more)
|
|
|
+Nodes (157): calendar(), memo(), record(), handleSelect(), onMenuShow(), showMenu(), onClear(), onInput() (+149 more)
|
|
|
|
|
|
### Community 4 - "Community 4"
|
|
|
Cohesion: 0.01
|
|
|
-Nodes (146): calendar(), memo(), record(), handleSelect(), onMenuShow(), showMenu(), onClear(), onInput() (+138 more)
|
|
|
+Nodes (247): InvoiceCreateRequest, MessageCreateRequest, 获取商品的评价列表(仅显示已审核通过的评价), AdjustResponse, Config, CreateAdjustRequest, 兼容明文/密文请求,返回业务 payload。失败时返回 error_response。, BaseModel (+239 more)
|
|
|
|
|
|
### Community 5 - "Community 5"
|
|
|
Cohesion: 0.01
|
|
|
-Nodes (249): InvoiceCreateRequest, MessageCreateRequest, 获取商品的评价列表(仅显示已审核通过的评价), AdjustResponse, Config, CreateAdjustRequest, 兼容明文/密文请求,返回业务 payload。失败时返回 error_response。, BaseModel (+241 more)
|
|
|
+Nodes (133): fetchActiveRegions(), fetchAssignableMenuCodes(), fetchCategoryList(), fetchCategoryParameters(), fetchCategoryTree(), fetchCreateUnit(), fetchNotDeletedRegions(), fetchProductBannerList() (+125 more)
|
|
|
|
|
|
### Community 6 - "Community 6"
|
|
|
-Cohesion: 0.02
|
|
|
-Nodes (172): # TODO: 发送微信模板消息提醒配送员, # TODO: 发送微信模板消息提醒配送员, 记录处理过程(不结案,结案由配送完成/取消自动触发), 获取我抢到的任务列表 返回当前配送员已抢但尚未开始配送的任务, 获取我抢到的任务列表 返回当前配送员已抢但尚未开始配送的任务, 取消抢单 配送员可以取消自己抢到但尚未开始配送的任务, 取消抢单 配送员可以取消自己抢到但尚未开始配送的任务, 取消抢单 配送员可以取消自己抢到但尚未开始配送的任务 (+164 more)
|
|
|
+Cohesion: 0.01
|
|
|
+Nodes (130): handleSubmit(), loadDetail(), onRegionMultiConfirm(), regionLabel(), syncMultiFromForm(), validate(), disableDevTools(), handleLock() (+122 more)
|
|
|
|
|
|
### Community 7 - "Community 7"
|
|
|
Cohesion: 0.02
|
|
|
-Nodes (69): fetchGetMenuCodes(), fetchGetUserInfo(), fetchLogin(), fetchGetMenuList(), fetchGetRoleList(), fetchGetUserList(), reload(), addUnit() (+61 more)
|
|
|
+Nodes (64): fetchGetMenuCodes(), fetchGetUserInfo(), fetchLogin(), fetchGetMenuList(), fetchGetRoleList(), fetchGetUserList(), reload(), addUnit() (+56 more)
|
|
|
|
|
|
### Community 8 - "Community 8"
|
|
|
-Cohesion: 0.03
|
|
|
-Nodes (92): 小程序客户端扩展接口:购物车、商品分类、仪表盘、发票、下单、支付, 从叶子分类 id 向上解析(含缓存):返回 (根分类, 叶子分类)。, 可申请开票的已完成订单(简化:已完成且尚无发票), 可申请开票的已完成订单(简化:已完成且尚无发票), 可申请开票的已完成订单(简化:已完成且尚无发票), 商品对应的一级(根)分类,供购物车行展示与序列化。, 从叶子分类 id 向上解析(含缓存):返回 (根分类, 叶子分类)。, 购物车:先一级分类 sort_order,再商品名、商品 id(稳定)。 (+84 more)
|
|
|
+Cohesion: 0.02
|
|
|
+Nodes (64): askAbortDownload(), checkLocalStoragePackage(), closeUpdate(), compare(), deleteSavedFile(), downLoadComplete(), installPackage(), onLoad() (+56 more)
|
|
|
|
|
|
### Community 9 - "Community 9"
|
|
|
Cohesion: 0.03
|
|
|
-Nodes (52): handleFormClose(), _Blur(), created(), init(), inputContentStyle(), inputMaxlength(), inputStyle(), obj2strStyle() (+44 more)
|
|
|
+Nodes (92): 小程序客户端扩展接口:购物车、商品分类、仪表盘、发票、下单、支付, 从叶子分类 id 向上解析(含缓存):返回 (根分类, 叶子分类)。, 可申请开票的已完成订单(简化:已完成且尚无发票), 可申请开票的已完成订单(简化:已完成且尚无发票), 可申请开票的已完成订单(简化:已完成且尚无发票), 商品对应的一级(根)分类,供购物车行展示与序列化。, 从叶子分类 id 向上解析(含缓存):返回 (根分类, 叶子分类)。, 购物车:先一级分类 sort_order,再商品名、商品 id(稳定)。 (+84 more)
|
|
|
|
|
|
### Community 10 - "Community 10"
|
|
|
Cohesion: 0.03
|
|
|
-Nodes (17): toLogin(), if(), confirmLogout(), getDefaultLanguage(), emitUrls(), removeItem(), revokeLocalPreview(), checkStorageCompatibility() (+9 more)
|
|
|
+Nodes (52): handleFormClose(), _Blur(), created(), init(), inputContentStyle(), inputMaxlength(), inputStyle(), obj2strStyle() (+44 more)
|
|
|
|
|
|
### Community 11 - "Community 11"
|
|
|
-Cohesion: 0.04
|
|
|
-Nodes (40): BaseHTTPMiddleware, ApiCryptoError, _b64url_decode(), _b64url_encode(), encrypt_json(), gen_nonce_hex(), is_ts_in_window(), ApiCryptoMiddleware (+32 more)
|
|
|
-
|
|
|
-### Community 12 - "Community 12"
|
|
|
Cohesion: 0.05
|
|
|
Nodes (77): 批量获取供应商取货地址,避免列表接口逐条查询。, 一级/二级分类用 / 连接(与订单详情一致)。, 价格清单行 price 为面向客户的最终单价;pricing_coefficient 为调价系数(%),供货单价 = price / (1 + 系数/100)。, (price_list_id, product_id, unit_id) -> BizPriceListItem, 供应商默认取货地址;无默认时取第一条 pickup 类型地址。, 获取供应商配送任务详情(订单仅返回客户订单号;商品行含主图与规格;单价由价格清单行 price(客户最终单价)与 pricing_coefficient 反推供, 获取供应商配送任务详情(订单仅返回客户订单号;商品行含主图与规格;单价由价格清单行 price(客户最终单价)与 pricing_coefficient 反推供, 获取供应商配送任务详情(订单仅返回客户订单号;商品行含主图与规格;单价由价格清单行 price(客户最终单价)与 pricing_coefficient 反推供 (+69 more)
|
|
|
|
|
|
-### Community 13 - "Community 13"
|
|
|
-Cohesion: 0.03
|
|
|
-Nodes (43): askAbortDownload(), checkLocalStoragePackage(), closeUpdate(), compare(), deleteSavedFile(), downLoadComplete(), installPackage(), onLoad() (+35 more)
|
|
|
-
|
|
|
-### Community 14 - "Community 14"
|
|
|
+### Community 12 - "Community 12"
|
|
|
Cohesion: 0.05
|
|
|
-Nodes (22): change(), created(), getDataList(), getSelectedValue(), handler(), loadData(), mixinDatacomResData(), modelValue() (+14 more)
|
|
|
-
|
|
|
-### Community 15 - "Community 15"
|
|
|
-Cohesion: 0.11
|
|
|
-Nodes (12): activated(), bottom(), center(), close(), deactivated(), destroyed(), left(), onTap() (+4 more)
|
|
|
+Nodes (15): fetchGetLatestUpgradeLog(), if(), getDefaultLanguage(), emitUrls(), removeItem(), revokeLocalPreview(), checkStorageCompatibility(), StorageConfig (+7 more)
|
|
|
|
|
|
-### Community 16 - "Community 16"
|
|
|
+### Community 13 - "Community 13"
|
|
|
Cohesion: 0.18
|
|
|
Nodes (21): destroyed(), getDirection(), getDom(), isPC(), mousedown(), mouseleave(), mousemove(), mouseup() (+13 more)
|
|
|
|
|
|
-### Community 17 - "Community 17"
|
|
|
+### Community 14 - "Community 14"
|
|
|
Cohesion: 0.13
|
|
|
Nodes (13): change(), clearVal(), created(), debounce(), emit(), formatItemName(), getCache(), handler() (+5 more)
|
|
|
|
|
|
-### Community 18 - "Community 18"
|
|
|
+### Community 15 - "Community 15"
|
|
|
Cohesion: 0.12
|
|
|
Nodes (15): addCopyButton(), highlightCode(), insertLineNumbers(), isBlockProcessed(), markBlockAsProcessed(), processBlock(), setupHighlightDirective(), setupRippleDirective() (+7 more)
|
|
|
|
|
|
-### Community 19 - "Community 19"
|
|
|
-Cohesion: 0.18
|
|
|
-Nodes (16): defaultAvatarPathByRole(), normalizeAvatarUrlForMini(), resolveUserAvatarUrl(), appendQueryParam(), fallbackVersionFromManifest(), getStaticAssetsVersion(), hasSignedQuery(), hasVersionParam() (+8 more)
|
|
|
+### Community 16 - "Community 16"
|
|
|
+Cohesion: 0.17
|
|
|
+Nodes (12): BusinessException, InvalidStatusTransitionException, log_delivery_operation(), log_operation(), log_order_operation(), log_settlement_operation(), log_user_operation(), OrderLockedException (+4 more)
|
|
|
|
|
|
-### Community 20 - "Community 20"
|
|
|
+### Community 17 - "Community 17"
|
|
|
Cohesion: 0.16
|
|
|
Nodes (10): useTable(), useTableImpl(), getColumnChecks(), useTableColumns(), createErrorHandler(), createSmartDebounce(), defaultResponseAdapter(), extractPagination() (+2 more)
|
|
|
|
|
|
-### Community 21 - "Community 21"
|
|
|
-Cohesion: 0.27
|
|
|
-Nodes (14): useChart(), useChartComponent(), useChartOps(), colourBlend(), getCssVar(), getDarkColor(), getLightColor(), handleElementThemeColor() (+6 more)
|
|
|
+### Community 18 - "Community 18"
|
|
|
+Cohesion: 0.2
|
|
|
+Nodes (14): defaultAvatarPathByRole(), normalizeAvatarUrlForMini(), resolveUserAvatarUrl(), appendQueryParam(), fallbackVersionFromManifest(), getStaticAssetsVersion(), hasSignedQuery(), hasVersionParam() (+6 more)
|
|
|
|
|
|
-### Community 22 - "Community 22"
|
|
|
+### Community 19 - "Community 19"
|
|
|
Cohesion: 0.28
|
|
|
Nodes (14): getDirection(), getDisabledType(), getDom(), move(), moveDirection(), openState(), range(), resetTouchStatus() (+6 more)
|
|
|
|
|
|
-### Community 25 - "Community 25"
|
|
|
+### Community 22 - "Community 22"
|
|
|
Cohesion: 0.17
|
|
|
Nodes (2): clean(), onInput()
|
|
|
|
|
|
-### Community 26 - "Community 26"
|
|
|
+### Community 23 - "Community 23"
|
|
|
Cohesion: 0.33
|
|
|
Nodes (11): changeFlag(), countDown(), day(), handler(), hour(), minute(), second(), startData() (+3 more)
|
|
|
|
|
|
-### Community 27 - "Community 27"
|
|
|
+### Community 24 - "Community 24"
|
|
|
Cohesion: 0.24
|
|
|
Nodes (4): getVal(), leftIconWidth(), navbarHeight(), rightIconWidth()
|
|
|
|
|
|
-### Community 28 - "Community 28"
|
|
|
+### Community 25 - "Community 25"
|
|
|
Cohesion: 0.4
|
|
|
Nodes (9): backup_table(), count_affected(), get_text_columns(), main(), make_backup_table_name(), parse_args(), quote_ident(), 生成备份表名,控制在 MySQL 64 字符限制内。 (+1 more)
|
|
|
|
|
|
-### Community 29 - "Community 29"
|
|
|
+### Community 26 - "Community 26"
|
|
|
Cohesion: 0.24
|
|
|
Nodes (3): _calcValue(), _getDecimalScale(), _onBlur()
|
|
|
|
|
|
-### Community 31 - "Community 31"
|
|
|
+### Community 28 - "Community 28"
|
|
|
Cohesion: 0.27
|
|
|
Nodes (4): dataValue(), emit(), onChange(), setOpen()
|
|
|
|
|
|
-### Community 33 - "Community 33"
|
|
|
+### Community 30 - "Community 30"
|
|
|
Cohesion: 0.25
|
|
|
Nodes (2): borderStyle(), value2px()
|
|
|
|
|
|
-### Community 34 - "Community 34"
|
|
|
+### Community 31 - "Community 31"
|
|
|
+Cohesion: 0.29
|
|
|
+Nodes (3): BaseModel, get_active(), SoftDeleteModel
|
|
|
+
|
|
|
+### Community 32 - "Community 32"
|
|
|
Cohesion: 0.39
|
|
|
Nodes (6): isIgnorableScriptError(), normalizeErrorMessage(), registerPromiseErrorHandler(), registerResourceErrorHandler(), scriptErrorHandler(), setupErrorHandle()
|
|
|
|
|
|
-### Community 35 - "Community 35"
|
|
|
+### Community 33 - "Community 33"
|
|
|
Cohesion: 0.29
|
|
|
Nodes (2): handleTouchEnd(), setTransition()
|
|
|
|
|
|
-### Community 36 - "Community 36"
|
|
|
+### Community 34 - "Community 34"
|
|
|
Cohesion: 0.36
|
|
|
Nodes (1): TableHeightCalculator
|
|
|
|
|
|
-### Community 38 - "Community 38"
|
|
|
+### Community 36 - "Community 36"
|
|
|
Cohesion: 0.36
|
|
|
Nodes (1): RouteValidator
|
|
|
|
|
|
-### Community 39 - "Community 39"
|
|
|
+### Community 37 - "Community 37"
|
|
|
Cohesion: 0.39
|
|
|
Nodes (5): chooseAll(), chooseAndUploadFile(), chooseImage(), chooseVideo(), uploadFiles()
|
|
|
|
|
|
-### Community 40 - "Community 40"
|
|
|
+### Community 38 - "Community 38"
|
|
|
Cohesion: 0.33
|
|
|
Nodes (2): logApiCryptoBootInfo(), maskSecret()
|
|
|
|
|
|
-### Community 41 - "Community 41"
|
|
|
+### Community 39 - "Community 39"
|
|
|
Cohesion: 0.38
|
|
|
Nodes (4): fetchApiRequestLogList(), handleReset(), handleSearch(), loadData()
|
|
|
|
|
|
-### Community 42 - "Community 42"
|
|
|
+### Community 40 - "Community 40"
|
|
|
Cohesion: 0.38
|
|
|
Nodes (3): _change(), close(), open()
|
|
|
|
|
|
-### Community 47 - "Community 47"
|
|
|
+### Community 45 - "Community 45"
|
|
|
Cohesion: 0.33
|
|
|
Nodes (1): BridgeError
|
|
|
|
|
|
-### Community 49 - "Community 49"
|
|
|
+### Community 47 - "Community 47"
|
|
|
Cohesion: 0.4
|
|
|
Nodes (2): created(), getTable()
|
|
|
|
|
|
-### Community 50 - "Community 50"
|
|
|
+### Community 48 - "Community 48"
|
|
|
Cohesion: 0.47
|
|
|
Nodes (3): get_file_data(), get_file_ext(), get_file_info()
|
|
|
|
|
|
-### Community 51 - "Community 51"
|
|
|
+### Community 49 - "Community 49"
|
|
|
Cohesion: 0.4
|
|
|
Nodes (2): created(), getForm()
|
|
|
|
|
|
-### Community 52 - "Community 52"
|
|
|
+### Community 50 - "Community 50"
|
|
|
Cohesion: 0.47
|
|
|
Nodes (4): onDial(), onTextClick(), dialPhone(), normalizeDialNumber()
|
|
|
|
|
|
-### Community 53 - "Community 53"
|
|
|
+### Community 51 - "Community 51"
|
|
|
Cohesion: 0.4
|
|
|
Nodes (4): 运营端角色守卫:admin / super_admin 可访问。, 接口菜单权限守卫。super_admin 直接放行。, require_admin_or_super_admin(), require_menu_code()
|
|
|
|
|
|
-### Community 54 - "Community 54"
|
|
|
+### Community 52 - "Community 52"
|
|
|
Cohesion: 0.5
|
|
|
Nodes (2): focusInput(), handleKeydown()
|
|
|
|
|
|
-### Community 56 - "Community 56"
|
|
|
+### Community 54 - "Community 54"
|
|
|
Cohesion: 0.5
|
|
|
Nodes (3): BaseSettings, Config, Settings
|
|
|
|
|
|
-### Community 57 - "Community 57"
|
|
|
+### Community 55 - "Community 55"
|
|
|
Cohesion: 0.5
|
|
|
Nodes (1): collectIds()
|
|
|
|
|
|
-### Community 61 - "Community 61"
|
|
|
+### Community 59 - "Community 59"
|
|
|
Cohesion: 0.83
|
|
|
Nodes (3): classes(), isTrue(), onClick()
|
|
|
|
|
|
-### Community 64 - "Community 64"
|
|
|
+### Community 62 - "Community 62"
|
|
|
Cohesion: 0.67
|
|
|
Nodes (2): created(), getParent()
|
|
|
|
|
|
-### Community 65 - "Community 65"
|
|
|
+### Community 63 - "Community 63"
|
|
|
Cohesion: 1.0
|
|
|
Nodes (2): getSettingDefaults(), resetToDefaults()
|
|
|
|
|
|
-### Community 67 - "Community 67"
|
|
|
+### Community 65 - "Community 65"
|
|
|
Cohesion: 1.0
|
|
|
Nodes (2): defaultAvatarPathByRole(), resolveUserAvatarUrl()
|
|
|
|
|
|
-### Community 80 - "Community 80"
|
|
|
+### Community 78 - "Community 78"
|
|
|
Cohesion: 0.67
|
|
|
Nodes (1): updateUseModal()
|
|
|
|
|
|
-### Community 90 - "Community 90"
|
|
|
+### Community 88 - "Community 88"
|
|
|
Cohesion: 1.0
|
|
|
Nodes (2): buildMiniEncryptedLoginBody(), fetchLoginPublicKey()
|
|
|
|
|
|
-### Community 92 - "Community 92"
|
|
|
+### Community 90 - "Community 90"
|
|
|
Cohesion: 0.67
|
|
|
Nodes (1): return()
|
|
|
|
|
|
-### Community 145 - "Community 145"
|
|
|
+### Community 143 - "Community 143"
|
|
|
Cohesion: 1.0
|
|
|
Nodes (1): 发送订单状态通知 Args: openid: 用户openid ord
|
|
|
|
|
|
-### Community 146 - "Community 146"
|
|
|
+### Community 144 - "Community 144"
|
|
|
Cohesion: 1.0
|
|
|
Nodes (1): 发送支付成功通知 Args: openid: 用户openid ord
|
|
|
|
|
|
-### Community 147 - "Community 147"
|
|
|
+### Community 145 - "Community 145"
|
|
|
Cohesion: 1.0
|
|
|
Nodes (1): 发送配送通知 Args: openid: 配送员openid task
|
|
|
|
|
|
-### Community 148 - "Community 148"
|
|
|
+### Community 146 - "Community 146"
|
|
|
Cohesion: 1.0
|
|
|
Nodes (1): 发送配送时效预警 Args: openid: 配送员openid ta
|
|
|
|
|
|
-### Community 149 - "Community 149"
|
|
|
+### Community 147 - "Community 147"
|
|
|
Cohesion: 1.0
|
|
|
Nodes (1): 发送退款结果通知 Args: openid: 用户openid ord
|
|
|
|
|
|
-### Community 150 - "Community 150"
|
|
|
+### Community 148 - "Community 148"
|
|
|
Cohesion: 1.0
|
|
|
Nodes (1): 发送催单通知给配送员 Args: deliver_openid: 配送员openid
|
|
|
|
|
|
+### Community 416 - "Community 416"
|
|
|
+Cohesion: 1.0
|
|
|
+Nodes (1): 按 region_id 管理 websocket 连接并广播。
|
|
|
+
|
|
|
+### Community 417 - "Community 417"
|
|
|
+Cohesion: 1.0
|
|
|
+Nodes (1): 鉴权并接入房间。返回 current_user dict。
|
|
|
+
|
|
|
+### Community 418 - "Community 418"
|
|
|
+Cohesion: 1.0
|
|
|
+Nodes (1): 向 region 房间广播消息。返回尝试发送的连接数。
|
|
|
+
|
|
|
+### Community 419 - "Community 419"
|
|
|
+Cohesion: 1.0
|
|
|
+Nodes (1): 小程序端 WebSocket 入口:/ws/mini
|
|
|
+
|
|
|
+### Community 420 - "Community 420"
|
|
|
+Cohesion: 1.0
|
|
|
+Nodes (1): 在 FastAPI app 上注册 websocket 路由。
|
|
|
+
|
|
|
+### Community 421 - "Community 421"
|
|
|
+Cohesion: 1.0
|
|
|
+Nodes (1): Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。
|
|
|
+
|
|
|
+### Community 422 - "Community 422"
|
|
|
+Cohesion: 1.0
|
|
|
+Nodes (1): 从请求体解析用户名、密码。 返回 (username, password, error_message);error_message 非空时表示失败。
|
|
|
+
|
|
|
## Knowledge Gaps
|
|
|
-- **74 isolated node(s):** `关闭超时未支付的线上订单(超时分钟数来自系统设置 auto_cancel_minutes)。`, `初始化定时任务 Args: get_db_session: 数据库会话获取函数(从 app.core.database 导入)`, `登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。`, `Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。`, `从请求体解析用户名、密码。 返回 (username, password, error_message);error_message 非空时表示失败。` (+69 more)
|
|
|
+- **81 isolated node(s):** `关闭超时未支付的线上订单(超时分钟数来自系统设置 auto_cancel_minutes)。`, `初始化定时任务 Args: get_db_session: 数据库会话获取函数(从 app.core.database 导入)`, `登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。`, `Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。`, `从请求体解析用户名、密码。 返回 (username, password, error_message);error_message 非空时表示失败。` (+76 more)
|
|
|
These have ≤1 connection - possible missing edges or undocumented components.
|
|
|
-- **Thin community `Community 25`** (13 nodes): `uni-combox.vue`, `clean()`, `data()`, `default()`, `filterCandidates()`, `filterCandidatesLength()`, `handler()`, `labelStyle()`, `onBlur()`, `onFocus()`, `onInput()`, `onSelectorClick()`, `toggleSelector()`
|
|
|
+- **Thin community `Community 22`** (13 nodes): `uni-combox.vue`, `clean()`, `data()`, `default()`, `filterCandidates()`, `filterCandidatesLength()`, `handler()`, `labelStyle()`, `onBlur()`, `onFocus()`, `onInput()`, `onSelectorClick()`, `toggleSelector()`
|
|
|
+ Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
+- **Thin community `Community 30`** (9 nodes): `upload-file.vue`, `borderLineStyle()`, `borderStyle()`, `choose()`, `default()`, `delFile()`, `styles()`, `uploadFiles()`, `value2px()`
|
|
|
+ Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
+- **Thin community `Community 33`** (8 nodes): `cleanupEventListeners()`, `handleTouchEnd()`, `handleTouchMove()`, `handleTouchStart()`, `handleWheelScroll()`, `setTransition()`, `setupEventListeners()`, `index.vue`
|
|
|
+ Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
+- **Thin community `Community 34`** (8 nodes): `TableHeightCalculator`, `.calculate()`, `.calculateOffset()`, `.calculatePaginationOffset()`, `.constructor()`, `.getHeaderHeight()`, `useTableHeight()`, `useTableHeight.ts`
|
|
|
+ Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
+- **Thin community `Community 36`** (8 nodes): `RouteValidator`, `.checkComponents()`, `.checkDuplicates()`, `.checkNestedIndexComponent()`, `.logLayoutError()`, `.resolvePath()`, `.validate()`, `RouteValidator.ts`
|
|
|
+ Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
+- **Thin community `Community 38`** (7 nodes): `refreshButtonAutoIcons()`, `refreshPanelTitleIcons()`, `logApiCryptoBootInfo()`, `maskSecret()`, `App.vue`, `main.ts`, `console.ts`
|
|
|
+ Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
+- **Thin community `Community 45`** (6 nodes): `bridge-error.js`, `BridgeError`, `.code()`, `.constructor()`, `.errCode()`, `.errMsg()`
|
|
|
+ Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
+- **Thin community `Community 47`** (6 nodes): `uni-thead.vue`, `checkboxSelected()`, `created()`, `data()`, `getTable()`, `init()`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 33`** (9 nodes): `upload-file.vue`, `borderLineStyle()`, `borderStyle()`, `choose()`, `default()`, `delFile()`, `styles()`, `uploadFiles()`, `value2px()`
|
|
|
+- **Thin community `Community 49`** (6 nodes): `uni-group.vue`, `created()`, `data()`, `getForm()`, `onClick()`, `title()`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 35`** (8 nodes): `cleanupEventListeners()`, `handleTouchEnd()`, `handleTouchMove()`, `handleTouchStart()`, `handleWheelScroll()`, `setTransition()`, `setupEventListeners()`, `index.vue`
|
|
|
+- **Thin community `Community 52`** (5 nodes): `focusInput()`, `handleKeydown()`, `if()`, `search()`, `index.vue`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 36`** (8 nodes): `TableHeightCalculator`, `.calculate()`, `.calculateOffset()`, `.calculatePaginationOffset()`, `.constructor()`, `.getHeaderHeight()`, `useTableHeight()`, `useTableHeight.ts`
|
|
|
+- **Thin community `Community 55`** (4 nodes): `catch()`, `collectIds()`, `handleCategoryTableSelectionChange()`, `index.vue`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 38`** (8 nodes): `RouteValidator`, `.checkComponents()`, `.checkDuplicates()`, `.checkNestedIndexComponent()`, `.logLayoutError()`, `.resolvePath()`, `.validate()`, `RouteValidator.ts`
|
|
|
+- **Thin community `Community 62`** (4 nodes): `popup.js`, `created()`, `data()`, `getParent()`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 40`** (7 nodes): `refreshButtonAutoIcons()`, `refreshPanelTitleIcons()`, `logApiCryptoBootInfo()`, `maskSecret()`, `App.vue`, `main.ts`, `console.ts`
|
|
|
+- **Thin community `Community 63`** (3 nodes): `getSettingDefaults()`, `resetToDefaults()`, `setting.ts`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 47`** (6 nodes): `bridge-error.js`, `BridgeError`, `.code()`, `.constructor()`, `.errCode()`, `.errMsg()`
|
|
|
+- **Thin community `Community 65`** (3 nodes): `defaultAvatarPathByRole()`, `resolveUserAvatarUrl()`, `user-avatar.ts`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 49`** (6 nodes): `uni-thead.vue`, `checkboxSelected()`, `created()`, `data()`, `getTable()`, `init()`
|
|
|
+- **Thin community `Community 78`** (3 nodes): `check-update.js`, `check-update.ts`, `updateUseModal()`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 51`** (6 nodes): `uni-group.vue`, `created()`, `data()`, `getForm()`, `onClick()`, `title()`
|
|
|
+- **Thin community `Community 88`** (3 nodes): `loginRsa.js`, `buildMiniEncryptedLoginBody()`, `fetchLoginPublicKey()`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 54`** (5 nodes): `focusInput()`, `handleKeydown()`, `if()`, `search()`, `index.vue`
|
|
|
+- **Thin community `Community 90`** (3 nodes): `return()`, `detail.vue`, `detail.vue`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 57`** (4 nodes): `catch()`, `collectIds()`, `handleCategoryTableSelectionChange()`, `index.vue`
|
|
|
+- **Thin community `Community 143`** (1 nodes): `发送订单状态通知 Args: openid: 用户openid ord`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 64`** (4 nodes): `popup.js`, `created()`, `data()`, `getParent()`
|
|
|
+- **Thin community `Community 144`** (1 nodes): `发送支付成功通知 Args: openid: 用户openid ord`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 65`** (3 nodes): `getSettingDefaults()`, `resetToDefaults()`, `setting.ts`
|
|
|
+- **Thin community `Community 145`** (1 nodes): `发送配送通知 Args: openid: 配送员openid task`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 67`** (3 nodes): `defaultAvatarPathByRole()`, `resolveUserAvatarUrl()`, `user-avatar.ts`
|
|
|
+- **Thin community `Community 146`** (1 nodes): `发送配送时效预警 Args: openid: 配送员openid ta`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 80`** (3 nodes): `check-update.js`, `check-update.ts`, `updateUseModal()`
|
|
|
+- **Thin community `Community 147`** (1 nodes): `发送退款结果通知 Args: openid: 用户openid ord`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 90`** (3 nodes): `loginRsa.js`, `buildMiniEncryptedLoginBody()`, `fetchLoginPublicKey()`
|
|
|
+- **Thin community `Community 148`** (1 nodes): `发送催单通知给配送员 Args: deliver_openid: 配送员openid`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 92`** (3 nodes): `return()`, `detail.vue`, `detail.vue`
|
|
|
+- **Thin community `Community 416`** (1 nodes): `按 region_id 管理 websocket 连接并广播。`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 145`** (1 nodes): `发送订单状态通知 Args: openid: 用户openid ord`
|
|
|
+- **Thin community `Community 417`** (1 nodes): `鉴权并接入房间。返回 current_user dict。`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 146`** (1 nodes): `发送支付成功通知 Args: openid: 用户openid ord`
|
|
|
+- **Thin community `Community 418`** (1 nodes): `向 region 房间广播消息。返回尝试发送的连接数。`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 147`** (1 nodes): `发送配送通知 Args: openid: 配送员openid task`
|
|
|
+- **Thin community `Community 419`** (1 nodes): `小程序端 WebSocket 入口:/ws/mini`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 148`** (1 nodes): `发送配送时效预警 Args: openid: 配送员openid ta`
|
|
|
+- **Thin community `Community 420`** (1 nodes): `在 FastAPI app 上注册 websocket 路由。`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 149`** (1 nodes): `发送退款结果通知 Args: openid: 用户openid ord`
|
|
|
+- **Thin community `Community 421`** (1 nodes): `Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。`
|
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
|
-- **Thin community `Community 150`** (1 nodes): `发送催单通知给配送员 Args: deliver_openid: 配送员openid`
|
|
|
+- **Thin community `Community 422`** (1 nodes): `从请求体解析用户名、密码。 返回 (username, password, error_message);error_message 非空时表示失败。`
|
|
|
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 `push()` connect `Community 2` to `Community 0`, `Community 3`, `Community 4`, `Community 9`, `Community 10`, `Community 13`, `Community 14`?**
|
|
|
- _High betweenness centrality (0.133) - this node is a cross-community bridge._
|
|
|
-- **Why does `query()` connect `Community 0` to `Community 17`, `Community 6`?**
|
|
|
+- **Why does `push()` connect `Community 2` to `Community 0`, `Community 3`, `Community 5`, `Community 8`, `Community 10`, `Community 12`?**
|
|
|
+ _High betweenness centrality (0.135) - this node is a cross-community bridge._
|
|
|
+- **Why does `query()` connect `Community 0` to `Community 14`, `Community 31`?**
|
|
|
_High betweenness centrality (0.049) - this node is a cross-community bridge._
|
|
|
-- **Why does `number()` connect `Community 3` to `Community 0`, `Community 2`, `Community 9`, `Community 13`, `Community 14`, `Community 21`?**
|
|
|
- _High betweenness centrality (0.044) - this node is a cross-community bridge._
|
|
|
-- **Are the 697 inferred relationships involving `BizPriceListItem` (e.g. with `PriceListCRUD` and `PriceListItemCRUD`) actually correct?**
|
|
|
- _`BizPriceListItem` has 697 INFERRED edges - model-reasoned connections that need verification._
|
|
|
-- **Are the 626 inferred relationships involving `BizInquiry` (e.g. with `InquiryCRUD` and `InquiryItemCRUD`) actually correct?**
|
|
|
- _`BizInquiry` has 626 INFERRED edges - model-reasoned connections that need verification._
|
|
|
-- **Are the 624 inferred relationships involving `BizQuotation` (e.g. with `QuotationCRUD` and `QuotationItemCRUD`) actually correct?**
|
|
|
- _`BizQuotation` has 624 INFERRED edges - model-reasoned connections that need verification._
|
|
|
-- **Are the 614 inferred relationships involving `BizAttachment` (e.g. with `AttachmentCRUD` and `价格清单行 price 为面向客户的最终单价;pricing_coefficient 为调价系数(%),供货单价 = price / (1 + 系数/100)。`) actually correct?**
|
|
|
- _`BizAttachment` has 614 INFERRED edges - model-reasoned connections that need verification._
|
|
|
+- **Why does `number()` connect `Community 5` to `Community 0`, `Community 2`, `Community 6`, `Community 8`, `Community 10`?**
|
|
|
+ _High betweenness centrality (0.041) - this node is a cross-community bridge._
|
|
|
+- **Are the 751 inferred relationships involving `BizPriceListItem` (e.g. with `PriceListCRUD` and `PriceListItemCRUD`) actually correct?**
|
|
|
+ _`BizPriceListItem` has 751 INFERRED edges - model-reasoned connections that need verification._
|
|
|
+- **Are the 680 inferred relationships involving `BizInquiry` (e.g. with `InquiryCRUD` and `InquiryItemCRUD`) actually correct?**
|
|
|
+ _`BizInquiry` has 680 INFERRED edges - model-reasoned connections that need verification._
|
|
|
+- **Are the 678 inferred relationships involving `BizQuotation` (e.g. with `QuotationCRUD` and `QuotationItemCRUD`) actually correct?**
|
|
|
+ _`BizQuotation` has 678 INFERRED edges - model-reasoned connections that need verification._
|
|
|
+- **Are the 668 inferred relationships involving `BizAttachment` (e.g. with `AttachmentCRUD` and `价格清单行 price 为面向客户的最终单价;pricing_coefficient 为调价系数(%),供货单价 = price / (1 + 系数/100)。`) actually correct?**
|
|
|
+ _`BizAttachment` has 668 INFERRED edges - model-reasoned connections that need verification._
|