基于SpringBoot的知识产权代管理系统【python毕设、python实战、python项目、python毕设项目】

38 阅读5分钟

💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目

@TOC

基于SpringBoot的知识产权代管理系统介绍

基于SpringBoot的知识产权代管理系统是一个专门为知识产权管理和保护而设计的综合性Web应用平台,采用当前主流的技术架构,通过Java语言结合SpringBoot框架构建稳定可靠的后端服务,同时支持Python+Django的开发方案,为不同技术偏好的开发者提供灵活选择。系统前端采用Vue.js框架配合ElementUI组件库打造现代化用户界面,实现了响应式设计和良好的用户体验,数据存储采用MySQL关系型数据库确保数据的安全性和一致性。该系统功能模块丰富完善,涵盖了知识产权管理的核心业务流程:用户可以通过系统首页快速了解平台功能,个人中心提供完整的用户信息管理和密码修改服务;管理员可以对用户信息进行统一管理,支持多种知识产权类型的分类管理和具体知识产权信息的录入维护;系统还提供了使用申请流程管理和专利授权处理功能,确保知识产权的合规使用和授权管理;为了提升用户体验,系统集成了弹窗提醒功能、在线客服系统和公告信息发布管理,支持信息分类和轮播图展示,实现了从知识产权申请、审核、授权到使用全生命周期的数字化管理,为企业和个人的知识产权保护提供了高效便捷的技术解决方案。

基于SpringBoot的知识产权代管理系统演示视频

演示视频

基于SpringBoot的知识产权代管理系统演示图片

登陆界面.png

使用申请.png

用户管理.png

知识产权.png

知识产权类型.png

专利授权.png

基于SpringBoot的知识产权代管理系统代码展示

import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
import java.util.Date;

@Service
public class IntellectualPropertyService {
   @Autowired
   private IntellectualPropertyMapper propertyMapper;
   @Autowired
   private ApplicationMapper applicationMapper;
   @Autowired
   private AuthorizationMapper authorizationMapper;
   
   private SparkSession spark = SparkSession.builder()
           .appName("IntellectualPropertyAnalysis")
           .master("local[*]")
           .getOrCreate();
   
   public Result addIntellectualProperty(IntellectualProperty property) {
       if(property.getPropertyName() == null || property.getPropertyName().trim().isEmpty()) {
           return Result.error("知识产权名称不能为空");
       }
       if(property.getPropertyType() == null || property.getPropertyType() <= 0) {
           return Result.error("请选择有效的知识产权类型");
       }
       QueryWrapper<IntellectualProperty> wrapper = new QueryWrapper<>();
       wrapper.eq("property_name", property.getPropertyName());
       wrapper.eq("applicant_id", property.getApplicantId());
       IntellectualProperty existProperty = propertyMapper.selectOne(wrapper);
       if(existProperty != null) {
           return Result.error("该申请人已存在同名知识产权");
       }
       property.setCreateTime(new Date());
       property.setStatus(1);
       property.setApplicationNumber(generateApplicationNumber());
       Dataset<Row> propertyData = spark.read().format("jdbc")
               .option("url", "jdbc:mysql://localhost:3306/ip_management")
               .option("dbtable", "intellectual_property")
               .option("user", "root")
               .option("password", "123456")
               .load();
       long totalCount = propertyData.count();
       property.setSequenceNumber(String.valueOf(totalCount + 1));
       int result = propertyMapper.insert(property);
       if(result > 0) {
           Dataset<Row> analysisResult = propertyData.groupBy("property_type").count();
           analysisResult.show();
           return Result.success("知识产权添加成功");
       }
       return Result.error("添加失败");
   }
   
   public Result submitApplication(Application application) {
       if(application.getPropertyId() == null || application.getPropertyId() <= 0) {
           return Result.error("请选择要申请的知识产权");
       }
       if(application.getApplicantId() == null || application.getApplicantId() <= 0) {
           return Result.error("申请人信息不能为空");
       }
       IntellectualProperty property = propertyMapper.selectById(application.getPropertyId());
       if(property == null) {
           return Result.error("申请的知识产权不存在");
       }
       if(property.getStatus() != 1) {
           return Result.error("该知识产权当前状态不允许申请");
       }
       QueryWrapper<Application> wrapper = new QueryWrapper<>();
       wrapper.eq("property_id", application.getPropertyId());
       wrapper.eq("applicant_id", application.getApplicantId());
       wrapper.in("status", 0, 1);
       Application existApp = applicationMapper.selectOne(wrapper);
       if(existApp != null) {
           return Result.error("您已对该知识产权提交过申请,请勿重复提交");
       }
       application.setApplicationTime(new Date());
       application.setStatus(0);
       application.setApplicationCode(generateApplicationCode());
       Dataset<Row> applicationData = spark.read().format("jdbc")
               .option("url", "jdbc:mysql://localhost:3306/ip_management")
               .option("dbtable", "application")
               .option("user", "root")
               .option("password", "123456")
               .load();
       Dataset<Row> userApplicationStats = applicationData
               .filter("applicant_id = " + application.getApplicantId())
               .groupBy("status").count();
       userApplicationStats.show();
       int result = applicationMapper.insert(application);
       if(result > 0) {
           property.setApplicationCount(property.getApplicationCount() + 1);
           propertyMapper.updateById(property);
           return Result.success("申请提交成功,请等待审核");
       }
       return Result.error("申请提交失败");
   }
   
   public Result processPatentAuthorization(Long applicationId, Integer authStatus, String authRemark) {
       if(applicationId == null || applicationId <= 0) {
           return Result.error("申请ID不能为空");
       }
       if(authStatus == null || (authStatus != 1 && authStatus != 2)) {
           return Result.error("请选择有效的授权状态");
       }
       Application application = applicationMapper.selectById(applicationId);
       if(application == null) {
           return Result.error("申请记录不存在");
       }
       if(application.getStatus() != 0) {
           return Result.error("该申请已处理,无法重复操作");
       }
       IntellectualProperty property = propertyMapper.selectById(application.getPropertyId());
       if(property == null) {
           return Result.error("关联的知识产权不存在");
       }
       Dataset<Row> authData = spark.read().format("jdbc")
               .option("url", "jdbc:mysql://localhost:3306/ip_management")
               .option("dbtable", "patent_authorization")
               .option("user", "root")
               .option("password", "123456")
               .load();
       Dataset<Row> monthlyAuthStats = authData
               .filter("YEAR(auth_time) = YEAR(CURRENT_DATE()) AND MONTH(auth_time) = MONTH(CURRENT_DATE())")
               .groupBy("auth_status").count();
       monthlyAuthStats.show();
       application.setStatus(authStatus);
       application.setProcessTime(new Date());
       application.setProcessRemark(authRemark);
       int updateResult = applicationMapper.updateById(application);
       if(updateResult > 0) {
           if(authStatus == 1) {
               PatentAuthorization authorization = new PatentAuthorization();
               authorization.setApplicationId(applicationId);
               authorization.setPropertyId(application.getPropertyId());
               authorization.setAuthorizeeId(application.getApplicantId());
               authorization.setAuthTime(new Date());
               authorization.setAuthStatus(1);
               authorization.setAuthCode(generateAuthCode());
               authorization.setValidPeriod(calculateValidPeriod(property.getPropertyType()));
               authorizationMapper.insert(authorization);
               property.setAuthorizationCount(property.getAuthorizationCount() + 1);
               propertyMapper.updateById(property);
           }
           return Result.success(authStatus == 1 ? "专利授权成功" : "申请已驳回");
       }
       return Result.error("处理失败");
   }
   
   private String generateApplicationNumber() {
       return "APP" + System.currentTimeMillis();
   }
   private String generateApplicationCode() {
       return "AC" + System.currentTimeMillis();
   }
   private String generateAuthCode() {
       return "AUTH" + System.currentTimeMillis();
   }
   private Integer calculateValidPeriod(Integer propertyType) {
       return propertyType == 1 ? 20 : 10;
   }
}

基于SpringBoot的知识产权代管理系统文档展示

文档.png

💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目