lcr 3 месяцев назад
Родитель
Сommit
a0c6ed40e3
13 измененных файлов: 164 добавлений и 3 удалений
  1. +1
    -1
      ruoyi-business/src/main/java/com/ruoyi/business/controller/ApplyController.java
  2. +4
    -0
      ruoyi-business/src/main/java/com/ruoyi/business/domain/Apply.java
  3. +5
    -0
      ruoyi-business/src/main/java/com/ruoyi/business/domain/ApplyPlan.java
  4. +5
    -0
      ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/AddApplyPlanBO.java
  5. +1
    -1
      ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ApplyStartBO.java
  6. +8
    -0
      ruoyi-business/src/main/java/com/ruoyi/business/mapper/ApplyMapper.java
  7. +6
    -0
      ruoyi-business/src/main/java/com/ruoyi/business/service/IApplyPlanService.java
  8. +8
    -0
      ruoyi-business/src/main/java/com/ruoyi/business/service/IApplyService.java
  9. +75
    -1
      ruoyi-business/src/main/java/com/ruoyi/business/service/impl/ApplyPlanServiceImpl.java
  10. +12
    -0
      ruoyi-business/src/main/java/com/ruoyi/business/service/impl/ApplyServiceImpl.java
  11. +21
    -0
      ruoyi-business/src/main/resources/mapper/business/ApplyMapper.xml
  12. +4
    -0
      ruoyi-business/src/main/resources/mapper/business/ApplyPlanMapper.xml
  13. +14
    -0
      ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java

+ 1
- 1
ruoyi-business/src/main/java/com/ruoyi/business/controller/ApplyController.java Просмотреть файл

@@ -57,7 +57,7 @@ public class ApplyController extends BaseController {
@ApiOperation(value = "查询所有应用列表", httpMethod = "GET", response = Apply.class)
@GetMapping("/listAll")
public AjaxResult listAll(Apply apply) {
List<Apply> list = applyService.list(apply);
List<Apply> list = applyService.listAll(apply);
return AjaxResult.success(list);
}



+ 4
- 0
ruoyi-business/src/main/java/com/ruoyi/business/domain/Apply.java Просмотреть файл

@@ -80,6 +80,10 @@ public class Apply extends BaseEntity
@Excel(name = "是否支持应用参数")
@ApiModelProperty(name="supportParam",value = "是否支持应用参数")
private Integer supportParam;
/** 应用参数 */
@Excel(name = "应用参数")
@ApiModelProperty(name="param",value = "应用参数")
private String param;
/** icon图下载地址 */
@Excel(name = "icon图下载地址")
@ApiModelProperty(name="icon",value = "icon图下载地址")


+ 5
- 0
ruoyi-business/src/main/java/com/ruoyi/business/domain/ApplyPlan.java Просмотреть файл

@@ -74,6 +74,11 @@ public class ApplyPlan extends BaseEntity
@ApiModelProperty(name="appType",value = "应用类型枚举")
private String appType;

/** 是否支持应用参数 */
@Excel(name = "是否支持应用参数")
@ApiModelProperty(name="supportParam",value = "是否支持应用参数")
private Integer supportParam;

/** 计划参数 */
@Excel(name = "计划参数")
@ApiModelProperty(name="planParams",value = "计划参数")


+ 5
- 0
ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/AddApplyPlanBO.java Просмотреть файл

@@ -77,6 +77,11 @@ public class AddApplyPlanBO extends BaseEntity
@ApiModelProperty(name="manualTime",value = "预计人工耗时")
private String manualTime;

/** 是否支持应用参数 */
@Excel(name = "是否支持应用参数")
@ApiModelProperty(name="supportParam",value = "是否支持应用参数")
private Integer supportParam;

/** 参数 */
@Excel(name = "参数")
@ApiModelProperty(name="planParams",value = "参数")


+ 1
- 1
ruoyi-business/src/main/java/com/ruoyi/business/domain/bo/ApplyStartBO.java Просмотреть файл

@@ -89,7 +89,7 @@ public class ApplyStartBO {
* 应用运行参数
*/
@Data
private static class RobotParam {
public static class RobotParam {
// 参数名
private String name;
// 参数值


+ 8
- 0
ruoyi-business/src/main/java/com/ruoyi/business/mapper/ApplyMapper.java Просмотреть файл

@@ -21,4 +21,12 @@ public interface ApplyMapper extends BaseMapper<Apply>
*/
List<Apply> selectApplyList(Apply apply);

/**
* 查询所有应用信息列表
*
* @param apply 应用信息管理
* @return 应用信息管理集合
*/
List<Apply> selectApplyAllList(Apply apply);

}

+ 6
- 0
ruoyi-business/src/main/java/com/ruoyi/business/service/IApplyPlanService.java Просмотреть файл

@@ -30,6 +30,12 @@ public interface IApplyPlanService extends IService<ApplyPlan> {
*/
boolean execPlan(ApplyStartBO applyStartBO) throws IllegalAccessException;

/**
* 定时查询指定时间执行的数据
* @return
*/
boolean runAppBySetTime() throws IllegalAccessException;

/**
* 创建计划
* @param addApplyPlanBO


+ 8
- 0
ruoyi-business/src/main/java/com/ruoyi/business/service/IApplyService.java Просмотреть файл

@@ -41,4 +41,12 @@ public interface IApplyService extends IService<Apply>
*/
List<Apply> list(Apply apply);

/**
* 查询所有应用信息列表
*
* @param apply 应用信息管理
* @return 应用信息管理集合
*/
List<Apply> listAll(Apply apply);

}

+ 75
- 1
ruoyi-business/src/main/java/com/ruoyi/business/service/impl/ApplyPlanServiceImpl.java Просмотреть файл

@@ -4,6 +4,8 @@ import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.ruoyi.business.domain.Apply;
import com.ruoyi.business.domain.Rebot;
import com.ruoyi.business.domain.bo.*;
@@ -18,6 +20,7 @@ import com.ruoyi.common.enums.ExcTypeStatus;
import com.ruoyi.common.enums.PlanRunStatus;
import com.ruoyi.common.enums.RebotStatus;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -41,6 +44,66 @@ public class ApplyPlanServiceImpl extends ServiceImpl<ApplyPlanMapper, ApplyPlan
@Autowired
private IRebotService rebotService;


/**
* 指定时间执行
*
* @return
*/
@Override
@Transactional
public boolean runAppBySetTime() throws IllegalAccessException {
ListRebotBO listRebotBO = new ListRebotBO();
listRebotBO.setStatus(RebotStatus.IDLE.getKey());
listRebotBO.setPage(1);
listRebotBO.setSize(100);
// 只获取空闲的机器人
List<ListRebotVO> listRebotVos = YinDaoHttpUtils.listRebot(listRebotBO);
if (listRebotVos.isEmpty()) {
log.error("暂无空闲机器人");
// 刷新机器人数据
// rebotService.syn(new Rebot());
return false;
}
List<ApplyPlan> applyPlanList = this.lambdaQuery().eq(ApplyPlan::getExcType, ExcTypeStatus.TWO.getKey()).isNull(ApplyPlan::getTaskUuid).orderByAsc(ApplyPlan::getExcTime).list();
listRebotVos.forEach(rebot -> {
applyPlanList.forEach(e -> {
if (e.getExcTime().getTime() <= System.currentTimeMillis() && PlanRunStatus.AWAIT_CREATE.getKey().equals(e.getTaskStatus())) {
ApplyStartBO applyStartBO = new ApplyStartBO();
applyStartBO.setRobotUuid(e.getAppId());
applyStartBO.setAccountName(rebot.getRobotClientName());
applyStartBO.setManualTime(e.getManualTime());
//high 高 middle 中 low 低
applyStartBO.setPriority("high");
String planParams = e.getPlanParams();
if(StringUtils.isNotEmpty(planParams)){
JSONArray jsonArray = JSON.parseArray(planParams);
// 直接转换成List
List<ApplyStartBO.RobotParam> list = jsonArray.toJavaList(ApplyStartBO.RobotParam.class);
applyStartBO.setPlanParamsList(list);
}
try {
JobStartVO jobStartVO = YinDaoHttpUtils.appStart(applyStartBO);
ApplyPlan applyPlan = new ApplyPlan();
applyPlan.setId(e.getId());
applyPlan.setUpdateBy("-1");
applyPlan.setUpdateTime(new Date());
applyPlan.setTaskUuid(jobStartVO.getJobUuid());
applyPlan.setTaskStatus(PlanRunStatus.CREATED.getKey());
this.updateById(applyPlan);
Rebot updateRebot = new Rebot();
updateRebot.setStatus(RebotStatus.RUNNING.getKey());
rebotService.lambdaUpdate().eq(Rebot::getRobotClientName, rebot.getRobotClientName()).update(updateRebot);
} catch (IllegalAccessException ex) {
throw new RuntimeException(ex);
}
}
});
});

return false;
}

/**
* 获取应用执行结果
*
@@ -166,6 +229,13 @@ public class ApplyPlanServiceImpl extends ServiceImpl<ApplyPlanMapper, ApplyPlan
applyStartBO.setAccountName(listRebotVO.getRobotClientName());
//high 高 middle 中 low 低
applyStartBO.setPriority("high");
String planParams = applyPlan.getPlanParams();
if(StringUtils.isNotEmpty(planParams)){
JSONArray jsonArray = JSON.parseArray(planParams);
// 直接转换成List
List<ApplyStartBO.RobotParam> list = jsonArray.toJavaList(ApplyStartBO.RobotParam.class);
applyStartBO.setPlanParamsList(list);
}
JobStartVO jobStartVO = YinDaoHttpUtils.appStart(applyStartBO);

ApplyPlan updateApplyPlan = new ApplyPlan();
@@ -182,11 +252,11 @@ public class ApplyPlanServiceImpl extends ServiceImpl<ApplyPlanMapper, ApplyPlan
if (this.saveOrUpdate(updateApplyPlan)) {
i++;
}

}
return i > 0;
}


@Override
@Transactional
public boolean save(AddApplyPlanBO addApplyPlanBO) {
@@ -204,6 +274,10 @@ public class ApplyPlanServiceImpl extends ServiceImpl<ApplyPlanMapper, ApplyPlan
applyPlan.setAppType(apply.getAppType());
applyPlan.setAppTypeName(apply.getAppTypeName());
applyPlan.setManualTime(apply.getManualTime());
if(addApplyPlanBO.getSupportParam() == 1){
applyPlan.setPlanParams(apply.getParam());
}
applyPlan.setManualTime(apply.getParam());
applyPlan.setDeptId(SecurityUtils.getDeptId());

// try {


+ 12
- 0
ruoyi-business/src/main/java/com/ruoyi/business/service/impl/ApplyServiceImpl.java Просмотреть файл

@@ -130,4 +130,16 @@ public class ApplyServiceImpl extends ServiceImpl<ApplyMapper, Apply> implements
public List<Apply> list(Apply apply) {
return baseMapper.selectApplyList(apply);
}

/**
* 查询所有应用信息列表
*
* @param apply 应用信息管理
* @return 应用信息管理
*/
@Override
@DataScope(deptAlias = "apply")
public List<Apply> listAll(Apply apply) {
return baseMapper.selectApplyAllList(apply);
}
}

+ 21
- 0
ruoyi-business/src/main/resources/mapper/business/ApplyMapper.xml Просмотреть файл

@@ -85,6 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="ownerName != null and ownerName != ''"> and owner_name like concat(#{ownerName}, '%')</if>
<if test="ownerAccount != null and ownerAccount != ''"> and owner_account like concat(#{ownerAccount}, '%')</if>
<if test="appName != null and appName != ''"> and app_name like concat(#{appName}, '%')</if>
<if test="version != null and version != ''"> and version = #{version}</if>
<if test="appTypeName != null and appTypeName != ''"> and app_type_name like concat(#{appTypeName}, '%')</if>
<if test="appType != null and appType != ''"> and app_type = #{appType}</if>
<if test="supportParam != null "> and support_param = #{supportParam}</if>
@@ -94,4 +95,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- 数据范围过滤 -->
${params.dataScope}
</select>

<!--查询所有已发版的应用列表-->
<select id="selectApplyAllList" parameterType="Apply" resultMap="ApplyResult">
<include refid="selectApplyVo"/>
from ct_apply apply
<where>
deleted = 0
<if test="ownerName != null and ownerName != ''"> and owner_name like concat(#{ownerName}, '%')</if>
<if test="ownerAccount != null and ownerAccount != ''"> and owner_account like concat(#{ownerAccount}, '%')</if>
<if test="appName != null and appName != ''"> and app_name like concat(#{appName}, '%')</if>
<if test="appTypeName != null and appTypeName != ''"> and app_type_name like concat(#{appTypeName}, '%')</if>
<if test="appType != null and appType != ''"> and app_type = #{appType}</if>
<if test="supportParam != null "> and support_param = #{supportParam}</if>
<if test="deptId != null "> and dept_id = #{deptId}</if>
<if test="deptName != null and deptName != ''"> and dept_name like concat(#{deptName}, '%')</if>
and version != '未发版'
</where>
<!-- 数据范围过滤 -->
${params.dataScope}
</select>
</mapper>

+ 4
- 0
ruoyi-business/src/main/resources/mapper/business/ApplyPlanMapper.xml Просмотреть файл

@@ -21,6 +21,8 @@
<result property="appId" column="app_id"/>
<!-- 应用类型枚举(app:应用 activity:指令) -->
<result property="appType" column="app_type"/>
<!-- 是否支持应用参数 -->
<result property="supportParam" column="support_param" />
<!-- 计划参数 -->
<result property="planParams" column="plan_params"/>
<!-- 等待超时时间 -->
@@ -73,6 +75,7 @@
plan.app_name,<!-- 应用名称 -->
plan.app_id,<!-- appid -->
plan.app_type,<!-- 应用类型枚举(app:应用 activity:指令) -->
plan.support_param,<!-- 是否支持应用参数 -->
plan.plan_params,<!-- 计划参数 -->
plan.wait_timeout,<!-- 等待超时时间 -->
plan.priority,<!-- 优先级 -->
@@ -108,6 +111,7 @@
<if test="robotName != null and robotName != ''">and robot_name like concat(#{robotName}, '%')</if>
<if test="appTypeName != null and appTypeName != ''">and app_type_name like concat(#{appTypeName}, '%')
</if>
<if test="supportParam != null "> and support_param = #{supportParam}</if>
<if test="appName != null and appName != ''">and app_name like concat(#{appName}, '%')</if>
<if test="appId != null and appId != ''">and app_id = #{appId}</if>
<if test="excType != null and excType != ''"> and exc_type = #{excType}</if>


+ 14
- 0
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java Просмотреть файл

@@ -41,6 +41,15 @@ public class RyTask {
log.debug("执行顺序启动应用结束");
}

/**
* 指定时间执行一次
*/
public void runAppBySetTime() throws IllegalAccessException {
log.debug("指定时间执行一次开始");
applyPlanService.runAppBySetTime();
log.debug("指定时间执行一次结束");
}

/**
* 获取应用执行结果
*/
@@ -49,4 +58,9 @@ public class RyTask {
applyPlanService.queryAppStartResult();
log.debug("更新应用执行结果结束");
}





}

Загрузка…
Отмена
Сохранить