From 85d1576b1afc3a129c5a1b4e0a2b39010bcb1ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Tue, 27 Oct 2026 19:31:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=89=B9=E6=89=B9=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=96=B0=E5=A2=9E=E8=B7=AF=E5=BE=84=E5=BC=8F?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D=E7=AB=AF=E7=82=B9=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=A2=84=E8=A7=88=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前端附件组件按url路径后缀判断可否预览,query携带的pdf后缀不识别导致提示仅能下载;新增GET /hcs/attachment/download/{name} 端点(路径携带文件名含后缀,行为与原接口一致),特批附件展示行url改路径式;nacos放行改 /** 通配同时覆盖两种形式 --- .../transport/controller/HcsSyncController.java | 14 ++++++++++++++ .../impl/PaymentApplicationServiceImpl.java | 8 +++++--- doc/nacos/blade.yaml | 8 ++++---- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/HcsSyncController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/HcsSyncController.java index 2b099116..531d9b94 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/HcsSyncController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/HcsSyncController.java @@ -280,6 +280,20 @@ public class HcsSyncController { } } + /** + * 合同附件下载(路径式文件名,url 以 .pdf 等后缀结尾):前端附件组件按 url 路径后缀识别可否预览, + * query 传 fdId 与 inline;行为与 /attachment/download 完全一致 + */ + @GetMapping("/attachment/download/{name}") + @ApiOperationSupport(order = 12) + @Operation(summary = "合规附件下载(路径式文件名)", description = "C103-5 代理:路径携带文件名(含后缀,前端预览识别用),fdId 必传,inline=true 时内嵌预览") + public void downloadAttachmentWithPath(@Parameter(description = "下载文件名(含后缀)", required = true) @PathVariable String name, + @Parameter(description = "合规附件ID", required = true) @RequestParam String fdId, + @Parameter(description = "内嵌预览(可选,pdf 在线查看)") @RequestParam(required = false) Boolean inline, + HttpServletResponse response) throws Exception { + this.downloadAttachment(fdId, name, inline, response); + } + /** * 合同特批结果人工确认(§6-U1 过渡方案:与合规推送等效) */ diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java index 4e4b8aee..9352a005 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java @@ -610,9 +610,11 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl specRow = new LinkedHashMap<>(); specRow.put("name", HcsSyncConstant.PAYMENT_SPEC_ATTACH_NAME + ".pdf"); specRow.put("attachmentType", HcsSyncConstant.PAYMENT_ATTACH_TYPE_SPEC_RESULT); - // 网关按服务名前缀路由(口径同 nacos skip-url);inline 内嵌预览 pdf,浏览器可直接查看/另存 - specRow.put("url", "/blade-transport/hcs/attachment/download?fdId=" + vo.getHcsSpecAttachFdId() - + "&inline=true&name=" + URLEncoder.encode(HcsSyncConstant.PAYMENT_SPEC_ATTACH_NAME + ".pdf", StandardCharsets.UTF_8)); + // 网关按服务名前缀路由(口径同 nacos skip-url);url 路径以 .pdf 结尾供前端预览组件识别后缀, + // inline 内嵌预览,浏览器可直接查看/另存 + specRow.put("url", "/blade-transport/hcs/attachment/download/" + + URLEncoder.encode(HcsSyncConstant.PAYMENT_SPEC_ATTACH_NAME + ".pdf", StandardCharsets.UTF_8) + + "?fdId=" + vo.getHcsSpecAttachFdId() + "&inline=true"); rows.add(specRow); vo.setAttachmentsJson(JsonUtil.toJson(rows)); } catch (Exception exception) { diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index 7f1b43ef..1917bf5f 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -247,8 +247,8 @@ blade: - /blade-transport/hcs/contractKingdee/result - /hcs/contractKingdee/result # HCS 合规附件下载(C103-5 代理):前端附件面板凭合规附件ID 查看/下载,fdId 32位随机不可枚举,免登免授权 - - /blade-transport/hcs/attachment/download - - /hcs/attachment/download + - /blade-transport/hcs/attachment/download/** + - /hcs/attachment/download/** #授权认证配置 auth: - method: ALL @@ -303,10 +303,10 @@ blade: expression: "permitAll()" # HCS 合规附件下载(C103-5 代理):前端附件面板凭合规附件ID 查看/下载,fdId 32位随机不可枚举,免登免授权 - method: GET - pattern: /blade-transport/hcs/attachment/download + pattern: /blade-transport/hcs/attachment/download/** expression: "permitAll()" - method: GET - pattern: /hcs/attachment/download + pattern: /hcs/attachment/download/** expression: "permitAll()" #基础认证配置 basic: