Explorar o código

Merge branch 'master' of http://114.55.67.98:8070/songxy/AI_Engineering

songxy hai 2 meses
pai
achega
e868652965

+ 33 - 0
ais_knowledge/knowledge/src/main/java/com/zjugis/ai/knowledge/controller/knowledge/KnowledgeOaFileController.java

@@ -0,0 +1,33 @@
+package com.zjugis.ai.knowledge.controller.knowledge;
+
+import com.zjugis.ai.knowledge.common.pojo.CommonResult;
+import com.zjugis.ai.knowledge.controller.knowledge.vo.KnowledgeOaFileCreateReqVO;
+import com.zjugis.ai.knowledge.service.knowledge.KnowledgeOaFileService;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import static com.zjugis.ai.knowledge.common.pojo.CommonResult.success;
+
+/**
+ * @Author 陈俊
+ * @Date 2025/4/24 13:30
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/ai/knowledge/oa/file")
+@Validated
+public class KnowledgeOaFileController {
+
+    @Resource
+    private KnowledgeOaFileService oaFileService;
+
+    @PostMapping("/create")
+    public CommonResult<Boolean> createOaFile(@Valid KnowledgeOaFileCreateReqVO reqVO) throws Exception {
+        oaFileService.createOaFile(reqVO);
+        return success(true);
+    }
+}

+ 46 - 0
ais_knowledge/knowledge/src/main/java/com/zjugis/ai/knowledge/controller/knowledge/vo/KnowledgeOaFileCreateReqVO.java

@@ -0,0 +1,46 @@
+package com.zjugis.ai.knowledge.controller.knowledge.vo;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.time.LocalDateTime;
+
+/**
+ * @Author 陈俊
+ * @Date 2025/2/20 17:05
+ * @Version 1.0
+ */
+@Data
+public class KnowledgeOaFileCreateReqVO {
+
+    @NotNull(message = "文件不能为空")
+    private MultipartFile file;
+
+    /**
+     * 发布单位
+     */
+    private String publishUnit;
+
+    /**
+     * 发布日期
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime publishDate;
+
+    /**
+     * 效力级别
+     */
+    private String effectLevel;
+
+    /**
+     * 文号
+     */
+    private String documentNum;
+
+    /**
+     * 创建人OAId
+     */
+    private String createOaUserId;
+}

+ 63 - 0
ais_knowledge/knowledge/src/main/java/com/zjugis/ai/knowledge/dal/dataobject/knowledge/KnowledgeOaFileDO.java

@@ -0,0 +1,63 @@
+package com.zjugis.ai.knowledge.dal.dataobject.knowledge;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zjugis.ai.knowledge.common.pojo.BaseDO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.time.LocalDateTime;
+
+/**
+ * AI 知识库-OA文件 DO
+ * @Author 陈俊
+ * @Date 2025/4/24 10:02
+ * @Version 1.0
+ */
+@Data
+@TableName("ai_knowledge_oa_file")
+@EqualsAndHashCode(callSuper = true)
+public class KnowledgeOaFileDO extends BaseDO {
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /**
+     * 文件ID
+     */
+    private Long fileId;
+
+    /**
+     * 发布单位
+     */
+    private String publishUnit;
+
+    /**
+     * 发布日期
+     */
+    private LocalDateTime publishDate;
+
+    /**
+     * 效力级别
+     */
+    private String effectLevel;
+
+    /**
+     * 文号
+     */
+    private String documentNum;
+
+    /**
+     * 创建人OAId
+     */
+    private String createOaUserId;
+
+    /**
+     * 是否向量化
+     */
+    private Boolean isVectorized;
+}

+ 14 - 0
ais_knowledge/knowledge/src/main/java/com/zjugis/ai/knowledge/dal/mapper/knowledge/KnowledgeOaFileMapper.java

@@ -0,0 +1,14 @@
+package com.zjugis.ai.knowledge.dal.mapper.knowledge;
+
+import com.zjugis.ai.knowledge.dal.dataobject.knowledge.KnowledgeOaFileDO;
+import com.zjugis.ai.knowledge.dal.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Author 陈俊
+ * @Date 2025/4/24 13:35
+ * @Version 1.0
+ */
+@Mapper
+public interface KnowledgeOaFileMapper extends BaseMapperX<KnowledgeOaFileDO> {
+}

+ 14 - 0
ais_knowledge/knowledge/src/main/java/com/zjugis/ai/knowledge/service/knowledge/KnowledgeOaFileService.java

@@ -0,0 +1,14 @@
+package com.zjugis.ai.knowledge.service.knowledge;
+
+import com.zjugis.ai.knowledge.controller.knowledge.vo.KnowledgeOaFileCreateReqVO;
+
+import java.io.IOException;
+
+/**
+ * @Author 陈俊
+ * @Date 2025/4/24 13:33
+ * @Version 1.0
+ */
+public interface KnowledgeOaFileService {
+    void createOaFile(KnowledgeOaFileCreateReqVO reqVO) throws Exception;
+}

+ 36 - 0
ais_knowledge/knowledge/src/main/java/com/zjugis/ai/knowledge/service/knowledge/KnowledgeOaFileServiceImpl.java

@@ -0,0 +1,36 @@
+package com.zjugis.ai.knowledge.service.knowledge;
+
+import com.zjugis.ai.knowledge.controller.knowledge.vo.KnowledgeOaFileCreateReqVO;
+import com.zjugis.ai.knowledge.dal.dataobject.knowledge.KnowledgeOaFileDO;
+import com.zjugis.ai.knowledge.dal.mapper.knowledge.KnowledgeOaFileMapper;
+import com.zjugis.ai.knowledge.service.file.FileService;
+import com.zjugis.ai.knowledge.util.object.BeanUtils;
+import jakarta.annotation.Resource;
+import org.dromara.hutool.core.io.IoUtil;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * @Author 陈俊
+ * @Date 2025/4/24 13:34
+ * @Version 1.0
+ */
+@Service
+public class KnowledgeOaFileServiceImpl implements KnowledgeOaFileService{
+
+    @Resource
+    private FileService fileService;
+    @Resource
+    private KnowledgeOaFileMapper knowledgeOaFileMapper;
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void createOaFile(KnowledgeOaFileCreateReqVO reqVO) throws Exception {
+        MultipartFile file = reqVO.getFile();
+        Long fileId = fileService.createAndGetId(file.getOriginalFilename(), null, IoUtil.readBytes(file.getInputStream()), null).getId();
+        KnowledgeOaFileDO knowledgeOaFileDO = BeanUtils.toBean(reqVO, KnowledgeOaFileDO.class);
+        knowledgeOaFileDO.setFileId(fileId);
+        knowledgeOaFileMapper.insert(knowledgeOaFileDO);
+    }
+}