1004 lines
54 KiB
JSON
1004 lines
54 KiB
JSON
{
|
||
"0": "Community 0",
|
||
"1": "Community 1",
|
||
"2": "Community 2",
|
||
"3": "Community 3",
|
||
"4": "Community 4",
|
||
"5": "Community 5",
|
||
"6": "Community 6",
|
||
"7": "Community 7",
|
||
"8": "Community 8",
|
||
"9": "Community 9",
|
||
"10": "Community 10",
|
||
"11": "Community 11",
|
||
"12": "Community 12",
|
||
"13": "Community 13",
|
||
"14": "Community 14",
|
||
"15": "Community 15",
|
||
"16": "Community 16",
|
||
"17": "Community 17",
|
||
"18": "Community 18",
|
||
"19": "Community 19",
|
||
"20": "Community 20",
|
||
"21": "Community 21",
|
||
"22": "Community 22",
|
||
"23": "Community 23",
|
||
"24": "Community 24",
|
||
"25": "Community 25",
|
||
"26": "Community 26",
|
||
"27": "Community 27",
|
||
"28": "Community 28",
|
||
"29": "Community 29",
|
||
"30": "Community 30",
|
||
"31": "Community 31",
|
||
"32": "Community 32",
|
||
"33": "Community 33",
|
||
"34": "Community 34",
|
||
"35": "Community 35",
|
||
"36": "Community 36",
|
||
"37": "Community 37",
|
||
"38": "Community 38",
|
||
"39": "Community 39",
|
||
"40": "Community 40",
|
||
"41": "Community 41",
|
||
"42": "Community 42",
|
||
"43": "Community 43",
|
||
"44": "Community 44",
|
||
"45": "Community 45",
|
||
"46": "Community 46",
|
||
"47": "Community 47",
|
||
"48": "Community 48",
|
||
"49": "Community 49",
|
||
"50": "Community 50",
|
||
"51": "Community 51",
|
||
"52": "Community 52",
|
||
"53": "Community 53",
|
||
"54": "Community 54",
|
||
"55": "Community 55",
|
||
"56": "Community 56",
|
||
"57": "Community 57",
|
||
"58": "Community 58",
|
||
"59": "Community 59",
|
||
"60": "Community 60",
|
||
"61": "Community 61",
|
||
"62": "Community 62",
|
||
"63": "Community 63",
|
||
"64": "Community 64",
|
||
"65": "Community 65",
|
||
"66": "Community 66",
|
||
"67": "Community 67",
|
||
"68": "Community 68",
|
||
"69": "Community 69",
|
||
"70": "Community 70",
|
||
"71": "Community 71",
|
||
"72": "Community 72",
|
||
"73": "Community 73",
|
||
"74": "Community 74",
|
||
"75": "apply_crm_create_by_scope",
|
||
"76": "opportunity_follow.py",
|
||
"77": "Community 77",
|
||
"78": "Community 78",
|
||
"79": "PlCarrier",
|
||
"80": "resolve_crm_product",
|
||
"81": "customer_follow.py",
|
||
"82": "list_duty_staff_users",
|
||
"83": "Community 83",
|
||
"84": "Community 84",
|
||
"85": "allocate_next_biz_no",
|
||
"86": "Community 86",
|
||
"87": "list_customers",
|
||
"88": "CrmProduct",
|
||
"89": "pl_ocr_service.py",
|
||
"90": "WechatMessageService",
|
||
"91": "unsettled_plans_q_filter",
|
||
"92": "Community 92",
|
||
"93": "api_request_log_middleware.py",
|
||
"94": "assert_contract_editable_for_update",
|
||
"95": "test_pl_public_link_archived.py",
|
||
"96": "minio_url.py",
|
||
"97": "contact.py",
|
||
"98": "LocalStorage",
|
||
"99": "redis_client.py",
|
||
"100": "price_letter_detail",
|
||
"101": "tenant.py",
|
||
"102": "BaseStorage",
|
||
"103": "pl_internal_customer.py",
|
||
"104": "apply_crm_create_by_scope",
|
||
"105": "pool_customer_assign",
|
||
"106": "site.py",
|
||
"107": "apply_pl_scope",
|
||
"108": "statistics.py",
|
||
"109": "test_pl_plan_stop_rules.py",
|
||
"110": "pool_rule.py",
|
||
"111": "test_pl_public_transport_history.py",
|
||
"112": "merge_duplicate_crm_customers.py",
|
||
"113": "dict_type.py",
|
||
"114": "dept.py",
|
||
"115": "site.py",
|
||
"116": "Community 116",
|
||
"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",
|
||
"124": "LocalStorage",
|
||
"125": "ethnic.py",
|
||
"126": "oper_log.py",
|
||
"127": "Any",
|
||
"128": "api_crypto.py",
|
||
"129": "BaseStorage",
|
||
"130": "_filter_export_rows_by_ids",
|
||
"131": "resolve_crm_product",
|
||
"132": ".to_list_kwargs",
|
||
"133": "inventory_id.py",
|
||
"134": "list_contacts",
|
||
"135": "context.py",
|
||
"136": "get_db_current_user_optional",
|
||
"137": "iter_user_menu_perm_codes",
|
||
"138": "Community 138",
|
||
"139": "customer_options",
|
||
"140": "crm_export_columns.py",
|
||
"141": "web_login_rsa_public_key",
|
||
"142": "clear_pl_plan_instance_data.py",
|
||
"143": "create_from_quote",
|
||
"144": "response.py",
|
||
"145": "list_products",
|
||
"146": "dict_data.py",
|
||
"147": "Community 147",
|
||
"148": "plan_has_incomplete_hazard_cert_exists",
|
||
"149": ".to_tenant_user_dict",
|
||
"150": "list_product_options",
|
||
"151": "Community 151",
|
||
"152": "register_local_callback",
|
||
"153": "web_login_rsa_public_key",
|
||
"154": "redis_client.py",
|
||
"155": "WechatMessageService",
|
||
"156": "list_product_options",
|
||
"157": "datetime_parse.py",
|
||
"158": "create_from_quote",
|
||
"159": "web_login_rsa_public_key",
|
||
"160": "get_client_ip",
|
||
"161": "context.py",
|
||
"162": ".to_tenant_user_dict",
|
||
"163": "MinIOStorage",
|
||
"164": "storage.py",
|
||
"165": "list_duty_staff_users",
|
||
"166": "code:block1 (/iflytek/shanxia2.0/backend)",
|
||
"167": "migrate_crm_product.py",
|
||
"168": "run_auto_generate_monthly_plans",
|
||
"169": "merge_duplicate_crm_customers.py",
|
||
"170": "mp_webview_ticket.py",
|
||
"171": "inventory.py",
|
||
"172": "vehicle_maintenance.py",
|
||
"173": "resolve_create_time_bounds",
|
||
"174": "test_pl_vehicle_ops_list_filters.py",
|
||
"175": "pl_ocr_service.py",
|
||
"176": "invoice_list_filters.py",
|
||
"177": "build_unsettled_plan_column_filters",
|
||
"178": "build_contract_template_column_filters",
|
||
"179": "test_pl_vehicle_personnel_photo_schema.py",
|
||
"180": "软删装货产品与装/送货段合同;送货段本体由 upsert 保留主键,不在此全量软删。",
|
||
"181": "PlCarrier",
|
||
"182": "vehicle_recharge.py",
|
||
"183": "resolve_name_pinyin_abbr",
|
||
"184": "verify_plan_archive_zip_export.py",
|
||
"185": "public_transport_site.py",
|
||
"186": "BaseStorage",
|
||
"187": "price_letter.py",
|
||
"188": "api_crypto.py",
|
||
"189": "build_customer_column_filters",
|
||
"190": "Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr",
|
||
"191": "pl_plan_cert_perm.py",
|
||
"192": "assert_row_deletable_by_creator",
|
||
"193": "CRUDBase",
|
||
"194": "Settings",
|
||
"195": "role.py",
|
||
"196": "sample_code.py",
|
||
"197": "start-prod.sh",
|
||
"198": "login_crypto.py",
|
||
"199": "WechatMessageService",
|
||
"200": "quote_share_log.py",
|
||
"201": "clue.py",
|
||
"202": "build_clue_column_filters",
|
||
"203": "product_list_filters.py",
|
||
"204": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||
"205": "build_contract_change_column_filters",
|
||
"206": "crm_quote_pdf.py",
|
||
"207": "shanxia2.0 后端骨架(FastAPI)",
|
||
"208": "customer_follow.py",
|
||
"209": "storage.py",
|
||
"210": "customer_pool.py",
|
||
"211": "车辆ETC/加油充值申请 pl_vehicle_recharge_apply",
|
||
"212": "contract_list_filters.py",
|
||
"213": "web_auth_roles.py",
|
||
"214": "timedelta",
|
||
"215": "Java: batchSubmitApproval",
|
||
"216": "build_plan_column_filters",
|
||
"217": "pl_plan_list_attachments.py",
|
||
"218": "若存在入库/出库单,用明细 actual_qty 覆盖归档提交中的实际数量(权威来源)。",
|
||
"219": "expense_item.py",
|
||
"220": "apply_site_feedback",
|
||
"221": "admin_request_json.py",
|
||
"222": "start.sh",
|
||
"223": "vehicle_recharge.py",
|
||
"224": "_history_matches_date",
|
||
"225": "FakeRedis",
|
||
"226": "invoice.py",
|
||
"227": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"228": "resolve_product_id_for_quote_item",
|
||
"229": "Java: viewByShareCode",
|
||
"230": "草稿/已驳回结算单按当前运输单运费刷新明细快照与合计。",
|
||
"231": "build_advance_column_filters",
|
||
"232": "crm_export_columns.py",
|
||
"233": "code:block1 (backend/)",
|
||
"234": "calc_age_from_chinese_id_card",
|
||
"235": "wx_qr_session.py",
|
||
"236": "一次上传一条发票:多文件挂同一档案,金额为总额,只写一条额度流水。 使用 request.form().getlist,兼容只传 1 个文件时 Fas",
|
||
"237": "order_status_compat.py",
|
||
"238": "vehicle_urea.py",
|
||
"239": "shanxia2.0 Backend 生产部署说明",
|
||
"240": "reimburse.py",
|
||
"241": "public_inventory.py",
|
||
"242": "base.py",
|
||
"243": "dashboard.py",
|
||
"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",
|
||
"256": "Java: createFromOpportunity — 返回合同 id",
|
||
"257": "mini_auth.py",
|
||
"258": "dict_data.py",
|
||
"259": "dict_type.py",
|
||
"260": "tenant.py",
|
||
"261": "手动触发计划按月自动生成(定时任务同款逻辑)。",
|
||
"262": "Java Controller TODO — 保持 pending,记录备注",
|
||
"263": "__init__.py",
|
||
"264": "__init__.py",
|
||
"265": "供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll",
|
||
"266": "menu.py",
|
||
"267": "post.py",
|
||
"268": "leave.py",
|
||
"269": "site.py",
|
||
"270": "validate_stop_products_package_against_contract",
|
||
"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",
|
||
"278": "修改供方 — Java: CrmSupplierInfoController.edit",
|
||
"279": "修改供方 — Java: CrmSupplierInfoController.edit",
|
||
"280": "resolve_wechat_login_user",
|
||
"281": "apply_crm_owner_scope",
|
||
"282": "crm_quote_pdf.py",
|
||
"283": "删除供方 — Java: CrmSupplierInfoController.remove",
|
||
"284": "导出供方列表 — Java: CrmSupplierInfoController.export",
|
||
"285": "导出供方列表 — Java: CrmSupplierInfoController.export",
|
||
"286": "shanxia2.0 后端骨架(FastAPI)",
|
||
"287": "test_wx_qr_session.py",
|
||
"288": "按客户ID查询开票信息(与 by-customer 等价)",
|
||
"289": "Java: queryList for export",
|
||
"290": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||
"291": "Java: createFromQuote — 返回合同 id",
|
||
"292": "列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。",
|
||
"293": "导出出入库列表(当前筛选全量,或 ids 已选)。",
|
||
"294": "证书 URL 为空(NULL / 空串 / 纯空白)。",
|
||
"295": "导出出入库列表(当前筛选全量,或 ids 已选)。",
|
||
"296": "单条查询(三方 H5 填写页无需门户登录)。",
|
||
"297": "返回 'archived' | 'arranged_unarchived' | None(不计入)。",
|
||
"298": "collect_unique_delivery_date_strings",
|
||
"299": "单条查询(三方 H5 填写页无需门户登录)。",
|
||
"300": "三方 H5 填写页初始化数据(无需门户登录,与原系统一致)。",
|
||
"301": "price_letter.py",
|
||
"302": "clear_pl_plan_instance_data.py",
|
||
"303": "导出地磅单列表(当前筛选全量,或 ids 已选)。",
|
||
"304": "__init__.py",
|
||
"305": "__init__.py",
|
||
"306": "__init__.py",
|
||
"307": "__init__.py",
|
||
"308": "__init__.py",
|
||
"309": "__init__.py",
|
||
"310": "__init__.py",
|
||
"311": "__init__.py",
|
||
"312": "__init__.py",
|
||
"313": "DictLabelResolver",
|
||
"314": "order_status_compat.py",
|
||
"315": "base_data.py",
|
||
"316": "get_active",
|
||
"317": "shanxia2.0 Backend 生产部署说明",
|
||
"318": "导出司机列表(当前筛选全量,或 ids 已选)。",
|
||
"319": "导出承运商列表(当前筛选全量,或 ids 已选)。",
|
||
"320": "导出车辆列表(当前筛选全量,或 ids 已选)。",
|
||
"321": "前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。",
|
||
"322": "导出人员列表(当前筛选全量,或 ids 已选)。",
|
||
"323": "customer_stop_pref.py",
|
||
"324": "db_collation.py",
|
||
"325": "__init__.py",
|
||
"326": "customer_pool.py",
|
||
"327": "io_order.py",
|
||
"328": "_plan_plate_match",
|
||
"329": "save_driver_plan_feedback",
|
||
"330": "将关联且状态为 approved 的合同置为 executing(不 commit)。返回已推进的合同 id。",
|
||
"331": "common.py",
|
||
"332": "_plan_product_name_exists",
|
||
"333": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"334": "车辆尿素申请 pl_vehicle_urea_apply",
|
||
"335": "公开分享查看报价单 — Java: GET /share/{shareCode}(无 JWT)",
|
||
"336": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"337": "按客户ID查询开票信息(与 by-customer 等价)",
|
||
"338": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"339": "新增供方 — Java: CrmSupplierInfoController.add",
|
||
"340": "返回全部已完成的审批动作(含撤回/重提前的历史轮次),按时间正序。",
|
||
"341": "已有汇款凭证但结算单仍停留在 approved 时自动纠正(兼容历史脏数据)",
|
||
"342": "软删除结算单历史审批记录(重新提交审批前清理)",
|
||
"343": "运输单运费变更后,同步关联草稿结算单的明细快照与合计。",
|
||
"344": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"345": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"346": "__init__.py",
|
||
"347": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"348": "Activate.ps1",
|
||
"349": "__init__.py",
|
||
"350": "statistics.py",
|
||
"351": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"352": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"353": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"354": "__init__.py",
|
||
"355": "__init__.py",
|
||
"356": "__init__.py",
|
||
"357": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"358": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"359": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
|
||
"360": "列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。",
|
||
"361": "列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。",
|
||
"362": "列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。",
|
||
"363": "__init__.py",
|
||
"364": "__init__.py",
|
||
"365": "__init__.py",
|
||
"366": "__init__.py",
|
||
"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": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||
"381": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||
"382": "__init__.py",
|
||
"383": "__init__.py",
|
||
"384": "__init__.py",
|
||
"385": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||
"386": "同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。",
|
||
"387": "返回全部审批动作,按时间正序排列,用于展示完整审批历史。",
|
||
"388": "同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。",
|
||
"389": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||
"390": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||
"391": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
|
||
"392": "返回全部审批动作,按时间正序排列,用于展示完整审批历史。",
|
||
"393": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
|
||
"394": "返回全部审批动作,按时间正序排列,用于展示完整审批历史。",
|
||
"395": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
|
||
"396": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
|
||
"397": "归一化勾选链接;返回 None 表示未传(不改关联),[] 表示清空。",
|
||
"398": "同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。",
|
||
"399": "返回全部审批动作,按时间正序排列,用于展示完整审批历史。",
|
||
"400": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||
"401": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||
"402": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||
"403": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"404": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"405": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"406": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"407": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"408": "__init__.py",
|
||
"409": "__init__.py",
|
||
"410": "__init__.py",
|
||
"411": "__init__.py",
|
||
"412": "__init__.py",
|
||
"413": "__init__.py",
|
||
"414": "__init__.py",
|
||
"415": "__init__.py",
|
||
"416": "__init__.py",
|
||
"417": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
|
||
"418": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"419": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"420": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"421": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||
"422": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"423": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"424": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||
"425": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||
"426": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
|
||
"427": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||
"428": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||
"429": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||
"430": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||
"431": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||
"432": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||
"433": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||
"434": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||
"435": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||
"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": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||
"448": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||
"449": "将历史分装单号统一为 NO:SXFZYYYYMMDD-###",
|
||
"450": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||
"451": "将历史分装单号统一为 NO:SXFZYYYYMMDD-###",
|
||
"452": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
|
||
"453": "将历史分装单号统一为 NO:SXFZYYYYMMDD-###",
|
||
"454": "将历史分装单号统一为 NO:SXFZYYYYMMDD-###",
|
||
"455": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
|
||
"456": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"457": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||
"458": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"459": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||
"460": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"461": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||
"462": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||
"463": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"464": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"465": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"466": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"467": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"468": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||
"469": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||
"470": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"471": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"472": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
|
||
"473": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"474": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"475": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
|
||
"476": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"477": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"478": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"479": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"480": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"481": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"482": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"483": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"484": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"485": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"486": "导出计划列表(当前筛选全量,或 ids 已选)。",
|
||
"487": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||
"488": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||
"489": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||
"490": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||
"491": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||
"492": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||
"493": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||
"494": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
|
||
"495": "code:bash (cd /path/to/shanxia2.0)",
|
||
"496": "code:bash (./start-prod.sh status # 查看状态)",
|
||
"497": "code:bash (curl -s http://127.0.0.1:9111/health)",
|
||
"498": "code:bash (cd /iflytek/shanxia2.0/backend)",
|
||
"499": "code:bash (python -m venv venv)",
|
||
"500": "code:bash (pip install -r requirements.txt)",
|
||
"501": "code:env (# 数据库配置)",
|
||
"502": "code:bash (uvicorn app.main:app --reload --port 8000)",
|
||
"503": "BaseModel",
|
||
"504": "PlanResourceSnapshotMixin",
|
||
"505": "_format_plan_date",
|
||
"506": "_resolve_plan_flags",
|
||
"507": "transport.py",
|
||
"508": "导出运输列表(当前筛选全量,或 ids 已选)。",
|
||
"509": "_transport_has_db_links",
|
||
"510": "导出维保申请列表(当前筛选全量,或 ids 已选)。",
|
||
"511": "vehicle_urea.py",
|
||
"512": "_avatar_url_field",
|
||
"513": "_build_user_info_payload",
|
||
"514": "_jwt_user_payload",
|
||
"515": "登出:吊销 Redis 会话(若已配置 REDIS_HOST)。无 Token 或已失效时仍返回成功(幂等)。",
|
||
"516": "获取当前用户信息(与 sys_user 字段对应)。",
|
||
"517": "获取当前用户信息(与 sys_user 字段对应)。",
|
||
"518": "小程序内嵌 WebView:用 ticket 兑换 Web JWT(不吊销原 refresh)。",
|
||
"519": "公开分享查看报价单 — Java: GET /share/{shareCode}(无 JWT)",
|
||
"520": "与 web-admin 静态路由 meta.roles(admin/super_admin)对齐的单元素数组。",
|
||
"521": "与 web-admin `userInfo` 字段约定一致。",
|
||
"522": "Web 端登录:账号为 sys_user.user_no,密码为 sys_user.password(bcrypt)。",
|
||
"523": "Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致)",
|
||
"524": "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",
|
||
"529": "send_delivery_warning",
|
||
"530": "send_order_status",
|
||
"531": "send_payment_success",
|
||
"532": "send_refund_result",
|
||
"533": "send_urge_notification",
|
||
"534": "get",
|
||
"535": "get_multi_with_filters",
|
||
"536": "contract_approver_setting.py",
|
||
"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 — 软删除",
|
||
"548": "Java: deleteWithValidByIds — 软删除",
|
||
"549": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
|
||
"550": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
|
||
"551": "Java: batchSubmitApproval",
|
||
"552": "Java: withdrawApproval",
|
||
"553": "Java: batchSubmitApproval",
|
||
"554": "Java: batchSubmitApproval",
|
||
"555": "Java: batchSubmitApproval",
|
||
"556": "Java: withdrawApproval",
|
||
"557": "Java: withdrawApproval",
|
||
"558": "Java: withdrawApproval",
|
||
"559": "Java: batchSubmitApproval",
|
||
"560": "Java: batchSubmitApproval",
|
||
"561": "Java: withdrawApproval",
|
||
"562": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||
"563": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||
"564": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||
"565": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||
"566": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||
"567": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
|
||
"568": "Java: createFromQuote — 返回合同 id",
|
||
"569": "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",
|
||
"580": "Java: renewContract — 基础续签",
|
||
"581": "Java: renewContract — 基础续签",
|
||
"582": "Java: queryList for export",
|
||
"583": "Java: queryList for export",
|
||
"584": "Java: queryList for export",
|
||
"585": "Java: queryList for export",
|
||
"586": "Java: queryList for export",
|
||
"587": "Java: createFromOpportunity — 返回合同 id",
|
||
"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",
|
||
"595": "Java: createFromOpportunity — 返回合同 id",
|
||
"596": "Java: downloadContractPdf — 返回合同文件 URL/路径",
|
||
"597": "Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}",
|
||
"598": "Java: batchAssignOwner",
|
||
"599": "Java: batchAssignOwner",
|
||
"600": "Java: batchAssignOwner",
|
||
"601": "Java: batchAssignOwner",
|
||
"602": "Java: batchAssignOwner",
|
||
"603": "Java: downloadContractPdf — 返回合同文件 URL/路径",
|
||
"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/路径",
|
||
"614": "Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}",
|
||
"615": "Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}",
|
||
"616": "Java Controller TODO — 保持 pending,记录备注",
|
||
"617": "Java Controller TODO — 保持 pending,记录备注",
|
||
"618": "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,记录备注",
|
||
"624": "根据供需方面板与主数据生成/校正合同名称。",
|
||
"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",
|
||
"630": "租户内合同编号是否已占用(含软删,保证全局唯一)。",
|
||
"631": "租户内合同编号是否已占用(含软删,保证全局唯一)。",
|
||
"632": "租户内合同编号是否已占用(含软删,保证全局唯一)。",
|
||
"633": "标准编号替换日期段,保留序号;非标准返回 None。",
|
||
"634": "租户内合同编号是否已占用(含软删,保证全局唯一)。",
|
||
"635": "标准编号替换日期段,保留序号;非标准返回 None。",
|
||
"636": "标准编号替换日期段,保留序号;非标准返回 None。",
|
||
"637": "将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。",
|
||
"638": "将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。",
|
||
"639": "将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。",
|
||
"640": "按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。",
|
||
"641": "按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。",
|
||
"642": "按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。",
|
||
"643": "按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。",
|
||
"644": "前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。",
|
||
"645": "按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名",
|
||
"646": "前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。",
|
||
"647": "前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。",
|
||
"648": "按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名",
|
||
"649": "按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名",
|
||
"650": "按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名",
|
||
"651": "customer_follow.py",
|
||
"652": "customer_pool.py",
|
||
"653": "customer.py",
|
||
"654": "客户下拉选项:租户内只读搜索,不做 owner 数据权限(供地磅/合同等主数据选用)。",
|
||
"655": "invoice_info.py",
|
||
"656": "pool_rule.py",
|
||
"657": "price_letter.py",
|
||
"658": "generate_auto_product_no",
|
||
"659": "product.py",
|
||
"660": "报价自动建档时生成产品编号(与产品管理新增规则一致)",
|
||
"661": "Java: resolveProductIdForQuoteItem(CrmProduct 无 tax_rate,跳过税率匹配)",
|
||
"662": "quote_approver_setting.py",
|
||
"663": "Java: viewByShareCode",
|
||
"664": "Java: toContract — 返回 contractId",
|
||
"665": "Java: toContract — 返回 contractId",
|
||
"666": "Java: createNewVersion — 返回新报价单 id",
|
||
"667": "Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人)",
|
||
"668": "Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人)",
|
||
"669": "Java: statisticsOverview",
|
||
"670": "Java: statisticsOverview",
|
||
"671": "Java: statisticsStatus",
|
||
"672": "Java: statisticsStatus",
|
||
"673": "Java: statisticsTrend",
|
||
"674": "Java: statisticsTrend",
|
||
"675": "Java: fillContractLinkedCount",
|
||
"676": "Java: calculateAmount",
|
||
"677": "Java: resolveQuoteProductIds",
|
||
"678": "Java: generateQuoteNo — {供方编码}DD-yyyyMMdd + 3位序号",
|
||
"679": "Java: generateQuoteNo — {供方编码}DD-yyyyMMdd + 3位序号",
|
||
"680": "Java: deleteWithValidByIds",
|
||
"681": "Java: deleteWithValidByIds",
|
||
"682": "statistics.py",
|
||
"683": "supplier_info.py",
|
||
"684": "__init__.py",
|
||
"685": "leave.py",
|
||
"686": "menu_favorite.py",
|
||
"687": "base.py",
|
||
"688": "__tablename__",
|
||
"689": "__init__.py",
|
||
"690": "车辆维保申请 pl_vehicle_maintenance_apply",
|
||
"691": "车辆维保处理登记 pl_vehicle_maintenance_process",
|
||
"692": "车辆维保申请 pl_vehicle_maintenance_apply",
|
||
"693": "车辆尿素申请 pl_vehicle_urea_apply",
|
||
"694": "车辆维保处理登记 pl_vehicle_maintenance_process",
|
||
"695": "阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计)",
|
||
"696": "车辆尿素发放登记 pl_vehicle_urea_disburse",
|
||
"697": "车辆尿素发放登记 pl_vehicle_urea_disburse",
|
||
"698": "阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计)",
|
||
"699": "车辆ETC/加油充值发放登记 pl_vehicle_recharge_record",
|
||
"700": "车辆ETC/加油充值发放登记 pl_vehicle_recharge_record",
|
||
"701": "attachment.py",
|
||
"702": "auth.py",
|
||
"703": "advance.py",
|
||
"704": "validate_expense_item_id",
|
||
"705": "attachment.py",
|
||
"706": "validate_parent_id",
|
||
"707": "__init__.py",
|
||
"708": "invoice.py",
|
||
"709": "coerce_attachment_id",
|
||
"710": "details_must_not_be_empty",
|
||
"711": "reimburse.py",
|
||
"712": "validate_advance_id",
|
||
"713": "validate_expense_item_id",
|
||
"714": "validate_invoice_id",
|
||
"715": "workflow.py",
|
||
"716": "validate_approver_id",
|
||
"717": "common.py",
|
||
"718": "clue.py",
|
||
"719": "contact.py",
|
||
"720": "contract_approver_setting.py",
|
||
"721": "contract.py",
|
||
"722": "POST /contract/approval — 按合同 ID 审批",
|
||
"723": "POST /contract/approval — 按合同 ID 审批",
|
||
"724": "POST /contract/export 筛选条件(无分页或沿用 list 参数)",
|
||
"725": "POST /contract/export 筛选条件(无分页或沿用 list 参数)",
|
||
"726": "续签 — 字段同创建,parent 由路径提供",
|
||
"727": "续签 — 字段同创建,parent 由路径提供",
|
||
"728": "GET /contract/approval/list;extra=allow 透传列头漏斗动态参数。",
|
||
"729": "GET /contract/change/list;extra=allow 透传列头漏斗动态参数。",
|
||
"730": "GET /contract/change/list;extra=allow 透传列头漏斗动态参数。",
|
||
"731": "GET /contract/template/list;extra=allow 透传列头漏斗动态参数。",
|
||
"732": "customer_follow.py",
|
||
"733": "_forbid_legacy_invoice_fields",
|
||
"734": "customer.py",
|
||
"735": "解析列表查询参数,供 API 与 CRUD 共用。",
|
||
"736": "invoice_info.py",
|
||
"737": "opportunity.py",
|
||
"738": "pool_rule.py",
|
||
"739": "product.py",
|
||
"740": "quote_approver_setting.py",
|
||
"741": "quote.py",
|
||
"742": "supplier_info.py",
|
||
"743": "dashboard.py",
|
||
"744": "__init__.py",
|
||
"745": "plans.py",
|
||
"746": "public_inventory.py",
|
||
"747": "weighing.py",
|
||
"748": "duty.py",
|
||
"749": "_split_work_plans",
|
||
"750": "__init__.py",
|
||
"751": "leave.py",
|
||
"752": "menu_favorite.py",
|
||
"753": "menu.py",
|
||
"754": "customer_stop_pref.py",
|
||
"755": "check_ids",
|
||
"756": "freight.py",
|
||
"757": "__init__.py",
|
||
"758": "io_order.py",
|
||
"759": "plan.py",
|
||
"760": "运维纠错:强制改跟进状态(仅改字段,不联动业务)。",
|
||
"761": "运维纠错:强制改跟进状态(仅改字段,不联动业务)。",
|
||
"762": "_coerce_resource_snapshot",
|
||
"763": "transport_address.py",
|
||
"764": "validate_coordinates",
|
||
"765": "transport.py",
|
||
"766": "validate_fuel_category",
|
||
"767": "validate_fuel_liters",
|
||
"768": "validate_odometer_km",
|
||
"769": "validate_amount",
|
||
"770": "validate_amount",
|
||
"771": "validate_recharge_type",
|
||
"772": "validate_amount",
|
||
"773": "validate_apply_amount",
|
||
"774": "validate_quantity",
|
||
"775": "workflow.py",
|
||
"776": "approve",
|
||
"777": "create",
|
||
"778": "finance_issue_stats",
|
||
"779": "get_by_id",
|
||
"780": "get_paged",
|
||
"781": "global_status_counts",
|
||
"782": "issue",
|
||
"783": "_latest_approval_per_node",
|
||
"784": "_my_apply_base",
|
||
"785": "my_apply_stats",
|
||
"786": "offset_amount_map",
|
||
"787": "pending_approval_stats",
|
||
"788": "advance.py",
|
||
"789": "_query_approvals",
|
||
"790": "同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。",
|
||
"791": "返回全部审批动作,按时间正序排列,用于展示完整审批历史。",
|
||
"792": "reject",
|
||
"793": "soft_delete",
|
||
"794": "submit",
|
||
"795": "_tenant_no",
|
||
"796": "update",
|
||
"797": "withdraw",
|
||
"798": "_workflow_nodes",
|
||
"799": "count_invoice_attach_by_biz_ids",
|
||
"800": "create",
|
||
"801": "get_by_biz",
|
||
"802": "get_by_id",
|
||
"803": "attachment.py",
|
||
"804": "soft_delete",
|
||
"805": "_tenant_no",
|
||
"806": "get_by_id",
|
||
"807": "get_paged",
|
||
"808": "base.py",
|
||
"809": "soft_delete",
|
||
"810": "update",
|
||
"811": "_build_tree",
|
||
"812": "create",
|
||
"813": "get_by_id",
|
||
"814": "get_item_tree",
|
||
"815": "expense_item.py",
|
||
"816": "soft_delete",
|
||
"817": "_tenant_no",
|
||
"818": "update",
|
||
"819": "can_query_others_wallet",
|
||
"820": "_count_invoices",
|
||
"821": "create",
|
||
"822": "delete",
|
||
"823": "get_mine_summary",
|
||
"824": "is_wallet_admin",
|
||
"825": "add_entry",
|
||
"826": "assert_can_delete_invoice",
|
||
"827": "calc_summary",
|
||
"828": "debit_reimburse",
|
||
"829": "list_entries",
|
||
"830": "_lock_summary",
|
||
"831": "refresh_summary",
|
||
"832": "release_reimburse",
|
||
"833": "list_ledgers",
|
||
"834": "list_wallets",
|
||
"835": "_lookup_user_name",
|
||
"836": "out_rows_with_attachments",
|
||
"837": "invoice.py",
|
||
"838": "返回流水字典列表;流水备注为空时回填关联发票备注(含已软删发票)。",
|
||
"839": "一次上传创建一条发票档案:金额为总额,files 全部挂到同一 biz_id,只写一条 credit_upload。",
|
||
"840": "_require_wallet_admin",
|
||
"841": "_resolve_owner",
|
||
"842": "_resolve_owner_for_query",
|
||
"843": "_summary_to_dict",
|
||
"844": "_tenant_no",
|
||
"845": "list_sort.py",
|
||
"846": "_approval_record_dict",
|
||
"847": "batch_offset",
|
||
"848": "build_apply_out_with_details",
|
||
"849": "build_expense_name_condition",
|
||
"850": "can_change_applicant",
|
||
"851": "detail_expense_keyword_match",
|
||
"852": "finance_payment_stats",
|
||
"853": "get_by_id",
|
||
"854": "get_details",
|
||
"855": "get_details_map_by_reimburse_ids",
|
||
"856": "get_linked_invoice_ids",
|
||
"857": "get_linked_invoice_ids_map",
|
||
"858": "get_linked_invoices_brief",
|
||
"859": "get_paged",
|
||
"860": "global_status_counts",
|
||
"861": "_has_debit_reimburse",
|
||
"862": "_latest_approval_per_node",
|
||
"863": "_my_apply_base",
|
||
"864": "my_apply_stats",
|
||
"865": "normalize_invoice_links",
|
||
"866": "offset",
|
||
"867": "out_one_with_attachment_counts",
|
||
"868": "out_rows_with_attachment_counts",
|
||
"869": "pay",
|
||
"870": "reimburse.py",
|
||
"871": "_query_approvals",
|
||
"872": "归一化勾选链接;返回 None 表示未传(不改关联),[] 表示清空。",
|
||
"873": "同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。",
|
||
"874": "reject",
|
||
"875": "resolve_applicant",
|
||
"876": "soft_delete",
|
||
"877": "submit",
|
||
"878": "sync_reimburse_invoices",
|
||
"879": "_tenant_no",
|
||
"880": "update_with_details",
|
||
"881": "withdraw",
|
||
"882": "_workflow_nodes",
|
||
"883": "ensure_by_biz_type",
|
||
"884": "get_by_biz_type",
|
||
"885": "get_by_id",
|
||
"886": "get_paged",
|
||
"887": "workflow.py",
|
||
"888": "save_nodes",
|
||
"889": "soft_delete",
|
||
"890": "_tenant_no",
|
||
"891": "update",
|
||
"892": "__init__.py",
|
||
"893": "list_sort.py",
|
||
"894": "list_sort.py",
|
||
"895": "plan_list_filters.py",
|
||
"896": "(product_id, package_spec) -> {archivedQty, arrangedUnarchivedQty, arrangedTotal",
|
||
"897": "plan_id -> { load_ids: set[str] | None, # None = 该侧全部装货段 delivery_",
|
||
"898": "返回 productId -> 三数量字段。",
|
||
"899": "返回 (productId, packageSpec) -> 三数量字段。",
|
||
"900": "按复合键匹配合同产品行;同键多行时 quantity 相加(防御)。",
|
||
"901": "已安排合计 − 本计划旧量 + 本计划新量。",
|
||
"902": "将关联且状态为 approved 的合同置为 executing(不 commit)。返回已推进的合同 id。",
|
||
"903": "已安排合计 − 本计划旧量 + 本计划新量。",
|
||
"904": "返回: - None: 跳过(本次无量) - kind=violation | remaining | framework_cumula",
|
||
"905": "返回 'archived' | 'arranged_unarchived' | None(不计入)。",
|
||
"906": "返回: - None: 跳过(本次无量) - kind=violation | remaining | framework_cumula",
|
||
"907": "product_id -> {archivedQty, arrangedUnarchivedQty, arrangedTotalQty}",
|
||
"908": "返回 (violations, reminders)。 在写运输前调用;reminders 可缓存到成功响应,勿在状态变更后再算。",
|
||
"909": "返回 (violations, reminders)。 在写运输前调用;reminders 可缓存到成功响应,勿在状态变更后再算。",
|
||
"910": "超限则 422;通过则返回 reminders(供成功响应复用)。",
|
||
"911": "超限则 422;通过则返回 reminders(供成功响应复用)。",
|
||
"912": "表单「可安排数量」与问号弹窗数据。 arrangedQty / availableQty 均不含 exclude_plan_id(若该计划已在已安排桶中",
|
||
"913": "表单「可安排数量」与问号弹窗数据。 arrangedQty / availableQty 均不含 exclude_plan_id(若该计划已在已安排桶中",
|
||
"914": "勾选「生成地磅单」:按产品生成/复用地磅计划,并创建关联出入库单。",
|
||
"915": "按段 upsert 地磅出入库与 link:新建 / 就地更新 / 取消勾选软删。 返回 (link_results, warnings)。已过磅取消",
|
||
"916": "按装货/送货段勾选 upsert 地磅计划与出入库单(兼容旧调用方,忽略 warnings)。",
|
||
"917": "按装货/送货段勾选 upsert 地磅计划与出入库单(兼容旧调用方,忽略 warnings)。",
|
||
"918": "勾选「生成地磅单」:按产品生成/复用地磅计划,并创建关联出入库单。",
|
||
"919": "勾选「生成地磅单」:按产品生成/复用地磅计划,并创建关联出入库单。",
|
||
"920": "未过磅且状态可作废时,可就地更新日期/往来/车牌/数量。",
|
||
"921": "计划保存后按当前段次/计划日期回写可编辑出入库单日期;跨月则改挂月计划。 不可回写时不抛错,返回 warnings。",
|
||
"922": "取消段 generate_dibang:已过磅阻断;否则软删 link+出入库并回减月计划。",
|
||
"923": "就地更新已有出入库可变字段;不可编辑时写 warnings,不抛错。",
|
||
"924": "计划保存后按当前段次/计划日期回写可编辑出入库单日期;跨月则改挂月计划。 不可回写时不抛错,返回 warnings。",
|
||
"925": "按装货/送货段勾选生成地磅计划与出入库单。",
|
||
"926": "按段产品 upsert 出入库+link:已有则就地更新,无则新建。",
|
||
"927": "运输单运费变更后,同步关联草稿结算单的明细快照与合计。",
|
||
"928": "草稿/已驳回结算单按当前运输单运费刷新明细快照与合计。",
|
||
"929": "软删除结算单历史审批记录(重新提交审批前清理)",
|
||
"930": "审批记录已全部完成但结算单仍停留在 approving 时自动纠正(兼容历史脏数据)",
|
||
"931": "审批记录已全部完成但结算单仍停留在 approving 时自动纠正(兼容历史脏数据)",
|
||
"932": "已有汇款凭证但结算单仍停留在 approved 时自动纠正(兼容历史脏数据)",
|
||
"933": "批量纠正已有汇款凭证但仍为 approved 的结算单",
|
||
"934": "返回全部已完成的审批动作(含撤回/重提前的历史轮次),按时间正序。",
|
||
"935": "__init__.py",
|
||
"936": "list_sort.py",
|
||
"937": "无段表数据时回退计划产品级导出(兼容旧数据)。",
|
||
"938": "构建归档导出数据行:每计划 × 每段次 × 每段产品一行。",
|
||
"939": "构建归档导出数据行:每计划 × 每段次 × 每段产品一行。 stop_kind 为 load / delivery 时只导出该类段次,与归档列表段次漏",
|
||
"940": "装货/送货段入库出库列方向(与前端 resolveArchiveListIoColumn 一致)。",
|
||
"941": "单侧保存计划合同关联(旧计划级接口,兼容保留)。",
|
||
"942": "单侧保存计划合同关联(旧计划级接口,兼容保留)。",
|
||
"943": "单侧保存计划合同关联(旧计划级接口,兼容保留)。",
|
||
"944": "按段次汇总计划是否仍有合同缺口(supplier=装货侧,demander=送货侧)。",
|
||
"945": "若存在入库/出库单,用明细 actual_qty 覆盖归档提交中的实际数量(权威来源)。",
|
||
"946": "一车多卸:段级数量已写入,此处仅处理计划产品品牌分量。",
|
||
"947": "解析司机:显式选择优先,否则取车辆关联司机;均无则允许为空。",
|
||
"948": "解析司机:显式选择优先,否则取车辆关联司机;均无则允许为空。",
|
||
"949": "批量从 CRM 产品主数据读取易制毒/易制爆标识。",
|
||
"950": "批量从 CRM 产品主数据读取易制毒/易制爆标识。",
|
||
"951": "列表筛选:计划下存在 CRM 标识为易制毒/易制爆的产品。",
|
||
"952": "从 CRM 产品主数据读取易制毒/易制爆标识(不读计划产品快照)。",
|
||
"953": "列表筛选:存在危化产品且至少一张必需证书未上传。",
|
||
"954": "列表筛选:计划下存在 CRM 标识为易制毒/易制爆的产品。",
|
||
"955": "证书 URL 为空(NULL / 空串 / 纯空白)。",
|
||
"956": "列表筛选:存在危化产品且至少一张必需证书未上传。",
|
||
"957": "计划内所有危化品产品的所需证书槽位均已上传。",
|
||
"958": "计划内所有危化品产品的所需证书槽位均已上传。",
|
||
"959": "全部危化品证书已上传时,自动标记证书齐备(与人工确认等效)。",
|
||
"960": "全部危化品证书已上传时,自动标记证书齐备(与人工确认等效)。",
|
||
"961": "写入/更新草稿运输单(pl_transport + pl_plan_transport),计划保持待安排。",
|
||
"962": "写入/更新草稿运输单(pl_transport + pl_plan_transport),计划保持待安排。",
|
||
"963": "同步运输预选到草稿运输子表(pl_transport)。",
|
||
"964": "同步运输预选到草稿运输子表(pl_transport)。",
|
||
"965": "装货段与 plan 1:1;uk_pl_plan_load_plan 仅按 plan_id 唯一,软删后不可再 INSERT,须原地更新。",
|
||
"966": "装货段与 plan 1:1;uk_pl_plan_load_plan 仅按 plan_id 唯一,软删后不可再 INSERT,须原地更新。",
|
||
"967": "_soft_delete_plan_stops",
|
||
"968": "保存段回传。成功返回 (True, None);失败返回 (False, msg)。不 commit。",
|
||
"969": "上传附件。成功返回 (data, None) 并 commit;失败返回 (None, (code, msg))。",
|
||
"970": "本租户计划 + 关联运输(须有有效 site_access_token)。找不到返回 (None, None)。",
|
||
"971": "_resolve_plan_flags",
|
||
"972": "_compare",
|
||
"973": "_get_variable",
|
||
"974": "_parse_node_config",
|
||
"975": "_parse_variables",
|
||
"976": "__init__.py",
|
||
"977": "分配同租户、同报销日期下的标题序号(MAX+1)。 配合 uk_tenant_reimburse_date_title_seq 唯一约束,并发冲突时由上",
|
||
"978": "预览用标题生成(提交时仍会在服务端重新分配序号以保证并发安全)。",
|
||
"979": "确定最终标题与 title_seq。 - 未填标题或仍为自动标题格式时:按报销日期重新分配序号并生成标题。 - 自定义标题:title_seq",
|
||
"980": "code:bash (cd /path/to/shanxia2.0)",
|
||
"981": "code:bash (./start-prod.sh status # 查看状态)",
|
||
"982": "code:bash (curl -s http://127.0.0.1:9111/health)",
|
||
"983": "code:bash (cd /iflytek/shanxia2.0/backend)",
|
||
"984": "code:bash (python -m venv venv)",
|
||
"985": "code:bash (pip install -r requirements.txt)",
|
||
"986": "code:env (# 数据库配置)",
|
||
"987": "code:bash (uvicorn app.main:app --reload --port 8000)",
|
||
"988": "BaseModel",
|
||
"989": "BxApplyListExportBody",
|
||
"990": "BxExportBodyBase",
|
||
"991": "CustomerColumnFilterMixin",
|
||
"992": "PlanResourceSnapshotMixin",
|
||
"993": "import_key",
|
||
"994": ".getdel",
|
||
"995": "test_consume_unknown_returns_none",
|
||
"996": "test_consume_without_redis_raises",
|
||
"997": "test_issue_and_consume_once",
|
||
"998": "test_issue_without_redis_falls_back_to_signed",
|
||
"999": "test_issue_without_redis_raises",
|
||
"1000": "test_recharge_record_badge_counts_only_pending_etc"
|
||
}
|