fix: 特批附件下载新增路径式文件名端点支持前端预览识别

前端附件组件按url路径后缀判断可否预览,query携带的pdf后缀不识别导致提示仅能下载;新增GET /hcs/attachment/download/{name} 端点(路径携带文件名含后缀,行为与原接口一致),特批附件展示行url改路径式;nacos放行改 /** 通配同时覆盖两种形式
This commit is contained in:
刘泉佳
2026-10-27 19:31:14 +08:00
parent 4918054762
commit 85d1576b1a
3 changed files with 23 additions and 7 deletions
@@ -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 过渡方案:与合规推送等效)
*/
@@ -610,9 +610,11 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
Map<String, Object> 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) {
+4 -4
View File
@@ -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: