| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743 |
- {
- "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",
- "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",
- "140": "crm_export_columns.py",
- "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",
- "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",
- "178": "build_contract_template_column_filters",
- "179": "test_pl_vehicle_personnel_photo_schema.py",
- "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",
- "189": "build_customer_column_filters",
- "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",
- "202": "build_clue_column_filters",
- "203": "product_list_filters.py",
- "204": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
- "206": "crm_quote_pdf.py",
- "207": "shanxia2.0 后端骨架(FastAPI)",
- "209": "storage.py",
- "210": "customer_pool.py",
- "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",
- "219": "expense_item.py",
- "222": "start.sh",
- "223": "vehicle_recharge.py",
- "225": "FakeRedis",
- "226": "invoice.py",
- "227": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
- "233": "code:block1 (backend/)",
- "235": "wx_qr_session.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",
- "248": "build_reimburse_column_filters",
- "249": "code:block1 (/iflytek/shanxia2.0/backend)",
- "250": "menu.py",
- "251": "dept.py",
- "253": "send_delivery_notice",
- "254": "Activate.ps1",
- "255": "vehicle_fuel.py",
- "256": "Java: createFromOpportunity — 返回合同 id",
- "257": "mini_auth.py",
- "259": "dict_type.py",
- "260": "tenant.py",
- "262": "Java Controller TODO — 保持 pending,记录备注",
- "263": "__init__.py",
- "266": "menu.py",
- "267": "post.py",
- "268": "leave.py",
- "269": "site.py",
- "272": "default_settlement_clause",
- "273": "storage.py",
- "274": "user.py",
- "275": "fix_pl_transport_db_link_stop_ids.py",
- "280": "resolve_wechat_login_user",
- "281": "apply_crm_owner_scope",
- "282": "crm_quote_pdf.py",
- "286": "shanxia2.0 后端骨架(FastAPI)",
- "287": "test_wx_qr_session.py",
- "290": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
- "291": "Java: createFromQuote — 返回合同 id",
- "298": "collect_unique_delivery_date_strings",
- "301": "price_letter.py",
- "302": "clear_pl_plan_instance_data.py",
- "304": "__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 生产部署说明",
- "323": "customer_stop_pref.py",
- "324": "db_collation.py",
- "325": "__init__.py",
- "326": "customer_pool.py",
- "327": "io_order.py",
- "328": "_plan_plate_match",
- "331": "common.py",
- "332": "_plan_product_name_exists",
- "336": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
- "338": "创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输)",
- "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",
- "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,以便编辑反推别名)。",
- "371": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "372": "列表展示用:优先 CRM 标准名(详情仍返回库内 product_name,以便编辑反推别名)。",
- "374": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "375": "__init__.py",
- "376": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
- "377": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
- "378": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "380": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "382": "__init__.py",
- "383": "__init__.py",
- "384": "__init__.py",
- "385": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "387": "返回全部审批动作,按时间正序排列,用于展示完整审批历史。",
- "389": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "390": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "391": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
- "395": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
- "396": "生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)",
- "400": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "401": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "402": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "403": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
- "404": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
- "405": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
- "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": "更新计划危化品产品证书(购买证/运输证/合法使用证明,不触发安排运输)",
- "419": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
- "420": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
- "421": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
- "422": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
- "423": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
- "424": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
- "425": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
- "426": "获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。",
- "428": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 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-###",
- "440": "作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。",
- "441": "将历史分装单号统一为 NO:SXFZYYYYMMDD-###",
- "442": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
- "443": "强制修改跟进状态(仅改字段,不作废联动、不补运输安排)。需权限 pl:plan:force-follow-status。",
- "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。",
- "454": "将历史分装单号统一为 NO:SXFZYYYYMMDD-###",
- "456": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
- "457": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
- "458": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
- "459": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
- "460": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
- "462": "分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增)",
- "464": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
- "465": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
- "467": "按送货客户聚合送(提)货单打印数据;不传 customerId 时仅返回客户选项。",
- "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 已选)。",
- "487": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
- "488": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
- "489": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
- "490": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
- "491": "表单可安排数量 + 问号弹窗:合同用量与已安排计划列表。",
- "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",
- "509": "_transport_has_db_links",
- "511": "vehicle_urea.py",
- "512": "_avatar_url_field",
- "513": "_build_user_info_payload",
- "514": "_jwt_user_payload",
- "520": "与 web-admin 静态路由 meta.roles(admin/super_admin)对齐的单元素数组。",
- "521": "与 web-admin `userInfo` 字段约定一致。",
- "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 — 软删除",
- "541": "Java: deleteWithValidByIds — 软删除",
- "542": "Java: deleteWithValidByIds — 软删除",
- "543": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
- "544": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
- "546": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
- "547": "Java: deleteWithValidByIds — 软删除",
- "549": "框架合同提交审批校验:仅要求有产品明细;调价区间为可选,不强制。",
- "551": "Java: batchSubmitApproval",
- "554": "Java: batchSubmitApproval",
- "555": "Java: batchSubmitApproval",
- "556": "Java: withdrawApproval",
- "557": "Java: withdrawApproval",
- "559": "Java: batchSubmitApproval",
- "561": "Java: withdrawApproval",
- "562": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
- "563": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
- "564": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
- "566": "按入参整表覆盖合同扫描件;attachments=[] 表示清空。",
- "568": "Java: createFromQuote — 返回合同 id",
- "571": "Java: createFromQuote — 返回合同 id",
- "572": "Java: createFromQuote — 返回合同 id",
- "573": "Java: createFromQuote — 返回合同 id",
- "575": "Java: renewContract — 基础续签",
- "576": "Java: renewContract — 基础续签",
- "577": "Java: renewContract — 基础续签",
- "578": "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",
- "592": "Java: createFromOpportunity — 返回合同 id",
- "593": "Java: batchAssignOwner",
- "594": "Java: createFromOpportunity — 返回合同 id",
- "596": "Java: downloadContractPdf — 返回合同文件 URL/路径",
- "597": "Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}",
- "599": "Java: batchAssignOwner",
- "600": "Java: batchAssignOwner",
- "601": "Java: batchAssignOwner",
- "602": "Java: batchAssignOwner",
- "604": "Java: downloadContractPdf — 返回合同文件 URL/路径",
- "605": "Java: downloadContractPdf — 返回合同文件 URL/路径",
- "606": "Java: batchAssignOwner",
- "608": "Java: downloadContractPdf — 返回合同文件 URL/路径",
- "610": "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,记录备注",
- "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,记录备注",
- "626": "根据供需方面板与主数据生成/校正合同名称。",
- "627": "Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr",
- "628": "Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr",
- "631": "租户内合同编号是否已占用(含软删,保证全局唯一)。",
- "633": "标准编号替换日期段,保留序号;非标准返回 None。",
- "634": "租户内合同编号是否已占用(含软删,保证全局唯一)。",
- "639": "将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。",
- "640": "按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。",
- "642": "按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。",
- "644": "前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。",
- "645": "按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名",
- "646": "前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。",
- "650": "按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名",
- "651": "customer_follow.py",
- "652": "customer_pool.py",
- "653": "customer.py",
- "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",
- "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",
- "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",
- "732": "customer_follow.py",
- "733": "_forbid_legacy_invoice_fields",
- "734": "customer.py",
- "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",
- "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 最新的一条作为当前节点状态。",
- "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",
- "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",
- "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",
- "898": "返回 productId -> 三数量字段。",
- "900": "按复合键匹配合同产品行;同键多行时 quantity 相加(防御)。",
- "907": "product_id -> {archivedQty, arrangedUnarchivedQty, arrangedTotalQty}",
- "915": "按段 upsert 地磅出入库与 link:新建 / 就地更新 / 取消勾选软删。 返回 (link_results, warnings)。已过磅取消",
- "919": "勾选「生成地磅单」:按产品生成/复用地磅计划,并创建关联出入库单。",
- "920": "未过磅且状态可作废时,可就地更新日期/往来/车牌/数量。",
- "923": "就地更新已有出入库可变字段;不可编辑时写 warnings,不抛错。",
- "925": "按装货/送货段勾选生成地磅计划与出入库单。",
- "935": "__init__.py",
- "936": "list_sort.py",
- "938": "构建归档导出数据行:每计划 × 每段次 × 每段产品一行。",
- "941": "单侧保存计划合同关联(旧计划级接口,兼容保留)。",
- "967": "_soft_delete_plan_stops",
- "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 唯一约束,并发冲突时由上",
- "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"
- }
|