chore: 记录线上 f8c594c3 已合入 main #649
Closed
qiuxiang
wants to merge 10 commits from
fix/qiuxiang-installation-fee-tab-release into main
pull from: fix/qiuxiang-installation-fee-tab-release
merge into: WuYongJie:main
WuYongJie:main
WuYongJie:fix/yueyang-oa-exclude-fully-paid
WuYongJie:fix/yueyang-oa-summary-enter-time
WuYongJie:fix/yueyang-oa-exclude-paid-approvals
WuYongJie:fix/yueyang-oa-payable-payment-label
WuYongJie:feature/shanshi-account-basic-info-tab
WuYongJie:fix/yueyang-oa-approval-summary-amount-purpose
WuYongJie:fix/yueyang-oa-approval-summary-link
WuYongJie:fix/yueyang-oa-process-route-fallback
WuYongJie:fix/renshen-worklog-late-exempt-days
WuYongJie:feature/chenxi-kuka-shipment-columns
WuYongJie:feature/dodo-company-info-tax-business-types
WuYongJie:feature/chenxi-kuka-quotation-import
WuYongJie:feat/systemization-todo-overdue-dialog
WuYongJie:feature/shanshi-excel-style-ledger-insert
WuYongJie:feature/shanshi-independent-ledger-full-edit
WuYongJie:feat/systemization-todo-delete-permission
WuYongJie:feature/wuyongjie-invoice-basic-sync
WuYongJie:fix/systemization-todo-creation-time-timezone
WuYongJie:feature/wuyongjie-invoice-summary
WuYongJie:feature/qiuxiang-balance-date-filter
WuYongJie:feature/qiuxiang-closing-balance-detail
WuYongJie:feature/qiuxiang-expense-detail-summary
WuYongJie:fix/qiuxiang-taobao-wechat-yicai-opening
WuYongJie:feature/dodo-internal-flow-invoice-ratio
WuYongJie:feature/dodo-xinxuan-no-buyer-invoice
WuYongJie:fix/qiuxiang-taobao-wechat-july-opening-balances
WuYongJie:feature/dodo-xinxuan-suofeiya-cost-reverse
WuYongJie:feature/dodo-internal-flow-tag-allocation
WuYongJie:feature/dodo-internal-flow-forecast
WuYongJie:fix/qiuxiang-douyin-sophia-july-opening
WuYongJie:feat/systemization-todo-reminder-baseline
WuYongJie:feature/shanshi-ledger-account-flow-summary
WuYongJie:fix/systemization-todo-people-multiselect-runtime
WuYongJie:hotfix/qiuxiang-integrate-live-statement-receipt
WuYongJie:fix/limeng-courier-release-live-base
WuYongJie:sync/sumu-statement-receipt-hotfix
WuYongJie:sync/chenxi-statement-receipt-hotfix
WuYongJie:hotfix/sumu-statement-upload-receipt-live
WuYongJie:feature/shanshi-ledger-current-month-default
WuYongJie:feature/shanshi-zhu-junxiang-ledger-subpages
WuYongJie:feature/codex-product-cost-full-export
WuYongJie:feature/qiuxiang-planting-daily-sync
WuYongJie:feature/sumu-supplier-payables-compact-freeze
WuYongJie:fix/codex-taobao-alipay-opening-balance
WuYongJie:feature/sumu-supplier-payables-freeze-columns
WuYongJie:perf/online-daifa-price-pagination
WuYongJie:feature/sumu-supplier-return-dingtalk-push
WuYongJie:fix/yueyang-monthly-payment-line-allocation
WuYongJie:fix/yueyang-oa-fallback-accounts
WuYongJie:fix/yueyang-oa-account-code-backfill
WuYongJie:fix/yueyang-oa-official-status-reconcile
WuYongJie:fix/yueyang-management-expenses-paid-status-wan
WuYongJie:fix/yueyang-management-expenses-paid-month
WuYongJie:fix/yueyang-oa-process-amount-summary
WuYongJie:fix/yueyang-ai-cloud-expense-mapping
WuYongJie:fix/yueyang-management-expenses-paid-month-mapping
WuYongJie:feature/chenxi-inventory-unmapped-warehouse-view
WuYongJie:fix/yueyang-ding-header-account-fallback
WuYongJie:feature/chenxi-inventory-unmapped-warehouse-alert
WuYongJie:fix/yueyang-ding-unnamed-detail-table
WuYongJie:fix/yueyang-oa-subject-mapping-refresh
WuYongJie:feature/yueyang-management-expenses-month-picker
WuYongJie:fix/limeng-shipping-amount-correction
WuYongJie:fix/limeng-shipping-package-items
WuYongJie:fix/yueyang-management-expenses-detail-transition
WuYongJie:fix/yueyang-management-expenses-paid-approved-summary
WuYongJie:feature/yueyang-management-expenses-month-unmapped
WuYongJie:fix/yueyang-oa-approver-departed-directory
WuYongJie:fix/yueyang-oa-approver-failure-scope
WuYongJie:fix/yueyang-oa-approver-api-resilience
WuYongJie:fix/yueyang-oa-running-task-approver
WuYongJie:fix/yueyang-oa-cashier-approver
WuYongJie:feature/sumu-after-sales-refund-click-date
WuYongJie:feature/sumu-after-sales-refund-export-waybill
WuYongJie:feature/sumu-after-sales-refund-warning
WuYongJie:feature/qiuxiang-marketing-promotion-relocation
WuYongJie:feature/qiuxiang-move-promotion-marketing-account
WuYongJie:fix/yueyang-oa-revoked-label-payment-detail
WuYongJie:feature/qiuxiang-promotion-marketing-account
WuYongJie:fix/92451-store-ledger-scope-isolation
WuYongJie:feature/92451-store-ledger-balance
WuYongJie:integration/chenxi-material-live-sync
WuYongJie:feature/92451-ledger-store-managers
WuYongJie:fix/92451-ledger-report-subject-account-link
WuYongJie:feature/92451-ledger-account-master-fields
WuYongJie:fix/92451-ledger-account-short-propagate
WuYongJie:feature/92451-ledger-account-short-match
WuYongJie:fix/92451-ledger-shop-balance-name-match
WuYongJie:hotfix/chenxi-warehouse-inheritance-live-sync
WuYongJie:integration/chenxi-warehouse-f8c-main-sync
WuYongJie:fix/chenxi-product-cost-warehouse-inheritance
WuYongJie:integration/performance-details-f8c-main-sync
WuYongJie:perf/performance-details-materialized-difference
WuYongJie:feature/qiuxiang-installation-fee-wan-units
WuYongJie:fix/qiuxiang-installation-fee-tab-switch
WuYongJie:fix/92451-ledger-shop-current-subject-null
WuYongJie:feature/92451-ledger-shop-report-data
WuYongJie:feature/qiuxiang-installation-fee-tabs
WuYongJie:fix/qiuxiang-installation-report-table-spacing
WuYongJie:fix/qiuxiang-installation-fee-card-gold-accent
WuYongJie:feature/92451-ledger-shop-header
WuYongJie:fix/92451-shop-ledger-no-auto-backfill
WuYongJie:fix/qiuxiang-installation-platform-summary-order
WuYongJie:fix/92451-finance-ledger-shop-rebuild
WuYongJie:fix/dodo-tax-type-priority
WuYongJie:fix/report-filter-bar-grid
WuYongJie:fix/qiuxiang-installation-item-history-backfill
WuYongJie:fix/dodo-simplify-store-sales-cards
WuYongJie:fix/dodo-business-type-values
WuYongJie:fix/dodo-hide-empty-report-columns
WuYongJie:feature/dodo-operating-report-summary-cards
WuYongJie:fix/chenxi-product-cost-bundle-residual-parents
WuYongJie:feature/92451-withdrawal-current-store-entity
WuYongJie:feature/92451-finance-balance-fallback
WuYongJie:fix/renshen-afs-no-unrelated-fallback
WuYongJie:fix/renshen-afs-batch-fastpath
WuYongJie:fix/renshen-afs-batch-ids
WuYongJie:fix/renshen-afs-batch-orders
WuYongJie:fix/renshen-afs-coverage-start
WuYongJie:fix/renshen-afs-filter-coverage
WuYongJie:integration/qiuxiang-installation-summary
WuYongJie:hotfix/limeng-returned-quote-release
WuYongJie:release/yueyang-hotfix-sync
WuYongJie:hotfix/limeng-quote-periods-release
WuYongJie:feature/renshen-sidebar-dewu-link
WuYongJie:feature/renshen-dept-access-scope
WuYongJie:feature/yueyang-remove-performance-product-amount
WuYongJie:fix/renshen-dingtalk-focus-referer
WuYongJie:feature/chenxi-product-cost-planting-label
WuYongJie:feature/chenxi-product-cost-verification
WuYongJie:feature/chenxi-monthly-weighted-average-automation
WuYongJie:fix/chenxi-supplier-summary-duplicate-rows
WuYongJie:feature/chenxi-supplier-summary-scheduled-import
WuYongJie:fix/renshen-afs-internal-index
WuYongJie:fix/renshen-afs-order-lookup
WuYongJie:fix/esign-across-page-seal
WuYongJie:fix/renshen-afs-date-format
WuYongJie:fix/renshen-afs-columns
WuYongJie:fix/limeng-courier-pagination
WuYongJie:fix/renshen-afs-wide-strings
WuYongJie:feature/renshen-goods-profit-afs
WuYongJie:fix/renshen-import-coverage
WuYongJie:fix/renshen-import-rowkey
WuYongJie:fix/renshen-import-streaming
WuYongJie:feature/renshen-after-sales-cost-import
WuYongJie:feature/aaron-ledger-incremental-sync
WuYongJie:fix/WuYongJie-integrate-quote-cost-snapshots
WuYongJie:hotfix/codex-erp-coverage-date
WuYongJie:fix/codex-erp-daily-sync-coverage
WuYongJie:feature/performance-fee-item
WuYongJie:feature/sumu-payment-page-15
WuYongJie:feature/yueyang-performance-details-display
WuYongJie:fix/limeng-planting-hook-order
WuYongJie:fix/limeng-planting-virtual-order
WuYongJie:hotfix/yueyang-performance-summary-on-8e4b
WuYongJie:hotfix/yueyang-performance-summary-on-e4d82
WuYongJie:fix/limeng-deploy-rollback-guard
WuYongJie:hotfix/zhoushengchen-surcharge-import-on-prod-f8abc8d2
WuYongJie:deploy/limeng-planting-loss
WuYongJie:hotfix/zhoushengchen-surcharge-import-on-prod-a88c6e
WuYongJie:hotfix/yueyang-mapping-authority-on-prod-e0abc
WuYongJie:fix/limeng-planting-loss-freight
WuYongJie:hotfix/yueyang-1688-prefix-on-prod-79f
WuYongJie:deploy/limeng-planting-loss-on-cbbf32bb
WuYongJie:feature/limeng-planting-loss
WuYongJie:fix/jx-subsidy-10stores
WuYongJie:hotfix/yueyang-auto-resync-on-prod-664fc
WuYongJie:fix/shipping-carrier-from-outbound
WuYongJie:fix/limeng-manufacturer-bookkeeping-default-deduct
WuYongJie:feature/limeng-manufacturer-bookkeeping-config
WuYongJie:fix/shipping-resync-40-days
WuYongJie:feature/limeng-stock-quote-billing-rules
WuYongJie:feature/limeng-manufacturer-bookkeeping
WuYongJie:fix/limeng-quote-column-alignment
WuYongJie:feature/limeng-quote-batch-review
WuYongJie:fix/limeng-quote-hide-group-headers
WuYongJie:feature/92451-withdrawal-balance-date-dropdown
WuYongJie:feature/92451-withdrawal-balance-date-filter
WuYongJie:fix/limeng-supplier-external-courier
WuYongJie:fix/limeng-stock-period-courier-prefill
WuYongJie:fix/limeng-stock-period-error-message
WuYongJie:feature/limeng-stock-quote-periods
WuYongJie:feature/limeng-supplier-accessory-freight
WuYongJie:fix/limeng-stock-approval-effective
WuYongJie:feature/sumu-return-header-match
WuYongJie:feature/sumu-return-natural-order
WuYongJie:feature/sumu-return-pagination
WuYongJie:feature/sumu-reconciliation-scroll
WuYongJie:feature/sumu-statement-pagination
WuYongJie:feature/sumu-return-confirmation
WuYongJie:feature/sumu-reconciliation-detail-page
WuYongJie:feature/sumu-reconciliation-amounts
WuYongJie:feature/sumu-reconciliation-barcode
WuYongJie:feature/sumu-reconciliation-reconciler
WuYongJie:feature/sumu-supplier-reconciliation
WuYongJie:feature/sumu-import-stream-memory
WuYongJie:feature/sumu-import-20w-rows
WuYongJie:feature/sumu-import-memory-fix
WuYongJie:feature/sumu-payment-reconciliation-date-column
WuYongJie:feature/sumu-return-reconciliation-title-order
WuYongJie:feature/sumu-return-reconciliation-column-order
WuYongJie:feature/sumu-return-reconciliation-columns
WuYongJie:feature/sumu-payment-reconciliation-extra-columns
WuYongJie:feature/sumu-payment-reconciliation-unsent-column
WuYongJie:feature/limeng-stock-quote-entry
WuYongJie:fix/wuyongjie-erp-export-retry-hardening
WuYongJie:fix/limeng-shared-column-picker
WuYongJie:fix/limeng-quote-pdf-chinese-bold
WuYongJie:feature/limeng-agreement-document-sheets
WuYongJie:fix/limeng-quote-change-button
WuYongJie:fix/shipping-superseded-autoship
WuYongJie:feature/limeng-courier-onboarding
WuYongJie:fix/shipping-superseded-packages
WuYongJie:fix/qiuxiang-jingxi-zy-fee-remark
WuYongJie:fix/shipping-view-carrier
WuYongJie:fix/shipping-sync-retry-morning
WuYongJie:fix/shipping-outbound-warehouse-virtual
WuYongJie:preview/zhoushengchen-courier-local
WuYongJie:feature/limeng-agreement-archive-workflow
WuYongJie:fix/yueyang-receipt-promo-selfcheck
WuYongJie:feature/yueyang-billing-details-filters
WuYongJie:fix/yueyang-amount-net-of-expense
WuYongJie:fix/yueyang-export-progress-percent
WuYongJie:fix/yueyang-offset-signed-amount
WuYongJie:feature/jushuitan-cost-price-snapshot
WuYongJie:fix/shipping-outbound-carrier
WuYongJie:fix/jushuitan-shipping-align
WuYongJie:feature/jushuitan-shipping-data
WuYongJie:feature/qiuxiang-mapping-platform-normalize
WuYongJie:feature/qiuxiang-ledger-remark-from-account-mapping
WuYongJie:feature/qiuxiang-jst-planting-flag-fix
WuYongJie:feature/qiuxiang-jst-planting-flag
WuYongJie:feature/qiuxiang-jst-labels-multiselect
WuYongJie:codex/release-store-report-periods
WuYongJie:fix/chenxi-erp-daily-empty-range
WuYongJie:fix/chenxi-erp-daily-calendar
WuYongJie:feature/chenxi-erp-daily-bills
WuYongJie:feature/chenxi-ledger-remark-sheet2
WuYongJie:feature/zhoushengchen-return-pickup-quote
WuYongJie:fix/chenxi-ledger-remark-mirror-tabs
WuYongJie:feature/chenxi-toutiao-daily-cron
WuYongJie:feature/chenxi-ledger-remark-column
WuYongJie:feature/dodo-internal-flow-report
WuYongJie:feature/dodo-tax-forecast
WuYongJie:feature/dodo-shop-entity-trademark-crawl
WuYongJie:feature/yueyang-account-mapping-tax-category
WuYongJie:hotfix/yueyang-account-mapping-category-filter
WuYongJie:hotfix/yueyang-account-mapping-multiselect
WuYongJie:feature/yueyang-account-mapping-log-timezone
WuYongJie:feature/yueyang-account-mapping-history
WuYongJie:feature/dodo-finance-table-layout
WuYongJie:feature/yueyang-account-mapping-page
WuYongJie:feature/chenxi-inventory-warehouse-short-name
WuYongJie:fix/qiuxiang-deleted-migration-deploy-check
WuYongJie:fix/qiuxiang-revert-inventory-mapping-merge
WuYongJie:fix/chenxi-deploy-tunnel-process
WuYongJie:fix/chenxi-regctl-executable
WuYongJie:fix/chenxi-deploy-ssh-reuse
WuYongJie:fix/chenxi-scp-array-splat
WuYongJie:fix/chenxi-macos-scp-compat
WuYongJie:fix/chenxi-macos-deploy-runner
WuYongJie:fix/qiuxiang-vipshop-mp-label
WuYongJie:fix/chenxi-inventory-mapping-release-20260928
WuYongJie:feature/codex-taobao-alipay-authoritative
WuYongJie:feature/qiuxiang-build-version-indicator
WuYongJie:feature/yueyang-small-payment-filter-scroll
WuYongJie:feature/chenxi-inventory-import-export-v2
WuYongJie:fix/chenxi-inventory-sales-stock-enabled
WuYongJie:codex/release-report-query-final
WuYongJie:codex/release-report-query
WuYongJie:fix/92451-withdrawal-compliance
WuYongJie:fix/limeng-shipping-sync-query-timeout-v2
WuYongJie:fix/limeng-shipping-timeout
WuYongJie:fix/dodo-new-button
WuYongJie:fix/codex-account-bill-export-scope
WuYongJie:feature/limeng-merge-jushuitan-shipping-data
WuYongJie:fix/chenxi-inventory-report-july-rollforward
WuYongJie:fix/chenxi-inventory-report-july-filter
WuYongJie:fix/limeng-online-daifa-daily-sync
WuYongJie:fix/chenxi-inventory-report-july
WuYongJie:fix/chenxi-login-redirect
WuYongJie:fix/limeng-jst-orders-index
WuYongJie:fix/yueyang-pinduoduo-september-import-date-filter
WuYongJie:fix/limeng-remove-online-daifa-raw-form-column
WuYongJie:fix/yueyang-production-supplier-payable-connection
WuYongJie:feature/yueyang-pinduoduo-complete-bills
WuYongJie:fix/limeng-agreement-personal-counterparty
WuYongJie:fix/chenxi-inventory-aug-opening-balance
WuYongJie:fix/chenxi-inventory-subwarehouses
WuYongJie:feature/limeng-shipping-data-filters
10 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| a461bcaee6 | merge: 记录线上 f8c594c3 已合入 main | |||
|
|
f8c594c3de | merge: 同步线上最新 main (#640) | ||
|
|
49489a59d0 | merge: 同步线上最新 main (#633) 后发布 | ||
|
|
49c692b4d6 | chore: 移除调试临时文件(会话 cookie 不应入库) | ||
|
|
b53b077deb | merge: 带上筛选栏网格修复 | ||
|
|
56391d4e81 | merge: 同步 main 到性能分支(部署前对齐) | ||
|
|
c898308f18 |
fix: 恢复报表筛选栏网格布局(#602 精简样式导致字段整行堆叠)
#602 把 .installation-filter-bar 的 display/grid-template-columns 移到了 安装明细页专用的 .installation-filter-primary / .installation-filter-time / .installation-filter-actions 内部容器,但店铺维度报表、业绩明细、进销存报表、 入库明细四个页面仍直接以 .installation-filter-field 作为栅格项,失去网格后 每个筛选项各占一整行,查询/清除按钮被挤到最右下角。 新增 .installation-filter-bar--grid 修饰类,恢复四列栅格(1100px 两列、 650px 单列)与左对齐操作区,并只应用到上述四个直接使用字段栅格的表单; 安装明细页使用内部容器排版,不受影响。 |
||
|
|
6cbfe27afc |
fix: 物化状态同时校验空值,兼容尚未部署新代码的同步任务
状态表标记已物化、但旧版本同步代码重刷账期时不写物化列,会留下 NULL 导致页面把未物化行当成 0 差额。现在读取状态时同时检查该账期是否还有 has_difference 为 NULL 的行,有则回退实时规则表达式(缓存 10 分钟)。 |
||
|
|
089c2dd603 |
perf: 补业绩明细排序索引,回填后页面热缓存 24ms
- 新增 (report_month, occurred_date, store_name, online_order_no) 索引, 默认列表不再对整月 32 万行做 filesort; - 文档补充共享库回填实测数据(91.7 万行回填 5.9 分钟,三项一致性差异 0; 联动统计 84.9 秒 → 冷 1.7 秒 / 热 2 毫秒,页面 7.7 秒 → 冷 1.7 秒 / 热 24 毫秒)。 |
||
|
|
4ea833d0d8 |
perf: 业绩明细差额规则落库,切月份统计从数十秒降到亚秒级
业绩明细页的「差额合计」「差额异常备注」「差额(有/无)」原先都在查询时 逐行现算同一套规则链(生成 SQL 24KB/50KB,含 36 处 ops_jst_orders 关联 子查询)。整月 32.4 万行实测:联动统计 14.5~41.6 秒,页面主体 2.7~4.6 秒。 - 新增物化列 difference_reason_index / base_difference / has_difference, 以及 (report_month, difference_reason_index)、(report_month, has_difference)、 (report_month, store_name, platform) 三个索引和物化状态表; - 新增 store-receipt:materialize-differences 命令(分批写入、支持 --dry-run 三项一致性校验,默认连带重算相邻月份以覆盖跨月备注); - store-receipt:order-match:sync 成功后自动物化(--skip-materialize 可关闭); - 页面聚合、联动统计、备注/差额筛选改读物化列,规则指纹不匹配或未物化时 自动回退实时表达式,功能不受影响; - 月份下拉缓存 6 小时、指标卡聚合 5 分钟、联动统计 1 小时,缓存键带规则 指纹、物化状态与数据版本,物化后自动失效; - 前端联动统计改为展开下拉时按需请求,页面加载不再同步统计整月。 规则表达式仍以 Pages 的静态方法为唯一口径,物化命令直接复用,不在 PHP 中 重写规则。本地用 7,907 行副本验证:三项一致性差异为 0,数字与实时口径完全 一致;联动统计 76ms→21ms、页面 56ms→41ms(同一数据)。详见 docs/业绩明细差额物化.md。 |