diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java index e590066..9068e3d 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java @@ -85,8 +85,9 @@ public class JHJobApiExecution extends JHApiExecution { * @param status 作业状态(非必填) * @param condition 自定义条件(非必填) * @return 作业列表 + * @see JobStatusEnum */ - public PageJobInfo getJobPage(String username, Integer page, Integer pageSize, String name, String status, Map condition) { + public PageJobInfo getJobPage(String username, Integer page, Integer pageSize, String name, JobStatusEnum status, Map condition) { Map params = new HashMap<>(5); if (page != null) { params.put("page", page); @@ -97,8 +98,8 @@ public class JHJobApiExecution extends JHApiExecution { if (StringUtils.isNotBlank(name)) { params.put("jobName", name); } - if (StringUtils.isBlank(status)) { - params.put("status", status); + if (status != null) { + params.put("status", status.getStatus()); } if (CollectionUtil.isNotEmpty(condition)) { params.put("condition", JSONUtil.toJsonStr(params)); @@ -108,6 +109,22 @@ public class JHJobApiExecution extends JHApiExecution { }); } + /** + * 分页查询作业列表 + *

作业名、作业状态等为非必填自动,如果为空则没有添加该查询条件

condition) { + return getJobPage(username, page, pageSize, name, JobStatusEnum.getJobStatus(status), condition); + } /** * 查询作业详情 @@ -157,18 +174,7 @@ public class JHJobApiExecution extends JHApiExecution { /** * 分页检索作业状态 *

- * status(作业状态)的取值如下: - *

    - *
  1. RUN(运行)
  2. - *
  3. PEND(等待)
  4. - *
  5. PSUSP(等待中挂起)
  6. - *
  7. USUSP(用户挂起)
  8. - *
  9. SSUSP(系统挂起)
  10. - *
  11. ZOMBI(僵尸)
  12. - *
  13. DONE(完成)
  14. - *
  15. EXIT(退出)
  16. - *
  17. UNKNOWN#UNKWN(状态不明)
  18. - *
+ * 可通过{@link JobStatusEnum#getJobStatus(String)} 获得{@link JobStatusEnum} * * @param username 用户名 * @param status 作业状态 @@ -176,8 +182,8 @@ public class JHJobApiExecution extends JHApiExecution { * @param pageSize 分页大小 * @return 作业列表 */ - public List getJobsByStatus(String username, String status, Integer page, Integer pageSize) { - if (StringUtils.isBlank(status)) { + public List getJobsByStatus(String username, JobStatusEnum status, Integer page, Integer pageSize) { + if (status == null) { throw new ArgsException("status不能为空!"); } Map params = new HashMap<>(3); @@ -187,12 +193,27 @@ public class JHJobApiExecution extends JHApiExecution { if (pageSize != null) { params.put("pageSize", pageSize); } - String path = JHApiClient.getUrl(JobPathConstant.JOB_LIST_BY_STATUS_PATH.replace("{status}", status), params); + String path = JHApiClient.getUrl(JobPathConstant.JOB_LIST_BY_STATUS_PATH.replace("{status}", status.getStatus()), params); return get(path, username, new TypeReference>>() { }); } + /** + * 作业的状态(必填), + * + * @param username 用户名 + * @param status 作业状态,取值见{@link JobStatusEnum#getStatus()} + * @param page 页码 + * @param pageSize 分页大小 + * @return 作业列表 + * @see JobStatusEnum + */ + public List getJobsByStatus(String username, String status, Integer page, Integer pageSize) { + return getJobsByStatus(username, JobStatusEnum.getJobStatus(status), page, pageSize); + } + + /** * 通过作业id列表查询作业列表 * @@ -283,7 +304,6 @@ public class JHJobApiExecution extends JHApiExecution { /** - * + * 查询制定作业的作业历史 * * @param username 用户名 diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JobActionEnum.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JobActionEnum.java index 8c32496..f0bd9cb 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/job/JobActionEnum.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JobActionEnum.java @@ -53,6 +53,9 @@ public enum JobActionEnum { * @throws ArgsException action的类型不存在的异常 */ public static JobActionEnum getJobAction(String action) { + if (StringUtils.isBlank(action)) { + throw new ArgsException("操作标识不能为空!"); + } for (JobActionEnum value : values()) { if (StringUtils.equals(action, value.getAction())) { return value; diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JobInfo.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JobInfo.java index 9791127..266953e 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/job/JobInfo.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JobInfo.java @@ -36,22 +36,8 @@ public class JobInfo { /** * 作业状态 *

- * 可能的取值:
- *

    - *
  1. RUN(运行)
  2. - *
  3. PEND(等待)
  4. - *
  5. PSUSP(等待中挂起)
  6. - *
  7. USUSP(用户挂起)
  8. - *
  9. SSUSP(系统挂起)
  10. - *
  11. ZOMBI(僵尸)
  12. - *
  13. DONE(完成)
  14. - *
  15. EXIT(退出)
  16. - *
  17. UNKNOWN#UNKWN(状态不明)
  18. - *
- * - *

- *

- * 数组作业(及arrayJob="true")时status的类型是一个map
+ * 可能的取值见:{@link JobStatusEnum}
+ * 如果作业是数组作业(即arrayJob="true")时status的类型是一个map类型
* 如:{"done":1,"run":12} *

*/ diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java new file mode 100644 index 0000000..b861a98 --- /dev/null +++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java @@ -0,0 +1,62 @@ +package com.jhinno.sdk.openapi.api.job; + +import com.jhinno.sdk.openapi.ArgsException; +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.apache.commons.lang3.StringUtils; + +/** + * 作业状态 + *

+ * 该枚举表示作业的状态的类型,其中status标识接口中的值,name标识对应的中文状态 + * + * @author yanlongqi + * @date 2024/2/6 17:03 + */ + +@Getter +@AllArgsConstructor +public enum JobStatusEnum { + + RUN("RUN", "运行"), + PEND("PEND", "等待"), + PSUSP("PSUSP", "等待中挂起"), + USUSP("USUSP", "用户挂起"), + SSUSP("SSUSP", "系统挂起"), + ZOMBI("ZOMBI", "僵尸"), + DONE("DONE", "完成"), + EXIT("EXIT", "退出"), + UNKNOWN_UNKWN("UNKNOWN#UNKWN", "状态不明"); + + + /** + * 状态标识 + */ + private final String status; + + /** + * 状态名称 + */ + private final String name; + + + /** + * 使用标号获得JobStatusEnum对象 + * + * @param status 作业状态 + * @return 作业状态 + * @throws ArgsException 参数异常 + */ + public static JobStatusEnum getJobStatus(String status) { + if (StringUtils.isBlank(status)) { + throw new ArgsException("作业状态不能为空!"); + } + for (JobStatusEnum value : values()) { + if (StringUtils.equals(status, value.getStatus())) { + return value; + } + } + throw new ArgsException(status + "类型不存在!"); + } + +} diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JobsActionEnum.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JobsActionEnum.java index ada179f..357222c 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/job/JobsActionEnum.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JobsActionEnum.java @@ -38,9 +38,12 @@ public enum JobsActionEnum { * * @param action 操作字符 * @return 作业操作类型 - * @exception ArgsException action的类型不存在的异常 + * @throws ArgsException action的类型不存在的异常 */ public static JobsActionEnum getJobAction(String action) { + if (StringUtils.isBlank(action)) { + throw new ArgsException("操作标识不能为空!"); + } for (JobsActionEnum value : values()) { if (StringUtils.equals(action, value.getAction())) { return value; diff --git a/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java b/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java index 4784d82..b4d9286 100644 --- a/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java +++ b/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java @@ -2,6 +2,7 @@ package com.jhinno.sdk.openapi.test.job; import com.jhinno.sdk.openapi.api.job.JHJobApiExecution; import com.jhinno.sdk.openapi.api.job.JobHistoryInfo; +import com.jhinno.sdk.openapi.api.job.JobStatusEnum; import com.jhinno.sdk.openapi.api.job.PageJobInfo; import com.jhinno.sdk.openapi.test.JHClientConfig; import org.junit.Test; @@ -47,7 +48,7 @@ public class JobApiTest { */ @Test public void testGetJobPage() { - PageJobInfo jhadmin = execution.getJobPage("jhadmin", 1, 5, null, null, null); + PageJobInfo jhadmin = execution.getJobPage("jhadmin", 1, 5, null, JobStatusEnum.DONE, null); System.out.println(jhadmin); } @@ -73,7 +74,7 @@ public class JobApiTest { */ @Test public void testGetJobsByStatus() { - System.out.println(execution.getJobsByStatus("jhadmin", "DONE", 1, 10)); + System.out.println(execution.getJobsByStatus("jhadmin", JobStatusEnum.DONE, 1, 10)); }