appId;
+
+
+ /** 应用类型枚举(app:应用 activity:指令) */
+ @Excel(name = "应用类型枚举", readConverterExp = "a=pp:应用,a=ctivity:指令")
+ @ApiModelProperty(name="appType",value = "应用类型枚举")
+ private String appType;
+
+ /** 预计人工耗时 */
+ @Excel(name = "预计人工耗时")
+ @ApiModelProperty(name="manualTime",value = "预计人工耗时")
+ private String manualTime;
+
+ /** 是否支持应用参数 */
+ @Excel(name = "是否支持应用参数")
+ @ApiModelProperty(name="supportParam",value = "是否支持应用参数")
+ private Integer supportParam;
+
+ /** 参数 */
+ @Excel(name = "参数")
+ @ApiModelProperty(name="planParams",value = "参数")
+ private String planParams;
+
+ /** 等待超时时间 */
+ @Excel(name = "等待超时时间")
+ @ApiModelProperty(name="waitTimeout",value = "等待超时时间")
+ private String waitTimeout;
+
+ /** 优先级 */
+ @Excel(name = "优先级")
+ @ApiModelProperty(name="priority",value = "优先级")
+ private Integer priority;
+
+
+ /** 执行类型(0立即执行 1指定时间执行 2周期执行) */
+ @Excel(name = "执行类型", readConverterExp = "0=立即执行,1=指定时间执行,2=周期执行")
+ @ApiModelProperty(name="excType",value = "执行类型")
+ private String excType;
+
+
+ /** 执行时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "执行时间", width = 30, dateFormat = "yyyy-MM-dd")
+ @ApiModelProperty(name="excTime",value = "执行时间")
+ private Date excTime;
+
+ /** 执行表达式 */
+ @Excel(name = "执行表达式")
+ @ApiModelProperty(name="cronExpression",value = "执行表达式")
+ private String cronExpression;
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("planName", getPlanName())
+ .append("planType", getPlanType())
+ .append("robotName", getRobotName())
+ .append("appTypeName", getAppTypeName())
+ .append("appName", getAppName())
+ .append("appId", getAppId())
+ .append("appType", getAppType())
+ .append("manualTime", getManualTime())
+ .append("params", getParams())
+ .append("waitTimeout", getWaitTimeout())
+ .append("priority", getPriority())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .append("deleted", getDeleted())
+ .toString();
+ }
+}
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ApplyStartBO.java b/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ApplyStartBO.java
new file mode 100644
index 0000000..cba9d40
--- /dev/null
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ApplyStartBO.java
@@ -0,0 +1,109 @@
+package com.ruoyi.business.domain.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 应用信息管理对象 ct_apply
+ *
+ * @author LiuChengRan
+ * @date 2024-06-13
+ */
+@Data
+@Builder(toBuilder = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "ApplyStartBO", description = "启动应用")
+public class ApplyStartBO {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 冗余
+ */
+ @Excel(name = "计划名称")
+ @ApiModelProperty(name="planName",value = "计划名称")
+ private String planName;
+
+ /** 预计人工耗时 */
+ @Excel(name = "预计人工耗时")
+ @ApiModelProperty(name="manualTime",value = "预计人工耗时")
+ private String manualTime;
+
+ /**
+ * 指定的机器人名称
+ *
+ * 与robotClientGroupUuid二选一
+ */
+ private String accountName;
+
+ /**
+ * 机器人分组Id
+ *
+ * 与accountName二选一
+ */
+ private String robotClientGroupUuid;
+
+ /**
+ * 需要运行的应用
+ *
+ * 必填
+ */
+ private String robotUuid;
+ /** 计划参数 */
+ @Excel(name = "计划参数")
+ @ApiModelProperty(name="planParams",value = "计划参数")
+ private String planParams;
+ /**
+ * 应用运行参数
+ *
+ * 非必填
+ */
+ private List planParamsList;
+
+ /**
+ * 等待超时时间
+ *
+ * @see com.xybot.api.sdk.enums.WaitTimeoutEnum
+ *
+ * 非必填,不填,默认为10分钟
+ */
+ private String waitTimeout;
+
+ /**
+ * 优先级
+ *
+ * @see com.xybot.api.sdk.enums.PriorityEnum
+ * 非必填,不填,默认为middle
+ */
+ private String priority;
+
+ @Excel(name = "所属公司")
+ @ApiModelProperty(name = "deptId", value = "所属公司")
+ private Long deptId;
+
+ /**
+ * 应用运行参数
+ */
+ @Data
+ public static class RobotParam {
+ // 参数名
+ private String name;
+ // 参数值
+ private String value;
+ // 参数类型
+ private String type;
+
+ }
+}
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/JobQueryBO.java b/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/JobQueryBO.java
new file mode 100644
index 0000000..ed79165
--- /dev/null
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/JobQueryBO.java
@@ -0,0 +1,19 @@
+package com.ruoyi.business.domain.bo;
+
+import lombok.Data;
+
+/**
+ * 停止job请求
+ *
+ * @author boyi
+ * @since 2022/8/26 10:16
+ */
+@Data
+public class JobQueryBO {
+
+ /**
+ * 应用运行的uuid, 由job/start接口返回
+ */
+ private String jobUuid;
+}
+
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/JobQueryLogBO.java b/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/JobQueryLogBO.java
new file mode 100644
index 0000000..0dc08e3
--- /dev/null
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/JobQueryLogBO.java
@@ -0,0 +1,27 @@
+package com.ruoyi.business.domain.bo;
+
+import lombok.Data;
+
+/**
+ * 查询运行日志
+ *
+ * @author boyi
+ * @since 2022/8/26 10:16
+ */
+@Data
+public class JobQueryLogBO {
+
+ /**
+ * 计划uuid
+ */
+ private String scheduleUuid;
+ /**
+ * 翻页方向
+ */
+ private String cursorDirection;
+ /**
+ * 每页数量
+ */
+ private Integer size;
+}
+
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ListApplyBO.java b/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ListApplyBO.java
new file mode 100644
index 0000000..c3af1da
--- /dev/null
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ListApplyBO.java
@@ -0,0 +1,121 @@
+package com.ruoyi.business.domain.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 应用信息管理对象 ct_apply
+ *
+ * @author LiuChengRan
+ * @date 2024-06-13
+ */
+@Data
+@Builder(toBuilder = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value="ListApplyVO",description = "应用信息管理")
+public class ListApplyBO extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(name = "page", value = "第几页")
+ private Integer page;
+
+ @ApiModelProperty(name = "size", value = "页大小")
+ private Integer size;
+
+ /** 应用所有者名称 */
+ @Excel(name = "应用所有者名称")
+ @ApiModelProperty(name="ownerName",value = "应用所有者名称")
+ private String ownerName;
+ /** 应用所有者账号 */
+ @Excel(name = "应用所有者账号")
+ @ApiModelProperty(name="ownerAccount",value = "应用所有者账号")
+ private String ownerAccount;
+ /** 所有者id */
+ @Excel(name = "所有者id")
+ @ApiModelProperty(name="ownerId",value = "所有者id")
+ private String ownerId;
+ /** appid */
+ @Excel(name = "appid")
+ @ApiModelProperty(name="appId",value = "appid")
+ private String appId;
+ /** 应用名称 */
+ @Excel(name = "应用名称")
+ @ApiModelProperty(name="appName",value = "应用名称")
+ private String appName;
+ /** 应用类型名称 */
+ @Excel(name = "应用类型名称")
+ @ApiModelProperty(name="appTypeName",value = "应用类型名称")
+ private String appTypeName;
+ /** 应用类型枚举(app:应用 activity:指令) */
+ @Excel(name = "应用类型枚举", readConverterExp = "a=pp:应用,a=ctivity:指令")
+ @ApiModelProperty(name="appType",value = "应用类型枚举")
+ private String appType;
+ /** 应用创建时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "应用创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+ @ApiModelProperty(name="appCreateTime",value = "应用创建时间")
+ private Date appCreateTime;
+ /** 应用修改时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "应用修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+ @ApiModelProperty(name="appUpdateTime",value = "应用修改时间")
+ private Date appUpdateTime;
+ /** 版本,值内容:未发版、版本 */
+ @Excel(name = "版本,值内容:未发版、版本")
+ @ApiModelProperty(name="version",value = "版本,值内容:未发版、版本")
+ private String version;
+ /** 是否支持应用参数 */
+ @Excel(name = "是否支持应用参数")
+ @ApiModelProperty(name="supportParam",value = "是否支持应用参数")
+ private Integer supportParam;
+ /** icon图下载地址 */
+ @Excel(name = "icon图下载地址")
+ @ApiModelProperty(name="icon",value = "icon图下载地址")
+ private String icon;
+ /** 预计人工耗时 */
+ @Excel(name = "预计人工耗时")
+ @ApiModelProperty(name="manualTime",value = "预计人工耗时")
+ private String manualTime;
+ /** 所属公司 */
+ @Excel(name = "所属公司")
+ @ApiModelProperty(name="deptId",value = "所属公司")
+ private Long deptId;
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("ownerName", getOwnerName())
+ .append("ownerAccount", getOwnerAccount())
+ .append("ownerId", getOwnerId())
+ .append("appId", getAppId())
+ .append("appName", getAppName())
+ .append("appTypeName", getAppTypeName())
+ .append("appType", getAppType())
+ .append("appCreateTime", getAppCreateTime())
+ .append("appUpdateTime", getAppUpdateTime())
+ .append("version", getVersion())
+ .append("supportParam", getSupportParam())
+ .append("icon", getIcon())
+ .append("manualTime", getManualTime())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .append("deleted", getDeleted())
+ .toString();
+ }
+}
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ListRebotBO.java b/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ListRebotBO.java
new file mode 100644
index 0000000..3fb9da3
--- /dev/null
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ListRebotBO.java
@@ -0,0 +1,47 @@
+package com.ruoyi.business.domain.bo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.io.Serializable;
+
+/**
+ * 机器人查询参数
+ *
+ * @author LiuChengRan
+ * @date 2024-06-13
+ */
+@Data
+@Builder(toBuilder = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "ListRebotBO", description = "机器人查询参数")
+public class ListRebotBO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(name = "status", value = "机器人状态")
+ private String status;
+
+ @ApiModelProperty(name = "key", value = "关键字模糊搜索")
+ private String key;
+
+ @ApiModelProperty(name = "robotClientGroupUuid", value = "robotClientGroupUuid")
+ private String robotClientGroupUuid;
+
+ @ApiModelProperty(name = "page", value = "第几页")
+ private Integer page;
+
+ @ApiModelProperty(name = "size", value = "页大小")
+ private Integer size;
+
+}
diff --git a/ruoyi-business/src/main/java/com/ruoyi/business/domain/vo/JobQueryLogVO.java b/ruoyi-business/src/main/java/com/ruoyi/business/domain/vo/JobQueryLogVO.java
new file mode 100644
index 0000000..4b0c4c2
--- /dev/null
+++ b/ruoyi-business/src/main/java/com/ruoyi/business/domain/vo/JobQueryLogVO.java
@@ -0,0 +1,65 @@
+package com.ruoyi.business.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 查询job响应
+ *
+ * @author boyi
+ * @since 2022/8/26 10:17
+ */
+@Data
+public class JobQueryLogVO {
+
+ /**
+ * 用于判断继续翻页时是否有数据,可用作翻页按钮置灰操作比如当往下翻页到20页时,第21页没有数据,则在20页时hasData为false,表示不能继续往下翻页,只能往上翻页
+ */
+ private Boolean hasData;
+
+
+ /**
+ * 往下翻页时,可作为 cursorId 使用,表示从这个id开始往下翻页
+ */
+ private Long nextId;
+
+ /**
+ * 往上翻页时,可作为 cursorId 使用,表示从这个id开始往上翻页
+ */
+ private Long preId;
+
+ /**
+ * 当前的翻页方向 next表示当前往下翻页 pre表示当前往上翻页
+ */
+ private String cursorDirection;
+
+ /**
+ * 日志
+ */
+ private List