From 85aef61455b47b7b69f46e45cb2d7a2f4d7b39ad Mon Sep 17 00:00:00 2001 From: lqyan Date: Thu, 20 Feb 2025 18:46:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E4=BD=9C=E4=B8=9A):=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=8E=86=E5=8F=B2=E4=BD=9C=E4=B8=9A=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../openapi/api/job/JHJobApiExecution.java | 64 ++++++++++++++++++- .../sdk/openapi/api/job/JobPathConstant.java | 16 ++--- .../sdk/openapi/api/job/JobStatusEnum.java | 4 +- .../sdk/openapi/test/job/JobApiTest.java | 24 +++---- 4 files changed, 81 insertions(+), 27 deletions(-) diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java index b4456ba..c36de10 100644 --- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java +++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java @@ -78,7 +78,7 @@ public class JHJobApiExecution implements JHApiExecution { /** * 分页查询作业列表 *

- * 作业名、作业状态等为非必填自动,如果为空则没有添加该查询条件 + * 注:name、status、condition均为删选条件,condition为 高级筛选 *

* * @param username 用户名 @@ -116,7 +116,7 @@ public class JHJobApiExecution implements JHApiExecution { /** * 分页查询作业列表 *

- * 作业名、作业状态等为非必填自动,如果为空则没有添加该查询条件 + * 注:name、status、condition均为删选条件,condition为 高级筛选 *

* * @param username 用户名 @@ -133,6 +133,66 @@ public class JHJobApiExecution implements JHApiExecution { return getJobPage(username, page, pageSize, name, JobStatusEnum.getJobStatus(status), condition); } + /** + * 分页查询作业列表 + *

+ * 注:name、status、condition均为删选条件,condition为 高级筛选 + *

+ * + * @param username 用户名 + * @param page 页码(非必填,默认:1) + * @param pageSize 每页大小(非必填,默认:20) + * @param name 作业名(非必填) + * @param status 作业名(非必填) + * @param condition 作业状态(非必填),取值见{@link JobStatusEnum#getJobStatus(String)} + * @return 作业列表 + * @see JobStatusEnum + */ + public PageJobInfo getHistoryJobs(String username, Integer page, Integer pageSize, String name, + JobStatusEnum status, Map condition) { + + Map params = new HashMap<>(5); + if (page != null) { + params.put("page", page); + } + if (pageSize != null) { + params.put("pageSize", pageSize); + } + if (StringUtils.isNotBlank(name)) { + params.put("jobName", name); + } + if (status != null) { + params.put("status", status.getStatus()); + } + if (CollectionUtil.isNotEmpty(condition)) { + params.put("condition", JsonUtil.objectToString(params)); + } + + String path = JHApiClient.getUrl(JobPathConstant.JOB_HISTORY_JOBS_PATH, params); + return execution.get(path, username, new TypeReference>() { + }); + } + + /** + * 分页查询作业列表 + *

+ * 注:name、status、condition均为删选条件,condition为 高级筛选 + *

+ * + * @param username 用户名 + * @param page 页码(非必填,默认:1) + * @param pageSize 每页大小(非必填,默认:20) + * @param name 作业名(非必填) + * @param status 作业名(非必填) + * @param condition 作业状态(非必填),取值见{@link JobStatusEnum#getJobStatus(String)} + * @return 作业列表 + * @see JobStatusEnum + */ + public PageJobInfo getHistoryJobs(String username, Integer page, Integer pageSize, String name, String status, + Map condition) { + return getHistoryJobs(username, page, pageSize, name, JobStatusEnum.getJobStatus(status), condition); + } + /** * 查询作业详情 * diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JobPathConstant.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JobPathConstant.java index 068cea6..f47ee4e 100644 --- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JobPathConstant.java +++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JobPathConstant.java @@ -8,13 +8,11 @@ package com.jhinno.sdk.openapi.api.job; */ public class JobPathConstant { - /** * 提交作业 */ public static final String JOB_SUBMIT_PATH = "/ws/api/jobs/jsub"; - /** * 使用作业id查询作业列表 */ @@ -25,12 +23,16 @@ public class JobPathConstant { */ public static final String JOB_PAGE_PATH = "/ws/api/jobs/page"; + /** + * 查询历史作业列表 + */ + public static final String JOB_HISTORY_JOBS_PATH = "/ws/api/jobs/historyPage"; + /** * 查询作业详情 */ public static final String JOB_DETAIL_INFO_PATH = "/ws/api/jobs/{jobId}"; - /** * 分页检索作业名 */ @@ -41,49 +43,41 @@ public class JobPathConstant { */ public static final String JOB_LIST_BY_STATUS_PATH = "/ws/api/jobs/byStatus/{status}"; - /** * 通过作业号查询作业列表 */ public static final String JOB_LIST_BY_IDS_PATH = "/ws/api/jobs/list"; - /** * 作业操作 */ public static final String JOB_ACTION_PATH = "/ws/api/jobs/{jobId}/{action}"; - /** * 批量操作作业 */ public static final String JOB_ACTION_IDS_PATH = "/ws/api/jobs/{action}"; - /** * 获取作业历史 */ public static final String JOB_HISTORY_PATH = "/ws/api/jobs/{jobId}/hist"; - /** * 通过多个作业号查询作业历史 */ public static final String JOB_HISTORY_IDS_PATH = "/ws/api/jobs/hist"; - /** * 获取作业动态输出 */ public static final String JOB_PEEK_PATH = "/ws/api/jobs/{jobId}/peek"; - /** * 连接作业会话 */ public static final String JOB_CONNECT_SESSION_PATH = "/ws/api/jobs/{jobId}/connect"; - /** * 获取作业表单 *

diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java index b861a98..823a0ef 100644 --- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java +++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java @@ -28,7 +28,6 @@ public enum JobStatusEnum { EXIT("EXIT", "退出"), UNKNOWN_UNKWN("UNKNOWN#UNKWN", "状态不明"); - /** * 状态标识 */ @@ -39,7 +38,6 @@ public enum JobStatusEnum { */ private final String name; - /** * 使用标号获得JobStatusEnum对象 * @@ -49,7 +47,7 @@ public enum JobStatusEnum { */ public static JobStatusEnum getJobStatus(String status) { if (StringUtils.isBlank(status)) { - throw new ArgsException("作业状态不能为空!"); + return null; } for (JobStatusEnum value : values()) { if (StringUtils.equals(status, value.getStatus())) { diff --git a/jhinno-openapi-java-sdk/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java b/jhinno-openapi-java-sdk/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java index 9dcba0d..08fb3c7 100644 --- a/jhinno-openapi-java-sdk/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java +++ b/jhinno-openapi-java-sdk/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java @@ -17,8 +17,8 @@ import java.util.Map; */ public class JobApiTest { - private static final JHJobApiExecution execution = JHClientConfig.API_EXECUTRON_MANAGE - .getApiExecution(JHJobApiExecution.class); + private static final JHJobApiExecution execution = JHClientConfig.API_EXECUTRON_MANAGE + .getApiExecution(JHJobApiExecution.class); /** * 测试提交作业 @@ -31,7 +31,6 @@ public class JobApiTest { System.out.println(execution.submit("jhadmin", "common_sub", params)); } - /** * 测试根据作业id查询作业文件列表 */ @@ -40,14 +39,22 @@ public class JobApiTest { System.out.println(execution.getJobFilesById("jhadmin", "42")); } - /** * 测试分页查询作业列表 */ @Test public void testGetJobPage() { - PageJobInfo jhadmin = execution.getJobPage("jhadmin", 1, 5, null, JobStatusEnum.DONE, null); - System.out.println(jhadmin); + PageJobInfo pages = execution.getJobPage("jhadmin", 1, 5, null, JobStatusEnum.DONE, null); + System.out.println(pages); + } + + /** + * 测试查询历史作业列表 + */ + @Test + public void testGetHistoryJobs() { + PageJobInfo pages = execution.getHistoryJobs("jhadmin", 1, 5, null, null, null); + System.out.println(pages); } /** @@ -58,7 +65,6 @@ public class JobApiTest { System.out.println(execution.getJobDetail("jhadmin", "42")); } - /** * 测试使用作业名称检索 */ @@ -75,7 +81,6 @@ public class JobApiTest { System.out.println(execution.getJobsByStatus("jhadmin", JobStatusEnum.DONE, 1, 10)); } - /** * 测试使用作业拆id列表查询作业 */ @@ -84,7 +89,6 @@ public class JobApiTest { System.out.println(execution.getJobsByIds("jhadmin", Arrays.asList("42", "41"))); } - /** * 测试查询作业历史 */ @@ -94,7 +98,6 @@ public class JobApiTest { System.out.println(result); } - /** * 测试通过多个子哦也好查询作业历史 */ @@ -113,7 +116,6 @@ public class JobApiTest { System.out.println("peek = " + peek); } - /** * 测试会话连接(目前没有测试条件) */