网站首页/ 信息中心/ 行业信息/

综合档案管理系统知识产权版开发与部署实操指南

发布时间:2026年06月07日 18:30:56 浏览量:0

一、系统架构与核心技术选型

本系统采用前后端分离架构,确保高内聚、低耦合,便于维护和扩展。

1.1 后端技术栈

使用Spring Boot 2.7.18作为核心框架,其内嵌Tomcat服务器简化部署。数据库选用MySQL 8.0.33,并配合MyBatis-Plus 3.5.4.1进行数据持久化操作。具体依赖在pom.xml中配置如下:

``` org.springframework.boot spring-boot-starter-web com.baomidou mybatis-plus-boot-starter 3.5.4.1 mysql mysql-connector-java 8.0.33 ```

1.2 前端技术栈

前端使用Vue 3.3.4和Element Plus 2.3.8构建用户界面。通过Vite 4.4.9进行项目构建,提升开发体验。使用以下命令创建项目:

``` npm create vue@latest vue-archive-frontend 创建过程中,手动选择安装 Router, Pinia, Element Plus ```

二、开发环境搭建

确保你的本地开发环境已准备就绪。

2.1 后端环境配置

从MySQL官网下载并安装MySQL 8.0.33。安装完成后,创建数据库和用户:

``` CREATE DATABASE `ip_archive_db` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'archive_user'@'%' IDENTIFIED BY 'YourStrongPassword123!'; GRANT ALL PRIVILEGES ON `ip_archive_db`. TO 'archive_user'@'%'; FLUSH PRIVILEGES; ```

接着,在后端项目的src/main/resources/application.yml中配置数据库连接:

``` spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ip_archive_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai username: archive_user password: YourStrongPassword123! ```

2.2 前端环境配置

确保已安装Node.js 18.17.0或更高版本。进入前端项目目录,安装依赖并启动开发服务器:

``` cd vue-archive-frontend npm install npm run dev ```

开发服务器启动后,在浏览器中访问 http://localhost:5173 即可看到应用。

三、核心功能模块开发

系统核心围绕知识产权档案的生命周期管理,包括专利、商标、软件著作权等。

3.1 数据库表设计

创建核心的`intellectual_property`表,用于存储知识产权档案的基本信息:

``` CREATE TABLE `intellectual_property` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `ip_number` varchar(100) NOT NULL COMMENT '知识产权编号', `ip_name` varchar(500) NOT NULL COMMENT '知识产权名称', `ip_type` tinyint NOT NULL COMMENT '类型:1-专利,2-商标,3-软件著作权', `applicant` varchar(255) NOT NULL COMMENT '申请人', `application_date` date NOT NULL COMMENT '申请日期', `authorization_date` date DEFAULT NULL COMMENT '授权日期', `legal_status` tinyint DEFAULT '1' COMMENT '法律状态:1-申请中,2-已授权,3-已失效', `attachment_path` varchar(1000) DEFAULT NULL COMMENT '附件存储路径', `created_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_ip_number` (`ip_number`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='知识产权档案主表'; ```

3.2 后端实体与Mapper开发

在Java后端项目中,创建对应的实体类IntellectualProperty.java

``` package com.example.archive.entity; import com.baomidou.mybatisplus.annotation.; import lombok.Data; import java.time.LocalDate; import java.util.Date; @Data @TableName("intellectual_property") public class IntellectualProperty { @TableId(type = IdType.AUTO) private Long id; private String ipNumber; private String ipName; private Integer ipType; private String applicant; private LocalDate applicationDate; private LocalDate authorizationDate; private Integer legalStatus; private String attachmentPath; @TableField(fill = FieldFill.INSERT) private Date createdTime; @TableField(fill = FieldFill.INSERT_UPDATE) private Date updatedTime; } ```

创建Mapper接口IntellectualPropertyMapper.java,继承MyBatis-Plus的BaseMapper

``` package com.example.archive.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.archive.entity.IntellectualProperty; public interface IntellectualPropertyMapper extends BaseMapper { } ```

3.3 后端服务与控制层开发

创建服务层接口与实现类,实现档案的增删改查逻辑。以新增档案为例,在IntellectualPropertyServiceImpl.java中:

``` @Override public boolean saveIP(IntellectualPropertyDTO dto) { // 1. 校验知识产权编号是否重复 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(IntellectualProperty::getIpNumber, dto.getIpNumber()); if (this.count(wrapper) > 0) { throw new BusinessException("该知识产权编号已存在"); } // 2. DTO转Entity IntellectualProperty entity = new IntellectualProperty(); BeanUtils.copyProperties(dto, entity); // 3. 保存到数据库 return this.save(entity); } ```

创建控制层IntellectualPropertyController.java,暴露RESTful API:

``` @RestController @RequestMapping("/api/ip") public class IntellectualPropertyController { @Autowired private IIntellectualPropertyService ipService; @PostMapping public ResultVO add(@RequestBody @Valid IntellectualPropertyDTO dto) { boolean success = ipService.saveIP(dto); return success ? ResultVO.success("新增成功") : ResultVO.error("新增失败"); } } ```

3.4 前端页面与接口调用

在前端项目src/views/archive目录下创建AddForm.vue组件,用于新增档案。使用Element Plus表单组件:

``` ```

综合档案管理系统知识产权版开发与部署实操指南