戒毒人员档案管理软件从设计到部署全实操指南

一、技术选型与架构规划

为了确保系统既轻量又具备高扩展性,本方案采用前后端分离架构。后端选用 Spring Boot 3.2 处理业务逻辑与数据持久化,前端使用 Vue 3 配合 Element Plus 构建响应式界面,数据库采用 MySQL 8.0。开发环境需提前安装 JDK 17、Node.js 18 及 Maven 3.6+。

二、数据库设计与初始化

首先在 MySQL 中执行以下脚本,创建数据库及核心表结构。这里设计了戒毒人员基础信息表,包含入所时间、管控等级等关键字段。

1. 建库建表 SQL

```sql CREATE DATABASE IF NOT EXISTS rehab_db DEFAULT CHARSET utf8mb4; USE rehab_db; CREATE TABLE drug_rehab_person ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', name VARCHAR(50) NOT NULL COMMENT '姓名', id_card VARCHAR(18) UNIQUE NOT NULL COMMENT '身份证号', gender TINYINT DEFAULT 1 COMMENT '性别:1男 2女', birth_date DATE COMMENT '出生日期', in_date DATE NOT NULL COMMENT '入所日期', control_level VARCHAR(20) COMMENT '管控等级:严管/普管/宽管', address VARCHAR(255) COMMENT '家庭住址', status TINYINT DEFAULT 1 COMMENT '状态:1在所 2出所', create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='戒毒人员档案表'; ```

三、后端服务搭建

使用 Spring Initializr 生成项目,依赖选择 Spring WebMyBatis FrameworkMySQL DriverLombok

1. 配置文件

修改 application.yml,配置数据源及 MyBatis 日志,确保连接信息准确。

```yaml server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/rehab_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true ```

2. 实体类

com.rehab.entity 包下创建实体类,使用 Lombok 简化代码。

```java package com.rehab.entity; import lombok.Data; import java.time.LocalDate; import java.time.LocalDateTime; @Data public class DrugRehabPerson { private Long id; private String name; private String idCard; private Integer gender; private LocalDate birthDate; private LocalDate inDate; private String controlLevel; private String address; private Integer status; private LocalDateTime createTime; private LocalDateTime updateTime; } ```

3. 持久层 Mapper

com.rehab.mapper 包下创建接口,标注 @Mapper

```java package com.rehab.mapper; import com.rehab.entity.DrugRehabPerson; import org.apache.ibatis.annotations.; import java.util.List; @Mapper public interface PersonMapper { @Select("SELECT FROM drug_rehab_person WHERE status = 1 ORDER BY in_date DESC") List findAll(); @Insert("INSERT INTO drug_rehab_person(name, id_card, gender, birth_date, in_date, control_level, address) " + "VALUES({name}, {idCard}, {gender}, {birthDate}, {inDate}, {controlLevel}, {address})") void insert(DrugRehabPerson person); @Select("SELECT FROM drug_rehab_person WHERE id = {id}") DrugRehabPerson findById(Long id); @Update("UPDATE drug_rehab_person SET name={name}, control_level={controlLevel}, address={address} WHERE id={id}") void update(DrugRehabPerson person); } ```

4. 控制层 Controller

com.rehab.controller 包下创建控制器,提供 RESTful 接口。

```java package com.rehab.controller; import com.rehab.entity.DrugRehabPerson; import com.rehab.mapper.PersonMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.; import java.util.List; @RestController @RequestMapping("/api/persons") @CrossOrigin(origins = "") public class PersonController { @Autowired private PersonMapper personMapper; @GetMapping public List list() { return personMapper.findAll(); } @PostMapping public String add(@RequestBody DrugRehabPerson person) { personMapper.insert(person); return "success"; } @GetMapping("/{id}") public DrugRehabPerson get(@PathVariable Long id) { return personMapper.findById(id); } @PutMapping public String update(@RequestBody DrugRehabPerson person) { personMapper.update(person); return "success"; } } ```

四、前端界面开发

使用 Vite 构建 Vue 3 项目,并引入 Element Plus 组件库。

1. 项目初始化

戒毒人员档案管理软件从设计到部署全实操指南

在终端执行以下命令创建项目并安装依赖:

```bash npm create vue@latest rehab-admin cd rehab-admin npm install element-plus axios ```

2. 配置入口文件

修改 src/main.js,全局引入 Element Plus 样式和组件。

```javascript import { createApp } from 'vue' import App from './App.vue' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' import axios from 'axios' const app = createApp(App) app.use(ElementPlus) app.config.globalProperties.$http = axios app.mount('app') ```

3. 编写档案管理页面

src/components 下创建 PersonList.vue,实现列表展示、新增和编辑功能。这是核心交互页面,包含完整的表格和弹窗逻辑。

```html ```

4. 挂载组件

修改 src/App.vue,引入刚才编写的组件。

```html ```

五、启动与运行验证

完成代码编写后,按顺序启动后端和前端服务。

1. 启动后端服务

在 IDE 中运行 RehabApplication.javamain 方法,或使用 Maven 命令:

```bash mvn spring-boot:run ```

看到控制台输出 Started RehabApplication 即表示后端启动成功,端口监听在 8080。

2. 启动前端服务

在项目根目录下执行:

```bash npm run dev ```

3. 功能验证

打开浏览器访问终端输出的 Local 地址(通常是 http://localhost:5173)。点击“新增人员”按钮,输入姓名、身份证号及管控等级,点击确定。表格应立即刷新显示新录入的数据。点击“编辑”修改管控等级,确认后数据更新。至此,一套基础的戒毒人员档案管理软件已完全落地。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统