任意配置Windows/Mac/Linux电脑均可,推荐配置:4核CPU、8G内存、10G以上空闲硬盘
Windows系统步骤:
打开MySQL命令行或Navicat等工具,执行以下完整可复制SQL:
```sql -- 创建数据库 CREATE DATABASE IF NOT EXISTS archive_task DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE archive_task; -- 创建档案表 CREATE TABLE IF NOT EXISTS `archive` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '档案ID', `archive_no` VARCHAR(50) NOT NULL COMMENT '档案编号', `archive_name` VARCHAR(100) NOT NULL COMMENT '档案名称', `owner` VARCHAR(50) NOT NULL COMMENT '档案归属人', `status` TINYINT NOT NULL DEFAULT 0 COMMENT '0待整理 1整理中 2已归档 3已借出', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_archive_no` (`archive_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='档案基础信息表'; -- 创建任务表 CREATE TABLE IF NOT EXISTS `archive_task` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '任务ID', `task_name` VARCHAR(100) NOT NULL COMMENT '任务名称', `archive_ids` TEXT NOT NULL COMMENT '关联档案ID列表,逗号分隔', `handler` VARCHAR(50) NOT NULL COMMENT '任务处理人', `deadline` DATETIME NOT NULL COMMENT '任务截止时间', `status` TINYINT NOT NULL DEFAULT 0 COMMENT '0待处理 1处理中 2已完成 3已过期', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='档案任务表'; -- 插入测试数据 INSERT INTO `archive` (`archive_no`, `archive_name`, `owner`, `status`) VALUES ('A20240601001', '2024年度第一季度销售合同', '张三', 0), ('A20240601002', '2024年度人力资源招聘计划', '李四', 1); INSERT INTO `archive_task` (`task_name`, `archive_ids`, `handler`, `deadline`) VALUES ('整理6月新增销售合同', '1', '张三', '2024-06-15 18:00:00'); ```打开src/main/resources/application.properties,删除原有内容,粘贴以下完整配置:
```properties 数据库配置(替换为自己的MySQL账号密码) spring.datasource.url=jdbc:mysql://localhost:3306/archive_task?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver JPA配置(自动更新表结构,首次使用可保持) spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true 服务器端口配置 server.port=8080 ```在src/main/java/com/example/archive_task_system下依次创建entity、repository、controller包,然后复制以下代码:

entity/Archive.java(档案实体类):
```java package com.example.archive_task_system.entity; import jakarta.persistence.; import lombok.Data; import java.time.LocalDateTime; @Entity @Table(name = "archive") @Data public class Archive { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "archive_no", unique = true, nullable = false, length = 50) private String archiveNo; @Column(name = "archive_name", nullable = false, length = 100) private String archiveName; @Column(nullable = false, length = 50) private String owner; @Column(nullable = false) private Integer status = 0; @Column(name = "create_time", nullable = false, updatable = false) private LocalDateTime createTime; @Column(name = "update_time", nullable = false) private LocalDateTime updateTime; } ```entity/ArchiveTask.java(任务实体类):
```java package com.example.archive_task_system.entity; import jakarta.persistence.; import lombok.Data; import java.time.LocalDateTime; @Entity @Table(name = "archive_task") @Data public class ArchiveTask { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "task_name", nullable = false, length = 100) private String taskName; @Column(name = "archive_ids", nullable = false, columnDefinition = "TEXT") private String archiveIds; @Column(nullable = false, length = 50) private String handler; @Column(nullable = false) private LocalDateTime deadline; @Column(nullable = false) private Integer status = 0; @Column(name = "create_time", nullable = false, updatable = false) private LocalDateTime createTime; @Column(name = "update_time", nullable = false) private LocalDateTime updateTime; } ```repository/ArchiveRepository.java(档案数据操作接口):
```java package com.example.archive_task_system.repository; import com.example.archive_task_system.entity.Archive; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface ArchiveRepository extends JpaRepositoryrepository/ArchiveTaskRepository.java(任务数据操作接口):
```java package com.example.archive_task_system.repository; import com.example.archive_task_system.entity.ArchiveTask; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface ArchiveTaskRepository extends JpaRepositorycontroller/ArchiveTaskController.java(对外接口类):
```java package com.example.archive_task_system.controller; import com.example.archive_task_system.entity.Archive; import com.example.archive_task_system.entity.ArchiveTask; import com.example.archive_task_system.repository.ArchiveRepository; import com.example.archive_task_system.repository.ArchiveTaskRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.; import java.util.List; @RestController @RequestMapping("/api") public class ArchiveTaskController { @Autowired private ArchiveRepository archiveRepository; @Autowired private ArchiveTaskRepository archiveTaskRepository; // 新增档案 @PostMapping("/archive/add") public Archive addArchive(@RequestBody Archive archive) { return archiveRepository.save(archive); } // 查询所有档案 @GetMapping("/archive/list") public List下载Postman:https://www.postman.com/downloads/,打开后创建Collection,依次测试: