Browse Source

Merge remote-tracking branch 'origin/master'

master
zy 2 months ago
parent
commit
8678f85294
  1. 32
      yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/JobSaveReqVO.java
  2. 13
      yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/job/JobApi.java
  3. 22
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/job/JobApiImpl.java
  4. 3
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobController.java
  5. 3
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobService.java
  6. 4
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobServiceImpl.java
  7. 2
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
  8. 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/enterprise/EnterpriseController.java
  9. 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/enterprise/vo/EnterpriseRespVO.java
  10. 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/taskinfo/TaskInfoController.java
  11. 9
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/taskinfo/vo/TaskInfoSaveReqVO.java
  12. 95
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tasktag/TaskTagController.java
  13. 28
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tasktag/vo/TaskTagPageReqVO.java
  14. 31
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tasktag/vo/TaskTagRespVO.java
  15. 20
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tasktag/vo/TaskTagSaveReqVO.java
  16. 6
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/taskinfo/TaskInfoDO.java
  17. 39
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tasktag/TaskTagDO.java
  18. 28
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tasktag/TaskTagMapper.java
  19. 27
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/TaskExecJob.java
  20. 3
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/taskinfo/TaskInfoService.java
  21. 60
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/taskinfo/TaskInfoServiceImpl.java
  22. 56
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tasktag/TaskTagService.java
  23. 75
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tasktag/TaskTagServiceImpl.java
  24. 2
      yudao-server/src/main/resources/application-local.yaml

32
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/JobSaveReqVO.java

@ -0,0 +1,32 @@
package cn.iocoder.yudao.framework.common.pojo;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Data
public class JobSaveReqVO {
private Long id;
@NotEmpty(message = "任务名称不能为空")
private String name;
@NotEmpty(message = "处理器的名字不能为空")
private String handlerName;
private String handlerParam;
@NotEmpty(message = "CRON 表达式不能为空")
private String cronExpression;
@NotNull(message = "重试次数不能为空")
private Integer retryCount;
@NotNull(message = "重试间隔不能为空")
private Integer retryInterval;
private Integer monitorTimeout;
}

13
yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/job/JobApi.java

@ -0,0 +1,13 @@
package cn.iocoder.yudao.module.infra.api.job;
import cn.iocoder.yudao.framework.common.pojo.JobSaveReqVO;
import javax.validation.Valid;
import java.util.Map;
import cn.iocoder.yudao.framework.common.pojo.JobSaveReqVO;
public interface JobApi {
Long createJob(JobSaveReqVO jobSaveReqVO) throws Throwable;
}

22
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/job/JobApiImpl.java

@ -0,0 +1,22 @@
package cn.iocoder.yudao.module.infra.api.job;
import cn.iocoder.yudao.module.infra.service.job.JobService;
import javax.annotation.Resource;
import java.util.Map;
import cn.iocoder.yudao.framework.common.pojo.JobSaveReqVO;
import org.quartz.SchedulerException;
import org.springframework.stereotype.Service;
@Service
public class JobApiImpl implements JobApi
{
@Resource
private JobService jobService;
@Override
public Long createJob(JobSaveReqVO jobSaveReqVO) throws Throwable {
return jobService.createJob(jobSaveReqVO);
}
}

3
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobController.java

@ -9,7 +9,8 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.quartz.core.util.CronUtils;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobRespVO;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO;
//import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO;
import cn.iocoder.yudao.framework.common.pojo.JobSaveReqVO;
import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO;
import cn.iocoder.yudao.module.infra.service.job.JobService;
import io.swagger.v3.oas.annotations.Operation;

3
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobService.java

@ -2,7 +2,8 @@ package cn.iocoder.yudao.module.infra.service.job;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO;
//import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO;
import cn.iocoder.yudao.framework.common.pojo.JobSaveReqVO;
import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO;
import org.quartz.SchedulerException;

4
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobServiceImpl.java

@ -1,13 +1,15 @@
package cn.iocoder.yudao.module.infra.service.job;
import cn.hutool.extra.spring.SpringUtil;
import cn.iocoder.yudao.framework.common.pojo.JobSaveReqVO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager;
import cn.iocoder.yudao.framework.quartz.core.util.CronUtils;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO;
//import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO;
import cn.iocoder.yudao.framework.common.pojo.JobSaveReqVO;
import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO;
import cn.iocoder.yudao.module.infra.dal.mysql.job.JobMapper;
import cn.iocoder.yudao.module.infra.enums.job.JobStatusEnum;

2
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java

@ -182,4 +182,6 @@ public interface ErrorCodeConstants {
ErrorCode TASK_INFO_NOT_EXISTS = new ErrorCode(1-003-001-003, "任务不存在");
ErrorCode TASK_TAG_NOT_EXISTS = new ErrorCode(1-003-001-004, "任务标签不存在");
}

2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/enterprise/EnterpriseController.java

@ -125,7 +125,7 @@ public class EnterpriseController {
@GetMapping("/page")
@Operation(summary = "获得企业分页")
@PreAuthorize("@ss.hasPermission('system:enterprise:query')")
public CommonResult<PageResult<EnterpriseRespVO>> getEnterprisePage(@Valid EnterprisePageReqVO pageReqVO) {
public CommonResult<PageResult<EnterpriseRespVO>> getEnterprisePage(EnterprisePageReqVO pageReqVO) {
PageResult<EnterpriseDO> pageResult = enterpriseService.getEnterprisePage(pageReqVO);
pageResult.getList().forEach(item->{
//企业审核状态

2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/enterprise/vo/EnterpriseRespVO.java

@ -95,7 +95,7 @@ public class EnterpriseRespVO {
private List<EnterpriseQualificationDO> qualificationList;
@Schema(description = "企业标签", example = "26433")
private List<Map<String, String>> tagList;
private List<String> tagList;
}

2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/taskinfo/TaskInfoController.java

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.taskinfo;
import cn.iocoder.yudao.module.infra.api.job.JobApi;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
@ -41,6 +42,7 @@ public class TaskInfoController {
@Resource
private AdminUserService adminUserService;
@PostMapping("/create")
@Operation(summary = "创建任务表,用于存储所有的任务信息,任务可由不同用户创建并管理。")
@PreAuthorize("@ss.hasPermission('system:task-info:create')")

9
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/taskinfo/vo/TaskInfoSaveReqVO.java

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.taskinfo.vo;
import cn.iocoder.yudao.module.system.dal.dataobject.enterprise.EnterpriseDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@ -29,7 +30,7 @@ public class TaskInfoSaveReqVO {
@NotNull(message = "任务类型,表示任务的类别,例如:1.发布任务、2.自动任务等不能为空")
private Integer taskType;
@Schema(description = "任务优先级", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "任务优先级")
@NotEmpty(message = "任务优先级不能为空")
private Integer priority;
@ -55,4 +56,10 @@ public class TaskInfoSaveReqVO {
@Schema(description = "总共几步")
private Integer taskTotal;
@Schema(description = "标签集合")
private List<Long> tagIds;
@Schema(defaultValue = "企业集合")
private List<EnterpriseDO> enterpriseIds;
}

95
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tasktag/TaskTagController.java

@ -0,0 +1,95 @@
package cn.iocoder.yudao.module.system.controller.admin.tasktag;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.system.controller.admin.tasktag.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.tasktag.TaskTagDO;
import cn.iocoder.yudao.module.system.service.tasktag.TaskTagService;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@Tag(name = "管理后台 - 任务标签关联")
@RestController
@RequestMapping("/system/task-tag")
@Validated
public class TaskTagController {
@Resource
private TaskTagService taskTagService;
@PostMapping("/create")
@Operation(summary = "创建任务标签关联")
@PreAuthorize("@ss.hasPermission('system:task-tag:create')")
public CommonResult<Long> createTaskTag(@Valid @RequestBody TaskTagSaveReqVO createReqVO) {
return success(taskTagService.createTaskTag(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新任务标签关联")
@PreAuthorize("@ss.hasPermission('system:task-tag:update')")
public CommonResult<Boolean> updateTaskTag(@Valid @RequestBody TaskTagSaveReqVO updateReqVO) {
taskTagService.updateTaskTag(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除任务标签关联")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('system:task-tag:delete')")
public CommonResult<Boolean> deleteTaskTag(@RequestParam("id") Long id) {
taskTagService.deleteTaskTag(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得任务标签关联")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:task-tag:query')")
public CommonResult<TaskTagRespVO> getTaskTag(@RequestParam("id") Long id) {
TaskTagDO taskTag = taskTagService.getTaskTag(id);
return success(BeanUtils.toBean(taskTag, TaskTagRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得任务标签关联分页")
@PreAuthorize("@ss.hasPermission('system:task-tag:query')")
public CommonResult<PageResult<TaskTagRespVO>> getTaskTagPage(@Valid TaskTagPageReqVO pageReqVO) {
PageResult<TaskTagDO> pageResult = taskTagService.getTaskTagPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, TaskTagRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出任务标签关联 Excel")
@PreAuthorize("@ss.hasPermission('system:task-tag:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportTaskTagExcel(@Valid TaskTagPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<TaskTagDO> list = taskTagService.getTaskTagPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "任务标签关联.xls", "数据", TaskTagRespVO.class,
BeanUtils.toBean(list, TaskTagRespVO.class));
}
}

28
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tasktag/vo/TaskTagPageReqVO.java

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.system.controller.admin.tasktag.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 任务标签关联分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class TaskTagPageReqVO extends PageParam {
@Schema(description = "企业id", example = "19196")
private Long taskId;
@Schema(description = "标签id", example = "12139")
private Long tagId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

31
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tasktag/vo/TaskTagRespVO.java

@ -0,0 +1,31 @@
package cn.iocoder.yudao.module.system.controller.admin.tasktag.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 任务标签关联 Response VO")
@Data
@ExcelIgnoreUnannotated
public class TaskTagRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "29084")
@ExcelProperty("主键")
private Long id;
@Schema(description = "企业id", example = "19196")
@ExcelProperty("企业id")
private Long taskId;
@Schema(description = "标签id", example = "12139")
@ExcelProperty("标签id")
private Long tagId;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

20
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tasktag/vo/TaskTagSaveReqVO.java

@ -0,0 +1,20 @@
package cn.iocoder.yudao.module.system.controller.admin.tasktag.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@Schema(description = "管理后台 - 任务标签关联新增/修改 Request VO")
@Data
public class TaskTagSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "29084")
private Long id;
@Schema(description = "企业id", example = "19196")
private Long taskId;
@Schema(description = "标签id", example = "12139")
private Long tagId;
}

6
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/taskinfo/TaskInfoDO.java

@ -4,6 +4,8 @@ import com.sun.xml.bind.v2.TODO;
import lombok.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
@ -56,11 +58,11 @@ public class TaskInfoDO extends BaseDO {
/**
* 任务计划开始时间
*/
private LocalDate startDate;
private LocalDateTime startDate;
/**
* 任务计划结束时间
*/
private LocalDate endDate;
private LocalDateTime endDate;
/**
* 父任务id
*/

39
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tasktag/TaskTagDO.java

@ -0,0 +1,39 @@
package cn.iocoder.yudao.module.system.dal.dataobject.tasktag;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 任务标签关联 DO
*
* @author dx
*/
@TableName("task_tag")
@KeySequence("task_tag_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TaskTagDO extends BaseDO {
/**
* 主键
*/
@TableId
private Long id;
/**
* 企业id
*/
private Long taskId;
/**
* 标签id
*/
private Long tagId;
}

28
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tasktag/TaskTagMapper.java

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.system.dal.mysql.tasktag;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.dal.dataobject.tasktag.TaskTagDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.system.controller.admin.tasktag.vo.*;
/**
* 任务标签关联 Mapper
*
* @author dx
*/
@Mapper
public interface TaskTagMapper extends BaseMapperX<TaskTagDO> {
default PageResult<TaskTagDO> selectPage(TaskTagPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<TaskTagDO>()
.eqIfPresent(TaskTagDO::getTaskId, reqVO.getTaskId())
.eqIfPresent(TaskTagDO::getTagId, reqVO.getTagId())
.betweenIfPresent(TaskTagDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(TaskTagDO::getId));
}
}

27
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/TaskExecJob.java

@ -0,0 +1,27 @@
package cn.iocoder.yudao.module.system.job;
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
import cn.iocoder.yudao.module.system.service.taskinfo.TaskInfoService;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
public class TaskExecJob implements JobHandler {
/**
* 执行任务
*
* @param param 参数
* @return 结果
* @throws Exception 异常
*/
@Resource
private TaskInfoService taskInfoService;
@Override
public String execute(String param) throws Exception {
final Long taskId = Long.valueOf(param);
taskInfoService.sendTask(taskId);
return "";
}
}

3
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/taskinfo/TaskInfoService.java

@ -53,4 +53,7 @@ public interface TaskInfoService {
*/
PageResult<TaskInfoDO> getTaskInfoPage(TaskInfoPageReqVO pageReqVO);
//定时执行任务
void sendTask(Long taskId);
}

60
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/taskinfo/TaskInfoServiceImpl.java

@ -1,15 +1,20 @@
package cn.iocoder.yudao.module.system.service.taskinfo;
import cn.iocoder.yudao.module.infra.api.job.JobApi;
import cn.iocoder.yudao.module.system.dal.dataobject.tasktag.TaskTagDO;
import cn.iocoder.yudao.module.system.dal.mysql.tasktag.TaskTagMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.*;
import cn.iocoder.yudao.module.system.controller.admin.taskinfo.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.taskinfo.TaskInfoDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.common.pojo.JobSaveReqVO;
import cn.iocoder.yudao.module.system.dal.mysql.taskinfo.TaskInfoMapper;
@ -29,16 +34,57 @@ public class TaskInfoServiceImpl implements TaskInfoService {
@Resource
private TaskInfoMapper taskInfoMapper;
@Resource
private TaskTagMapper taskTagMapper;
@Resource
private JobApi jobApi;
@Override
public Long createTaskInfo(TaskInfoSaveReqVO createReqVO) {
// 插入
TaskInfoDO taskInfo = BeanUtils.toBean(createReqVO, TaskInfoDO.class);
taskInfoMapper.insert(taskInfo);
//添加任务标签
if (!createReqVO.getTagIds().isEmpty() && createReqVO.getTagIds().size() > 0) {
createReqVO.getTagIds().forEach(item->{
taskTagMapper.insert(new TaskTagDO().setTaskId(taskInfo.getId()).setTagId(item));
});
}
//
// //添加定时任务
// JobSaveReqVO jobSaveReqVO = new JobSaveReqVO();
// try {
// jobApi.createJob(jobSaveReqVO);
// } catch (Throwable e) {
// throw new RuntimeException(e);
// }
//添加企业范围
// 返回
return taskInfo.getId();
}
/**
* 生成 Cron 表达式
* @param year
* @param month
* @param day
* @return java.lang.String
* @Date 2025-02-06 上午11:39
**/
public static String generateCronExpression(int year, int month, int day) {
// 校验输入的年月日
LocalDate date = LocalDate.of(year, month, day);
// 生成 Cron 表达式
String cronExpression = String.format("0 0 %d %d *", day, month);
return cronExpression;
}
@Override
public void updateTaskInfo(TaskInfoSaveReqVO updateReqVO) {
// 校验存在
@ -72,4 +118,18 @@ public class TaskInfoServiceImpl implements TaskInfoService {
return taskInfoMapper.selectPage(pageReqVO);
}
@Override
public void sendTask(Long taskId) {
final TaskInfoDO taskInfoDO = taskInfoMapper.selectById(taskId);
if (taskInfoDO == null) {
throw exception(TASK_INFO_NOT_EXISTS);
}
//
//发送订阅消息给微信
}
}

56
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tasktag/TaskTagService.java

@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.system.service.tasktag;
import java.util.*;
import cn.iocoder.yudao.module.system.controller.admin.tasktag.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.tasktag.TaskTagDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import javax.validation.Valid;
/**
* 任务标签关联 Service 接口
*
* @author dx
*/
public interface TaskTagService {
/**
* 创建任务标签关联
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createTaskTag(@Valid TaskTagSaveReqVO createReqVO);
/**
* 更新任务标签关联
*
* @param updateReqVO 更新信息
*/
void updateTaskTag(@Valid TaskTagSaveReqVO updateReqVO);
/**
* 删除任务标签关联
*
* @param id 编号
*/
void deleteTaskTag(Long id);
/**
* 获得任务标签关联
*
* @param id 编号
* @return 任务标签关联
*/
TaskTagDO getTaskTag(Long id);
/**
* 获得任务标签关联分页
*
* @param pageReqVO 分页查询
* @return 任务标签关联分页
*/
PageResult<TaskTagDO> getTaskTagPage(TaskTagPageReqVO pageReqVO);
}

75
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tasktag/TaskTagServiceImpl.java

@ -0,0 +1,75 @@
package cn.iocoder.yudao.module.system.service.tasktag;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import cn.iocoder.yudao.module.system.controller.admin.tasktag.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.tasktag.TaskTagDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.dal.mysql.tasktag.TaskTagMapper;
import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
/**
* 任务标签关联 Service 实现类
*
* @author dx
*/
@Service
@Validated
public class TaskTagServiceImpl implements TaskTagService {
@Resource
private TaskTagMapper taskTagMapper;
@Override
public Long createTaskTag(TaskTagSaveReqVO createReqVO) {
// 插入
TaskTagDO taskTag = BeanUtils.toBean(createReqVO, TaskTagDO.class);
taskTagMapper.insert(taskTag);
// 返回
return taskTag.getId();
}
@Override
public void updateTaskTag(TaskTagSaveReqVO updateReqVO) {
// 校验存在
validateTaskTagExists(updateReqVO.getId());
// 更新
TaskTagDO updateObj = BeanUtils.toBean(updateReqVO, TaskTagDO.class);
taskTagMapper.updateById(updateObj);
}
@Override
public void deleteTaskTag(Long id) {
// 校验存在
validateTaskTagExists(id);
// 删除
taskTagMapper.deleteById(id);
}
private void validateTaskTagExists(Long id) {
if (taskTagMapper.selectById(id) == null) {
throw exception(TASK_TAG_NOT_EXISTS);
}
}
@Override
public TaskTagDO getTaskTag(Long id) {
return taskTagMapper.selectById(id);
}
@Override
public PageResult<TaskTagDO> getTaskTagPage(TaskTagPageReqVO pageReqVO) {
return taskTagMapper.selectPage(pageReqVO);
}
}

2
yudao-server/src/main/resources/application-local.yaml

@ -7,7 +7,7 @@ spring:
autoconfigure:
exclude:
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
- org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
# - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
- de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置
- de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置
- de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置

Loading…
Cancel
Save