chore: update knowledge graphs after vehicle recharge workflow
Refresh AST graphs for backend/frontend and mark completed implementation plan steps. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
7b99040f9c
commit
a3fbb92595
8 files changed
+16450
-22806
No files matched your search
@@ -119,7 +119,6 @@
|
||||
"117": "pl_plan_list_attachments.py",
|
||||
"118": "Community 118",
|
||||
"119": "Community 119",
|
||||
"120": "list_duty_staff_users",
|
||||
"121": "_build_user_info_payload",
|
||||
"122": "post.py",
|
||||
"123": "customer_options",
|
||||
@@ -204,16 +203,13 @@
|
||||
"215": "Java: batchSubmitApproval",
|
||||
"216": "build_plan_column_filters",
|
||||
"217": "pl_plan_list_attachments.py",
|
||||
"218": "若存在入库/出库单,用明细 actual_qty 覆盖归档提交中的实际数量(权威来源)。",
|
||||
"219": "expense_item.py",
|
||||
"222": "start.sh",
|
||||
"223": "vehicle_recharge.py",
|
||||
"225": "FakeRedis",
|
||||
"226": "invoice.py",
|
||||
"227": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||||
"229": "Java: viewByShareCode",
|
||||
"233": "code:block1 (backend/)",
|
||||
"234": "calc_age_from_chinese_id_card",
|
||||
"235": "wx_qr_session.py",
|
||||
"238": "vehicle_urea.py",
|
||||
"239": "shanxia2.0 Backend 生产部署说明",
|
||||
@@ -224,12 +220,10 @@
|
||||
"244": "workflow.py",
|
||||
"245": "vehicle_maintenance.py",
|
||||
"246": "db_collation.py",
|
||||
"247": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||||
"248": "build_reimburse_column_filters",
|
||||
"249": "code:block1 (/iflytek/shanxia2.0/backend)",
|
||||
"250": "menu.py",
|
||||
"251": "dept.py",
|
||||
"252": "分页查询供方列表 — Java: CrmSupplierInfoController.list",
|
||||
"253": "send_delivery_notice",
|
||||
"254": "Activate.ps1",
|
||||
"255": "vehicle_fuel.py",
|
||||
@@ -239,35 +233,24 @@
|
||||
"260": "tenant.py",
|
||||
"262": "Java Controller TODO — 保持 pending,记录备注",
|
||||
"263": "__init__.py",
|
||||
"265": "供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll",
|
||||
"266": "menu.py",
|
||||
"267": "post.py",
|
||||
"268": "leave.py",
|
||||
"269": "site.py",
|
||||
"271": "statistics.py",
|
||||
"272": "default_settlement_clause",
|
||||
"273": "storage.py",
|
||||
"274": "user.py",
|
||||
"275": "fix_pl_transport_db_link_stop_ids.py",
|
||||
"276": "供方详情 — Java: CrmSupplierInfoController.getInfo",
|
||||
"277": "新增供方 — Java: CrmSupplierInfoController.add",
|
||||
"279": "修改供方 — Java: CrmSupplierInfoController.edit",
|
||||
"280": "resolve_wechat_login_user",
|
||||
"281": "apply_crm_owner_scope",
|
||||
"282": "crm_quote_pdf.py",
|
||||
"285": "导出供方列表 — Java: CrmSupplierInfoController.export",
|
||||
"286": "shanxia2.0 后端骨架(FastAPI)",
|
||||
"287": "test_wx_qr_session.py",
|
||||
"290": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||||
"291": "Java: createFromQuote — 返回合同 id",
|
||||
"294": "证书 URL 为空(NULL / 空串 / 纯空白)。",
|
||||
"295": "导出出入库列表(当前筛选全量,或 ids 已选)。",
|
||||
"297": "返回 'archived' | 'arranged_unarchived' | None(不计入)。",
|
||||
"298": "collect_unique_delivery_date_strings",
|
||||
"299": "单条查询(三方 H5 填写页无需门户登录)。",
|
||||
"301": "price_letter.py",
|
||||
"302": "clear_pl_plan_instance_data.py",
|
||||
"303": "导出地磅单列表(当前筛选全量,或 ids 已选)。",
|
||||
"304": "__init__.py",
|
||||
"306": "__init__.py",
|
||||
"307": "__init__.py",
|
||||
@@ -289,14 +272,8 @@
|
||||
"328": "_plan_plate_match",
|
||||
"331": "common.py",
|
||||
"332": "_plan_product_name_exists",
|
||||
"333": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||||
"336": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||||
"337": "按客户ID查询开票信息(与 by-customer 等价)",
|
||||
"338": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||||
"340": "返回全部已完成的审批动作(含撤回/重提前的历史轮次),按时间正序。",
|
||||
"341": "已有汇款凭证但结算单仍停留在 approved 时自动纠正(兼容历史脏数据)",
|
||||
"342": "软删除结算单历史审批记录(重新提交审批前清理)",
|
||||
"343": "运输单运费变更后,同步关联草稿结算单的明细快照与合计。",
|
||||
"344": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||||
"345": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||||
"346": "__init__.py",
|
||||
@@ -322,27 +299,22 @@
|
||||
"367": "__init__.py",
|
||||
"368": "__init__.py",
|
||||
"369": "列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。",
|
||||
"370": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||||
"371": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||||
"372": "列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。",
|
||||
"373": "列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。",
|
||||
"374": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||||
"375": "__init__.py",
|
||||
"376": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
|
||||
"377": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
|
||||
"378": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||||
"379": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
|
||||
"380": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||||
"382": "__init__.py",
|
||||
"383": "__init__.py",
|
||||
"384": "__init__.py",
|
||||
"385": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||||
"387": "返回全部审批动作,按时间正序排列,用于展示完整审批历史。",
|
||||
"388": "同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。",
|
||||
"389": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||||
"390": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||||
"391": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
|
||||
"392": "返回全部审批动作,按时间正序排列,用于展示完整审批历史。",
|
||||
"395": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
|
||||
"396": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
|
||||
"400": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||||
@@ -351,7 +323,6 @@
|
||||
"403": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||||
"404": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||||
"405": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||||
"406": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||||
"407": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||||
"408": "__init__.py",
|
||||
"409": "__init__.py",
|
||||
@@ -372,7 +343,6 @@
|
||||
"425": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||||
"426": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||||
"428": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||||
"429": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||||
"430": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||||
"431": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||||
"432": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||||
@@ -382,12 +352,10 @@
|
||||
"436": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||||
"437": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||||
"438": "将历史分装单号统一为 NO:SXFZYYYYMMDD-###",
|
||||
"439": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||||
"440": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||||
"441": "将历史分装单号统一为 NO:SXFZYYYYMMDD-###",
|
||||
"442": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||||
"443": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||||
"444": "将历史分装单号统一为 NO:SXFZYYYYMMDD-###",
|
||||
"445": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||||
"446": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||||
"447": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||||
@@ -403,11 +371,9 @@
|
||||
"459": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||||
"460": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||||
"462": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||||
"463": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||||
"464": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||||
"465": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||||
"467": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||||
"468": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||||
"469": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||||
"470": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||||
"471": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||||
@@ -424,7 +390,6 @@
|
||||
"482": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||||
"483": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||||
"484": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||||
"486": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||||
"487": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||||
"488": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||||
"489": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||||
@@ -450,12 +415,8 @@
|
||||
"512": "_avatar_url_field",
|
||||
"513": "_build_user_info_payload",
|
||||
"514": "_jwt_user_payload",
|
||||
"517": "获取当前用户信息(与 sys_user 字段对应)。",
|
||||
"519": "公开分享查看报价单 — Java: GET /share/{shareCode}(无 JWT)",
|
||||
"520": "与 web-admin 静态路由 meta.roles(admin/super_admin)对齐的单元素数组。",
|
||||
"521": "与 web-admin `userInfo` 字段约定一致。",
|
||||
"523": "Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致)",
|
||||
"525": "Web 端登录:账号为 sys_user.user_no,密码为 sys_user.password(bcrypt)。",
|
||||
"526": "_web_role_list",
|
||||
"527": "auth.py",
|
||||
"528": "__init__.py",
|
||||
@@ -470,40 +431,32 @@
|
||||
"537": "contract.py",
|
||||
"538": "Java: deleteWithValidByIds — 软删除",
|
||||
"539": "Java: deleteWithValidByIds — 软删除",
|
||||
"540": "Java: deleteWithValidByIds — 软删除",
|
||||
"541": "Java: deleteWithValidByIds — 软删除",
|
||||
"542": "Java: deleteWithValidByIds — 软删除",
|
||||
"543": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
|
||||
"544": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
|
||||
"545": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
|
||||
"546": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
|
||||
"547": "Java: deleteWithValidByIds — 软删除",
|
||||
"549": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
|
||||
"551": "Java: batchSubmitApproval",
|
||||
"553": "Java: batchSubmitApproval",
|
||||
"554": "Java: batchSubmitApproval",
|
||||
"555": "Java: batchSubmitApproval",
|
||||
"556": "Java: withdrawApproval",
|
||||
"557": "Java: withdrawApproval",
|
||||
"558": "Java: withdrawApproval",
|
||||
"559": "Java: batchSubmitApproval",
|
||||
"561": "Java: withdrawApproval",
|
||||
"562": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||||
"563": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||||
"564": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||||
"566": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||||
"567": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||||
"568": "Java: createFromQuote — 返回合同 id",
|
||||
"570": "Java: createFromQuote — 返回合同 id",
|
||||
"571": "Java: createFromQuote — 返回合同 id",
|
||||
"572": "Java: createFromQuote — 返回合同 id",
|
||||
"573": "Java: createFromQuote — 返回合同 id",
|
||||
"574": "Java: renewContract — 基础续签",
|
||||
"575": "Java: renewContract — 基础续签",
|
||||
"576": "Java: renewContract — 基础续签",
|
||||
"577": "Java: renewContract — 基础续签",
|
||||
"578": "Java: renewContract — 基础续签",
|
||||
"579": "Java: queryList for export",
|
||||
"581": "Java: renewContract — 基础续签",
|
||||
"582": "Java: queryList for export",
|
||||
"583": "Java: queryList for export",
|
||||
@@ -514,7 +467,6 @@
|
||||
"588": "Java: createFromOpportunity — 返回合同 id",
|
||||
"589": "Java: createFromOpportunity — 返回合同 id",
|
||||
"590": "Java: createFromOpportunity — 返回合同 id",
|
||||
"591": "Java: createFromOpportunity — 返回合同 id",
|
||||
"592": "Java: createFromOpportunity — 返回合同 id",
|
||||
"593": "Java: batchAssignOwner",
|
||||
"594": "Java: createFromOpportunity — 返回合同 id",
|
||||
@@ -527,41 +479,29 @@
|
||||
"604": "Java: downloadContractPdf — 返回合同文件 URL/路径",
|
||||
"605": "Java: downloadContractPdf — 返回合同文件 URL/路径",
|
||||
"606": "Java: batchAssignOwner",
|
||||
"607": "Java: batchAssignOwner",
|
||||
"608": "Java: downloadContractPdf — 返回合同文件 URL/路径",
|
||||
"609": "Java: downloadContractPdf — 返回合同文件 URL/路径",
|
||||
"610": "Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}",
|
||||
"611": "Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}",
|
||||
"612": "Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}",
|
||||
"613": "Java: downloadContractPdf — 返回合同文件 URL/路径",
|
||||
"615": "Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}",
|
||||
"616": "Java Controller TODO — 保持 pending,记录备注",
|
||||
"617": "Java Controller TODO — 保持 pending,记录备注",
|
||||
"619": "Java Controller TODO — 保持 pending,记录备注",
|
||||
"620": "Java Controller TODO — 保持 pending,记录备注",
|
||||
"621": "Java Controller TODO — 保持 pending,记录备注",
|
||||
"622": "Java Controller TODO — 保持 pending,记录备注",
|
||||
"623": "Java Controller TODO — 保持 pending,记录备注",
|
||||
"625": "根据供需方面板与主数据生成/校正合同名称。",
|
||||
"626": "根据供需方面板与主数据生成/校正合同名称。",
|
||||
"627": "Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr",
|
||||
"628": "Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr",
|
||||
"629": "Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr",
|
||||
"631": "租户内合同编号是否已占用(含软删,保证全局唯一)。",
|
||||
"632": "租户内合同编号是否已占用(含软删,保证全局唯一)。",
|
||||
"633": "标准编号替换日期段,保留序号;非标准返回 None。",
|
||||
"634": "租户内合同编号是否已占用(含软删,保证全局唯一)。",
|
||||
"635": "标准编号替换日期段,保留序号;非标准返回 None。",
|
||||
"638": "将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。",
|
||||
"639": "将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。",
|
||||
"640": "按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。",
|
||||
"642": "按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。",
|
||||
"643": "按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。",
|
||||
"644": "前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。",
|
||||
"645": "按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名",
|
||||
"646": "前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。",
|
||||
"647": "前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。",
|
||||
"649": "按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名",
|
||||
"650": "按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名",
|
||||
"651": "customer_follow.py",
|
||||
"652": "customer_pool.py",
|
||||
@@ -574,13 +514,6 @@
|
||||
"660": "报价自动建档时生成产品编号(与产品管理新增规则一致)",
|
||||
"661": "Java: resolveProductIdForQuoteItem(CrmProduct 无 tax_rate,跳过税率匹配)",
|
||||
"662": "quote_approver_setting.py",
|
||||
"664": "Java: toContract — 返回 contractId",
|
||||
"667": "Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人)",
|
||||
"669": "Java: statisticsOverview",
|
||||
"671": "Java: statisticsStatus",
|
||||
"673": "Java: statisticsTrend",
|
||||
"679": "Java: generateQuoteNo — {供方编码}DD-yyyyMMdd + 3位序号",
|
||||
"680": "Java: deleteWithValidByIds",
|
||||
"682": "statistics.py",
|
||||
"683": "supplier_info.py",
|
||||
"684": "__init__.py",
|
||||
@@ -589,12 +522,6 @@
|
||||
"687": "base.py",
|
||||
"688": "__tablename__",
|
||||
"689": "__init__.py",
|
||||
"690": "车辆维保申请 pl_vehicle_maintenance_apply",
|
||||
"693": "车辆尿素申请 pl_vehicle_urea_apply",
|
||||
"694": "车辆维保处理登记 pl_vehicle_maintenance_process",
|
||||
"695": "阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计)",
|
||||
"697": "车辆尿素发放登记 pl_vehicle_urea_disburse",
|
||||
"699": "车辆ETC/加油充值发放登记 pl_vehicle_recharge_record",
|
||||
"701": "attachment.py",
|
||||
"702": "auth.py",
|
||||
"703": "advance.py",
|
||||
@@ -616,10 +543,6 @@
|
||||
"719": "contact.py",
|
||||
"720": "contract_approver_setting.py",
|
||||
"721": "contract.py",
|
||||
"722": "POST /contract/approval — 按合同 ID 审批",
|
||||
"725": "POST /contract/export 筛选条件(无分页或沿用 list 参数)",
|
||||
"726": "续签 — 字段同创建,parent 由路径提供",
|
||||
"729": "GET /contract/change/list;extra=allow 透传列头漏斗动态参数。",
|
||||
"732": "customer_follow.py",
|
||||
"733": "_forbid_legacy_invoice_fields",
|
||||
"734": "customer.py",
|
||||
@@ -647,7 +570,6 @@
|
||||
"757": "__init__.py",
|
||||
"758": "io_order.py",
|
||||
"759": "plan.py",
|
||||
"760": "运维纠错:强制改跟进状态(仅改字段,不联动业务)。",
|
||||
"762": "_coerce_resource_snapshot",
|
||||
"763": "transport_address.py",
|
||||
"764": "validate_coordinates",
|
||||
@@ -677,7 +599,6 @@
|
||||
"788": "advance.py",
|
||||
"789": "_query_approvals",
|
||||
"790": "同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。",
|
||||
"791": "返回全部审批动作,按时间正序排列,用于展示完整审批历史。",
|
||||
"792": "reject",
|
||||
"793": "soft_delete",
|
||||
"794": "submit",
|
||||
@@ -756,8 +677,6 @@
|
||||
"869": "pay",
|
||||
"870": "reimburse.py",
|
||||
"871": "_query_approvals",
|
||||
"872": "归一化勾选链接;返回 None 表示未传(不改关联),[] 表示清空。",
|
||||
"873": "同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。",
|
||||
"874": "reject",
|
||||
"875": "resolve_applicant",
|
||||
"876": "soft_delete",
|
||||
@@ -782,38 +701,16 @@
|
||||
"895": "plan_list_filters.py",
|
||||
"898": "返回 productId -> 三数量字段。",
|
||||
"900": "按复合键匹配合同产品行;同键多行时 quantity 相加(防御)。",
|
||||
"902": "将关联且状态为 approved 的合同置为 executing(不 commit)。返回已推进的合同 id。",
|
||||
"903": "已安排合计 − 本计划旧量 + 本计划新量。",
|
||||
"904": "返回: - None: 跳过(本次无量) - kind=violation | remaining | framework_cumula",
|
||||
"907": "product_id -> {archivedQty, arrangedUnarchivedQty, arrangedTotalQty}",
|
||||
"909": "返回 (violations, reminders)。 在写运输前调用;reminders 可缓存到成功响应,勿在状态变更后再算。",
|
||||
"910": "超限则 422;通过则返回 reminders(供成功响应复用)。",
|
||||
"912": "表单「可安排数量」与问号弹窗数据。 arrangedQty / availableQty 均不含 exclude_plan_id(若该计划已在已安排桶中",
|
||||
"914": "勾选「生成地磅单」:按产品生成/复用地磅计划,并创建关联出入库单。",
|
||||
"915": "按段 upsert 地磅出入库与 link:新建 / 就地更新 / 取消勾选软删。 返回 (link_results, warnings)。已过磅取消",
|
||||
"916": "按装货/送货段勾选 upsert 地磅计划与出入库单(兼容旧调用方,忽略 warnings)。",
|
||||
"919": "勾选「生成地磅单」:按产品生成/复用地磅计划,并创建关联出入库单。",
|
||||
"920": "未过磅且状态可作废时,可就地更新日期/往来/车牌/数量。",
|
||||
"921": "计划保存后按当前段次/计划日期回写可编辑出入库单日期;跨月则改挂月计划。 不可回写时不抛错,返回 warnings。",
|
||||
"923": "就地更新已有出入库可变字段;不可编辑时写 warnings,不抛错。",
|
||||
"925": "按装货/送货段勾选生成地磅计划与出入库单。",
|
||||
"928": "草稿/已驳回结算单按当前运输单运费刷新明细快照与合计。",
|
||||
"931": "审批记录已全部完成但结算单仍停留在 approving 时自动纠正(兼容历史脏数据)",
|
||||
"935": "__init__.py",
|
||||
"936": "list_sort.py",
|
||||
"937": "无段表数据时回退计划产品级导出(兼容旧数据)。",
|
||||
"938": "构建归档导出数据行:每计划 × 每段次 × 每段产品一行。",
|
||||
"941": "单侧保存计划合同关联(旧计划级接口,兼容保留)。",
|
||||
"942": "单侧保存计划合同关联(旧计划级接口,兼容保留)。",
|
||||
"948": "解析司机:显式选择优先,否则取车辆关联司机;均无则允许为空。",
|
||||
"950": "批量从 CRM 产品主数据读取易制毒/易制爆标识。",
|
||||
"951": "列表筛选:计划下存在 CRM 标识为易制毒/易制爆的产品。",
|
||||
"953": "列表筛选:存在危化产品且至少一张必需证书未上传。",
|
||||
"957": "计划内所有危化品产品的所需证书槽位均已上传。",
|
||||
"959": "全部危化品证书已上传时,自动标记证书齐备(与人工确认等效)。",
|
||||
"962": "写入/更新草稿运输单(pl_transport + pl_plan_transport),计划保持待安排。",
|
||||
"964": "同步运输预选到草稿运输子表(pl_transport)。",
|
||||
"966": "装货段与 plan 1:1;uk_pl_plan_load_plan 仅按 plan_id 唯一,软删后不可再 INSERT,须原地更新。",
|
||||
"967": "_soft_delete_plan_stops",
|
||||
"971": "_resolve_plan_flags",
|
||||
"972": "_compare",
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
# Graph Report - backend (2026-09-26)
|
||||
|
||||
## Corpus Check
|
||||
- 485 files · ~308,073 words
|
||||
- 485 files · ~308,123 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 7230 nodes · 23897 edges · 844 communities (521 shown, 323 thin omitted)
|
||||
- 7128 nodes · 23897 edges · 741 communities (519 shown, 222 thin omitted)
|
||||
- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 1167 edges (avg confidence: 0.55)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `94dd5283`
|
||||
- Built from commit: `7b99040f`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@@ -113,7 +113,6 @@
|
||||
- [[_COMMUNITY_pl_plan_list_attachments.py|pl_plan_list_attachments.py]]
|
||||
- [[_COMMUNITY_Community 118|Community 118]]
|
||||
- [[_COMMUNITY_Community 119|Community 119]]
|
||||
- [[_COMMUNITY_list_duty_staff_users|list_duty_staff_users]]
|
||||
- [[_COMMUNITY__build_user_info_payload|_build_user_info_payload]]
|
||||
- [[_COMMUNITY_post.py|post.py]]
|
||||
- [[_COMMUNITY_customer_options|customer_options]]
|
||||
@@ -185,22 +184,17 @@
|
||||
- [[_COMMUNITY_Java batchSubmitApproval|Java: batchSubmitApproval]]
|
||||
- [[_COMMUNITY_build_plan_column_filters|build_plan_column_filters]]
|
||||
- [[_COMMUNITY_pl_plan_list_attachments.py|pl_plan_list_attachments.py]]
|
||||
- [[_COMMUNITY_若存在入库出库单,用明细 actual_qty 覆盖归档提交中的实际数量(权威来源)。|若存在入库/出库单,用明细 actual_qty 覆盖归档提交中的实际数量(权威来源)。]]
|
||||
- [[_COMMUNITY_start.sh|start.sh]]
|
||||
- [[_COMMUNITY_FakeRedis|FakeRedis]]
|
||||
- [[_COMMUNITY_按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。|按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。]]
|
||||
- [[_COMMUNITY_Java viewByShareCode|Java: viewByShareCode]]
|
||||
- [[_COMMUNITY_codeblock1 (backend)|code:block1 (backend/)]]
|
||||
- [[_COMMUNITY_calc_age_from_chinese_id_card|calc_age_from_chinese_id_card]]
|
||||
- [[_COMMUNITY_wx_qr_session.py|wx_qr_session.py]]
|
||||
- [[_COMMUNITY_shanxia2.0 Backend 生产部署说明|shanxia2.0 Backend 生产部署说明]]
|
||||
- [[_COMMUNITY_db_collation.py|db_collation.py]]
|
||||
- [[_COMMUNITY_表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。|表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。]]
|
||||
- [[_COMMUNITY_build_reimburse_column_filters|build_reimburse_column_filters]]
|
||||
- [[_COMMUNITY_codeblock1 (iflytekshanxia2.0backend)|code:block1 (/iflytek/shanxia2.0/backend)]]
|
||||
- [[_COMMUNITY_menu.py|menu.py]]
|
||||
- [[_COMMUNITY_dept.py|dept.py]]
|
||||
- [[_COMMUNITY_分页查询供方列表 — Java CrmSupplierInfoController.list|分页查询供方列表 — Java: CrmSupplierInfoController.list]]
|
||||
- [[_COMMUNITY_Activate.ps1|Activate.ps1]]
|
||||
- [[_COMMUNITY_Java createFromOpportunity — 返回合同 id|Java: createFromOpportunity — 返回合同 id]]
|
||||
- [[_COMMUNITY_mini_auth.py|mini_auth.py]]
|
||||
@@ -208,31 +202,20 @@
|
||||
- [[_COMMUNITY_tenant.py|tenant.py]]
|
||||
- [[_COMMUNITY_Java Controller TODO — 保持 pending,记录备注|Java Controller TODO — 保持 pending,记录备注]]
|
||||
- [[_COMMUNITY___init__.py|__init__.py]]
|
||||
- [[_COMMUNITY_供方全量列表(下拉)— Java CrmSupplierInfoController.listAll|供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll]]
|
||||
- [[_COMMUNITY_post.py|post.py]]
|
||||
- [[_COMMUNITY_leave.py|leave.py]]
|
||||
- [[_COMMUNITY_site.py|site.py]]
|
||||
- [[_COMMUNITY_statistics.py|statistics.py]]
|
||||
- [[_COMMUNITY_default_settlement_clause|default_settlement_clause]]
|
||||
- [[_COMMUNITY_fix_pl_transport_db_link_stop_ids.py|fix_pl_transport_db_link_stop_ids.py]]
|
||||
- [[_COMMUNITY_供方详情 — Java CrmSupplierInfoController.getInfo|供方详情 — Java: CrmSupplierInfoController.getInfo]]
|
||||
- [[_COMMUNITY_新增供方 — Java CrmSupplierInfoController.add|新增供方 — Java: CrmSupplierInfoController.add]]
|
||||
- [[_COMMUNITY_修改供方 — Java CrmSupplierInfoController.edit|修改供方 — Java: CrmSupplierInfoController.edit]]
|
||||
- [[_COMMUNITY_resolve_wechat_login_user|resolve_wechat_login_user]]
|
||||
- [[_COMMUNITY_apply_crm_owner_scope|apply_crm_owner_scope]]
|
||||
- [[_COMMUNITY_crm_quote_pdf.py|crm_quote_pdf.py]]
|
||||
- [[_COMMUNITY_导出供方列表 — Java CrmSupplierInfoController.export|导出供方列表 — Java: CrmSupplierInfoController.export]]
|
||||
- [[_COMMUNITY_shanxia2.0 后端骨架(FastAPI)|shanxia2.0 后端骨架(FastAPI)]]
|
||||
- [[_COMMUNITY_test_wx_qr_session.py|test_wx_qr_session.py]]
|
||||
- [[_COMMUNITY_按入参整表覆盖合同扫描件;attachments= 表示清空。|按入参整表覆盖合同扫描件;attachments=[] 表示清空。]]
|
||||
- [[_COMMUNITY_Java createFromQuote — 返回合同 id|Java: createFromQuote — 返回合同 id]]
|
||||
- [[_COMMUNITY_证书 URL 为空(NULL 空串 纯空白)。|证书 URL 为空(NULL / 空串 / 纯空白)。]]
|
||||
- [[_COMMUNITY_导出出入库列表(当前筛选全量,或 ids 已选)。|导出出入库列表(当前筛选全量,或 ids 已选)。]]
|
||||
- [[_COMMUNITY_返回 'archived' 'arranged_unarchived' None(不计入)。|返回 'archived' | 'arranged_unarchived' | None(不计入)。]]
|
||||
- [[_COMMUNITY_collect_unique_delivery_date_strings|collect_unique_delivery_date_strings]]
|
||||
- [[_COMMUNITY_单条查询(三方 H5 填写页无需门户登录)。|单条查询(三方 H5 填写页无需门户登录)。]]
|
||||
- [[_COMMUNITY_clear_pl_plan_instance_data.py|clear_pl_plan_instance_data.py]]
|
||||
- [[_COMMUNITY_导出地磅单列表(当前筛选全量,或 ids 已选)。|导出地磅单列表(当前筛选全量,或 ids 已选)。]]
|
||||
- [[_COMMUNITY___init__.py|__init__.py]]
|
||||
- [[_COMMUNITY___init__.py|__init__.py]]
|
||||
- [[_COMMUNITY___init__.py|__init__.py]]
|
||||
@@ -242,12 +225,6 @@
|
||||
- [[_COMMUNITY_db_collation.py|db_collation.py]]
|
||||
- [[_COMMUNITY_创建运输计划(完整表单:供方需方 + 产品库产品 + 可选预选车辆,不自动安排运输)|创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)]]
|
||||
- [[_COMMUNITY_创建运输计划(完整表单:供方需方 + 产品库产品 + 可选预选车辆,不自动安排运输)|创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)]]
|
||||
- [[_COMMUNITY_按客户ID查询开票信息(与 by-customer 等价)|按客户ID查询开票信息(与 by-customer 等价)]]
|
||||
- [[_COMMUNITY_创建运输计划(完整表单:供方需方 + 产品库产品 + 可选预选车辆,不自动安排运输)|创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)]]
|
||||
- [[_COMMUNITY_返回全部已完成的审批动作(含撤回重提前的历史轮次),按时间正序。|返回全部已完成的审批动作(含撤回/重提前的历史轮次),按时间正序。]]
|
||||
- [[_COMMUNITY_已有汇款凭证但结算单仍停留在 approved 时自动纠正(兼容历史脏数据)|已有汇款凭证但结算单仍停留在 approved 时自动纠正(兼容历史脏数据)]]
|
||||
- [[_COMMUNITY_软删除结算单历史审批记录(重新提交审批前清理)|软删除结算单历史审批记录(重新提交审批前清理)]]
|
||||
- [[_COMMUNITY_运输单运费变更后,同步关联草稿结算单的明细快照与合计。|运输单运费变更后,同步关联草稿结算单的明细快照与合计。]]
|
||||
- [[_COMMUNITY_创建运输计划(完整表单:供方需方 + 产品库产品 + 可选预选车辆,不自动安排运输)|创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)]]
|
||||
- [[_COMMUNITY_创建运输计划(完整表单:供方需方 + 产品库产品 + 可选预选车辆,不自动安排运输)|创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)]]
|
||||
- [[_COMMUNITY_创建运输计划(完整表单:供方需方 + 产品库产品 + 可选预选车辆,不自动安排运输)|创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)]]
|
||||
@@ -263,22 +240,17 @@
|
||||
- [[_COMMUNITY_列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。|列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。]]
|
||||
- [[_COMMUNITY_列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。|列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。]]
|
||||
- [[_COMMUNITY_更新计划危化品产品证书(购买证运输证合法使用证明,不触发安排运输)|更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)]]
|
||||
- [[_COMMUNITY_更新计划危化品产品证书(购买证运输证合法使用证明,不触发安排运输)|更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)]]
|
||||
- [[_COMMUNITY_列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。|列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。]]
|
||||
- [[_COMMUNITY_列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。|列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。]]
|
||||
- [[_COMMUNITY_更新计划危化品产品证书(购买证运输证合法使用证明,不触发安排运输)|更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)]]
|
||||
- [[_COMMUNITY_生成计划编号 POYYYYMMDD(当日 3 位序号,每日重置)|生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)]]
|
||||
- [[_COMMUNITY_生成计划编号 POYYYYMMDD(当日 3 位序号,每日重置)|生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)]]
|
||||
- [[_COMMUNITY_更新计划危化品产品证书(购买证运输证合法使用证明,不触发安排运输)|更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)]]
|
||||
- [[_COMMUNITY_生成计划编号 POYYYYMMDD(当日 3 位序号,每日重置)|生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)]]
|
||||
- [[_COMMUNITY_更新计划危化品产品证书(购买证运输证合法使用证明,不触发安排运输)|更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)]]
|
||||
- [[_COMMUNITY_更新计划危化品产品证书(购买证运输证合法使用证明,不触发安排运输)|更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)]]
|
||||
- [[_COMMUNITY_返回全部审批动作,按时间正序排列,用于展示完整审批历史。|返回全部审批动作,按时间正序排列,用于展示完整审批历史。]]
|
||||
- [[_COMMUNITY_同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。|同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。]]
|
||||
- [[_COMMUNITY_更新计划危化品产品证书(购买证运输证合法使用证明,不触发安排运输)|更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)]]
|
||||
- [[_COMMUNITY_更新计划危化品产品证书(购买证运输证合法使用证明,不触发安排运输)|更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)]]
|
||||
- [[_COMMUNITY_生成计划编号 POYYYYMMDD(当日 3 位序号,每日重置)|生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)]]
|
||||
- [[_COMMUNITY_返回全部审批动作,按时间正序排列,用于展示完整审批历史。|返回全部审批动作,按时间正序排列,用于展示完整审批历史。]]
|
||||
- [[_COMMUNITY_生成计划编号 POYYYYMMDD(当日 3 位序号,每日重置)|生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)]]
|
||||
- [[_COMMUNITY_生成计划编号 POYYYYMMDD(当日 3 位序号,每日重置)|生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)]]
|
||||
- [[_COMMUNITY_更新计划危化品产品证书(购买证运输证合法使用证明,不触发安排运输)|更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)]]
|
||||
@@ -288,7 +260,6 @@
|
||||
- [[_COMMUNITY_获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述二维码)。|获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。]]
|
||||
- [[_COMMUNITY_获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述二维码)。|获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。]]
|
||||
- [[_COMMUNITY_获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述二维码)。|获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。]]
|
||||
- [[_COMMUNITY_获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述二维码)。|获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。]]
|
||||
- [[_COMMUNITY_更新计划危化品产品证书(购买证运输证合法使用证明,不触发安排运输)|更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)]]
|
||||
- [[_COMMUNITY_获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述二维码)。|获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。]]
|
||||
- [[_COMMUNITY_获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述二维码)。|获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。]]
|
||||
@@ -300,7 +271,6 @@
|
||||
- [[_COMMUNITY_获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述二维码)。|获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。]]
|
||||
- [[_COMMUNITY_强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 plplanforce-follow-status。|强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。]]
|
||||
- [[_COMMUNITY_强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 plplanforce-follow-status。|强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。]]
|
||||
- [[_COMMUNITY_强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 plplanforce-follow-status。|强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。]]
|
||||
- [[_COMMUNITY_作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。|作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。]]
|
||||
- [[_COMMUNITY_作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。|作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。]]
|
||||
- [[_COMMUNITY_强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 plplanforce-follow-status。|强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。]]
|
||||
@@ -310,11 +280,9 @@
|
||||
- [[_COMMUNITY_作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。|作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。]]
|
||||
- [[_COMMUNITY_将历史分装单号统一为 NOSXFZYYYYMMDD-|将历史分装单号统一为 NO:SXFZYYYYMMDD-###]]
|
||||
- [[_COMMUNITY_作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。|作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。]]
|
||||
- [[_COMMUNITY_作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。|作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。]]
|
||||
- [[_COMMUNITY_将历史分装单号统一为 NOSXFZYYYYMMDD-|将历史分装单号统一为 NO:SXFZYYYYMMDD-###]]
|
||||
- [[_COMMUNITY_强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 plplanforce-follow-status。|强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。]]
|
||||
- [[_COMMUNITY_强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 plplanforce-follow-status。|强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。]]
|
||||
- [[_COMMUNITY_将历史分装单号统一为 NOSXFZYYYYMMDD-|将历史分装单号统一为 NO:SXFZYYYYMMDD-###]]
|
||||
- [[_COMMUNITY_强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 plplanforce-follow-status。|强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。]]
|
||||
- [[_COMMUNITY_强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 plplanforce-follow-status。|强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。]]
|
||||
- [[_COMMUNITY_作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。|作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。]]
|
||||
@@ -333,8 +301,6 @@
|
||||
- [[_COMMUNITY_按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。|按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。]]
|
||||
- [[_COMMUNITY_按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。|按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。]]
|
||||
- [[_COMMUNITY_按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。|按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。]]
|
||||
- [[_COMMUNITY_按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。|按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。]]
|
||||
- [[_COMMUNITY_分配分装单号 NOSXFZYYYYMMDD-(按租户每日递增)|分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)]]
|
||||
- [[_COMMUNITY_分配分装单号 NOSXFZYYYYMMDD-(按租户每日递增)|分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)]]
|
||||
- [[_COMMUNITY_按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。|按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。]]
|
||||
- [[_COMMUNITY_按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。|按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。]]
|
||||
@@ -351,7 +317,6 @@
|
||||
- [[_COMMUNITY_导出计划列表(当前筛选全量,或 ids 已选)。|导出计划列表(当前筛选全量,或 ids 已选)。]]
|
||||
- [[_COMMUNITY_导出计划列表(当前筛选全量,或 ids 已选)。|导出计划列表(当前筛选全量,或 ids 已选)。]]
|
||||
- [[_COMMUNITY_导出计划列表(当前筛选全量,或 ids 已选)。|导出计划列表(当前筛选全量,或 ids 已选)。]]
|
||||
- [[_COMMUNITY_导出计划列表(当前筛选全量,或 ids 已选)。|导出计划列表(当前筛选全量,或 ids 已选)。]]
|
||||
- [[_COMMUNITY_表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。|表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。]]
|
||||
- [[_COMMUNITY_表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。|表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。]]
|
||||
- [[_COMMUNITY_表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。|表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。]]
|
||||
@@ -361,18 +326,12 @@
|
||||
- [[_COMMUNITY_表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。|表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。]]
|
||||
- [[_COMMUNITY_codebash (cd pathtoshanxia2.0)|code:bash (cd /path/to/shanxia2.0)]]
|
||||
- [[_COMMUNITY_codebash (.start-prod.sh status 查看状态)|code:bash (./start-prod.sh status # 查看状态)]]
|
||||
- [[_COMMUNITY_获取当前用户信息(与 sys_user 字段对应)。|获取当前用户信息(与 sys_user 字段对应)。]]
|
||||
- [[_COMMUNITY_公开分享查看报价单 — Java GET share{shareCode}(无 JWT)|公开分享查看报价单 — Java: GET /share/{shareCode}(无 JWT)]]
|
||||
- [[_COMMUNITY_与 web-admin 静态路由 meta.roles(adminsuper_admin)对齐的单元素数组。|与 web-admin 静态路由 meta.roles(admin/super_admin)对齐的单元素数组。]]
|
||||
- [[_COMMUNITY_与 web-admin `userInfo` 字段约定一致。|与 web-admin `userInfo` 字段约定一致。]]
|
||||
- [[_COMMUNITY_Web 端登录用 RSA 公钥(PKCS1 v1.5,与 JSEncrypt 一致)|Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致)]]
|
||||
- [[_COMMUNITY_Web 端登录:账号为 sys_user.user_no,密码为 sys_user.password(bcrypt)。|Web 端登录:账号为 sys_user.user_no,密码为 sys_user.password(bcrypt)。]]
|
||||
- [[_COMMUNITY_Java deleteWithValidByIds — 软删除|Java: deleteWithValidByIds — 软删除]]
|
||||
- [[_COMMUNITY_Java deleteWithValidByIds — 软删除|Java: deleteWithValidByIds — 软删除]]
|
||||
- [[_COMMUNITY_Java deleteWithValidByIds — 软删除|Java: deleteWithValidByIds — 软删除]]
|
||||
- [[_COMMUNITY_Java deleteWithValidByIds — 软删除|Java: deleteWithValidByIds — 软删除]]
|
||||
- [[_COMMUNITY_Java deleteWithValidByIds — 软删除|Java: deleteWithValidByIds — 软删除]]
|
||||
- [[_COMMUNITY_框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。|框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。]]
|
||||
- [[_COMMUNITY_框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。|框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。]]
|
||||
- [[_COMMUNITY_框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。|框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。]]
|
||||
- [[_COMMUNITY_框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。|框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。]]
|
||||
@@ -381,8 +340,6 @@
|
||||
- [[_COMMUNITY_Java batchSubmitApproval|Java: batchSubmitApproval]]
|
||||
- [[_COMMUNITY_Java batchSubmitApproval|Java: batchSubmitApproval]]
|
||||
- [[_COMMUNITY_Java batchSubmitApproval|Java: batchSubmitApproval]]
|
||||
- [[_COMMUNITY_Java batchSubmitApproval|Java: batchSubmitApproval]]
|
||||
- [[_COMMUNITY_Java withdrawApproval|Java: withdrawApproval]]
|
||||
- [[_COMMUNITY_Java withdrawApproval|Java: withdrawApproval]]
|
||||
- [[_COMMUNITY_Java withdrawApproval|Java: withdrawApproval]]
|
||||
- [[_COMMUNITY_Java batchSubmitApproval|Java: batchSubmitApproval]]
|
||||
@@ -391,8 +348,6 @@
|
||||
- [[_COMMUNITY_按入参整表覆盖合同扫描件;attachments= 表示清空。|按入参整表覆盖合同扫描件;attachments=[] 表示清空。]]
|
||||
- [[_COMMUNITY_按入参整表覆盖合同扫描件;attachments= 表示清空。|按入参整表覆盖合同扫描件;attachments=[] 表示清空。]]
|
||||
- [[_COMMUNITY_按入参整表覆盖合同扫描件;attachments= 表示清空。|按入参整表覆盖合同扫描件;attachments=[] 表示清空。]]
|
||||
- [[_COMMUNITY_按入参整表覆盖合同扫描件;attachments= 表示清空。|按入参整表覆盖合同扫描件;attachments=[] 表示清空。]]
|
||||
- [[_COMMUNITY_Java createFromQuote — 返回合同 id|Java: createFromQuote — 返回合同 id]]
|
||||
- [[_COMMUNITY_Java createFromQuote — 返回合同 id|Java: createFromQuote — 返回合同 id]]
|
||||
- [[_COMMUNITY_Java createFromQuote — 返回合同 id|Java: createFromQuote — 返回合同 id]]
|
||||
- [[_COMMUNITY_Java createFromQuote — 返回合同 id|Java: createFromQuote — 返回合同 id]]
|
||||
@@ -403,13 +358,10 @@
|
||||
- [[_COMMUNITY_Java renewContract — 基础续签|Java: renewContract — 基础续签]]
|
||||
- [[_COMMUNITY_Java renewContract — 基础续签|Java: renewContract — 基础续签]]
|
||||
- [[_COMMUNITY_Java queryList for export|Java: queryList for export]]
|
||||
- [[_COMMUNITY_Java renewContract — 基础续签|Java: renewContract — 基础续签]]
|
||||
- [[_COMMUNITY_Java queryList for export|Java: queryList for export]]
|
||||
- [[_COMMUNITY_Java queryList for export|Java: queryList for export]]
|
||||
- [[_COMMUNITY_Java queryList for export|Java: queryList for export]]
|
||||
- [[_COMMUNITY_Java queryList for export|Java: queryList for export]]
|
||||
- [[_COMMUNITY_Java queryList for export|Java: queryList for export]]
|
||||
- [[_COMMUNITY_Java createFromOpportunity — 返回合同 id|Java: createFromOpportunity — 返回合同 id]]
|
||||
- [[_COMMUNITY_Java createFromOpportunity — 返回合同 id|Java: createFromOpportunity — 返回合同 id]]
|
||||
- [[_COMMUNITY_Java createFromOpportunity — 返回合同 id|Java: createFromOpportunity — 返回合同 id]]
|
||||
- [[_COMMUNITY_Java createFromOpportunity — 返回合同 id|Java: createFromOpportunity — 返回合同 id]]
|
||||
@@ -426,10 +378,7 @@
|
||||
- [[_COMMUNITY_Java downloadContractPdf — 返回合同文件 URL路径|Java: downloadContractPdf — 返回合同文件 URL/路径]]
|
||||
- [[_COMMUNITY_Java downloadContractPdf — 返回合同文件 URL路径|Java: downloadContractPdf — 返回合同文件 URL/路径]]
|
||||
- [[_COMMUNITY_Java batchAssignOwner|Java: batchAssignOwner]]
|
||||
- [[_COMMUNITY_Java batchAssignOwner|Java: batchAssignOwner]]
|
||||
- [[_COMMUNITY_Java downloadContractPdf — 返回合同文件 URL路径|Java: downloadContractPdf — 返回合同文件 URL/路径]]
|
||||
- [[_COMMUNITY_Java downloadContractPdf — 返回合同文件 URL路径|Java: downloadContractPdf — 返回合同文件 URL/路径]]
|
||||
- [[_COMMUNITY_Java generateTemplateNo — TMPL{yyyyMMdd}{4位序号}|Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}]]
|
||||
- [[_COMMUNITY_Java generateTemplateNo — TMPL{yyyyMMdd}{4位序号}|Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}]]
|
||||
- [[_COMMUNITY_Java generateTemplateNo — TMPL{yyyyMMdd}{4位序号}|Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}]]
|
||||
- [[_COMMUNITY_Java downloadContractPdf — 返回合同文件 URL路径|Java: downloadContractPdf — 返回合同文件 URL/路径]]
|
||||
@@ -440,84 +389,32 @@
|
||||
- [[_COMMUNITY_Java Controller TODO — 保持 pending,记录备注|Java Controller TODO — 保持 pending,记录备注]]
|
||||
- [[_COMMUNITY_Java Controller TODO — 保持 pending,记录备注|Java Controller TODO — 保持 pending,记录备注]]
|
||||
- [[_COMMUNITY_Java Controller TODO — 保持 pending,记录备注|Java Controller TODO — 保持 pending,记录备注]]
|
||||
- [[_COMMUNITY_Java Controller TODO — 保持 pending,记录备注|Java Controller TODO — 保持 pending,记录备注]]
|
||||
- [[_COMMUNITY_根据供需方面板与主数据生成校正合同名称。|根据供需方面板与主数据生成/校正合同名称。]]
|
||||
- [[_COMMUNITY_根据供需方面板与主数据生成校正合同名称。|根据供需方面板与主数据生成/校正合同名称。]]
|
||||
- [[_COMMUNITY_Java generateContractNo — {供方编码}X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr|Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr]]
|
||||
- [[_COMMUNITY_Java generateContractNo — {供方编码}X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr|Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr]]
|
||||
- [[_COMMUNITY_Java generateContractNo — {供方编码}X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr|Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr]]
|
||||
- [[_COMMUNITY_租户内合同编号是否已占用(含软删,保证全局唯一)。|租户内合同编号是否已占用(含软删,保证全局唯一)。]]
|
||||
- [[_COMMUNITY_租户内合同编号是否已占用(含软删,保证全局唯一)。|租户内合同编号是否已占用(含软删,保证全局唯一)。]]
|
||||
- [[_COMMUNITY_标准编号替换日期段,保留序号;非标准返回 None。|标准编号替换日期段,保留序号;非标准返回 None。]]
|
||||
- [[_COMMUNITY_租户内合同编号是否已占用(含软删,保证全局唯一)。|租户内合同编号是否已占用(含软删,保证全局唯一)。]]
|
||||
- [[_COMMUNITY_标准编号替换日期段,保留序号;非标准返回 None。|标准编号替换日期段,保留序号;非标准返回 None。]]
|
||||
- [[_COMMUNITY_将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。|将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。]]
|
||||
- [[_COMMUNITY_将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。|将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。]]
|
||||
- [[_COMMUNITY_按面板单位全称精确匹配交易主体客户主数据,取 shortName;对不上则用全称。|按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。]]
|
||||
- [[_COMMUNITY_按面板单位全称精确匹配交易主体客户主数据,取 shortName;对不上则用全称。|按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。]]
|
||||
- [[_COMMUNITY_按面板单位全称精确匹配交易主体客户主数据,取 shortName;对不上则用全称。|按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。]]
|
||||
- [[_COMMUNITY_前端预览误用单位全称时,名称片段会等于面板客户开票全称。|前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。]]
|
||||
- [[_COMMUNITY_按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名|按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名]]
|
||||
- [[_COMMUNITY_前端预览误用单位全称时,名称片段会等于面板客户开票全称。|前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。]]
|
||||
- [[_COMMUNITY_前端预览误用单位全称时,名称片段会等于面板客户开票全称。|前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。]]
|
||||
- [[_COMMUNITY_按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名|按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名]]
|
||||
- [[_COMMUNITY_按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名|按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名]]
|
||||
- [[_COMMUNITY_报价自动建档时生成产品编号(与产品管理新增规则一致)|报价自动建档时生成产品编号(与产品管理新增规则一致)]]
|
||||
- [[_COMMUNITY_Java resolveProductIdForQuoteItem(CrmProduct 无 tax_rate,跳过税率匹配)|Java: resolveProductIdForQuoteItem(CrmProduct 无 tax_rate,跳过税率匹配)]]
|
||||
- [[_COMMUNITY_Java toContract — 返回 contractId|Java: toContract — 返回 contractId]]
|
||||
- [[_COMMUNITY_Java CrmQuoteServiceImpl.withdrawApproval(校验创建人)|Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人)]]
|
||||
- [[_COMMUNITY_Java statisticsOverview|Java: statisticsOverview]]
|
||||
- [[_COMMUNITY_Java statisticsStatus|Java: statisticsStatus]]
|
||||
- [[_COMMUNITY_Java statisticsTrend|Java: statisticsTrend]]
|
||||
- [[_COMMUNITY_Java generateQuoteNo — {供方编码}DD-yyyyMMdd + 3位序号|Java: generateQuoteNo — {供方编码}DD-yyyyMMdd + 3位序号]]
|
||||
- [[_COMMUNITY_Java deleteWithValidByIds|Java: deleteWithValidByIds]]
|
||||
- [[_COMMUNITY_车辆维保申请 pl_vehicle_maintenance_apply|车辆维保申请 pl_vehicle_maintenance_apply]]
|
||||
- [[_COMMUNITY_车辆尿素申请 pl_vehicle_urea_apply|车辆尿素申请 pl_vehicle_urea_apply]]
|
||||
- [[_COMMUNITY_车辆维保处理登记 pl_vehicle_maintenance_process|车辆维保处理登记 pl_vehicle_maintenance_process]]
|
||||
- [[_COMMUNITY_阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计)|阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计)]]
|
||||
- [[_COMMUNITY_车辆尿素发放登记 pl_vehicle_urea_disburse|车辆尿素发放登记 pl_vehicle_urea_disburse]]
|
||||
- [[_COMMUNITY_车辆ETC加油充值发放登记 pl_vehicle_recharge_record|车辆ETC/加油充值发放登记 pl_vehicle_recharge_record]]
|
||||
- [[_COMMUNITY_POST contractapproval — 按合同 ID 审批|POST /contract/approval — 按合同 ID 审批]]
|
||||
- [[_COMMUNITY_POST contractexport 筛选条件(无分页或沿用 list 参数)|POST /contract/export 筛选条件(无分页或沿用 list 参数)]]
|
||||
- [[_COMMUNITY_续签 — 字段同创建,parent 由路径提供|续签 — 字段同创建,parent 由路径提供]]
|
||||
- [[_COMMUNITY_GET contractchangelist;extra=allow 透传列头漏斗动态参数。|GET /contract/change/list;extra=allow 透传列头漏斗动态参数。]]
|
||||
- [[_COMMUNITY_运维纠错:强制改跟进状态(仅改字段,不联动业务)。|运维纠错:强制改跟进状态(仅改字段,不联动业务)。]]
|
||||
- [[_COMMUNITY_同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。|同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。]]
|
||||
- [[_COMMUNITY_返回全部审批动作,按时间正序排列,用于展示完整审批历史。|返回全部审批动作,按时间正序排列,用于展示完整审批历史。]]
|
||||
- [[_COMMUNITY_归一化勾选链接;返回 None 表示未传(不改关联), 表示清空。|归一化勾选链接;返回 None 表示未传(不改关联),[] 表示清空。]]
|
||||
- [[_COMMUNITY_同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。|同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。]]
|
||||
- [[_COMMUNITY_返回 productId - 三数量字段。|返回 productId -> 三数量字段。]]
|
||||
- [[_COMMUNITY_按复合键匹配合同产品行;同键多行时 quantity 相加(防御)。|按复合键匹配合同产品行;同键多行时 quantity 相加(防御)。]]
|
||||
- [[_COMMUNITY_将关联且状态为 approved 的合同置为 executing(不 commit)。返回已推进的合同 id。|将关联且状态为 approved 的合同置为 executing(不 commit)。返回已推进的合同 id。]]
|
||||
- [[_COMMUNITY_已安排合计 − 本计划旧量 + 本计划新量。|已安排合计 − 本计划旧量 + 本计划新量。]]
|
||||
- [[_COMMUNITY_返回 - None 跳过(本次无量) - kind=violation remaining framework_cumula|返回: - None: 跳过(本次无量) - kind=violation | remaining | framework_cumula]]
|
||||
- [[_COMMUNITY_product_id - {archivedQty, arrangedUnarchivedQty, arrangedTotalQty}|product_id -> {archivedQty, arrangedUnarchivedQty, arrangedTotalQty}]]
|
||||
- [[_COMMUNITY_返回 (violations, reminders)。 在写运输前调用;reminders 可缓存到成功响应,勿在状态变更后再算。|返回 (violations, reminders)。 在写运输前调用;reminders 可缓存到成功响应,勿在状态变更后再算。]]
|
||||
- [[_COMMUNITY_超限则 422;通过则返回 reminders(供成功响应复用)。|超限则 422;通过则返回 reminders(供成功响应复用)。]]
|
||||
- [[_COMMUNITY_表单「可安排数量」与问号弹窗数据。 arrangedQty availableQty 均不含 exclude_plan_id(若该计划已在已安排桶中|表单「可安排数量」与问号弹窗数据。 arrangedQty / availableQty 均不含 exclude_plan_id(若该计划已在已安排桶中]]
|
||||
- [[_COMMUNITY_勾选「生成地磅单」:按产品生成复用地磅计划,并创建关联出入库单。|勾选「生成地磅单」:按产品生成/复用地磅计划,并创建关联出入库单。]]
|
||||
- [[_COMMUNITY_按段 upsert 地磅出入库与 link:新建 就地更新 取消勾选软删。 返回 (link_results, warnings)。已过磅取消|按段 upsert 地磅出入库与 link:新建 / 就地更新 / 取消勾选软删。 返回 (link_results, warnings)。已过磅取消]]
|
||||
- [[_COMMUNITY_按装货送货段勾选 upsert 地磅计划与出入库单(兼容旧调用方,忽略 warnings)。|按装货/送货段勾选 upsert 地磅计划与出入库单(兼容旧调用方,忽略 warnings)。]]
|
||||
- [[_COMMUNITY_勾选「生成地磅单」:按产品生成复用地磅计划,并创建关联出入库单。|勾选「生成地磅单」:按产品生成/复用地磅计划,并创建关联出入库单。]]
|
||||
- [[_COMMUNITY_未过磅且状态可作废时,可就地更新日期往来车牌数量。|未过磅且状态可作废时,可就地更新日期/往来/车牌/数量。]]
|
||||
- [[_COMMUNITY_计划保存后按当前段次计划日期回写可编辑出入库单日期;跨月则改挂月计划。 不可回写时不抛错,返回 warnings。|计划保存后按当前段次/计划日期回写可编辑出入库单日期;跨月则改挂月计划。 不可回写时不抛错,返回 warnings。]]
|
||||
- [[_COMMUNITY_就地更新已有出入库可变字段;不可编辑时写 warnings,不抛错。|就地更新已有出入库可变字段;不可编辑时写 warnings,不抛错。]]
|
||||
- [[_COMMUNITY_按装货送货段勾选生成地磅计划与出入库单。|按装货/送货段勾选生成地磅计划与出入库单。]]
|
||||
- [[_COMMUNITY_草稿已驳回结算单按当前运输单运费刷新明细快照与合计。|草稿/已驳回结算单按当前运输单运费刷新明细快照与合计。]]
|
||||
- [[_COMMUNITY_审批记录已全部完成但结算单仍停留在 approving 时自动纠正(兼容历史脏数据)|审批记录已全部完成但结算单仍停留在 approving 时自动纠正(兼容历史脏数据)]]
|
||||
- [[_COMMUNITY_无段表数据时回退计划产品级导出(兼容旧数据)。|无段表数据时回退计划产品级导出(兼容旧数据)。]]
|
||||
- [[_COMMUNITY_构建归档导出数据行:每计划 × 每段次 × 每段产品一行。|构建归档导出数据行:每计划 × 每段次 × 每段产品一行。]]
|
||||
- [[_COMMUNITY_单侧保存计划合同关联(旧计划级接口,兼容保留)。|单侧保存计划合同关联(旧计划级接口,兼容保留)。]]
|
||||
- [[_COMMUNITY_单侧保存计划合同关联(旧计划级接口,兼容保留)。|单侧保存计划合同关联(旧计划级接口,兼容保留)。]]
|
||||
- [[_COMMUNITY_解析司机:显式选择优先,否则取车辆关联司机;均无则允许为空。|解析司机:显式选择优先,否则取车辆关联司机;均无则允许为空。]]
|
||||
- [[_COMMUNITY_批量从 CRM 产品主数据读取易制毒易制爆标识。|批量从 CRM 产品主数据读取易制毒/易制爆标识。]]
|
||||
- [[_COMMUNITY_列表筛选:计划下存在 CRM 标识为易制毒易制爆的产品。|列表筛选:计划下存在 CRM 标识为易制毒/易制爆的产品。]]
|
||||
- [[_COMMUNITY_列表筛选:存在危化产品且至少一张必需证书未上传。|列表筛选:存在危化产品且至少一张必需证书未上传。]]
|
||||
- [[_COMMUNITY_计划内所有危化品产品的所需证书槽位均已上传。|计划内所有危化品产品的所需证书槽位均已上传。]]
|
||||
- [[_COMMUNITY_全部危化品证书已上传时,自动标记证书齐备(与人工确认等效)。|全部危化品证书已上传时,自动标记证书齐备(与人工确认等效)。]]
|
||||
- [[_COMMUNITY_写入更新草稿运输单(pl_transport + pl_plan_transport),计划保持待安排。|写入/更新草稿运输单(pl_transport + pl_plan_transport),计划保持待安排。]]
|
||||
- [[_COMMUNITY_同步运输预选到草稿运输子表(pl_transport)。|同步运输预选到草稿运输子表(pl_transport)。]]
|
||||
- [[_COMMUNITY_装货段与 plan 11;uk_pl_plan_load_plan 仅按 plan_id 唯一,软删后不可再 INSERT,须原地更新。|装货段与 plan 1:1;uk_pl_plan_load_plan 仅按 plan_id 唯一,软删后不可再 INSERT,须原地更新。]]
|
||||
- [[_COMMUNITY_分配同租户、同报销日期下的标题序号(MAX+1)。 配合 uk_tenant_reimburse_date_title_seq 唯一约束,并发冲突时由上|分配同租户、同报销日期下的标题序号(MAX+1)。 配合 uk_tenant_reimburse_date_title_seq 唯一约束,并发冲突时由上]]
|
||||
- [[_COMMUNITY_codebash (cd pathtoshanxia2.0)|code:bash (cd /path/to/shanxia2.0)]]
|
||||
- [[_COMMUNITY_codebash (.start-prod.sh status 查看状态)|code:bash (./start-prod.sh status # 查看状态)]]
|
||||
@@ -560,7 +457,7 @@
|
||||
## Import Cycles
|
||||
- None detected.
|
||||
|
||||
## Communities (844 total, 323 thin omitted)
|
||||
## Communities (741 total, 222 thin omitted)
|
||||
|
||||
### Community 0 - "Community 0"
|
||||
Cohesion: 0.14
|
||||
@@ -568,7 +465,7 @@ Nodes (33): _advance_contract_after_approval(), approve_contract(), approve_cont
|
||||
|
||||
### Community 1 - "Community 1"
|
||||
Cohesion: 0.03
|
||||
Nodes (220): clue_assign(), clue_convert(), clue_create(), clue_delete(), clue_detail(), clue_export(), clue_follow_create(), clue_follow_delete() (+212 more)
|
||||
Nodes (225): clue_assign(), clue_convert(), clue_create(), clue_delete(), clue_detail(), clue_export(), clue_follow_create(), clue_follow_delete() (+217 more)
|
||||
|
||||
### Community 2 - "Community 2"
|
||||
Cohesion: 0.10
|
||||
@@ -576,11 +473,11 @@ Nodes (19): category_add(), category_delete(), category_tree(), category_update(
|
||||
|
||||
### Community 3 - "Community 3"
|
||||
Cohesion: 0.04
|
||||
Nodes (148): approve_carrier(), _assert_personnel_sys_user_bind(), bind_vehicle_driver(), _body_to_params(), CarrierExportBody, create_carrier(), create_driver(), create_personnel() (+140 more)
|
||||
Nodes (157): approve_carrier(), _assert_personnel_sys_user_bind(), bind_vehicle_driver(), _body_to_params(), CarrierExportBody, create_carrier(), create_driver(), create_personnel() (+149 more)
|
||||
|
||||
### Community 4 - "Community 4"
|
||||
Cohesion: 0.04
|
||||
Nodes (116): _apply_exclude_follow_status_filter(), _apply_follow_status_filter(), _body_to_params(), _build_driver_url(), cancel_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract() (+108 more)
|
||||
Nodes (121): _apply_exclude_follow_status_filter(), _apply_follow_status_filter(), _body_to_params(), _build_driver_url(), cancel_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract() (+113 more)
|
||||
|
||||
### Community 5 - "Community 5"
|
||||
Cohesion: 0.05
|
||||
@@ -607,8 +504,8 @@ Cohesion: 0.15
|
||||
Nodes (42): PlVehicleMaintenanceApply, PlVehicleMaintenanceProcess, 车辆维保申请 pl_vehicle_maintenance_apply, 车辆维保处理登记 pl_vehicle_maintenance_process, Decimal, VehicleMaintenanceApplyCreate, VehicleMaintenanceApplyRead, VehicleMaintenanceApplyReminder (+34 more)
|
||||
|
||||
### Community 12 - "Community 12"
|
||||
Cohesion: 0.11
|
||||
Nodes (29): _attach_history_products(), _build_history_page(), _build_page(), _get_by_token(), _history_status_label(), _models(), _parse_history_date(), date (+21 more)
|
||||
Cohesion: 0.15
|
||||
Nodes (22): PlTransportProductBrandQty, PlTransportProductFeedback, 运输单按产品回传 pl_transport_product_feedback, 运输单产品回传品牌数量 pl_transport_product_brand_qty, _dict_field(), format_brand_qty_summary(), load_transport_driver_product_feedbacks(), persist_transport_product_feedback() (+14 more)
|
||||
|
||||
### Community 13 - "Community 13"
|
||||
Cohesion: 0.06
|
||||
@@ -636,7 +533,7 @@ Nodes (49): download_reimburse_import_template(), build_annotated_result_bytes()
|
||||
|
||||
### Community 20 - "Community 20"
|
||||
Cohesion: 0.06
|
||||
Nodes (104): _apply_plan_product_update(), AutoGenerateMonthlyResult, create_plan(), PlanExportBody, PlanRelatedData, ThirdPartyPlanPageData, list_public_vehicle_plates(), Session (+96 more)
|
||||
Nodes (99): _apply_plan_product_update(), AutoGenerateMonthlyResult, create_plan(), PlanExportBody, PlanRelatedData, ThirdPartyPlanPageData, WeighingExportBody, WeighingRelatedData (+91 more)
|
||||
|
||||
### Community 21 - "Community 21"
|
||||
Cohesion: 0.14
|
||||
@@ -655,8 +552,8 @@ Cohesion: 0.11
|
||||
Nodes (27): approve_apply(), disburse_apply(), list_done(), list_pending(), Session, reject_apply(), create_apply(), create_record() (+19 more)
|
||||
|
||||
### Community 26 - "Community 26"
|
||||
Cohesion: 0.06
|
||||
Nodes (76): archive_plan(), archive_plan_draft(), get_plan(), PlanArchiveFeedbacksBlock, PlanArchiveFreightBlock, PlanArchiveProductItem, PlanProductCreate, PlanTransportCreateBlock (+68 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (94): archive_plan(), archive_plan_draft(), update_plan(), PlanArchiveProductItem, PlanProductCreate, PlanTransportCreateBlock, apply_archive_stop_quantities(), Session (+86 more)
|
||||
|
||||
### Community 27 - "Community 27"
|
||||
Cohesion: 0.07
|
||||
@@ -679,8 +576,8 @@ Cohesion: 0.12
|
||||
Nodes (24): create_invoice(), 一次上传一条发票:多文件挂同一档案,金额为总额,只写一条额度流水。 使用 request.form().getlist,兼容只传 1 个文件时 Fas, BxInvoice, BxInvoiceLedger, BxInvoiceWalletSummary, 报销(bx)模块数据模型 — 对齐 docs/sql/20260606_bx_tables.sql, InvoiceService, InvoiceLedgerService (+16 more)
|
||||
|
||||
### Community 34 - "Community 34"
|
||||
Cohesion: 0.11
|
||||
Nodes (31): _assert_editable(), _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), get_public_pound_qr(), _parse_feedback_images(), Session (+23 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (23): _assert_editable(), _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), get_public_pound_qr(), _parse_feedback_images(), Session (+15 more)
|
||||
|
||||
### Community 35 - "Community 35"
|
||||
Cohesion: 0.14
|
||||
@@ -700,7 +597,7 @@ Nodes (81): PlFreightSettlement, PlFreightSettlementApproval, PlFreightSettlemen
|
||||
|
||||
### Community 39 - "Community 39"
|
||||
Cohesion: 0.04
|
||||
Nodes (91): _make_handlers(), SoftDeleteModel, CrmProductBrand, BizAttachment, PlInboundOrderItem, PlInboundOrderItemBrandQty, PlOcrUsageMonth, PlOutboundOrderItem (+83 more)
|
||||
Nodes (98): _attach_history_products(), _build_history_page(), _build_page(), _get_by_token(), _history_status_label(), _make_handlers(), _models(), _parse_history_date() (+90 more)
|
||||
|
||||
### Community 40 - "Community 40"
|
||||
Cohesion: 0.15
|
||||
@@ -716,11 +613,11 @@ Nodes (63): _advance_filters_from_params(), advance_issue_stats(), _advance_issu
|
||||
|
||||
### Community 43 - "Community 43"
|
||||
Cohesion: 0.07
|
||||
Nodes (72): create_plan(), create_plan_full(), _generate_plan_no(), 创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输), 生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置), update_plan(), generate_uuid(), PlanDeliveryBody (+64 more)
|
||||
Nodes (67): create_plan_full(), 创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输), generate_uuid(), PlPlanContract, 运输计划-合同关联(分侧多选) pl_plan_contract, PlanDeliveryBody, PlanLoadBody, PlanStopProductBody (+59 more)
|
||||
|
||||
### Community 45 - "Community 45"
|
||||
Cohesion: 0.22
|
||||
Nodes (17): get_print_delivery_slip(), 按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。, DeliveryPrintCustomerOption, DeliverySlipPrintRead, build_delivery_slip_print(), _customer_key(), _delivery_matches_customer(), get_delivery_slip_print_context() (+9 more)
|
||||
Nodes (8): contact_add(), contact_update(), ContactByCustomerBody, ContactCreateBody, ContactDetailBody, ContactSetPrimaryBody, ContactUpdateBody, CRM 联系人 Pydantic Schemas
|
||||
|
||||
### Community 46 - "Community 46"
|
||||
Cohesion: 0.20
|
||||
@@ -747,8 +644,8 @@ Cohesion: 0.26
|
||||
Nodes (18): create_contact(), get_contact(), list_contacts_by_customer(), _parse_optional_date(), Any, date, Session, _row_to_dict() (+10 more)
|
||||
|
||||
### Community 54 - "Community 54"
|
||||
Cohesion: 0.17
|
||||
Nodes (67): AttachmentDownloadUrlBody, demo_xlsx_export(), DemoXlsxColumnSpec, DemoXlsxExportBody, DeptCreateBody, DeptExportBody, DeptUpdateBody, DictDataCreateBody (+59 more)
|
||||
Cohesion: 0.19
|
||||
Nodes (63): AttachmentDownloadUrlBody, demo_xlsx_export(), DemoXlsxColumnSpec, DemoXlsxExportBody, DeptCreateBody, DeptExportBody, DeptUpdateBody, DictDataCreateBody (+55 more)
|
||||
|
||||
### Community 56 - "Community 56"
|
||||
Cohesion: 0.36
|
||||
@@ -778,6 +675,10 @@ Nodes (33): CRM 报价单 API 路由 — 挂接到 crm.router, QuoteApproverSett
|
||||
Cohesion: 0.10
|
||||
Nodes (36): _extract_qty(), _fmt_qty(), normalize_stop_dibang_fields(), Any, Decimal, 运输计划多段:内部客户地磅默认值与数量平衡校验, 地磅默认勾选以本段客户是否为内部客户(山峡/云栋)为准。, 归一化段次地磅勾选与方向。 - 非内部客户:强制不生成地磅单 - 内部客户:尊重显式勾选值(含可选车取消勾选传 0);仅 None 时用默认 (+28 more)
|
||||
|
||||
### Community 64 - "Community 64"
|
||||
Cohesion: 0.47
|
||||
Nodes (8): create_oss(), get_oss_by_id(), get_oss_by_url(), Session, 按主键 id 查询附件(兼容旧 CRM 雪花 oss_id 迁入后的记录), 将 fileUrl 或旧 CRM 数字 ossId 解析为 MinIO 相对路径。 门户新上传把相对路径写入业务字段;迁入合同附件仍存数字 ossId, resolve_storage_path(), SysOss
|
||||
|
||||
### Community 65 - "Community 65"
|
||||
Cohesion: 0.09
|
||||
Nodes (34): get_current_time(), parse_datetime(), datetime, get_pool_record(), list_pool_records(), Any, Session, _row_to_dict() (+26 more)
|
||||
@@ -795,8 +696,8 @@ Cohesion: 0.19
|
||||
Nodes (17): contract_product_has_fixed_qty(), effective_arranged_total(), evaluate_product_qty_for_arrange(), 已安排合计 − 本计划旧量 + 本计划新量。, 返回: - None: 跳过(本次无量) - kind=violation | remaining | framework_cumula, 安排运输时合同数量硬拦 / 提醒纯函数单测。, test_effective_arranged_total_rounds(), test_effective_arranged_total_subtracts_old() (+9 more)
|
||||
|
||||
### Community 70 - "Community 70"
|
||||
Cohesion: 0.12
|
||||
Nodes (44): put_plan_side_contracts(), put_plan_stop_contracts(), PlPlanContract, 运输计划-合同关联(分侧多选) pl_plan_contract, PlanContractGapRead, PlanContractLink, PlanProductRead, build_plan_contract_gap_read() (+36 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (38): put_plan_side_contracts(), put_plan_stop_contracts(), PlanContractGapRead, PlanContractLink, PlanProductRead, build_plan_contract_gap_read(), _clear_legacy_side_contracts(), _delivery_stop_gap_expr() (+30 more)
|
||||
|
||||
### Community 71 - "Community 71"
|
||||
Cohesion: 0.14
|
||||
@@ -847,12 +748,12 @@ Cohesion: 0.12
|
||||
Nodes (20): BxAdvanceApply, BxAdvanceApproval, AdvanceService, Any, Session, 同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。, 返回全部审批动作,按时间正序排列,用于展示完整审批历史。, filter_current_cycle_approvals() (+12 more)
|
||||
|
||||
### Community 88 - "CrmProduct"
|
||||
Cohesion: 0.13
|
||||
Nodes (45): generate_id(), DutyAssignment, DutyDay, DutySlot, 值班排班模型 — docs/superpowers/specs/2026-08-14-duty-schedule-design.md, assert_user_is_duty_staff(), _assignment_dict(), build_public_url() (+37 more)
|
||||
Cohesion: 0.12
|
||||
Nodes (47): generate_id(), DutyAssignment, DutyDay, DutySlot, 值班排班模型 — docs/superpowers/specs/2026-08-14-duty-schedule-design.md, assert_user_is_duty_staff(), _assignment_dict(), build_public_url() (+39 more)
|
||||
|
||||
### Community 89 - "pl_ocr_service.py"
|
||||
Cohesion: 0.09
|
||||
Nodes (57): accumulate_stop_products(), aggregate_contract_product_plan_qtys(), attach_plan_qty_fields_to_products(), auto_start_execute_approved_contracts(), _bucket_for_plan(), build_contract_qty_reminder_payload(), collect_plan_contract_qty_checks(), contract_ids_linked_to_plan() (+49 more)
|
||||
Nodes (64): accumulate_stop_products(), aggregate_contract_product_plan_qtys(), attach_plan_qty_fields_to_products(), auto_start_execute_approved_contracts(), _bucket_for_plan(), build_contract_qty_reminder_payload(), collect_plan_contract_qty_checks(), contract_ids_linked_to_plan() (+56 more)
|
||||
|
||||
### Community 90 - "WechatMessageService"
|
||||
Cohesion: 0.12
|
||||
@@ -870,13 +771,17 @@ Nodes (32): _address_to_read(), _body_to_params(), _build_address_query(), creat
|
||||
Cohesion: 0.08
|
||||
Nodes (17): _db_pool_keepalive_loop(), _error_json(), lifespan(), Exception, Request, 数据库异常:返回 JSON 并保留 CORS 头,避免浏览器只报跨域错误, 未捕获异常:统一 JSON 500,确保跨域场景下仍有 Access-Control-Allow-Origin, 定期 ping MySQL,避免远程库/NAT 回收空闲 TCP 后首请求长时间卡住。 (+9 more)
|
||||
|
||||
### Community 97 - "contact.py"
|
||||
Cohesion: 0.47
|
||||
Nodes (5): list_public_vehicle_plates(), Session, 地磅公共只读:免登车牌 options(现场填写页), 免登:按出入库/计划解析 tenant_no,返回 pl_vehicle 车牌(self + carrier)。, _resolve_tenant_no()
|
||||
|
||||
### Community 98 - "LocalStorage"
|
||||
Cohesion: 0.11
|
||||
Nodes (32): approve_quote(), can_user_approve(), create_approval_records(), delete_pending_approvals(), get_quote_approval(), invalidate_all_approvals(), list_quote_approvals(), Any (+24 more)
|
||||
|
||||
### Community 99 - "redis_client.py"
|
||||
Cohesion: 0.10
|
||||
Nodes (34): build_dict_value_from_label(), ensure_dict_data(), format_time_label(), grab(), normalize_person_name(), _pad_hhmm(), parse_hhmm(), parse_time_range_input() (+26 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (50): DutyAssignmentIn, DutyDaySaveBody, DutySlotSaveIn, 值班排班 Pydantic schemas, build_dict_value_from_label(), ensure_dict_data(), format_time_label(), grab() (+42 more)
|
||||
|
||||
### Community 100 - "price_letter_detail"
|
||||
Cohesion: 0.27
|
||||
@@ -891,8 +796,8 @@ Cohesion: 0.12
|
||||
Nodes (33): create_clue_follow(), delete_clue_follow(), get_clue_follow(), get_follow_statistics(), list_clue_follows(), Any, Session, 更新线索跟进记录,必要时同步线索 next_time (+25 more)
|
||||
|
||||
### Community 104 - "apply_crm_create_by_scope"
|
||||
Cohesion: 0.08
|
||||
Nodes (55): PlanDeliveryRead, PlanLoadRead, PlanStopProductRead, _append_legacy_plan_product_rows(), _append_stop_product_rows(), build_plan_archive_export_rows(), _empty_product_fields(), _format_date_value() (+47 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (77): get_print_delivery_slip(), 按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。, DeliveryPrintCustomerOption, DeliverySlipPrintRead, PlanDeliveryRead, PlanLoadRead, PlanStopProductRead, _append_legacy_plan_product_rows() (+69 more)
|
||||
|
||||
### Community 106 - "site.py"
|
||||
Cohesion: 0.17
|
||||
@@ -914,10 +819,6 @@ Nodes (37): CertRow, _cert_row_complete(), collect_required_cert_errors(), _find
|
||||
Cohesion: 0.18
|
||||
Nodes (31): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), legacy_parent_id(), load_oss_id_to_url(), load_runtime_settings() (+23 more)
|
||||
|
||||
### Community 115 - "site.py"
|
||||
Cohesion: 0.31
|
||||
Nodes (9): 解析计划产品行 upsert 主键:有合法 id 则保留;无 id 则新建;非法 id 则 422。, resolve_plan_product_id_for_upsert(), _minimal_prod(), build_plan_product / upsert 应保持 id 稳定,并拒绝外键无效的产品行 id。, test_build_plan_product_generates_when_missing(), test_build_plan_product_keeps_row_id(), test_upsert_plan_product_generates_when_missing(), test_upsert_plan_product_keeps_payload_id() (+1 more)
|
||||
|
||||
### Community 116 - "Community 116"
|
||||
Cohesion: 0.13
|
||||
Nodes (23): create_workflow(), delete_workflow(), get_workflow(), get_workflow_by_biz_type(), list_workflows(), Session, save_workflow_nodes(), update_workflow() (+15 more)
|
||||
@@ -934,10 +835,6 @@ Nodes (28): apply_biz_backfill(), BackfillRule, BizRef, build_biz_index(), count
|
||||
Cohesion: 0.11
|
||||
Nodes (12): get_wechat_pay_client(), get_wechat_pay_v2(), Any, 微信支付工具模块 支持微信支付 V3 API 文档参考: https://pay.weixin.qq.com/docs/v3/apis/index.html, 统一下单接口 (V3) Args: out_trade_no: 商户订单号 total_amo, 申请退款 Args: out_trade_no: 商户订单号 total_amount: 订单, 小程序调起支付的二次签名参数(与公众号 JSAPI 规则一致), 统一下单 (V2 API) Args: out_trade_no: 商户订单号 total_f (+4 more)
|
||||
|
||||
### Community 120 - "list_duty_staff_users"
|
||||
Cohesion: 0.36
|
||||
Nodes (8): assert_can_save_as_draft(), resolve_follow_status_on_save(), validate_draft_min_fields(), test_assert_can_save_as_draft_rejects_arranged(), test_resolve_follow_status_draft_always_drafting(), test_resolve_follow_status_formal_promotes_drafting(), test_validate_draft_min_fields_allows_missing_create_date(), test_validate_draft_min_fields_requires_belongs_company()
|
||||
|
||||
### Community 121 - "_build_user_info_payload"
|
||||
Cohesion: 0.40
|
||||
Nodes (3): Any, 供 get_tenant_no 等门户工具使用。, 与门户 JWT / apply_data_scope 所需的 user_info 字段对齐。
|
||||
@@ -991,8 +888,8 @@ Cohesion: 0.20
|
||||
Nodes (25): derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+17 more)
|
||||
|
||||
### Community 140 - "crm_export_columns.py"
|
||||
Cohesion: 0.09
|
||||
Nodes (33): DutyAssignmentIn, DutyDaySaveBody, DutySlotSaveIn, 值班排班 Pydantic schemas, 绑合同时:计划段产品包装必填,且必须属于本合同该产品的包装集合。 返回 (ok, error_message)。, validate_stop_products_package_against_contract(), SimpleNamespace, 同日同班次曾软删后再启用:应复活旧 slot,避免 uk_day_shift 堆积。 (+25 more)
|
||||
Cohesion: 0.36
|
||||
Nodes (8): 绑合同时:计划段产品包装必填,且必须属于本合同该产品的包装集合。 返回 (ok, error_message)。, validate_stop_products_package_against_contract(), 脏数据防御:合同行包装为空时不强制计划填包装。, test_contract_empty_package_allows_empty_plan(), test_package_must_be_in_contract_set(), test_product_not_on_contract_skipped(), test_require_package_when_contract_bound(), test_valid_package_passes()
|
||||
|
||||
### Community 142 - "clear_pl_plan_instance_data.py"
|
||||
Cohesion: 0.30
|
||||
@@ -1214,10 +1111,6 @@ Nodes (17): check_env(), check_python(), create_venv(), init_env(), install_depe
|
||||
Cohesion: 0.21
|
||||
Nodes (3): FakeRedis, test_consume_legacy_uuid_from_redis(), test_consume_unknown_uuid_returns_none()
|
||||
|
||||
### Community 234 - "calc_age_from_chinese_id_card"
|
||||
Cohesion: 0.23
|
||||
Nodes (9): calc_age_from_chinese_id_card(), date, 从 18 位身份证号计算周岁。号码不完整或出生日期无效时返回 None。, 按 18 位身份证号重算 pl_personnel.age,仅更新算出值与库中不一致的记录。返回更新条数。, refresh_personnel_ages_from_id_card(), 每日凌晨重算 pl_personnel 年龄(有合法 18 位身份证号的记录)。, refresh_personnel_ages_job(), test_calc_age_from_18_digit_id() (+1 more)
|
||||
|
||||
### Community 235 - "wx_qr_session.py"
|
||||
Cohesion: 0.28
|
||||
Nodes (14): consume_success(), create_session(), get_session(), invalidate(), mark_failed(), mark_scanned(), mark_success(), Any (+6 more)
|
||||
@@ -1274,10 +1167,6 @@ Nodes (11): create_leave(), get_leave(), list_leaves(), Any, Session, _row_to_di
|
||||
Cohesion: 0.39
|
||||
Nodes (10): create_site(), get_site(), list_sites(), Any, Session, _row_to_dict(), site_code_exists(), soft_delete_site() (+2 more)
|
||||
|
||||
### Community 271 - "statistics.py"
|
||||
Cohesion: 0.45
|
||||
Nodes (11): _customer_base_query(), get_follow_statistics(), get_industry_statistics(), get_level_statistics(), get_overview_statistics(), get_owner_statistics(), get_source_statistics(), get_trend_statistics() (+3 more)
|
||||
|
||||
### Community 272 - "default_settlement_clause"
|
||||
Cohesion: 0.42
|
||||
Nodes (7): default_settlement_clause(), test_advance_payment_clause(), test_arrive_payment_clause(), test_empty_falls_back_to_arrive(), test_monthly_settlement_clause_uses_label(), test_unknown_falls_back_to_arrive(), test_volume_quarterly_other_labels()
|
||||
@@ -1341,22 +1230,22 @@ Nodes (6): eq_unicode(), like_unicode(), MySQL 字符串比较/模糊匹配时
|
||||
## Knowledge Gaps
|
||||
- **30 isolated node(s):** `Config`, `Config`, `Config`, `Config`, `Config` (+25 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **323 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **222 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `generate_uuid()` connect `Community 43` to `Community 0`, `BaseStorage`, `_filter_export_rows_by_ids`, `Community 3`, `Community 4`, `dict_type.py`, `tenant.py`, `Community 7`, `inventory_id.py`, `Community 10`, `post.py`, `leave.py`, `Community 13`, `site.py`, `Community 11`, `Community 16`, `list_products`, `Community 20`, `.to_tenant_user_dict`, `Community 22`, `Community 24`, `Community 26`, `Community 27`, `Community 28`, `datetime_parse.py`, `create_from_quote`, `Community 31`, `WechatMessageService`, `Community 33`, `Community 34`, `Community 29`, `Community 36`, `Community 37`, `Community 38`, `Community 39`, `run_auto_generate_monthly_plans`, `mp_webview_ticket.py`, `inventory.py`, `Community 46`, `pl_ocr_service.py`, `__init__.py`, `Community 49`, `Community 52`, `Community 56`, `Community 59`, `Community 61`, `assert_row_deletable_by_creator`, `Community 65`, `Community 67`, `role.py`, `sample_code.py`, `Community 70`, `Community 71`, `quote_share_log.py`, `Community 68`, `opportunity_follow.py`, `Community 77`, `resolve_crm_product`, `Community 83`, `list_customers`, `CrmProduct`, `WechatMessageService`, `api_request_log_middleware.py`, `LocalStorage`, `redis_client.py`, `BaseStorage`, `pl_internal_customer.py`, `site.py`, `Community 116`, `menu.py`, `dept.py`, `oper_log.py`?**
|
||||
_High betweenness centrality (0.094) - this node is a cross-community bridge._
|
||||
- **Why does `BaseModel` connect `Community 54` to `BaseStorage`, `Community 1`, `Community 3`, `Community 4`, `Community 2`, `Community 6`, `Community 7`, `context.py`, `Community 5`, `Community 11`, `crm_export_columns.py`, `Community 12`, `Community 14`, `response.py`, `Community 17`, `Community 16`, `Community 147`, `Community 20`, `Community 21`, `Community 23`, `Community 24`, `Community 26`, `WechatMessageService`, `Community 27`, `Community 28`, `Community 29`, `Community 34`, `Community 36`, `Community 39`, `Community 40`, `Community 42`, `inventory.py`, `Community 43`, `Community 45`, `Community 48`, `Community 49`, `public_transport_site.py`, `Community 58`, `Community 62`, `Community 70`, `Community 78`, `crm_quote_pdf.py`, `PlCarrier`, `Community 83`, `api_request_log_middleware.py`, `apply_pl_scope`, `pool_rule.py`, `Community 116`, `customer_options`?**
|
||||
_High betweenness centrality (0.090) - this node is a cross-community bridge._
|
||||
- **Why does `generate_uuid()` connect `Community 43` to `Community 0`, `BaseStorage`, `_filter_export_rows_by_ids`, `Community 3`, `Community 4`, `dict_type.py`, `tenant.py`, `Community 7`, `inventory_id.py`, `Community 10`, `post.py`, `leave.py`, `Community 13`, `site.py`, `Community 12`, `Community 16`, `list_products`, `Community 11`, `Community 20`, `.to_tenant_user_dict`, `Community 22`, `Community 24`, `Community 26`, `Community 27`, `Community 28`, `datetime_parse.py`, `create_from_quote`, `Community 31`, `WechatMessageService`, `Community 33`, `Community 29`, `Community 36`, `Community 37`, `Community 38`, `Community 39`, `run_auto_generate_monthly_plans`, `mp_webview_ticket.py`, `inventory.py`, `Community 46`, `pl_ocr_service.py`, `__init__.py`, `Community 49`, `Community 52`, `Community 56`, `Community 59`, `Community 61`, `assert_row_deletable_by_creator`, `Community 65`, `Community 64`, `Community 67`, `role.py`, `sample_code.py`, `Community 70`, `Community 71`, `quote_share_log.py`, `Community 68`, `opportunity_follow.py`, `Community 77`, `resolve_crm_product`, `Community 83`, `list_customers`, `CrmProduct`, `WechatMessageService`, `api_request_log_middleware.py`, `LocalStorage`, `redis_client.py`, `BaseStorage`, `pl_internal_customer.py`, `Community 116`, `menu.py`, `dept.py`, `oper_log.py`?**
|
||||
_High betweenness centrality (0.095) - this node is a cross-community bridge._
|
||||
- **Why does `BaseModel` connect `Community 54` to `BaseStorage`, `Community 1`, `Community 3`, `Community 4`, `Community 2`, `Community 6`, `Community 7`, `context.py`, `Community 5`, `Community 11`, `Community 14`, `response.py`, `Community 17`, `Community 16`, `Community 147`, `Community 20`, `Community 21`, `Community 23`, `Community 24`, `Community 26`, `WechatMessageService`, `Community 27`, `Community 28`, `Community 29`, `Community 34`, `Community 36`, `Community 39`, `Community 40`, `Community 42`, `inventory.py`, `Community 43`, `Community 45`, `Community 48`, `Community 49`, `public_transport_site.py`, `Community 58`, `Community 62`, `Community 70`, `Community 78`, `crm_quote_pdf.py`, `PlCarrier`, `Community 83`, `api_request_log_middleware.py`, `redis_client.py`, `apply_crm_create_by_scope`, `apply_pl_scope`, `pool_rule.py`, `site.py`, `Community 116`, `customer_options`?**
|
||||
_High betweenness centrality (0.092) - this node is a cross-community bridge._
|
||||
- **Why does `Settings` connect `Settings` to `list_contacts`, `migrate_crm_product.py`, `iter_user_menu_perm_codes`, `test_pl_plan_stop_rules.py`, `create_from_quote`, `dept.py`, `pl_plan_list_attachments.py`, `Community 118`, `WechatMessageService`, `customer_options`, `Community 92`, `ethnic.py`?**
|
||||
_High betweenness centrality (0.081) - this node is a cross-community bridge._
|
||||
_High betweenness centrality (0.082) - this node is a cross-community bridge._
|
||||
- **Are the 31 inferred relationships involving `DbUserContext` (e.g. with `InventoryExportBody` and `InventoryRelatedData`) actually correct?**
|
||||
_`DbUserContext` has 31 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **What connects `API 路由包 — 山峡化工生产一体化门户`, `返回运营端角色下拉选项(label=库中角色名,value=Web 角色码)。`, `返回用户下拉选项(label=昵称,value=用户ID,附带 nickName/userNo)。 供申请人/审批人等选择场景使用,返回本租户全部有效` to the rest of the system?**
|
||||
_1130 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
_1028 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `Community 0` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.1408199643493761 - nodes in this community are weakly interconnected._
|
||||
- **Should `Community 1` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.02813852813852814 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.028128380815001804 - nodes in this community are weakly interconnected._
|
||||
+385
-1303
File diff suppressed because it is too large.
Load diff
@@ -50,7 +50,7 @@
|
||||
**Files:**
|
||||
- Create: `docs/sql/migrations/2026-09-26-pl-vehicle-recharge-workflow.sql`
|
||||
|
||||
- [ ] **Step 1: 编写迁移脚本核心内容**
|
||||
- [x] **Step 1: 编写迁移脚本核心内容**
|
||||
|
||||
```sql
|
||||
SET NAMES utf8mb4;
|
||||
@@ -128,7 +128,7 @@ WHERE a.del_flag = 0
|
||||
AND r.id IS NULL;
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 在测试库执行并核对**
|
||||
- [x] **Step 2: 在测试库执行并核对**
|
||||
|
||||
```bash
|
||||
cd backend && ./venv/bin/python -c "
|
||||
@@ -140,7 +140,7 @@ Expected: 列存在;两节点;原 pending 无发放单变为 `in_approval` +
|
||||
|
||||
- [ ] **Step 3: 生产库执行同一脚本**(用户确认后)
|
||||
|
||||
- [ ] **Step 4: Commit**
|
||||
- [x] **Step 4: Commit**
|
||||
|
||||
```bash
|
||||
git add docs/sql/migrations/2026-09-26-pl-vehicle-recharge-workflow.sql
|
||||
@@ -161,7 +161,7 @@ EOF
|
||||
- Modify: `backend/app/schemas/pl/vehicle_recharge.py`
|
||||
- Modify: `backend/app/services/bx/workflow.py`(`_DEFAULT_WORKFLOWS` + 保存节点时校验至多一个 `disburse`)
|
||||
|
||||
- [ ] **Step 1: 写失败测试(状态常量 / schema)**
|
||||
- [x] **Step 1: 写失败测试(状态常量 / schema)**
|
||||
|
||||
```python
|
||||
# backend/tests/test_pl_vehicle_recharge_workflow.py
|
||||
@@ -171,7 +171,7 @@ def test_apply_statuses_include_workflow_states():
|
||||
assert {"draft", "in_approval", "rejected", "disbursed", "cancelled"} <= APPLY_STATUSES
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 跑测确认失败**
|
||||
- [x] **Step 2: 跑测确认失败**
|
||||
|
||||
```bash
|
||||
cd backend && ./venv/bin/python -m pytest tests/test_pl_vehicle_recharge_workflow.py::test_apply_statuses_include_workflow_states -v
|
||||
@@ -179,7 +179,7 @@ cd backend && ./venv/bin/python -m pytest tests/test_pl_vehicle_recharge_workflo
|
||||
|
||||
Expected: FAIL(`APPLY_STATUSES` 未定义或仍是旧集合)
|
||||
|
||||
- [ ] **Step 3: 实现 schema 常量与 Read 扩展字段**
|
||||
- [x] **Step 3: 实现 schema 常量与 Read 扩展字段**
|
||||
|
||||
在 `vehicle_recharge.py` 增加:
|
||||
|
||||
@@ -201,7 +201,7 @@ if disburse_count > 1:
|
||||
raise HTTPException(400, detail="发放登记节点至多一个")
|
||||
```
|
||||
|
||||
- [ ] **Step 4: 跑测通过 + Commit**
|
||||
- [x] **Step 4: 跑测通过 + Commit**
|
||||
|
||||
```bash
|
||||
cd backend && ./venv/bin/python -m pytest tests/test_pl_vehicle_recharge_workflow.py -v
|
||||
@@ -221,7 +221,7 @@ EOF
|
||||
- Modify: `backend/app/services/pl_vehicle_recharge_service.py`
|
||||
- Modify: `backend/app/api/pl/vehicle_recharge.py`
|
||||
|
||||
- [ ] **Step 1: 测试 submit 与再提交 round**
|
||||
- [x] **Step 1: 测试 submit 与再提交 round**
|
||||
|
||||
```python
|
||||
def test_submit_sets_in_approval_and_first_node(monkeypatch):
|
||||
@@ -234,7 +234,7 @@ def test_resubmit_increments_round_keeps_history():
|
||||
...
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 实现**
|
||||
- [x] **Step 2: 实现**
|
||||
|
||||
- `create_apply`:`status="draft"`,`approval_round=0`,`wf_id/current_node=None`
|
||||
- `update_apply` / `cancel`:仅 `draft`/`rejected`
|
||||
@@ -245,7 +245,7 @@ def test_resubmit_increments_round_keeps_history():
|
||||
- `status=in_approval`,绑定 `wf_id`、`current_node`
|
||||
- `get_apply` / `apply_to_read`:附带 `approvals`(按 round、time)与关联 `record`
|
||||
|
||||
- [ ] **Step 3: 路由**
|
||||
- [x] **Step 3: 路由**
|
||||
|
||||
```python
|
||||
@router.post("/{apply_id}/submit")
|
||||
@@ -253,7 +253,7 @@ def submit_apply(...):
|
||||
return ok(svc.submit_apply(...))
|
||||
```
|
||||
|
||||
- [ ] **Step 4: pytest + Commit**
|
||||
- [x] **Step 4: pytest + Commit**
|
||||
|
||||
```bash
|
||||
cd backend && ./venv/bin/python -m pytest tests/test_pl_vehicle_recharge_workflow.py -v
|
||||
@@ -272,7 +272,7 @@ EOF
|
||||
- Create: `backend/app/services/pl_vehicle_recharge_approval_service.py`
|
||||
- Modify: `backend/app/api/pl/vehicle_recharge.py`(或新建 `vehicle_recharge_approval.py` 并注册)
|
||||
|
||||
- [ ] **Step 1: 测试**
|
||||
- [x] **Step 1: 测试**
|
||||
|
||||
```python
|
||||
def test_approve_advances_to_next_node(): ...
|
||||
@@ -281,7 +281,7 @@ def test_disburse_writes_record_and_disbursed(): ...
|
||||
def test_approve_forbidden_on_disburse_node(): ...
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 实现核心逻辑**
|
||||
- [x] **Step 2: 实现核心逻辑**
|
||||
|
||||
```python
|
||||
def _current_node_row(db, apply) -> BxWorkflowNode:
|
||||
@@ -322,7 +322,7 @@ def list_done_for_me(...):
|
||||
|
||||
发放页 `create_record`:若 `apply_id` 非空且申请 `status=in_approval`(走审批),拒绝,提示去「充值审批」处理。
|
||||
|
||||
- [ ] **Step 3: pytest + Commit**
|
||||
- [x] **Step 3: pytest + Commit**
|
||||
|
||||
```bash
|
||||
git commit -m "$(cat <<'EOF'
|
||||
@@ -340,7 +340,7 @@ EOF
|
||||
- Modify: `web-admin/src/api/pl/index.ts`
|
||||
- Modify: `web-admin/src/utils/pl-display.ts`
|
||||
|
||||
- [ ] **Step 1: 类型与方法**
|
||||
- [x] **Step 1: 类型与方法**
|
||||
|
||||
```ts
|
||||
// status: 'draft' | 'in_approval' | 'rejected' | 'disbursed' | 'cancelled'
|
||||
@@ -353,9 +353,9 @@ disburseVehicleRecharge: (id, data) => request.post(`/transport/vehicle-recharge
|
||||
// 流程:复用 bx workflow API bizType=vehicle_recharge,或 PL 封装
|
||||
```
|
||||
|
||||
- [ ] **Step 2: `getPlRechargeApplyStatusLabel` / TagType 映射新五态**
|
||||
- [x] **Step 2: `getPlRechargeApplyStatusLabel` / TagType 映射新五态**
|
||||
|
||||
- [ ] **Step 3: Commit**
|
||||
- [x] **Step 3: Commit**
|
||||
|
||||
```bash
|
||||
git commit -m "$(cat <<'EOF'
|
||||
@@ -374,11 +374,11 @@ EOF
|
||||
- Modify: `web-admin/src/router/modules/pl.ts`
|
||||
- Modify: `web-admin/src/App.vue`(标题「充值审批流程」)
|
||||
|
||||
- [ ] **Step 1: 复制报销配置页,改 `bizType` 为 `vehicle_recharge`**
|
||||
- [ ] **Step 2: 节点表单增加「节点动作」:`approve` / `disburse`**
|
||||
- [ ] **Step 3: 路由 `vehicle-recharge-workflow`,meta.title=`充值审批流程`**
|
||||
- [ ] **Step 4: 本地打开配置页,保存两节点,刷新仍在**
|
||||
- [ ] **Step 5: Commit**
|
||||
- [x] **Step 1: 复制报销配置页,改 `bizType` 为 `vehicle_recharge`**
|
||||
- [x] **Step 2: 节点表单增加「节点动作」:`approve` / `disburse`**
|
||||
- [x] **Step 3: 路由 `vehicle-recharge-workflow`,meta.title=`充值审批流程`**
|
||||
- [x] **Step 4: 本地打开配置页,保存两节点,刷新仍在**
|
||||
- [x] **Step 5: Commit**
|
||||
|
||||
```bash
|
||||
git commit -m "$(cat <<'EOF'
|
||||
@@ -396,13 +396,13 @@ EOF
|
||||
- Create: `web-admin/src/views/pl/vehicle-recharge-approval/index.vue`
|
||||
- Modify: `web-admin/src/router/modules/pl.ts`、`App.vue`
|
||||
|
||||
- [ ] **Step 1: P01 列表 + Tab「待我审批」「我已办」**
|
||||
- [ ] **Step 2: 详情弹窗:申请信息 + 按轮次审批历史 + 发放信息(有则显示)**
|
||||
- [ ] **Step 3: 待办操作区**
|
||||
- [x] **Step 1: P01 列表 + Tab「待我审批」「我已办」**
|
||||
- [x] **Step 2: 详情弹窗:申请信息 + 按轮次审批历史 + 发放信息(有则显示)**
|
||||
- [x] **Step 3: 待办操作区**
|
||||
- `action_type=approve`:通过 / 驳回(意见)
|
||||
- `action_type=disburse`:驳回 / 发放表单(字段对齐现 `vehicle-recharge-record` 弹窗)
|
||||
- [ ] **Step 4: 角标(可选):`pl_menu_badge` 增加充值审批 pending 计数,或本页自行展示条数**
|
||||
- [ ] **Step 5: Commit**
|
||||
- [x] **Step 4: 角标(可选):`pl_menu_badge` 增加充值审批 pending 计数,或本页自行展示条数**
|
||||
- [x] **Step 5: Commit**
|
||||
|
||||
```bash
|
||||
git commit -m "$(cat <<'EOF'
|
||||
@@ -421,11 +421,11 @@ EOF
|
||||
- Modify: `web-admin/src/views/pl/vehicle-recharge-apply/columnFilterDefs.ts`
|
||||
- Modify: `web-admin/src/views/pl/vehicle-recharge-record/index.vue`
|
||||
|
||||
- [ ] **Step 1: 申请列表状态筛选项换新五态;工具栏增加「提交」(选中 draft/rejected)**
|
||||
- [ ] **Step 2: 新建默认 draft;编辑仅 draft/rejected**
|
||||
- [ ] **Step 3: 查看弹窗增加「审核记录」「发放信息」分区**
|
||||
- [ ] **Step 4: 发放看板:对 `in_approval` 申请隐藏/禁用「发放」,提示走充值审批**
|
||||
- [ ] **Step 5: Commit**
|
||||
- [x] **Step 1: 申请列表状态筛选项换新五态;工具栏增加「提交」(选中 draft/rejected)**
|
||||
- [x] **Step 2: 新建默认 draft;编辑仅 draft/rejected**
|
||||
- [x] **Step 3: 查看弹窗增加「审核记录」「发放信息」分区**
|
||||
- [x] **Step 4: 发放看板:对 `in_approval` 申请隐藏/禁用「发放」,提示走充值审批**
|
||||
- [x] **Step 5: Commit**
|
||||
|
||||
```bash
|
||||
git commit -m "$(cat <<'EOF'
|
||||
@@ -439,10 +439,10 @@ EOF
|
||||
|
||||
### Task 9: 联调验收 + 图谱更新
|
||||
|
||||
- [ ] **Step 1: 按 spec §9 走通:提交 → 吴九华通过 → 汪璇登记 → 详情可见历史与发放**
|
||||
- [ ] **Step 2: 驳回 → 改单再提 → 第 2 轮历史仍在**
|
||||
- [ ] **Step 3: `./scripts/update-graph.sh all`(或 backend+frontend)**
|
||||
- [ ] **Step 4: 将设计文档状态保持「已批准」;计划任务勾选完成**
|
||||
- [ ] **Step 1: 按 spec §9 走通:提交 → 吴九华通过 → 汪璇登记 → 详情可见历史与发放**(待手工联调)
|
||||
- [ ] **Step 2: 驳回 → 改单再提 → 第 2 轮历史仍在**(待手工联调)
|
||||
- [x] **Step 3: `./scripts/update-graph.sh all`(或 backend+frontend)**
|
||||
- [x] **Step 4: 将设计文档状态保持「已批准」;计划任务勾选完成**
|
||||
|
||||
---
|
||||
|
||||
|
||||
+24
-14
@@ -1105,8 +1105,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/api/pl/index.ts": {
|
||||
"mtime": 1790148139.0,
|
||||
"ast_hash": "e2bd6011f8cb3364b85a3216f1fe3225",
|
||||
"mtime": 1790427628.5771275,
|
||||
"ast_hash": "4bfdb833f8ec83b4995f7311592d2959",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/api/pl/public-io-order.ts": {
|
||||
@@ -2725,8 +2725,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/router/modules/pl.ts": {
|
||||
"mtime": 1789221269.0,
|
||||
"ast_hash": "c7d533db7a79651307556c19aac85928",
|
||||
"mtime": 1790427799.6832807,
|
||||
"ast_hash": "98f7102c04c6b6f9ea0ef643333053dd",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/router/modules/sqxp.ts": {
|
||||
@@ -3265,8 +3265,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/utils/pl-display.ts": {
|
||||
"mtime": 1789656278.0,
|
||||
"ast_hash": "6e1fca5da95671375fd06ae7374e0396",
|
||||
"mtime": 1790427600.0823612,
|
||||
"ast_hash": "e87c43bd1735de51ca9a13f0de7e5cad",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/utils/pl-document-menu-badge.ts": {
|
||||
@@ -3420,8 +3420,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/utils/router/menu-icon.ts": {
|
||||
"mtime": 1786780828.0,
|
||||
"ast_hash": "8697ee8249b708738316ba7d905c9937",
|
||||
"mtime": 1790427923.8889365,
|
||||
"ast_hash": "5da72332a89782519aadf128ceb5fac5",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/utils/router/portal-home-cards.ts": {
|
||||
@@ -4520,18 +4520,28 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/views/pl/vehicle-recharge-apply/columnFilterDefs.ts": {
|
||||
"mtime": 1790392993.3340063,
|
||||
"ast_hash": "2bdb80bb8cf57664007a9c8ae4f6d3f5",
|
||||
"mtime": 1790427707.3076484,
|
||||
"ast_hash": "0b3a5581f602340dded6f8ee4fa7702b",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/views/pl/vehicle-recharge-apply/index.vue": {
|
||||
"mtime": 1790392994.9932032,
|
||||
"ast_hash": "007d8c9562acc117d3b4c80f4013ec73",
|
||||
"mtime": 1790427755.5556448,
|
||||
"ast_hash": "a8f5993861b9b2a2a6129a5e123d7b3f",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/views/pl/vehicle-recharge-approval/index.vue": {
|
||||
"mtime": 1790427928.4481502,
|
||||
"ast_hash": "4d15b1bd8b71ec197ef109bfb5769015",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/views/pl/vehicle-recharge-record/index.vue": {
|
||||
"mtime": 1790392996.5450058,
|
||||
"ast_hash": "37472f5a73889160e0912a80d138915a",
|
||||
"mtime": 1790427770.5638301,
|
||||
"ast_hash": "19ce680267625ab2d1e2db29d8e53084",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/views/pl/vehicle-recharge-workflow/index.vue": {
|
||||
"mtime": 1790427669.4111233,
|
||||
"ast_hash": "ba03d8bb06a18f1d0efbea8f431849d1",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/views/pl/vehicle-urea-apply/index.vue": {
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+15600
-19995
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user