提交图
2891 次代码提交
作者 SHA1 备注 提交日期
API Changelog Bot d2bce9b9c8 docs(changelog): #7439 dayNumber 取值域放宽,用车行可落在行程窗外
changelog-filename-gate / validate (push) Failing after 2s
Refs #7439 / PR #7639 (8c699658a)

- TerminateRefundItemVO.dayNumber 不再保证落在 [1, tripDays]:接送机服务日常在行程窗外,
  该值是服务日的无损编码,后端不再截断;原先这类订单被 581048 拒掉,现在正常返回。
- 前端凡是拿 dayNumber 直接当下标 / 做 1..N 循环的地方必须先做边界判断。
- 第八节为测试服实测:order-v3 @ dev-v3/8c699658a,经网关调 refund-preview,
  同一响应实测到 dayNumber=0(接机,出发前一天)与 dayNumber=5(送机,>tripDays=3),
  保险行仍 null,581048 未出现;取证前后 deploy-status 的 commit 一致。
2026-09-13 22:26:38 +08:00
API Changelog Bot 59bc815af4 docs(changelog): record #7635 merge
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 21:06:37 +08:00
API Changelog Bot e3700420a2 docs(changelog): publish order kind filters (#7635)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 20:18:39 +08:00
jw 0686db9ad5 changelog(#7528): 团期进入待出发七项硬门 + 详情 departureGates 展示 + recheck 端点
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 19:04:55 +08:00
API Changelog Bot和Claude Opus 5 0207e50800 docs(changelog): #7326 团期房务分房 H9-H11 + 团期配房明细 H12(新增接口,管理后台)
changelog-filename-gate / validate (push) Failing after 2s
面向 mmg:房务「分房」页三端点(H9 总览 / H10 人工微调 / H11 重算)
与团期详情「配房明细」只读区块(H12),四个端点全部新增。

覆盖范围写在 frontmatter 的 status_note 里,不藏在正文:
- 网关实测的是 e9855bf21;其后的 4df361bf6(days[].balanced 两端统一为纯算术)
  与 5fd39de3b(三处契约描述订正)只有单测覆盖;
- 网关实测那轮有两处前置是 SQL 直更达成的,对应的两条业务链路本轮没验过;
- 八项明确未覆盖的盲区逐条列出,这些项的契约按源码写、不按实测写。

几条前端最容易踩的,正文里逐条点名:
1. stayDate 格式错是 HTTP 200 + 响应体 code=400,不是 HTTP 400
   —— axios 那种「非 2xx 才进 catch」的拦截器不会被触发,必须在 then 里判 body.code;
   且格式提示括号不是恒有的(被拒值不像日期时只给不带括号的短句),别做 message 全等匹配。
2. days[].balanced 是纯算术口径(该日 leftover 全 0 且逐户 shortage/surplus 全 0),
   不含过时户与越界户——那两项只进根级 balanced。配了「我想知道 X 该看哪个字段」对照表。
3. H10 的 items 与 clearPlanIds 不得指向同一 planId(100001);三条上限 500/200/99。
4. 床型下拉按 bedTypeLabel 渲染,不要解析错误 message
   —— 理由不是它现在错(808131 文案已在 5fd39de3b 修对),而是错误 message 本来就不是契约。

PR 号待合并后回填(分支 feature/7326-room-allocation)。

两道校验器均通过:
- validate-changelog-frontmatter.mjs --verbose:4 个端点逐条回显、endpoint-count 4,与正文标题数对上;
- validate-changelog-filenames.mjs 的 validateChangelogPath:TARGET errors=[],
  阳性对照(日前缀改 12_)正确报 E_DAY,证明该门禁有分辨力。

Refs #7326

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-13 18:10:00 +08:00
yaosutu 9ad6178c3c docs(finance): 费用报销 changelog 冲抵勾稽自包含——内联 offsettable 用法
changelog-filename-gate / validate (push) Failing after 2s
原 §七 错误码 599107/599113 写"见 PR #7566 冲抵借款 changelog"违反自包含铁律。
本次补全:599107/599113 拆行写清触发条件 + 新增「冲抵勾稽(自包含)」段——
内联 GET /admin/finance/staff-loans/offsettable 端点用法与出参(balanceAmt 可冲上限)、
use=min(报销剩余额度,借款余额) 勾稽规则、offsetLoanAmt/payableAmt 关系,
指向员工借款申请与审批篇准确文件名。
2026-09-13 17:51:23 +08:00
yaosutu 1191b6e046 docs(finance): 员工借款 changelog 重写——按原型修正核销归属 + 审批写清
changelog-filename-gate / validate (push) Failing after 2s
按原型对齐两菜单分工:
- 员工借款申请与审批(改名,原"申请与核销"):付款管理/员工借款 = 申请 + 审批(submit/approve/reject 手工推进状态,approvalInstanceId 留空待接企微) + 核销进度只读 + 报销冲抵选借款;砍掉还款登记/红冲
- 员工借款支付出纳放款:支付管理/员工借款支付 = 出纳放款(cashier bizType=STAFF_LOAN) + 还款核销(现金/转账登记 POST /{id}/repays、红冲 DELETE、报销冲抵 offsetLoanIds) + 资金账户下拉

修正点:还款核销登记/红冲从申请篇挪到支付篇(原型 L1674 notice 明确核销在出纳侧);审批接口写清为手工推进状态、approvalInstanceId 留空。
2026-09-13 17:43:48 +08:00
Mimingguang babb9e6a89 chore(staffloan): 回写员工借款前端交付凭证(7521/7520 申请核销+出纳放款 verified eb6812c2)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 17:27:19 +08:00
yaosutu c91730668b docs(finance): 员工借款两菜单 changelog——申请+核销 / 出纳放款支付
changelog-filename-gate / validate (push) Failing after 2s
Epic #7520 四 PR(#7543/#7549/#7557/#7566)员工借款域已全量接通 + 菜单已挂载(PR #7642 / 迁移 V20260913_001)。

- 13_staffloan_员工借款申请与核销-新增接口:「付款管理/员工借款」/admin/finance/staff-loans 12 端点全表 + 状态机 + 错误码 599101-599113
- 13_staffloan_员工借款支付出纳放款-修改接口:「支付管理/员工借款支付」出纳放款对接(cashier bizType=STAFF_LOAN)
- 两篇均含 菜单↔功能↔接口 对照表;借款人下拉统一 GET /admin/user/employee-options;资金账户 fund-accounts/options
2026-09-13 17:01:28 +08:00
Mimingguang 890c8bd454 chore(expense): 回写费用报销前端交付凭证(7472/7486/7502 verified e5ca470a)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 16:49:39 +08:00
API Changelog Bot 91e38984ab docs(changelog): add #7633 revoke reason handoff
changelog-filename-gate / validate (push) Failing after 1s
2026-09-13 16:32:00 +08:00
yaosutu edab50a6a8 feat(changelog): 费用报销三件套(#7472/#7486/#7502) + 费用支付出纳对接说明
changelog-filename-gate / validate (push) Failing after 2s
- 费用报销:page 加 statuses 多状态筛选、detail 加 payRecords 付款记录、表单补 applicantId/payeeAccount/voucherUrl、透出经办人 operatorId/operatorName、598705 文案放宽;含部门组织树/员工选择器/所属公司 travel_agency/费用分类 关联接口指引
- 费用支付:出纳域对接说明(queue/pay/payments 按 EXPENSE 路由),接口无变更
2026-09-13 16:25:38 +08:00
Mimingguang 5db14d3832 chore(changelog): #7439 用车需求分家前端 not_required(等 TRANSFER 开放)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 15:10:28 +08:00
Mimingguang b241e8a69b chore(changelog): #7612 业务外收支 + #7625 员工选择器前端 verified
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 15:01:58 +08:00
API Changelog Bot 1c5279f327 docs(changelog): #7439 对外分册补齐 809001/809007 处置口径与「建议显式传 kind」
changelog-filename-gate / validate (push) Failing after 2s
两处是交接件自身的缺口,不是实现问题:

1. 809001(同单同 kind 重复/并发提交)此前只作为 JSON 示例出现,没有前端处置口径,
   而本文件错误码表的前提就是「每个码配一条处置口径——码本身不够,处置动作错了
   照样是线上问题」。补的处置口径关键是「不要自动重试」:只要那条活跃需求还在,
   重试永远是这个码。
2. 809007 此前只在内部分册。它确实是 fleet 消费侧的码、前端拿不到,但错误码段位
   在交接件里应当完整,且它与 809002 的分工需要说清(809002=提交时派生不出来,
   前端可引导补大交通;809007=提交时没派生、事后被消费,属存量回填,前端无动作)。
   补上之后,「交接件含 6 个错误码」在「两册之和」与「mmg 实际拿到的那一份」
   两种读法下都成立,不必再去裁哪种读法对。
3. 「不传 kind 按 TRAVEL 处理,现网代码可不改但建议显式传」此前只写在内部分册,
   而内部分册的收件人是后端与 fleet 侧、不是 mmg。已补进对外分册的影响评估与
   端点1 入参表,并写明为什么值得显式传:一旦该订单出现两类活跃需求,「不传」
   的语义就从「就是行程用车」变成「碰巧落到行程用车上」,两者在代码里长得一样。

校验:六个码(809000/809001/809002/809007/809008/809009)在对外册均为行首表格行
各 1 行;退役号 809003-809006 阴性对照各 0 命中;endpoint-count 仍为 7 / 4。
2026-09-13 15:01:15 +08:00
API Changelog Bot 1e8404a047 docs(changelog): #7439 团期车务地基——用车需求分家(对外 7 端点 + 内部 4 端点)
changelog-filename-gate / validate (push) Failing after 1s
两份分册按 BACKEND_CHANGELOG_DELIVERY_GUIDE.md 2.5 节拆分(/v3/internal 必须单独成篇)。
2026-09-13 测试环境逐端点实测:对外 7 个经网关,内部 4 个直连服务带 X-Internal-Token
(网关按设计一律 403 拦 internal,不是路由失败)。部署 HEAD a82367e15,
order-v3 / fleet / gateway 同批。

实测顺带订正两处文档与实现不符的契约,已改在 §二/§三 正文而非附注:
1. 打回·定制师 / 打回·车控 的 kind 是 @RequestParam Query 参数,不在 RejectReqVO 里。
   原文档标成 Body —— 按原文档把 kind 塞进 JSON 会被 Jackson 静默忽略、
   不报错也不返 400、服务端按默认 TRAVEL 处理,接送机的打回会落到行程需求上。
2. 提交/修改用车需求的非法 kind 实测返 400(VehicleRequirementReqVO 的 @Pattern
   先于业务代码拦截),809000 对该端点的 body 参数不可达;809000 仍可经内部接口的
   query 入口触发。同一处校验、两个入口两种表现,两条分支都要处理。
2026-09-13 14:47:04 +08:00
yaosutu d53a6f4328 docs(changelog): 业务外收支 7612 入参按 IN/OUT 两个页签分开说明
changelog-filename-gate / validate (push) Failing after 2s
把"四、入参"重构为分方向:先讲一套接口两个页签(direction 区分)怎么调,再分别给业务外收入(IN)/业务外支出(OUT)两张干净表单字段表,支出明确"只有 8 字段、不收凭证类"。前端对着自己页签抄即可。
2026-09-13 14:44:50 +08:00
Mimingguang 649eea681b chore(changelog): #7327 核单住宿失效团期行前端 verified(可删+合计剔除)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 14:39:53 +08:00
yaosutu 6e05bd81aa feat(changelog): 业务外收支接供应商与经办人(#7612) + 员工选择器接口(#7625)
changelog-filename-gate / validate (push) Failing after 2s
- 13_7612:业务外收支修改接口(破坏性:删 unitName/加 operatorId 必填/OUT 裁剪 6 字段;出参加 flowNo;含供应商弹窗/部门树/员工选择器/类别/收付方式字典 5 个关联接口对接指引)
- 13_7625:新增员工选择器 GET /admin/user/employee-options(不限角色,供经办人下拉)
2026-09-13 14:37:16 +08:00
Mimingguang b7855447cf docs(changelog): #7487 撤销审批语义修正实证 not_required(前端未接该端点)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 14:12:04 +08:00
API Changelog Bot 54cdd4dca8 docs(changelog): document supplier revoke failure (#7487)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 14:07:55 +08:00
API Changelog Bot和Claude Opus 5 779f70f896 docs(7327): 订正 changelog —— PR-2 把「权威消失即软删」推翻为「转 REVOKED 不删」
changelog-filename-gate / validate (push) Failing after 2s
本篇写于 PR-1(#7600, 49ce99cc8)当天,同日 09:19 合入的 PR-2(#7603, d916986de)
把其中的行为改成了相反的。mmg 手上拿到的是错的,故就地订正而非另起新篇
(另起会把同一批接口的信息分裂到两个文件)。

订正 7 处(代理只报了 4 处,第 5-7 处是收尾时按「概念」做全文残留断言抓出来的):

1. 关键变化段:GROUP_BATCH_PLAN_REVOKED「本期产生不出来」-> 本期就会出现
2. 对平规则:「权威消失即软删,返回结果里不再出现」-> 不删,就地转 REVOKED
   + remark 加前缀 [团期来源已失效] ,实付/凭证/确认状态/source_id 锚点全保留,
   权威回归时按 source_id 三段认回、不新建重复行
3. 行为对照表「团期权威消失」行
4. 用例名 listHotel_groupAuthorityGone_softDeletes... -> ...revokes...
   (真名见 SettlementServiceGroupBatchReconcileTest.java:219)
5. sourceType 取值域表里仍写着「本期产生不出来」
6. 读写混合说明里的对平三动作仍写着「权威消失的软删」
7. 「会新建、更新或软删住宿行」加限定(团期行走转 REVOKED,此处软删指其它来源)

另:正文顶部新增「2026-09-13 订正」段集中对账,PR 行补 #7603。

frontend_status: not_required -> pending。原 not_required 闭环是在
「REVOKED 本期产生不出来」这个前提下做的,前提已失效。
它引出一个需要拍板的新问题:一条权威已消失的 REVOKED 行,核单员到底能不能删?
按现有前端逻辑它是「不可删的派生行」,但上游已不存在 —— 意味着它会永久留在核单页上。
后端这么设计是故意的(保住已录实付与凭证、以及认回锚点),但前端侧怎么展现没定过。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-13 14:04:04 +08:00
Mimingguang 551c56609f docs(changelog): #7608 取消成团判权实证 not_required(前端无取消成团按钮,589507 兜底)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 13:11:26 +08:00
API Changelog Bot和Claude Opus 5 5a24c71fe0 feat(scripts): 校验器加 --verbose,成功路径也打印逐端点命中行
changelog-filename-gate / validate (push) Failing after 2s
背景:changelog 校验器的端点解析结果原本只在「清单与详情对不上」时才进 errors,
成功路径零输出(只有一行 PASS)。于是「每个端点都被校验过」这件事**无法取证**——
#7439 AC-19 要求「贴校验器输出里逐端点的命中行、端点数对得上」,判据字面不可达成。

改法:模块级开关 VERBOSE_ENDPOINTS,main 识别 --verbose 后从 argv 剔除再走原解析
(避免打乱 argv[0] === '--files' 的判断)。打印格式:

  [endpoint] <file> #<n> <METHOD> <path>
  [endpoint-count] <file> <n>

硬约束:**默认行为一个字节都不变**。它是提交门禁,加日志不得影响判定。
已验:同一组文件在改前/改后不带 --verbose 跑,stdout+stderr 逐字节 diff 为空;
仓内 14 条测试改前改后均 14 pass / 0 fail。

为什么值得改而不是改判据:逐端点证据对所有 changelog 都有用,
而「手工用同一条正则再枚举一遍」产出的不是校验器输出,等于用一个未经检验的
复制品去证明原件跑过了。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-13 13:04:22 +08:00
jw和Claude Opus 5 ad0c43afb1 docs(order-v3): #7608 团期取消成团接入 group-batch:manage 判权(589507)+ 三端点旁路观察
changelog-filename-gate / validate (push) Failing after 2s
批 0+1:cancel-group 接 manage 带 nacos 灰度开关;withdraw / transfer-in /
transfer-candidates 本批只加旁路观察日志,对外行为零变化。

TEST 实打:AC-2 零写入(41 列逐列一致、update_time 未变、流水 0 新增)、
AC-3 非超管 ADMIN 仍 200、AC-6 开关两态(≈7s 生效)、观察探针端到端。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-13 11:57:43 +08:00
Mimingguang d0e762ddc6 docs(changelog): #7607 审批链口径更正实证 not_required(前端纯透传 statusChangeText)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 11:00:37 +08:00
Mimingguang 6c7e0ef5f5 docs(changelog): #7440 团期配车只读模块回写 verified(frontend_ref 5aea88d4)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 10:54:55 +08:00
lc和Claude Opus 5 4ca07159ba docs(changelog): 审批记录改按审批链推进并修正或签审批人(#7607),更正 #7587 口径
changelog-filename-gate / validate (push) Failing after 2s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DdmjgoN68L7TUP4oRosfTu
2026-09-13 10:50:18 +08:00
Mimingguang bc84c8099c docs(changelog): #7520 资金账户所属公司多选回写 verified(frontend_ref 37454cb4)
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 10:31:02 +08:00
Mimingguang 86b700939c chore(changelog): #7532 回写前端 verified(95518b50) 出团通知书读写模块
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 10:20:40 +08:00
Mimingguang a61586ff83 chore(changelog): #7527 回写前端 verified(a80b9670) 发起核单入口
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 10:08:51 +08:00
yaosutu 48d36a1c84 docs(changelog): 资金账户新建/编辑表单字段对接说明(管理后台 v2)
changelog-filename-gate / validate (push) Failing after 2s
非接口改动:资金账户接口字段早已齐全,前端补 5 字段(bankName/shortName/nature/feeRate/refundReserve)+ scopeCompanies 改多选。
2026-09-13 10:05:19 +08:00
Mimingguang 4b351d1c1c chore(changelog): #7587 回写前端 verified(e3ff8510) 审批记录补状态变化列
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 09:54:57 +08:00
Mimingguang 10502ccdd3 chore(changelog): 补回写漏网 8 条(7510×2/7511/7512 verified+not_required;7513/7530/7531/7535 not_required)
changelog-filename-gate / validate (push) Failing after 2s
7510/7511/7512 代码早已随供应商关系系列交付(a17a2c2a/4bedc8be),实证后回写 verified 挂 a17a2c2a;
11_7510 为正本 12_7510 的重复副本(canonical_path),标 not_required 消除 pending;
7513/7530/7531/7535 实证前端零改动 not_required。
2026-09-13 09:51:52 +08:00
Mimingguang a7a687796f chore(changelog): #7327 回写前端 not_required 核单 Step1 来源透传+584129兜底均兼容
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 09:36:00 +08:00
Mimingguang 8ddf1e5268 chore(changelog): #7537 回写前端 verified(f7699455) 协同工单补团号列,余三块 no-op
changelog-filename-gate / validate (push) Failing after 2s
2026-09-13 09:14:00 +08:00
API Changelog Bot和Claude Fable 5.1 31d9cb8b23 docs(order-v3): 团期配房行合流进住宿核单 Step1 changelog(#7327 PR-1)
changelog-filename-gate / validate (push) Successful in 2s
面向 hl-ui:核单 Step1 的 sourceType 扩取值域,团期订单首次出现团期配房派生行
GROUP_BATCH_PLAN;新增行级确认闸业务错误码 584129。
接口路径、HTTP 方法、VO 字段集合均未变化,网关无新增路由。

Refs #7327

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-13 08:53:04 +08:00
jw和Claude Opus 5 d32665518f docs(order-v3): #7513 团期转期同步回写归属两列 + 在途退单守卫 589589
changelog-filename-gate / validate (push) Successful in 2s
转订单端点请求/响应结构零改动,前端无需改造。两处需告知:

1. 转期后订单详情的团期编号/名称会正确显示为【目标期】——此前因只改了
   product_batch_id、没改 group_batch_id,展示的是源期。属修复非回归。
2. 新增拒绝码 589589:该户有在途 PENDING 退单审核时转期被拒,前端按普通
   业务错误弹 message 即可,文案已含出口指引(先在源期驳回再重提)。

历史已转期订单的存量分叉本次不修,见 #7586。

frontmatter: backend_status=deployed / gateway_status=verified / frontend_status=pending
校验:validateV2Document 0 错误;validateChangelogPath 通过。

Refs #7513
PR wx/HL#7589

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-12 17:10:02 +08:00
lc和Claude Opus 5 47544d190e docs(changelog): 供应商审批记录新增变更前后状态字段(#7587)
changelog-filename-gate / validate (push) Failing after 2s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DdmjgoN68L7TUP4oRosfTu
2026-09-12 16:50:43 +08:00
jw 4bea4c2d1c docs(order-v3): #7535 零破坏证据升级为真·双部署逐字段对拍
changelog-filename-gate / validate (push) Successful in 3s
2026-09-12 15:41:25 +08:00
jw 637fad2394 docs(order-v3): 团期接口返回值整改·非破坏批 changelog(#7535)
changelog-filename-gate / validate (push) Successful in 2s
19 个团期读端点纯加响应字段,47 个新 key,既有 key 的名称/类型/取值/null 语义
一行未动,前端零改动即可继续运行。零 DDL、零错误码、零网关改动。

前端要点:opsStage 直接读不要自己折桶;联系人改读 customerName;
审批中心统一列表三个新字段只在 WITHDRAW 行有值;teamNo 逐户各不相同且未付订金为 null;
staff 候选的 groupBatchId 在团期未创建时为 null,不得当必有主键用。

四组旧字段(Text/Label 后缀、contactName、batchId、total*)已标 @Deprecated,
本批不删、值不变,删除时间另行通知。
2026-09-12 15:12:28 +08:00
lc和Claude Opus 5 e315cbb6b0 docs(7512): 服务人员 Changelog 补齐模板必需章节与逐接口自包含内容 Refs #7512
changelog-filename-gate / validate (push) Successful in 3s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011t6wjBsvqsFKFSkCzsYsuS
2026-09-12 12:19:39 +08:00
lc和Claude Opus 5 3a15e3de25 docs(7512): 服务人员按景区口径接入供应商关系 Changelog(supplierFullName / 原因可省略 / 无订单门禁)Refs #7512
changelog-filename-gate / validate (push) Failing after 2s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011t6wjBsvqsFKFSkCzsYsuS
2026-09-12 12:15:55 +08:00
lc和Claude Opus 5 57be23bcd1 docs(7511): 额外成本按景区口径接入供应商关系 Changelog(supplierFullName / 固定 COST_ITEM 类型 / 原因可省略)Refs #7511
changelog-filename-gate / validate (push) Successful in 2s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UqNs52DGnGU29PN8Ey37Ms
2026-09-12 12:04:17 +08:00
jw和Claude Opus 5 1584c8ee80 docs(order-v3): #7532 团期出团通知书读写端点(GB-ADM-081 / 082)
changelog-filename-gate / validate (push) Successful in 2s
新增两个管理后台端点:
  GET / PUT /v3/admin/order/group-batch/{groupBatchId}/docs/notice
读端点在未保存过时按团期数据即时拼草稿返回(不落库),写端点整体覆盖保存到新表
group_batch_notice(Flyway V20260912_140)。

前端必接三件事:
1. expectedVersion 必填、首次传 0、收到 589585 必须【重读再提交】——直接重试一定还是 589585;
2. releasable=false 时置灰「打印 / 存 PDF」(阶段门只卡下发不卡编辑,招募期可起草);
3. 正文是纯文本语义,后端不转义也不反转义,按纯文本渲染、不要 v-html,
   也不要在前端 escape/unescape 后再提交。

另一条部署事实:新权限码 group-batch:docs 在 user-service 有 10 分钟 Redis 缓存,
上线后 ADMIN 最多 10 分钟才生效,这段窗口的 589507 不是漏配。
当前授权范围 ADMIN / SUPER_ADMIN,FINANCE 未授。

原型出入三处(contacts 单串 vs 两个输入框、完成编辑未发请求、service/bring 未接控件)
已在正文列出,口径由 mmg 对齐。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-12 11:55:44 +08:00
jw和Claude Opus 5 b4ef91e9eb docs(order-v3): #7531 下线 Mock 的行程整体保存端点 + #7530 团期 staff 去重与报账人扇出限定本团
changelog-filename-gate / validate (push) Successful in 3s
#7531(删除接口):POST /v3/admin/order/{orderId}/itinerary/save 下线。
该端点自 2026-05-12 落地起就是 Mock,只回显入参 id、从不落库;
下线前已穷举 mmg/hl-ui 全部 4 条远端分支确认零调用(每条带阳性对照),
故前端预期无需改动。整体保存的真实入口是 POST /v3/admin/order/{id}/adjustment/submit。
错误码 583030-583034 号位保留未释放。

#7530(修改接口,两个端点):
1. PUT /v3/admin/group-batch/{productBatchId}/staff 新增 589582——
   staffList 内 staffId 重复即拒绝、整批不保存,同一员工不能在同一团期占两个配置位。
   前端需提交前去重或直接透出文案。
2. PUT .../staff/{staffId}/reporter-rank 行为收敛——
   报账人等级的订单副本同步范围由「全库」收窄为「本团活跃订单」,
   响应结构与错误码不变;存量重复行不再抛裸 500。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-12 11:04:13 +08:00
lc和Claude Opus 5 3aa5242ab9 docs(7510): Changelog 路径迁移为 12_ 并登记 11_ 兼容别名 Refs #7510
changelog-filename-gate / validate (push) Successful in 3s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UqNs52DGnGU29PN8Ey37Ms
2026-09-12 10:35:51 +08:00
lc和Claude Opus 5 fb7a6af37b docs(7510): 服务按景区口径接入供应商关系 Changelog(supplierFullName / 原因可省略 / 395063)Refs #7510
changelog-filename-gate / validate (push) Failing after 2s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UqNs52DGnGU29PN8Ey37Ms
2026-09-12 10:29:11 +08:00
jw和Claude Opus 5 4656428473 docs(order-v3): #7527 团期发起核单端点(TRIP_FINISHED → REVIEWING)
changelog-filename-gate / validate (push) Successful in 3s
新增 POST /v3/admin/order/group-batch/{groupBatchId}/review/start。

补的是「团期卡死」的入口缺失:这一跳此前唯一入口是录共享成本的副作用,
不用大巴、没请导摄的团没有成本可录就没有触发点,永久停在「出行完毕」,
八桶看板的「核团中」桶对这类团恒为空。

面向 hl-ui 写清三件事:① 重复点击返 200 而非报错,必须看 data.alreadyStarted
区分「真的推进了」与「幂等命中」,否则会连弹两次成功;② 三个新错误码
589564/589565/589566 各对应不同的下一步动作(等团回来 / 去做验团反确认 /
这团已流团),给了逐条的前端提示建议,其中 589565 要带反确认跳转;
③ 录成本自动推进的老行为一行未改,两条入口并存,前端现有调用不需调整。

权限码复用录成本那一个(group-batch:finance:advance),按钮可见性判据可直接复用。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-12 10:26:15 +08:00
jw和Claude Opus 5 79186364b8 docs(order-v3): #7537 管理端展示订单号的响应体统一补团号(teamNo)
changelog-filename-gate / validate (push) Successful in 2s
11 个 /v3/admin/** 端点响应体纯增 teamNo:退款详情/列表、支付分页/详情/按订单、
工单分页/详情三块新增字段,订单待办 4 个写端点补上此前恒 null 的填充。

面向 hl-ui 写清四件事:teamNo 是订单团号 order_main.team_no(26-0001),不是运营
团期号 batchNo(GB-26-0001);为空一律 null 不返空串不回退订单号;生成条件是订金
支付成功、与是不是团期单无关(已付订金散客单有、未付订金团期单没有);同团每张
子订单团号各不相同,别按团号归并。

另记 4 个 /v3/internal/ 端点连带多出该字段(服务间调用,前端不对接)。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-12 09:15:46 +08:00