作业相关接口优化

This commit is contained in:
lqyan
2024-02-06 17:34:33 +08:00
parent 83a6392db6
commit f35455ab22
6 changed files with 113 additions and 38 deletions

View File

@@ -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<String, Object> condition) {
public PageJobInfo getJobPage(String username, Integer page, Integer pageSize, String name, JobStatusEnum status, Map<String, Object> condition) {
Map<String, Object> 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 {
});
}
/**
* 分页查询作业列表
* <p>作业名、作业状态等为非必填自动,如果为空则没有添加该查询条件</p
*
* @param username 用户名
* @param page 页码非必填默认1
* @param pageSize 每页大小非必填默认20
* @param name 作业名(非必填)
* @param status 作业状态(非必填),取值见{@link JobStatusEnum#getJobStatus(String)}
* @param condition 自定义条件(非必填)
* @return 作业列表
* @see JobStatusEnum
*/
public PageJobInfo getJobPage(String username, Integer page, Integer pageSize, String name, String status, Map<String, Object> condition) {
return getJobPage(username, page, pageSize, name, JobStatusEnum.getJobStatus(status), condition);
}
/**
* 查询作业详情
@@ -157,18 +174,7 @@ public class JHJobApiExecution extends JHApiExecution {
/**
* 分页检索作业状态
* <p>
* status作业状态的取值如下
* <ol>
* <li>RUN运行</li>
* <li>PEND等待</li>
* <li>PSUSP等待中挂起</li>
* <li>USUSP用户挂起</li>
* <li>SSUSP系统挂起</li>
* <li>ZOMBI僵尸</li>
* <li>DONE完成</li>
* <li>EXIT退出</li>
* <li>UNKNOWN#UNKWN状态不明</li>
* </ol>
* 可通过{@link JobStatusEnum#getJobStatus(String)} 获得{@link JobStatusEnum}
*
* @param username 用户名
* @param status 作业状态
@@ -176,8 +182,8 @@ public class JHJobApiExecution extends JHApiExecution {
* @param pageSize 分页大小
* @return 作业列表
*/
public List<JobInfo> getJobsByStatus(String username, String status, Integer page, Integer pageSize) {
if (StringUtils.isBlank(status)) {
public List<JobInfo> getJobsByStatus(String username, JobStatusEnum status, Integer page, Integer pageSize) {
if (status == null) {
throw new ArgsException("status不能为空");
}
Map<String, Object> 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<ResponseResult<List<JobInfo>>>() {
});
}
/**
* 作业的状态(必填),
*
* @param username 用户名
* @param status 作业状态,取值见{@link JobStatusEnum#getStatus()}
* @param page 页码
* @param pageSize 分页大小
* @return 作业列表
* @see JobStatusEnum
*/
public List<JobInfo> 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 用户名

View File

@@ -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;

View File

@@ -36,22 +36,8 @@ public class JobInfo {
/**
* 作业状态
* <p>
* 可能的取值<br/>
* <ol>
* <li>RUN运行</li>
* <li>PEND等待</li>
* <li>PSUSP等待中挂起</li>
* <li>USUSP用户挂起</li>
* <li>SSUSP系统挂起</li>
* <li>ZOMBI僵尸</li>
* <li>DONE完成</li>
* <li>EXIT退出</li>
* <li>UNKNOWN#UNKWN状态不明</li>
* </ol>
*
* </p>
* <p>
* 数组作业及arrayJob="true"时status的类型是一个map<br/>
* 可能的取值见:{@link JobStatusEnum}<br/>
* 如果作业是数组作业即arrayJob="true"时status的类型是一个map类型<br/>
* 如:{"done":1,"run":12}
* </p>
*/

View File

@@ -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;
/**
* 作业状态
* <p>
* 该枚举表示作业的状态的类型其中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 + "类型不存在!");
}
}

View File

@@ -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;