From 1495c169d1a39f60e09eaad71908255587f4d381 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期三, 08 四月 2026 09:40:19 +0800
Subject: [PATCH] 知识库添加附件上传
---
src/main/java/com/ruoyi/approve/controller/KnowledgeBaseFileController.java | 72 ++++++++++++
src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseFileServiceImpl.java | 31 +++++
src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseFileMapper.java | 22 +++
src/main/java/com/ruoyi/approve/pojo/KnowledgeBaseFile.java | 55 +++++++++
src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseServiceImpl.java | 30 ++++
src/main/java/com/ruoyi/approve/service/KnowledgeBaseService.java | 7 +
src/main/java/com/ruoyi/approve/service/KnowledgeBaseFileService.java | 20 +++
src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java | 26 +++-
src/main/java/com/ruoyi/approve/vo/KnowledgeBaseVo.java | 14 ++
src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseMapper.java | 3
src/main/resources/mapper/approve/KnowledgeBaseFileMapper.xml | 30 +++++
src/main/resources/mapper/approve/KnowledgeBaseMapper.xml | 2
12 files changed, 302 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java b/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java
index b6ede4a..b6cfcf8 100644
--- a/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java
+++ b/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java
@@ -1,11 +1,17 @@
package com.ruoyi.approve.controller;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.approve.mapper.KnowledgeBaseFileMapper;
import com.ruoyi.approve.mapper.KnowledgeBaseMapper;
import com.ruoyi.approve.pojo.KnowledgeBase;
+import com.ruoyi.approve.pojo.KnowledgeBaseFile;
import com.ruoyi.approve.pojo.RpaProcessAutomation;
+import com.ruoyi.approve.service.KnowledgeBaseFileService;
import com.ruoyi.approve.service.KnowledgeBaseService;
+import com.ruoyi.approve.vo.KnowledgeBaseVo;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.annotations.Api;
@@ -13,6 +19,7 @@
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@@ -24,6 +31,8 @@
public class KnowledgeBaseController {
@Autowired
private KnowledgeBaseService knowledgeBaseService;
+ @Autowired
+ private KnowledgeBaseFileService knowledgeBaseFileService;
/**銆�
* 鑾峰彇鍒楄〃
@@ -31,25 +40,29 @@
*/
@GetMapping("/getList")
public AjaxResult getList(@RequestParam(defaultValue = "1") long current,
- @RequestParam(defaultValue = "10") long size, KnowledgeBase knowledgeBase) {
+ @RequestParam(defaultValue = "10") long size, KnowledgeBaseVo knowledgeBase) {
Page page = new Page(current, size);
- return AjaxResult.success(knowledgeBaseService.listpage(page,knowledgeBase));
+ IPage<KnowledgeBaseVo> listpage = knowledgeBaseService.listpage(page, knowledgeBase);
+ listpage.getRecords().forEach(item -> {
+ item.setFiles(knowledgeBaseFileService.list(new QueryWrapper<KnowledgeBaseFile>().lambda().eq(KnowledgeBaseFile::getKnowledgeBaseId, item.getId())));
+ });
+ return AjaxResult.success(listpage);
}
/**銆�
* 澧炴坊
* @return
*/
@PostMapping("/add")
- public AjaxResult add(@RequestBody KnowledgeBase knowledgeBase){
- return AjaxResult.success(knowledgeBaseService.save(knowledgeBase));
+ public AjaxResult add(@RequestBody KnowledgeBaseVo knowledgeBase){
+ return AjaxResult.success(knowledgeBaseService.add(knowledgeBase));
}
/**
* 鏇存柊
* @return
*/
@PostMapping("/update")
- public AjaxResult update(@RequestBody KnowledgeBase knowledgeBase){
- return AjaxResult.success(knowledgeBaseService.updateById(knowledgeBase));
+ public AjaxResult update(@RequestBody KnowledgeBaseVo knowledgeBase){
+ return AjaxResult.success(knowledgeBaseService.updateKnowledgeBase(knowledgeBase));
}
/**
* 鍒犻櫎
@@ -58,6 +71,7 @@
@DeleteMapping("/delete")
public AjaxResult delete(@RequestBody List<Long> ids){
if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+ knowledgeBaseFileService.remove(new QueryWrapper<KnowledgeBaseFile>().lambda().in(KnowledgeBaseFile::getKnowledgeBaseId, ids));
return AjaxResult.success(knowledgeBaseService.removeByIds(ids));
}
diff --git a/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseFileController.java b/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseFileController.java
new file mode 100644
index 0000000..f7564c6
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseFileController.java
@@ -0,0 +1,72 @@
+package com.ruoyi.approve.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.pojo.AccountFile;
+import com.ruoyi.account.service.AccountFileService;
+import com.ruoyi.approve.pojo.KnowledgeBaseFile;
+import com.ruoyi.approve.service.KnowledgeBaseFileService;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 鐭ヨ瘑搴�--闄勪欢 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-07 01:45:45
+ */
+@RestController
+@RequestMapping("/knowledgeBaseFile")
+public class KnowledgeBaseFileController {
+
+
+ @Resource
+ private KnowledgeBaseFileService knowledgeBaseFileService;
+
+
+ /**
+ * 鏂板
+ * @param accountFile
+ * @return
+ */
+ @PostMapping("/add")
+ @ApiOperation("鏂板")
+ public AjaxResult add(@RequestBody KnowledgeBaseFile accountFile) {
+ return AjaxResult.success(knowledgeBaseFileService.save(accountFile));
+ }
+
+ /**
+ * 鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @DeleteMapping("/del")
+ @ApiOperation("鍒犻櫎")
+ public AjaxResult delAccountFile(@RequestBody List<Integer> ids) {
+ if(CollectionUtils.isEmpty(ids)){
+ return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ }
+ //鍒犻櫎妫�楠岄檮浠�
+ return AjaxResult.success(knowledgeBaseFileService.removeBatchByIds(ids));
+ }
+
+ /**
+ *鍒嗛〉鏌ヨ
+ * @param page
+ * @param accountFile
+ * @return
+ */
+ @GetMapping("/listPage")
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ public AjaxResult accountFileListPage(Page page, KnowledgeBaseFile accountFile) {
+ return AjaxResult.success(knowledgeBaseFileService.knowledgeBaseFileListPage(page, accountFile));
+ }
+
+
+}
diff --git a/src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseFileMapper.java b/src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseFileMapper.java
new file mode 100644
index 0000000..33b103b
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseFileMapper.java
@@ -0,0 +1,22 @@
+package com.ruoyi.approve.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.approve.pojo.KnowledgeBaseFile;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 鐭ヨ瘑搴�--闄勪欢 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-07 01:45:45
+ */
+@Mapper
+public interface KnowledgeBaseFileMapper extends BaseMapper<KnowledgeBaseFile> {
+
+ IPage<KnowledgeBaseFile> knowledgeBaseFileListPage(Page page,@Param("accountFile") KnowledgeBaseFile accountFile);
+}
diff --git a/src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseMapper.java b/src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseMapper.java
index adae509..b428d09 100644
--- a/src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseMapper.java
+++ b/src/main/java/com/ruoyi/approve/mapper/KnowledgeBaseMapper.java
@@ -5,9 +5,10 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.approve.pojo.KnowledgeBase;
+import com.ruoyi.approve.vo.KnowledgeBaseVo;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface KnowledgeBaseMapper extends BaseMapper<KnowledgeBase> {
- IPage<KnowledgeBase> listpage(Page page, KnowledgeBase knowledgeBase);
+ IPage<KnowledgeBaseVo> listpage(Page page, KnowledgeBase knowledgeBase);
}
diff --git a/src/main/java/com/ruoyi/approve/pojo/KnowledgeBaseFile.java b/src/main/java/com/ruoyi/approve/pojo/KnowledgeBaseFile.java
new file mode 100644
index 0000000..e7d9cd6
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/pojo/KnowledgeBaseFile.java
@@ -0,0 +1,55 @@
+package com.ruoyi.approve.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.time.LocalDateTime;
+
+@Data
+public class KnowledgeBaseFile {
+
+ /**
+ * 搴忓彿
+ */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty(value = "鏂囦欢鍚嶇О")
+ private String name;
+
+ @ApiModelProperty(value = "鏂囦欢璺緞")
+ private String url;
+
+ @ApiModelProperty(value = "鏂囦欢澶у皬")
+ private int fileSize;
+
+ @ApiModelProperty(value = "鐭ヨ瘑搴搃d")
+ @NotBlank(message = "鐭ヨ瘑搴搃d涓嶈兘涓虹┖!")
+ private Long knowledgeBaseId;
+
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty(value = "绉熸埛ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/approve/service/KnowledgeBaseFileService.java b/src/main/java/com/ruoyi/approve/service/KnowledgeBaseFileService.java
new file mode 100644
index 0000000..0a1f3e7
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/service/KnowledgeBaseFileService.java
@@ -0,0 +1,20 @@
+package com.ruoyi.approve.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.pojo.AccountFile;
+import com.ruoyi.approve.pojo.KnowledgeBaseFile;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鐭ヨ瘑搴�--闄勪欢 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-07 01:45:45
+ */
+public interface KnowledgeBaseFileService extends IService<KnowledgeBaseFile> {
+
+ IPage<KnowledgeBaseFile> knowledgeBaseFileListPage(Page page, KnowledgeBaseFile accountFile);
+}
diff --git a/src/main/java/com/ruoyi/approve/service/KnowledgeBaseService.java b/src/main/java/com/ruoyi/approve/service/KnowledgeBaseService.java
index c8a3664..3ed06cf 100644
--- a/src/main/java/com/ruoyi/approve/service/KnowledgeBaseService.java
+++ b/src/main/java/com/ruoyi/approve/service/KnowledgeBaseService.java
@@ -4,7 +4,12 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.approve.pojo.KnowledgeBase;
+import com.ruoyi.approve.vo.KnowledgeBaseVo;
public interface KnowledgeBaseService extends IService<KnowledgeBase> {
- IPage<KnowledgeBase> listpage(Page page, KnowledgeBase knowledgeBase);
+ IPage<KnowledgeBaseVo> listpage(Page page, KnowledgeBaseVo knowledgeBase);
+
+ Boolean add(KnowledgeBaseVo knowledgeBase);
+
+ Boolean updateKnowledgeBase(KnowledgeBaseVo knowledgeBase);
}
diff --git a/src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseFileServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseFileServiceImpl.java
new file mode 100644
index 0000000..271d709
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseFileServiceImpl.java
@@ -0,0 +1,31 @@
+package com.ruoyi.approve.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.pojo.AccountFile;
+import com.ruoyi.approve.pojo.KnowledgeBaseFile;
+import com.ruoyi.approve.mapper.KnowledgeBaseFileMapper;
+import com.ruoyi.approve.service.KnowledgeBaseFileService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐭ヨ瘑搴�--闄勪欢 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-04-07 01:45:45
+ */
+@Service
+public class KnowledgeBaseFileServiceImpl extends ServiceImpl<KnowledgeBaseFileMapper, KnowledgeBaseFile> implements KnowledgeBaseFileService {
+
+ @Autowired
+ private KnowledgeBaseFileMapper knowledgeBaseFileMapper;
+
+ @Override
+ public IPage<KnowledgeBaseFile> knowledgeBaseFileListPage(Page page, KnowledgeBaseFile accountFile) {
+ return knowledgeBaseFileMapper.knowledgeBaseFileListPage(page,accountFile);
+ }
+}
diff --git a/src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseServiceImpl.java
index 57a3fa7..dd200d1 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/KnowledgeBaseServiceImpl.java
@@ -3,19 +3,47 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.approve.mapper.KnowledgeBaseFileMapper;
import com.ruoyi.approve.mapper.KnowledgeBaseMapper;
import com.ruoyi.approve.pojo.KnowledgeBase;
+import com.ruoyi.approve.pojo.KnowledgeBaseFile;
import com.ruoyi.approve.service.KnowledgeBaseService;
+import com.ruoyi.approve.vo.KnowledgeBaseVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
@Service
public class KnowledgeBaseServiceImpl extends ServiceImpl<KnowledgeBaseMapper, KnowledgeBase> implements KnowledgeBaseService {
@Autowired
private KnowledgeBaseMapper knowledgeBaseMapper;
+ @Autowired
+ private KnowledgeBaseFileMapper knowledgeBaseFileMapper;
@Override
- public IPage<KnowledgeBase> listpage(Page page, KnowledgeBase knowledgeBase) {
+ public IPage<KnowledgeBaseVo> listpage(Page page, KnowledgeBaseVo knowledgeBase) {
return knowledgeBaseMapper.listpage(page,knowledgeBase);
}
+
+ @Override
+ public Boolean add(KnowledgeBaseVo knowledgeBase) {
+ this.save(knowledgeBase);
+ for (KnowledgeBaseFile file : knowledgeBase.getFiles()) {
+ file.setKnowledgeBaseId(knowledgeBase.getId());
+ knowledgeBaseFileMapper.insert(file);
+ }
+ return true;
+ }
+
+ @Override
+ public Boolean updateKnowledgeBase(KnowledgeBaseVo knowledgeBase) {
+ this.updateById(knowledgeBase);
+ for (KnowledgeBaseFile file : knowledgeBase.getFiles()) {
+ if (file.getId() == null) {
+ file.setKnowledgeBaseId(knowledgeBase.getId());
+ knowledgeBaseFileMapper.insert(file);
+ }
+ }
+ return true;
+ }
}
diff --git a/src/main/java/com/ruoyi/approve/vo/KnowledgeBaseVo.java b/src/main/java/com/ruoyi/approve/vo/KnowledgeBaseVo.java
new file mode 100644
index 0000000..03180ea
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/vo/KnowledgeBaseVo.java
@@ -0,0 +1,14 @@
+package com.ruoyi.approve.vo;
+
+import com.ruoyi.approve.pojo.KnowledgeBase;
+import com.ruoyi.approve.pojo.KnowledgeBaseFile;
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+@Data
+public class KnowledgeBaseVo extends KnowledgeBase {
+
+ private List<KnowledgeBaseFile> files;
+}
diff --git a/src/main/resources/mapper/approve/KnowledgeBaseFileMapper.xml b/src/main/resources/mapper/approve/KnowledgeBaseFileMapper.xml
new file mode 100644
index 0000000..e5d4b02
--- /dev/null
+++ b/src/main/resources/mapper/approve/KnowledgeBaseFileMapper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.approve.mapper.KnowledgeBaseFileMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.approve.pojo.KnowledgeBaseFile">
+ <id column="id" property="id" />
+ <result column="name" property="name" />
+ <result column="url" property="url" />
+ <result column="file_size" property="fileSize" />
+ <result column="knowledge_base_id" property="knowledgeBaseId" />
+ <result column="create_time" property="createTime" />
+ <result column="create_user" property="createUser" />
+ <result column="update_time" property="updateTime" />
+ <result column="update_user" property="updateUser" />
+ <result column="tenant_id" property="tenantId" />
+ </resultMap>
+ <select id="knowledgeBaseFileListPage" resultType="com.ruoyi.approve.pojo.KnowledgeBaseFile">
+ SELECT
+ *
+ FROM account_file
+ where
+ <if test="accountFile.knowledgeBaseId != null and accountFile.knowledgeBaseId != ''">
+ AND knowledge_base_id = #{accountFile.knowledgeBaseId}
+ </if>
+ <if test="accountFile.name != null and accountFile.name != '' ">
+ AND name = #{accountFile.name}
+ </if>
+ </select>
+</mapper>
diff --git a/src/main/resources/mapper/approve/KnowledgeBaseMapper.xml b/src/main/resources/mapper/approve/KnowledgeBaseMapper.xml
index e4819c2..3c286e6 100644
--- a/src/main/resources/mapper/approve/KnowledgeBaseMapper.xml
+++ b/src/main/resources/mapper/approve/KnowledgeBaseMapper.xml
@@ -5,7 +5,7 @@
<mapper namespace="com.ruoyi.approve.mapper.KnowledgeBaseMapper">
- <select id="listpage" resultType="com.ruoyi.approve.pojo.KnowledgeBase">
+ <select id="listpage" resultType="com.ruoyi.approve.vo.KnowledgeBaseVo">
select * from knowledge_base
<where>
1=1
--
Gitblit v1.9.3