feat(job):优化工单查询逻辑并支持参数传递
- 在 AlibabaWorkOrderJob 中引入 StrUtil 工具类- 修改 buildSql 方法签名以支持额外的查询参数- 更新 SQL 构建逻辑以处理新的参数输入 - 添加条件判断确保时间范围的有效性 - 在 DemoJob 中增加对传入参数的打印输出
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.jeelowcode.module.biz.job;
|
package com.jeelowcode.module.biz.job;
|
||||||
|
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.db.sql.SqlUtil;
|
import cn.hutool.db.sql.SqlUtil;
|
||||||
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
|
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
|
||||||
import com.jeelowcode.module.biz.entity.AlibabaWorkOrder;
|
import com.jeelowcode.module.biz.entity.AlibabaWorkOrder;
|
||||||
@@ -54,10 +55,10 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
|||||||
LocalDateTime maxWorkOrderTime = workOrderService.getMaxWorkOrderTime();
|
LocalDateTime maxWorkOrderTime = workOrderService.getMaxWorkOrderTime();
|
||||||
StringBuilder sqlBuilder = new StringBuilder();
|
StringBuilder sqlBuilder = new StringBuilder();
|
||||||
if (maxWorkOrderTime == null) {
|
if (maxWorkOrderTime == null) {
|
||||||
sqlBuilder.append(buildSql(null, null));
|
sqlBuilder.append(buildSql("0", null, null));
|
||||||
} else {
|
} else {
|
||||||
LocalDateTime endTime = LocalDateTimeUtil.endOfDay(LocalDateTime.now());
|
LocalDateTime endTime = LocalDateTimeUtil.endOfDay(LocalDateTime.now());
|
||||||
sqlBuilder.append(buildSql(maxWorkOrderTime, endTime));
|
sqlBuilder.append(buildSql(param, maxWorkOrderTime, endTime));
|
||||||
}
|
}
|
||||||
// 执行SQL查询数据
|
// 执行SQL查询数据
|
||||||
DataSource dataSource = dataSources.get(ALIBABA_DATASOURCE_NAME);
|
DataSource dataSource = dataSources.get(ALIBABA_DATASOURCE_NAME);
|
||||||
@@ -106,13 +107,14 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建查询SQL
|
* 构建SQL查询语句
|
||||||
*
|
*
|
||||||
|
* @param params 查询参数
|
||||||
* @param startTime 开始时间
|
* @param startTime 开始时间
|
||||||
* @param endTime 结束时间
|
* @param endTime 结束时间
|
||||||
* @return SQL
|
* @return SQL查询语句
|
||||||
*/
|
*/
|
||||||
public static String buildSql(LocalDateTime startTime, LocalDateTime endTime) {
|
public static String buildSql(String params, LocalDateTime startTime, LocalDateTime endTime) {
|
||||||
StringBuilder sqlBuilder = new StringBuilder();
|
StringBuilder sqlBuilder = new StringBuilder();
|
||||||
sqlBuilder.append("SELECT " +
|
sqlBuilder.append("SELECT " +
|
||||||
" mwoe.ID AS \"id\", " +
|
" mwoe.ID AS \"id\", " +
|
||||||
@@ -485,7 +487,7 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
|||||||
" ) " +
|
" ) " +
|
||||||
" )");
|
" )");
|
||||||
// 如果时间参数存在并且合法,则添加时间条件
|
// 如果时间参数存在并且合法,则添加时间条件
|
||||||
if (Objects.nonNull(startTime) && Objects.nonNull(endTime) && startTime.isBefore(endTime)) {
|
if (StrUtil.equals("1", params) && Objects.nonNull(startTime) && Objects.nonNull(endTime) && startTime.isBefore(endTime)) {
|
||||||
String formattedStart = LocalDateTimeUtil.format(startTime, FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
|
String formattedStart = LocalDateTimeUtil.format(startTime, FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
|
||||||
String formattedEnd = LocalDateTimeUtil.format(endTime, FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
|
String formattedEnd = LocalDateTimeUtil.format(endTime, FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ public class DemoJob implements JobHandler {
|
|||||||
public String execute(String param) {
|
public String execute(String param) {
|
||||||
System.out.println("当前租户:" + TenantContextHolder.getTenantId());
|
System.out.println("当前租户:" + TenantContextHolder.getTenantId());
|
||||||
List<AdminUserDO> users = adminUserMapper.selectList();
|
List<AdminUserDO> users = adminUserMapper.selectList();
|
||||||
|
System.out.println(param);
|
||||||
return "用户数量:" + users.size();
|
return "用户数量:" + users.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user