网站首页/ 信息中心/ 档案百科/

从零搭建档案数据任务管理轻量系统含全流程可复制步骤代码

发布时间:2026年08月28日 07:20:30 浏览量:0

一、前置准备(零开发基础也能做)

1.1 硬件与系统要求

任意配置Windows/Mac/Linux电脑均可,推荐配置:4核CPU、8G内存、10G以上空闲硬盘

1.2 安装三件套工具

1.3 环境变量配置

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'); ```

三、代码项目快速搭建(全复制零修改)

3.1 新建Spring Boot项目

3.2 配置数据库与基础信息

打开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 ```

3.3 编写核心代码

在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 JpaRepository {} ```

repository/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 JpaRepository {} ```

controller/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 listArchives() { return archiveRepository.findAll(); } // 新增任务 @PostMapping("/task/add") public ArchiveTask addTask(@RequestBody ArchiveTask task) { return archiveTaskRepository.save(task); } // 查询所有任务 @GetMapping("/task/list") public List listTasks() { return archiveTaskRepository.findAll(); } // 更新任务状态 @PutMapping("/task/update/{id}/{status}") public ArchiveTask updateTaskStatus(@PathVariable Long id, @PathVariable Integer status) { ArchiveTask task = archiveTaskRepository.findById(id).orElse(null); if (task != null) { task.setStatus(status); return archiveTaskRepository.save(task); } return null; } } ```

四、运行与测试

4.1 启动项目

  • 点击IDEA右上角的绿色三角形按钮(或右键主类ArchiveTaskSystemApplication.java→Run)
  • 等待控制台出现“Started ArchiveTaskSystemApplication in X.XXX seconds”即成功

4.2 使用Postman测试接口

下载Postman:https://www.postman.com/downloads/,打开后创建Collection,依次测试:

  • 查询所有档案:GET请求,地址http://localhost:8080/api/archive/list,点击Send,返回测试数据即成功
  • 新增任务:POST请求,地址http://localhost:8080/api/task/add,Body选raw→JSON,粘贴{"taskName":"整理6月新增招聘资料","archiveIds":"2","handler":"李四","deadline":"2024-06-10 18:00:00"},点击Send,返回新增任务即成功
  • 更新任务状态:PUT请求,地址http://localhost:8080/api/task/update/2/2,点击Send,任务状态变为2(已完成)即成功
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818