From 4243424d71cddf32fa4cef254fc70bfd9f3d648a Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:06:06 +0800 Subject: [PATCH 01/11] =?UTF-8?q?feat(lsfx):=20=E6=B7=BB=E5=8A=A0=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E5=88=86=E6=9E=90=E5=9B=BA=E5=AE=9A=E5=80=BC=E5=B8=B8?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/lsfx/constants/LsfxConstants.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/constants/LsfxConstants.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/constants/LsfxConstants.java index 040a416..37f0771 100644 --- a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/constants/LsfxConstants.java +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/constants/LsfxConstants.java @@ -27,4 +27,12 @@ public class LsfxConstants { /** 默认角色 */ public static final String DEFAULT_ROLE = "VIEWER"; + + // 新增:固定值常量(根据文档) + public static final String DEFAULT_USER_ID = "902001"; + public static final String DEFAULT_USER_NAME = "902001"; + public static final String DEFAULT_APP_ID = "remote_app"; + public static final String DEFAULT_ORG_CODE = "902000"; + public static final String DEFAULT_DEPARTMENT_CODE = "902000"; + public static final String DEFAULT_DATA_CHANNEL_CODE = "ZJRCU"; } From 784d4a93837abefbc83a563acb74325672f0f800 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:07:03 +0800 Subject: [PATCH 02/11] =?UTF-8?q?feat(lsfx):=20=E6=B7=BB=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E8=AF=B7=E6=B1=82DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/GetFileUploadStatusRequest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/request/GetFileUploadStatusRequest.java diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/request/GetFileUploadStatusRequest.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/request/GetFileUploadStatusRequest.java new file mode 100644 index 0000000..ebce3e6 --- /dev/null +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/request/GetFileUploadStatusRequest.java @@ -0,0 +1,16 @@ +package com.ruoyi.lsfx.domain.request; + +import lombok.Data; + +/** + * 获取单个文件上传状态请求(接口5) + */ +@Data +public class GetFileUploadStatusRequest { + + /** 项目ID (必填) */ + private Integer groupId; + + /** 文件ID (可选,不传则查询所有) */ + private Integer logId; +} From 5a53bc26c417c770e85770d3a8e1a8e512cd0760 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:08:24 +0800 Subject: [PATCH 03/11] =?UTF-8?q?feat(lsfx):=20=E6=B7=BB=E5=8A=A0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=96=87=E4=BB=B6=E8=AF=B7=E6=B1=82DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/request/DeleteFilesRequest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/request/DeleteFilesRequest.java diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/request/DeleteFilesRequest.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/request/DeleteFilesRequest.java new file mode 100644 index 0000000..4e2b04a --- /dev/null +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/request/DeleteFilesRequest.java @@ -0,0 +1,19 @@ +package com.ruoyi.lsfx.domain.request; + +import lombok.Data; + +/** + * 删除文件请求(接口6) + */ +@Data +public class DeleteFilesRequest { + + /** 项目ID (必填) */ + private Integer groupId; + + /** 文件ID数组 (必填) */ + private Integer[] logIds; + + /** 用户柜员号 (必填) */ + private Integer userId; +} From fb848618775bb570f366e699aaea8d60c154754a Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:13:36 +0800 Subject: [PATCH 04/11] =?UTF-8?q?feat(lsfx):=20=E6=B7=BB=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=93=8D=E5=BA=94DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../response/GetFileUploadStatusResponse.java | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/response/GetFileUploadStatusResponse.java diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/response/GetFileUploadStatusResponse.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/response/GetFileUploadStatusResponse.java new file mode 100644 index 0000000..4c5934c --- /dev/null +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/response/GetFileUploadStatusResponse.java @@ -0,0 +1,119 @@ +package com.ruoyi.lsfx.domain.response; + +import lombok.Data; +import java.util.List; + +/** + * 获取单个文件上传状态响应(接口5) + */ +@Data +public class GetFileUploadStatusResponse { + + /** 返回码 */ + private String code; + + /** 状态 */ + private String status; + + /** 成功标识 */ + private Boolean successResponse; + + /** 响应数据 */ + private FileUploadStatusData data; + + @Data + public static class FileUploadStatusData { + /** 日志列表 */ + private List logs; + + /** 状态 */ + private String status; + + /** 账号ID */ + private Integer accountId; + + /** 币种 */ + private String currency; + } + + @Data + public static class LogItem { + /** 账号列表 */ + private List accountNoList; + + /** 银行名称 */ + private String bankName; + + /** 数据类型信息 [格式, 分隔符] */ + private List dataTypeInfo; + + /** 下载文件名 */ + private String downloadFileName; + + /** 主体名称列表(重要:用于判断是否需要生成主体) */ + private List enterpriseNameList; + + /** 文件大小(字节) */ + private Long fileSize; + + /** 文件上传者ID */ + private Integer fileUploadBy; + + /** 文件上传者用户名 */ + private String fileUploadByUserName; + + /** 文件上传时间 */ + private String fileUploadTime; + + /** 是否拆分 */ + private Integer isSplit; + + /** 企业ID */ + private Integer leId; + + /** 文件ID */ + private Integer logId; + + /** 日志元数据 */ + private String logMeta; + + /** 日志类型 */ + private String logType; + + /** 登录企业ID */ + private Integer loginLeId; + + /** 丢失头部 */ + private List lostHeader; + + /** 真实银行名称 */ + private String realBankName; + + /** 行数 */ + private Integer rows; + + /** 来源 */ + private String source; + + /** 状态(-5表示解析成功) */ + private Integer status; + + /** 模板名称 */ + private String templateName; + + /** 总记录数 */ + private Integer totalRecords; + + /** 交易结束日期ID */ + private Integer trxDateEndId; + + /** 交易开始日期ID */ + private Integer trxDateStartId; + + /** 上传文件名 */ + private String uploadFileName; + + /** 上传状态描述 */ + private String uploadStatusDesc; + } +} From c4915efecd53d82a6afbecd033485cb9f60e2a69 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:14:13 +0800 Subject: [PATCH 05/11] =?UTF-8?q?feat(lsfx):=20=E6=B7=BB=E5=8A=A0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=96=87=E4=BB=B6=E5=93=8D=E5=BA=94DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/response/DeleteFilesResponse.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/response/DeleteFilesResponse.java diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/response/DeleteFilesResponse.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/response/DeleteFilesResponse.java new file mode 100644 index 0000000..785d07b --- /dev/null +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/response/DeleteFilesResponse.java @@ -0,0 +1,31 @@ +package com.ruoyi.lsfx.domain.response; + +import lombok.Data; + +/** + * 删除文件响应(接口6) + */ +@Data +public class DeleteFilesResponse { + + /** 返回码 */ + private String code; + + /** 状态 */ + private String status; + + /** 成功标识 */ + private Boolean successResponse; + + /** 响应数据 */ + private DeleteFilesData data; + + /** 响应消息 */ + private String message; + + @Data + public static class DeleteFilesData { + /** 删除成功消息 */ + private String message; + } +} From 7d27a335cb84860d5bba6b79610799a722d4cbc1 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:14:58 +0800 Subject: [PATCH 06/11] =?UTF-8?q?feat(lsfx):=20=E6=8B=89=E5=8F=96=E8=A1=8C?= =?UTF-8?q?=E5=86=85=E6=B5=81=E6=B0=B4=E8=AF=B7=E6=B1=82=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?dataChannelCode=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From ccbdbabf67ab69d11032662e2aa4838504f8e62e Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:20:07 +0800 Subject: [PATCH 07/11] =?UTF-8?q?feat(lsfx):=20HttpUtil=E6=B7=BB=E5=8A=A0G?= =?UTF-8?q?ET=E8=AF=B7=E6=B1=82=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/lsfx/util/HttpUtil.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/util/HttpUtil.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/util/HttpUtil.java index e4864d3..511dfef 100644 --- a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/util/HttpUtil.java +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/util/HttpUtil.java @@ -1,13 +1,17 @@ package com.ruoyi.lsfx.util; import com.ruoyi.lsfx.exception.LsfxApiException; +import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.annotation.Resource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.http.*; import org.springframework.stereotype.Component; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; +import org.springframework.web.util.UriComponentsBuilder; import java.util.Map; @@ -17,9 +21,69 @@ import java.util.Map; @Component public class HttpUtil { + private static final Logger log = LoggerFactory.getLogger(HttpUtil.class); + @Resource private RestTemplate restTemplate; + @Resource + private ObjectMapper objectMapper; + + /** + * 发送GET请求(带查询参数和请求头) + * @param url 请求URL + * @param params 查询参数 + * @param headers 请求头 + * @param responseType 响应类型 + * @return 响应对象 + */ + public T get(String url, Map params, Map headers, Class responseType) { + try { + // 构建URL with查询参数 + UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url); + if (params != null && !params.isEmpty()) { + params.forEach((key, value) -> { + if (value != null) { + builder.queryParam(key, value); + } + }); + } + + String fullUrl = builder.toUriString(); + log.debug("【HTTP GET】请求URL: {}", fullUrl); + + // 创建请求头 + HttpHeaders httpHeaders = new HttpHeaders(); + if (headers != null) { + headers.forEach(httpHeaders::add); + } + + // 构建请求实体 + HttpEntity entity = new HttpEntity<>(httpHeaders); + + // 执行GET请求 + ResponseEntity response = restTemplate.exchange( + fullUrl, + HttpMethod.GET, + entity, + String.class + ); + + log.debug("【HTTP GET】响应状态: {}", response.getStatusCode()); + log.debug("【HTTP GET】响应内容: {}", response.getBody()); + + // 解析响应 + if (response.getStatusCode().is2xxSuccessful() && response.getBody() != null) { + return objectMapper.readValue(response.getBody(), responseType); + } else { + throw new LsfxApiException("GET请求失败: " + response.getStatusCode()); + } + } catch (Exception e) { + log.error("【HTTP GET】请求异常: url={}, error={}", url, e.getMessage(), e); + throw new LsfxApiException("GET请求异常: " + e.getMessage(), e); + } + } + /** * 发送GET请求(带请求头) * @param url 请求URL From acc8fa3b8f3d0c023ac8f80b95de55e8da655601 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:21:20 +0800 Subject: [PATCH 08/11] =?UTF-8?q?feat(lsfx):=20=E9=85=8D=E7=BD=AE=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=96=B0=E6=8E=A5=E5=8F=A3endpoint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/src/main/resources/application-dev.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index fbf67e2..2fade26 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -124,6 +124,9 @@ lsfx: fetch-inner-flow: /watson/api/project/getJZFileOrZjrcuFile check-parse-status: /watson/api/project/upload/getpendings get-bank-statement: /watson/api/project/getBSByLogId + # 新增接口 + get-file-upload-status: /watson/api/project/bs/upload + delete-files: /watson/api/project/batchDeleteUploadFile # RestTemplate配置 connection-timeout: 30000 # 连接超时30秒 From 2548efd6296029c3db225a5858d868cc42aa01a3 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:23:44 +0800 Subject: [PATCH 09/11] =?UTF-8?q?feat(lsfx):=20Client=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=92=8C=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/lsfx/client/LsfxAnalysisClient.java | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java index 0f08493..1eb0381 100644 --- a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java @@ -1,8 +1,10 @@ package com.ruoyi.lsfx.client; import com.ruoyi.lsfx.constants.LsfxConstants; +import com.ruoyi.lsfx.domain.request.DeleteFilesRequest; import com.ruoyi.lsfx.domain.request.FetchInnerFlowRequest; import com.ruoyi.lsfx.domain.request.GetBankStatementRequest; +import com.ruoyi.lsfx.domain.request.GetFileUploadStatusRequest; import com.ruoyi.lsfx.domain.request.GetTokenRequest; import com.ruoyi.lsfx.domain.response.*; import com.ruoyi.lsfx.exception.LsfxApiException; @@ -15,6 +17,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -55,6 +58,12 @@ public class LsfxAnalysisClient { @Value("${lsfx.api.endpoints.get-bank-statement}") private String getBankStatementEndpoint; + @Value("${lsfx.api.endpoints.get-file-upload-status}") + private String getFileUploadStatusEndpoint; + + @Value("${lsfx.api.endpoints.delete-files}") + private String deleteFilesEndpoint; + /** * 获取Token */ @@ -251,4 +260,108 @@ public class LsfxAnalysisClient { throw new LsfxApiException("获取银行流水失败: " + e.getMessage(), e); } } + + /** + * 获取单个文件上传状态(接口5) + * 用途: 获取文件解析后的主体名称和账号等信息 + * + * 关键判断: + * - status=-5 且 uploadStatusDesc="data.wait.confirm.newaccount" 表示解析成功 + * - enterpriseNameList仅有一个空字符串""时,表示流水文件未生成主体 + * + * @param request 请求参数(groupId必填, logId可选) + * @return 文件上传状态信息 + */ + public GetFileUploadStatusResponse getFileUploadStatus(GetFileUploadStatusRequest request) { + log.info("【流水分析】获取文件上传状态: groupId={}, logId={}", + request.getGroupId(), request.getLogId()); + long startTime = System.currentTimeMillis(); + + try { + String url = baseUrl + getFileUploadStatusEndpoint; + + // GET请求,构建查询参数 + Map params = new HashMap<>(); + params.put("groupId", request.getGroupId()); + if (request.getLogId() != null) { + params.put("logId", request.getLogId()); + } + + Map headers = new HashMap<>(); + headers.put(LsfxConstants.HEADER_CLIENT_ID, clientId); + + GetFileUploadStatusResponse response = httpUtil.get(url, params, headers, + GetFileUploadStatusResponse.class); + + long elapsed = System.currentTimeMillis() - startTime; + if (response != null && response.getData() != null) { + log.info("【流水分析】获取文件上传状态成功: logId数量={}, 耗时={}ms", + response.getData().getLogs() != null ? response.getData().getLogs().size() : 0, + elapsed); + } else { + log.warn("【流水分析】获取文件上传状态响应异常: 耗时={}ms", elapsed); + } + + return response; + } catch (LsfxApiException e) { + log.error("【流水分析】获取文件上传状态失败: groupId={}, error={}", + request.getGroupId(), e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error("【流水分析】获取文件上传状态未知异常: groupId={}", + request.getGroupId(), e); + throw new LsfxApiException("获取文件上传状态失败: " + e.getMessage(), e); + } + } + + /** + * 删除文件/主体(接口6) + * 用途: 删除解析失败或不需要的流水文件 + * + * 使用场景: + * - 文件解析失败时清理文件 + * - 删除错误上传的文件 + * + * @param request 请求参数(groupId, logIds, userId必填) + * @return 删除结果 + */ + public DeleteFilesResponse deleteFiles(DeleteFilesRequest request) { + log.info("【流水分析】删除文件请求: groupId={}, logIds={}, userId={}", + request.getGroupId(), Arrays.toString(request.getLogIds()), request.getUserId()); + long startTime = System.currentTimeMillis(); + + try { + String url = baseUrl + deleteFilesEndpoint; + + // 构建form-data参数 + Map params = new HashMap<>(); + params.put("groupId", request.getGroupId()); + params.put("logIds", request.getLogIds()); // 数组 + params.put("userId", request.getUserId()); + + Map headers = new HashMap<>(); + headers.put(LsfxConstants.HEADER_CLIENT_ID, clientId); + + DeleteFilesResponse response = httpUtil.postFormData(url, params, headers, + DeleteFilesResponse.class); + + long elapsed = System.currentTimeMillis() - startTime; + if (response != null && response.getData() != null) { + log.info("【流水分析】删除文件成功: message={}, 耗时={}ms", + response.getData().getMessage(), elapsed); + } else { + log.warn("【流水分析】删除文件响应异常: 耗时={}ms", elapsed); + } + + return response; + } catch (LsfxApiException e) { + log.error("【流水分析】删除文件失败: groupId={}, error={}", + request.getGroupId(), e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error("【流水分析】删除文件未知异常: groupId={}", + request.getGroupId(), e); + throw new LsfxApiException("删除文件失败: " + e.getMessage(), e); + } + } } From b786d65b9a885cabb09b54d9e64a7835b6116dbc Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:25:19 +0800 Subject: [PATCH 10/11] =?UTF-8?q?feat(lsfx):=20Controller=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=8E=B7=E5=8F=96=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=92=8C=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lsfx/controller/LsfxTestController.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java index 65611df..ca19f31 100644 --- a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java @@ -4,8 +4,10 @@ import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.lsfx.client.LsfxAnalysisClient; +import com.ruoyi.lsfx.domain.request.DeleteFilesRequest; import com.ruoyi.lsfx.domain.request.FetchInnerFlowRequest; import com.ruoyi.lsfx.domain.request.GetBankStatementRequest; +import com.ruoyi.lsfx.domain.request.GetFileUploadStatusRequest; import com.ruoyi.lsfx.domain.request.GetTokenRequest; import com.ruoyi.lsfx.domain.response.*; import io.swagger.v3.oas.annotations.Operation; @@ -141,4 +143,43 @@ public class LsfxTestController { GetBankStatementResponse response = lsfxAnalysisClient.getBankStatement(request); return AjaxResult.success(response); } + + @Operation(summary = "获取单个文件上传状态", + description = "获取文件解析后的主体名称和账号等信息。status=-5且uploadStatusDesc='data.wait.confirm.newaccount'表示解析成功") + @GetMapping("/getFileUploadStatus") + public AjaxResult getFileUploadStatus( + @Parameter(description = "项目ID") @RequestParam Integer groupId, + @Parameter(description = "文件ID(可选,不传则查询所有)") @RequestParam(required = false) Integer logId + ) { + // 参数校验 + if (groupId == null || groupId <= 0) { + return AjaxResult.error("参数不完整:groupId为必填且大于0"); + } + + GetFileUploadStatusRequest request = new GetFileUploadStatusRequest(); + request.setGroupId(groupId); + request.setLogId(logId); + + GetFileUploadStatusResponse response = lsfxAnalysisClient.getFileUploadStatus(request); + return AjaxResult.success(response); + } + + @Operation(summary = "删除文件", + description = "删除解析失败或不需要的流水文件") + @PostMapping("/deleteFiles") + public AjaxResult deleteFiles(@RequestBody DeleteFilesRequest request) { + // 参数校验 + if (request.getGroupId() == null || request.getGroupId() <= 0) { + return AjaxResult.error("参数不完整:groupId为必填且大于0"); + } + if (request.getLogIds() == null || request.getLogIds().length == 0) { + return AjaxResult.error("参数不完整:logIds为必填且不能为空"); + } + if (request.getUserId() == null) { + return AjaxResult.error("参数不完整:userId为必填"); + } + + DeleteFilesResponse response = lsfxAnalysisClient.deleteFiles(request); + return AjaxResult.success(response); + } } From e2e637890a56d1c3b2367915a0b400b3d80a009b Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:28:17 +0800 Subject: [PATCH 11/11] =?UTF-8?q?feat(lsfx):=20Controller=E6=9B=B4?= =?UTF-8?q?=E6=96=B0getToken=E5=92=8CfetchInnerFlow=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lsfx/controller/LsfxTestController.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java index ca19f31..37346aa 100644 --- a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java @@ -4,6 +4,7 @@ import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.lsfx.client.LsfxAnalysisClient; +import com.ruoyi.lsfx.constants.LsfxConstants; import com.ruoyi.lsfx.domain.request.DeleteFilesRequest; import com.ruoyi.lsfx.domain.request.FetchInnerFlowRequest; import com.ruoyi.lsfx.domain.request.GetBankStatementRequest; @@ -39,17 +40,19 @@ public class LsfxTestController { if (StringUtils.isBlank(request.getEntityName())) { return AjaxResult.error("参数不完整:entityName为必填"); } + + // 必填字段设置默认值 if (StringUtils.isBlank(request.getUserId())) { - return AjaxResult.error("参数不完整:userId为必填"); + request.setUserId(LsfxConstants.DEFAULT_USER_ID); } if (StringUtils.isBlank(request.getUserName())) { - return AjaxResult.error("参数不完整:userName为必填"); + request.setUserName(LsfxConstants.DEFAULT_USER_NAME); } if (StringUtils.isBlank(request.getOrgCode())) { - return AjaxResult.error("参数不完整:orgCode为必填"); + request.setOrgCode(LsfxConstants.DEFAULT_ORG_CODE); } if (StringUtils.isBlank(request.getDepartmentCode())) { - return AjaxResult.error("参数不完整:departmentCode为必填"); + request.setDepartmentCode(LsfxConstants.DEFAULT_DEPARTMENT_CODE); } GetTokenResponse response = lsfxAnalysisClient.getToken(request); @@ -100,6 +103,11 @@ public class LsfxTestController { return AjaxResult.error("参数错误:开始日期不能大于结束日期"); } + // 设置dataChannelCode默认值 + if (StringUtils.isEmpty(request.getDataChannelCode())) { + request.setDataChannelCode(LsfxConstants.DEFAULT_DATA_CHANNEL_CODE); + } + FetchInnerFlowResponse response = lsfxAnalysisClient.fetchInnerFlow(request); return AjaxResult.success(response); }