diff --git a/pom.xml b/pom.xml
index 9246a87..b695359 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,6 +71,24 @@
ruoyi-common-swagger
+
+
+ com.ruoyi
+ tuoheng-api-task
+
+
+
+
+ org.flywaydb
+ flyway-core
+
+
+
+
+ org.flywaydb
+ flyway-mysql
+
+
diff --git a/src/main/java/com/ruoyi/task/controller/TaskTempController.java b/src/main/java/com/ruoyi/task/controller/TaskTempController.java
new file mode 100644
index 0000000..0071d6b
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/controller/TaskTempController.java
@@ -0,0 +1,70 @@
+package com.ruoyi.task.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.security.annotation.InnerAuth;
+import com.ruoyi.task.api.domain.TaskTempVO;
+import com.ruoyi.task.controller.convert.TaskTempControllerConvert;
+import com.ruoyi.task.service.api.ITaskTempService;
+import com.ruoyi.task.service.dto.TaskTempDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 任务临时表Controller
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+@RestController
+@RequestMapping("/task/temp")
+public class TaskTempController extends BaseController
+{
+ @Autowired
+ private ITaskTempService taskTempService;
+
+ /**
+ * 查询任务临时表列表
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(TaskTempVO taskTemp)
+ {
+ startPage();
+ // API Domain → Service DTO
+ TaskTempDTO dto = TaskTempControllerConvert.toDTO(taskTemp);
+ List dtoList = taskTempService.selectTaskTempList(dto);
+ // Service DTO → API Domain
+ List list = TaskTempControllerConvert.toApiDomainList(dtoList);
+ return getDataTable(list);
+ }
+
+ /**
+ * 获取任务临时表详细信息(内部调用)
+ */
+ @InnerAuth
+ @GetMapping(value = "/{id}")
+ public R getTaskById(@PathVariable("id") String id)
+ {
+ TaskTempDTO dto = taskTempService.selectTaskTempById(id);
+ TaskTempVO taskTemp = TaskTempControllerConvert.toVO(dto);
+ return R.ok(taskTemp);
+ }
+
+ /**
+ * 获取任务临时表详细信息(外部调用)
+ */
+ @GetMapping(value = "/info/{id}")
+ public AjaxResult getInfo(@PathVariable("id") String id)
+ {
+ TaskTempDTO dto = taskTempService.selectTaskTempById(id);
+ TaskTempVO taskTemp = TaskTempControllerConvert.toVO(dto);
+ return success(taskTemp);
+ }
+}
diff --git a/src/main/java/com/ruoyi/task/controller/convert/TaskTempControllerConvert.java b/src/main/java/com/ruoyi/task/controller/convert/TaskTempControllerConvert.java
new file mode 100644
index 0000000..064f08f
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/controller/convert/TaskTempControllerConvert.java
@@ -0,0 +1,58 @@
+package com.ruoyi.task.controller.convert;
+
+import com.ruoyi.task.api.domain.TaskTempVO;
+import com.ruoyi.task.service.dto.TaskTempDTO;
+import org.springframework.beans.BeanUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 任务临时表Controller层转换器
+ * API Domain ↔ Service DTO
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class TaskTempControllerConvert
+{
+ /**
+ * DTO 转 API Domain
+ */
+ public static TaskTempVO toVO(TaskTempDTO dto)
+ {
+ if (dto == null)
+ {
+ return null;
+ }
+ TaskTempVO apiDomain = new TaskTempVO();
+ BeanUtils.copyProperties(dto, apiDomain);
+ return apiDomain;
+ }
+
+ /**
+ * API Domain 转 DTO
+ */
+ public static TaskTempDTO toDTO(TaskTempVO apiDomain)
+ {
+ if (apiDomain == null)
+ {
+ return null;
+ }
+ TaskTempDTO dto = new TaskTempDTO();
+ BeanUtils.copyProperties(apiDomain, dto);
+ return dto;
+ }
+
+ /**
+ * DTO List 转 API Domain List
+ */
+ public static List toApiDomainList(List dtoList)
+ {
+ if (dtoList == null)
+ {
+ return null;
+ }
+ return dtoList.stream().map(TaskTempControllerConvert::toVO).collect(Collectors.toList());
+ }
+}
diff --git a/src/main/java/com/ruoyi/task/domain/api/ITaskTempDomain.java b/src/main/java/com/ruoyi/task/domain/api/ITaskTempDomain.java
new file mode 100644
index 0000000..e665d2d
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/domain/api/ITaskTempDomain.java
@@ -0,0 +1,29 @@
+package com.ruoyi.task.domain.api;
+
+import com.ruoyi.task.domain.model.TaskTemp;
+import java.util.List;
+
+/**
+ * 任务临时表Domain接口
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public interface ITaskTempDomain
+{
+ /**
+ * 查询任务临时表列表
+ *
+ * @param taskTemp 任务临时表
+ * @return 任务临时表集合
+ */
+ List selectTaskTempList(TaskTemp taskTemp);
+
+ /**
+ * 根据ID查询任务临时表
+ *
+ * @param id 主键ID
+ * @return 任务临时表
+ */
+ TaskTemp selectTaskTempById(String id);
+}
diff --git a/src/main/java/com/ruoyi/task/domain/convert/TaskTempDomainConvert.java b/src/main/java/com/ruoyi/task/domain/convert/TaskTempDomainConvert.java
new file mode 100644
index 0000000..62cc607
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/domain/convert/TaskTempDomainConvert.java
@@ -0,0 +1,58 @@
+package com.ruoyi.task.domain.convert;
+
+import com.ruoyi.task.domain.model.TaskTemp;
+import com.ruoyi.task.mapper.entity.TaskTempEntity;
+import org.springframework.beans.BeanUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 任务临时表Domain层转换器
+ * Domain Model ↔ Mapper Entity
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class TaskTempDomainConvert
+{
+ /**
+ * Entity 转 Model
+ */
+ public static TaskTemp toModel(TaskTempEntity entity)
+ {
+ if (entity == null)
+ {
+ return null;
+ }
+ TaskTemp model = new TaskTemp();
+ BeanUtils.copyProperties(entity, model);
+ return model;
+ }
+
+ /**
+ * Model 转 Entity
+ */
+ public static TaskTempEntity toEntity(TaskTemp model)
+ {
+ if (model == null)
+ {
+ return null;
+ }
+ TaskTempEntity entity = new TaskTempEntity();
+ BeanUtils.copyProperties(model, entity);
+ return entity;
+ }
+
+ /**
+ * Entity List 转 Model List
+ */
+ public static List toModelList(List entityList)
+ {
+ if (entityList == null)
+ {
+ return null;
+ }
+ return entityList.stream().map(TaskTempDomainConvert::toModel).collect(Collectors.toList());
+ }
+}
diff --git a/src/main/java/com/ruoyi/task/domain/impl/TaskTempDomainImpl.java b/src/main/java/com/ruoyi/task/domain/impl/TaskTempDomainImpl.java
new file mode 100644
index 0000000..058c2ee
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/domain/impl/TaskTempDomainImpl.java
@@ -0,0 +1,39 @@
+package com.ruoyi.task.domain.impl;
+
+import com.ruoyi.task.domain.api.ITaskTempDomain;
+import com.ruoyi.task.domain.convert.TaskTempDomainConvert;
+import com.ruoyi.task.domain.model.TaskTemp;
+import com.ruoyi.task.mapper.TaskTempMapper;
+import com.ruoyi.task.mapper.entity.TaskTempEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 任务临时表Domain实现
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+@Component
+public class TaskTempDomainImpl implements ITaskTempDomain
+{
+ @Autowired
+ private TaskTempMapper taskTempMapper;
+
+ @Override
+ public List selectTaskTempList(TaskTemp taskTempModel)
+ {
+ TaskTempEntity entity = TaskTempDomainConvert.toEntity(taskTempModel);
+ List entityList = taskTempMapper.selectTaskTempList(entity);
+ return TaskTempDomainConvert.toModelList(entityList);
+ }
+
+ @Override
+ public TaskTemp selectTaskTempById(String id)
+ {
+ TaskTempEntity entity = taskTempMapper.selectTaskTempById(id);
+ return TaskTempDomainConvert.toModel(entity);
+ }
+}
diff --git a/src/main/java/com/ruoyi/task/domain/model/TaskTemp.java b/src/main/java/com/ruoyi/task/domain/model/TaskTemp.java
new file mode 100644
index 0000000..9ccda93
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/domain/model/TaskTemp.java
@@ -0,0 +1,55 @@
+package com.ruoyi.task.domain.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 任务临时表领域模型
+ * Domain 层对外暴露的对象
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class TaskTemp implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键ID */
+ private String id;
+
+ /** 创建时间 */
+ private Date createTime;
+
+ /** 更新时间 */
+ private Date updateTime;
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public Date getCreateTime()
+ {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime)
+ {
+ this.createTime = createTime;
+ }
+
+ public Date getUpdateTime()
+ {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime)
+ {
+ this.updateTime = updateTime;
+ }
+}
diff --git a/src/main/java/com/ruoyi/task/mapper/TaskTempMapper.java b/src/main/java/com/ruoyi/task/mapper/TaskTempMapper.java
new file mode 100644
index 0000000..efa9bc9
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/mapper/TaskTempMapper.java
@@ -0,0 +1,29 @@
+package com.ruoyi.task.mapper;
+
+import com.ruoyi.task.mapper.entity.TaskTempEntity;
+import java.util.List;
+
+/**
+ * 任务临时表Mapper接口
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public interface TaskTempMapper
+{
+ /**
+ * 查询任务临时表列表
+ *
+ * @param taskTempEntity 任务临时表
+ * @return 任务临时表集合
+ */
+ public List selectTaskTempList(TaskTempEntity taskTempEntity);
+
+ /**
+ * 根据ID查询任务临时表
+ *
+ * @param id 主键ID
+ * @return 任务临时表
+ */
+ public TaskTempEntity selectTaskTempById(String id);
+}
diff --git a/src/main/java/com/ruoyi/task/mapper/entity/TaskTempEntity.java b/src/main/java/com/ruoyi/task/mapper/entity/TaskTempEntity.java
new file mode 100644
index 0000000..b4ba51b
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/mapper/entity/TaskTempEntity.java
@@ -0,0 +1,36 @@
+package com.ruoyi.task.mapper.entity;
+
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 任务临时表实体对象 tuoheng_task_temp
+ * Mapper 层实体,对应数据库表
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class TaskTempEntity extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键ID */
+ private String id;
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "TaskTempEntity{" +
+ "id='" + id + '\'' +
+ '}';
+ }
+}
diff --git a/src/main/java/com/ruoyi/task/service/api/ITaskTempService.java b/src/main/java/com/ruoyi/task/service/api/ITaskTempService.java
new file mode 100644
index 0000000..e57e570
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/service/api/ITaskTempService.java
@@ -0,0 +1,29 @@
+package com.ruoyi.task.service.api;
+
+import com.ruoyi.task.service.dto.TaskTempDTO;
+import java.util.List;
+
+/**
+ * 任务临时表Service接口
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public interface ITaskTempService
+{
+ /**
+ * 查询任务临时表列表
+ *
+ * @param taskTempDTO 任务临时表
+ * @return 任务临时表集合
+ */
+ List selectTaskTempList(TaskTempDTO taskTempDTO);
+
+ /**
+ * 根据ID查询任务临时表
+ *
+ * @param id 主键ID
+ * @return 任务临时表
+ */
+ TaskTempDTO selectTaskTempById(String id);
+}
diff --git a/src/main/java/com/ruoyi/task/service/convert/TaskTempServiceConvert.java b/src/main/java/com/ruoyi/task/service/convert/TaskTempServiceConvert.java
new file mode 100644
index 0000000..2835ed5
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/service/convert/TaskTempServiceConvert.java
@@ -0,0 +1,58 @@
+package com.ruoyi.task.service.convert;
+
+import com.ruoyi.task.domain.model.TaskTemp;
+import com.ruoyi.task.service.dto.TaskTempDTO;
+import org.springframework.beans.BeanUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 任务临时表Service层转换器
+ * Service DTO ↔ Domain Model
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class TaskTempServiceConvert
+{
+ /**
+ * Model 转 DTO
+ */
+ public static TaskTempDTO toDTO(TaskTemp model)
+ {
+ if (model == null)
+ {
+ return null;
+ }
+ TaskTempDTO dto = new TaskTempDTO();
+ BeanUtils.copyProperties(model, dto);
+ return dto;
+ }
+
+ /**
+ * DTO 转 Model
+ */
+ public static TaskTemp toModel(TaskTempDTO dto)
+ {
+ if (dto == null)
+ {
+ return null;
+ }
+ TaskTemp model = new TaskTemp();
+ BeanUtils.copyProperties(dto, model);
+ return model;
+ }
+
+ /**
+ * Model List 转 DTO List
+ */
+ public static List toDTOList(List modelList)
+ {
+ if (modelList == null)
+ {
+ return null;
+ }
+ return modelList.stream().map(TaskTempServiceConvert::toDTO).collect(Collectors.toList());
+ }
+}
diff --git a/src/main/java/com/ruoyi/task/service/dto/TaskTempDTO.java b/src/main/java/com/ruoyi/task/service/dto/TaskTempDTO.java
new file mode 100644
index 0000000..f572f58
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/service/dto/TaskTempDTO.java
@@ -0,0 +1,55 @@
+package com.ruoyi.task.service.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 任务临时表服务层DTO
+ * Service 层对外暴露的对象
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+public class TaskTempDTO implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键ID */
+ private String id;
+
+ /** 创建时间 */
+ private Date createTime;
+
+ /** 更新时间 */
+ private Date updateTime;
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public Date getCreateTime()
+ {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime)
+ {
+ this.createTime = createTime;
+ }
+
+ public Date getUpdateTime()
+ {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime)
+ {
+ this.updateTime = updateTime;
+ }
+}
diff --git a/src/main/java/com/ruoyi/task/service/impl/TaskTempServiceImpl.java b/src/main/java/com/ruoyi/task/service/impl/TaskTempServiceImpl.java
new file mode 100644
index 0000000..86adf3e
--- /dev/null
+++ b/src/main/java/com/ruoyi/task/service/impl/TaskTempServiceImpl.java
@@ -0,0 +1,51 @@
+package com.ruoyi.task.service.impl;
+
+import com.ruoyi.task.domain.api.ITaskTempDomain;
+import com.ruoyi.task.domain.model.TaskTemp;
+import com.ruoyi.task.service.api.ITaskTempService;
+import com.ruoyi.task.service.convert.TaskTempServiceConvert;
+import com.ruoyi.task.service.dto.TaskTempDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 任务临时表Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2026-01-17
+ */
+@Service
+public class TaskTempServiceImpl implements ITaskTempService
+{
+ @Autowired
+ private ITaskTempDomain taskTempDomain;
+
+ /**
+ * 查询任务临时表列表
+ *
+ * @param taskTempDTO 任务临时表
+ * @return 任务临时表集合
+ */
+ @Override
+ public List selectTaskTempList(TaskTempDTO taskTempDTO)
+ {
+ TaskTemp model = TaskTempServiceConvert.toModel(taskTempDTO);
+ List modelList = taskTempDomain.selectTaskTempList(model);
+ return TaskTempServiceConvert.toDTOList(modelList);
+ }
+
+ /**
+ * 根据ID查询任务临时表
+ *
+ * @param id 主键ID
+ * @return 任务临时表
+ */
+ @Override
+ public TaskTempDTO selectTaskTempById(String id)
+ {
+ TaskTemp model = taskTempDomain.selectTaskTempById(id);
+ return TaskTempServiceConvert.toDTO(model);
+ }
+}
diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml
index 9ffcab6..adc1ddb 100644
--- a/src/main/resources/bootstrap.yml
+++ b/src/main/resources/bootstrap.yml
@@ -1,15 +1,19 @@
# Tomcat
server:
- port: 9201
+ port: 9206
# Spring
-spring:
+spring:
application:
# 应用名称
name: tuoheng-task
profiles:
# 环境配置
active: prod
+ flyway:
+ table: flyway_task_schema_history # 自定义历史表名
+ baseline-on-migrate: true # 在nocos中也有配置
+ baseline-version: 0 # 在nocos中也有配置
cloud:
nacos:
discovery:
diff --git a/src/main/resources/db/migration/V1__Create_task_temp_table.sql b/src/main/resources/db/migration/V1__Create_task_temp_table.sql
new file mode 100644
index 0000000..9f6c642
--- /dev/null
+++ b/src/main/resources/db/migration/V1__Create_task_temp_table.sql
@@ -0,0 +1,14 @@
+-- ============================================================
+-- Flyway Migration Script
+-- ============================================================
+-- Version: V1
+-- Description: Create tuoheng_task_temp table
+-- Author: ruoyi
+-- Date: 2026-01-17
+-- ============================================================
+
+-- 创建任务临时表
+CREATE TABLE IF NOT EXISTS tuoheng_task_temp (
+ id VARCHAR(64) NOT NULL COMMENT '主键ID',
+ PRIMARY KEY (id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务临时表';
diff --git a/src/main/resources/mapper/task/TaskTempMapper.xml b/src/main/resources/mapper/task/TaskTempMapper.xml
new file mode 100644
index 0000000..758524f
--- /dev/null
+++ b/src/main/resources/mapper/task/TaskTempMapper.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+ select id from tuoheng_task_temp
+
+
+
+
+
+
+