Huanyi 2 kuukautta sitten
vanhempi
sitoutus
c9f80ee853
16 muutettua tiedostoa jossa 110 lisäystä ja 31 poistoa
  1. 2 0
      ruoyi-admin/src/main/resources/i18n/messages_en_US.properties
  2. 2 0
      ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties
  3. 3 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/controller/SearchController.java
  4. 1 2
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/controller/WpsController.java
  5. 4 4
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/excel/SearchChineseExcel.java
  6. 4 4
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/excel/SearchEnglishExcel.java
  7. 57 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/AiAuditService.java
  8. 1 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/common/CommonDocumentService.java
  9. 1 2
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/common/CommonFolderService.java
  10. 1 2
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/common/CommonProjectService.java
  11. 2 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/DocumentQcTaskDetailServiceImpl.java
  12. 3 3
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/DocumentQcTaskServiceImpl.java
  13. 19 6
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/DocumentServiceImpl.java
  14. 1 5
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/FolderServiceImpl.java
  15. 8 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/ProjectServiceImpl.java
  16. 1 1
      ruoyi-modules/yingpaipay-setting/src/main/java/com/yingpaipay/setting/domain/AiSetting.java

+ 2 - 0
ruoyi-admin/src/main/resources/i18n/messages_en_US.properties

@@ -98,3 +98,5 @@ textin.networkerror=Network error.
 textin.recognitionfail=Recognition failed.
 
 setting.keyword.add.exists=The keyword is existing.
+
+project.add.codeexists=The code of project is existing.

+ 2 - 0
ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties

@@ -98,3 +98,5 @@ textin.networkerror=网络异常
 textin.recognitionfail=识别失败
 
 setting.keyword.add.exists=关键词已存在
+
+project.add.codeexists=该项目编号已存在

+ 3 - 1
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/controller/SearchController.java

@@ -22,8 +22,10 @@ import org.springframework.context.i18n.LocaleContextHolder;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/search")
@@ -46,7 +48,7 @@ public class SearchController {
         List<Document> vos = documentService.listOnSearch(bo);
         List<SearchExcel> excel = vos.stream().map(e -> {
             SearchExcel element = new SearchExcel();
-            element.setDocumentName(e.getName());
+            element.setDocumentName(Arrays.stream(e.getName().split("-")).filter(str -> !str.equals("NA")).collect(Collectors.joining("-")));
             element.setLanguage(e.getLanguage());
             element.setVersion(e.getVersion());
             element.setVersionDate(

+ 1 - 2
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/controller/WpsController.java

@@ -5,7 +5,7 @@ import com.yingpaipay.business.domain.dto.WpsGetVersionsDto;
 import com.yingpaipay.business.domain.dto.WpsR;
 import com.yingpaipay.business.domain.dto.WpsVersionControlDto;
 import com.yingpaipay.business.domain.dto.WpsVersionDto;
-import com.yingpaipay.business.service.impl.CommonDocumentService;
+import com.yingpaipay.business.service.common.CommonDocumentService;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -20,7 +20,6 @@ import org.dromara.common.web.core.BaseController;
 import org.dromara.system.domain.SysOssExt;
 import org.dromara.system.domain.SysUser;
 import org.dromara.system.domain.vo.SysOssVo;
-import org.dromara.system.domain.vo.SysUserVo;
 import org.dromara.system.service.ISysOssService;
 import org.dromara.system.service.ISysUserService;
 import org.springframework.http.MediaType;

+ 4 - 4
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/excel/SearchChineseExcel.java

@@ -16,16 +16,16 @@ public class SearchChineseExcel implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
 
-    @ExcelProperty(value = "文件名称")
+    @ExcelProperty({"试验基本文件追踪表", "文件名称"})
     private String documentName;
 
-    @ExcelProperty(value = "语言")
+    @ExcelProperty({"试验基本文件追踪表", "语言"})
     private String language;
 
-    @ExcelProperty(value = "版本")
+    @ExcelProperty({"试验基本文件追踪表", "版本"})
     private String version;
 
-    @ExcelProperty(value = "版本日期")
+    @ExcelProperty({"试验基本文件追踪表", "版本日期"})
     private String versionDate;
 
 }

+ 4 - 4
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/excel/SearchEnglishExcel.java

@@ -16,16 +16,16 @@ public class SearchEnglishExcel implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
 
-    @ExcelProperty(value = "Document Name")
+    @ExcelProperty({"Essential Document Tracker", "Document Name"})
     private String documentName;
 
-    @ExcelProperty(value = "Lang.")
+    @ExcelProperty({"Essential Document Tracker", "Lang."})
     private String language;
 
-    @ExcelProperty(value = "Version")
+    @ExcelProperty({"Essential Document Tracker", "Version"})
     private String version;
 
-    @ExcelProperty(value = "Version Date")
+    @ExcelProperty({"Essential Document Tracker", "Version Date"})
     private String versionDate;
 
 }

+ 57 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/AiAuditService.java

@@ -0,0 +1,57 @@
+package com.yingpaipay.business.service;
+
+import com.yingpaipay.setting.service.IAiSettingService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.system.domain.vo.SysOssVo;
+import org.dromara.system.service.ISysOssService;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
+
+@Component
+@RequiredArgsConstructor
+@Slf4j
+public class AiAuditService {
+
+    private final IAiSettingService settingService;
+    private final ISysOssService ossService;
+
+    public void audit(Long ossId) {
+        if (!settingService.query().getEnabledFlag()) {
+            return;
+        }
+        boolean flag = handleAudit(ossId);
+        if (!flag) {
+        }
+    }
+
+    public boolean handleAudit(Long ossId) {
+        SysOssVo ossVo = ossService.getById(ossId);
+        String url = ossVo.getUrl();
+        File file;
+
+        try {
+            Path tempFile = Files.createTempFile("ai_audit_", ".pdf");
+
+            try (var inputStream = new URL(url).openStream()) {
+                Files.copy(inputStream, tempFile, StandardCopyOption.REPLACE_EXISTING);
+            }
+            file = tempFile.toFile();
+
+        } catch (IOException e) {
+            log.error("下载文件失败: {}", url, e);
+            throw new RuntimeException("AI 审核文件下载失败", e);
+        }
+
+        // TODO 进行具体的审核环节
+
+        return true;
+    }
+
+}

+ 1 - 1
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/CommonDocumentService.java → ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/common/CommonDocumentService.java

@@ -1,4 +1,4 @@
-package com.yingpaipay.business.service.impl;
+package com.yingpaipay.business.service.common;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yingpaipay.business.domain.Document;

+ 1 - 2
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/CommonFolderService.java → ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/common/CommonFolderService.java

@@ -1,8 +1,7 @@
-package com.yingpaipay.business.service.impl;
+package com.yingpaipay.business.service.common;
 
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.yingpaipay.business.constant.DocumentTypeConst;
 import com.yingpaipay.business.constant.FolderTypeConst;
 import com.yingpaipay.business.constant.SpecificationTypeConst;
 import com.yingpaipay.business.domain.Folder;

+ 1 - 2
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/CommonProjectService.java → ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/common/CommonProjectService.java

@@ -1,4 +1,4 @@
-package com.yingpaipay.business.service.impl;
+package com.yingpaipay.business.service.common;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yingpaipay.business.domain.Project;
 import com.yingpaipay.business.enumeration.ProjectStatusEnum;
 import com.yingpaipay.business.mapper.ProjectMapper;
-import com.yingpaipay.system.domain.SysUserFolders;
 import com.yingpaipay.system.domain.SysUserProjects;
 import com.yingpaipay.system.mapper.SysUserProjectsMapper;
 import lombok.RequiredArgsConstructor;

+ 2 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/DocumentQcTaskDetailServiceImpl.java

@@ -19,6 +19,8 @@ import com.yingpaipay.business.enumeration.DocumentStatusEnum;
 import com.yingpaipay.business.enumeration.MailTemplateEnum;
 import com.yingpaipay.business.mapper.DocumentQcTaskLogMapper;
 import com.yingpaipay.business.mapper.DocumentQcTaskMapper;
+import com.yingpaipay.business.service.common.CommonDocumentService;
+import com.yingpaipay.business.service.common.CommonProjectService;
 import com.yingpaipay.common.mabatis.utils.WrapperUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;

+ 3 - 3
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/DocumentQcTaskServiceImpl.java

@@ -8,13 +8,13 @@ import com.yingpaipay.business.constant.QcTaskStatusConst;
 import com.yingpaipay.business.domain.Document;
 import com.yingpaipay.business.domain.DocumentQcTask;
 import com.yingpaipay.business.domain.DocumentQcTaskDetail;
-import com.yingpaipay.business.domain.Folder;
 import com.yingpaipay.business.domain.bo.DocumentQcTaskBo;
-import com.yingpaipay.business.domain.bo.TaskCenterQcListBo;
 import com.yingpaipay.business.domain.vo.DocumentQcTaskVo;
-import com.yingpaipay.business.domain.vo.TaskCenterQcListVo;
 import com.yingpaipay.business.enumeration.DocumentStatusEnum;
 import com.yingpaipay.business.mapper.DocumentQcTaskDetailMapper;
+import com.yingpaipay.business.service.common.CommonDocumentService;
+import com.yingpaipay.business.service.common.CommonFolderService;
+import com.yingpaipay.business.service.common.CommonProjectService;
 import org.dromara.common.core.exception.BusinessException;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.MessageUtils;

+ 19 - 6
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/DocumentServiceImpl.java

@@ -18,8 +18,10 @@ import com.yingpaipay.business.enumeration.DocumentStatusEnum;
 import com.yingpaipay.business.enumeration.MailTemplateEnum;
 import com.yingpaipay.business.mapper.DocumentAuditLogMapper;
 import com.yingpaipay.business.mapper.DocumentMapper;
-import com.yingpaipay.business.service.IDocumentService;
-import com.yingpaipay.business.service.IFolderKeywordService;
+import com.yingpaipay.business.service.*;
+import com.yingpaipay.business.service.AiAuditService;
+import com.yingpaipay.business.service.common.CommonFolderService;
+import com.yingpaipay.business.service.common.CommonProjectService;
 import com.yingpaipay.common.file.util.PdfUtils;
 import com.yingpaipay.common.mabatis.utils.WrapperUtils;
 import com.yingpaipay.setting.domain.vo.KeywordSettingVo;
@@ -95,6 +97,7 @@ public class DocumentServiceImpl implements IDocumentService {
     private final IFolderKeywordService folderKeywordService;
     private final IKeywordSettingService keywordSettingService;
     private final ISysDeptService deptService;
+    private final AiAuditService aiAuditService;
 
     /**
      * 水印的锁
@@ -295,6 +298,7 @@ public class DocumentServiceImpl implements IDocumentService {
         ) > 0;
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean submit(DocumentSubmitBo bo) {
 
@@ -319,7 +323,15 @@ public class DocumentServiceImpl implements IDocumentService {
         document.setSubmitTime(new Date());
         document.setEffectiveDate(bo.getEffectiveDate());
         document.setStatus(DocumentStatusEnum.UN_AUDIT.getValue());
-        return baseMapper.updateById(document) > 0;
+
+        boolean updateFlag = baseMapper.updateById(document) == 0;
+        if (updateFlag) {
+            throw new RuntimeException("更新文档失败");
+        }
+
+        aiAuditService.audit(bo.getOssId());
+
+        return true;
     }
 
     @Override
@@ -1063,7 +1075,7 @@ public class DocumentServiceImpl implements IDocumentService {
         for (Document document : documentList) {
             ProjectExcel excel = new ProjectExcel();
             excel.setId(document.getId());
-            excel.setName(document.getName());
+            excel.setName(Arrays.stream(document.getName().split("-")).filter(e -> !e.equals("NA")).collect(Collectors.joining("-")));
             excel.setStatus(DocumentStatusEnum.getLabel(document.getStatus()));
             excel.setActualDocumentName(
                 Optional.ofNullable(document.getActualDocument())
@@ -1104,7 +1116,8 @@ public class DocumentServiceImpl implements IDocumentService {
                     .map(DateUtils::formatDate)
                     .orElse("-")
             );
-            Date submitTime = Optional.ofNullable(document.getSubmitTime()).orElse(new Date());
+            Date submitTime = Optional.ofNullable(document.getSubmitTime())
+                .orElse(new Date());
             excel.setDaysOverdue(
                 Optional.ofNullable(document.getSubmitDeadline())
                     .map(deadline -> {
@@ -1139,7 +1152,7 @@ public class DocumentServiceImpl implements IDocumentService {
             }
             excel.setSubmitTime(
                 Optional.ofNullable(document.getSubmitTime())
-                    .map(Date::toString)
+                    .map(DateUtils::formatDateTime)
                     .orElse("-")
             );
             excel.setSubmitter(

+ 1 - 5
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/FolderServiceImpl.java

@@ -3,8 +3,6 @@ package com.yingpaipay.business.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yingpaipay.business.constant.DocumentTypeConst;
 import com.yingpaipay.business.constant.FolderTypeConst;
 import com.yingpaipay.business.domain.Folder;
 import com.yingpaipay.business.domain.FolderKeyword;
@@ -13,6 +11,7 @@ import com.yingpaipay.business.domain.bo.FolderBo;
 import com.yingpaipay.business.domain.bo.ProjectCenterListBo;
 import com.yingpaipay.business.domain.bo.ProjectCenterMemberListBo;
 import com.yingpaipay.business.domain.vo.*;
+import com.yingpaipay.business.service.common.CommonProjectService;
 import com.yingpaipay.business.service.IFolderKeywordService;
 import com.yingpaipay.setting.service.IKeywordSettingService;
 import com.yingpaipay.system.domain.SysUserFolders;
@@ -23,12 +22,10 @@ import org.dromara.common.core.exception.BusinessException;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.MessageUtils;
 import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.json.utils.JsonUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.helper.DataBaseHelper;
 import org.dromara.common.satoken.utils.LoginHelper;
-import org.dromara.system.domain.SysUser;
 import org.dromara.system.domain.vo.SysUserVo;
 import org.dromara.system.service.ISysDeptService;
 import org.dromara.system.service.ISysUserService;
@@ -39,7 +36,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**

+ 8 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/ProjectServiceImpl.java

@@ -3,6 +3,7 @@ package com.yingpaipay.business.service.impl;
 import cn.hutool.crypto.digest.BCrypt;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yingpaipay.business.constant.DocumentTypeConst;
+import com.yingpaipay.business.service.common.CommonDocumentService;
 import com.yingpaipay.common.mabatis.utils.WrapperUtils;
 import com.yingpaipay.system.constant.UserAppletStatusConst;
 import com.yingpaipay.business.domain.Document;
@@ -14,7 +15,9 @@ import com.yingpaipay.system.domain.SysUserProjects;
 import com.yingpaipay.system.mapper.SysUserFoldersMapper;
 import com.yingpaipay.system.mapper.SysUserProjectsMapper;
 import org.dromara.common.core.constant.SystemConstants;
+import org.dromara.common.core.exception.BusinessException;
 import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.MessageUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
@@ -147,6 +150,11 @@ public class ProjectServiceImpl implements IProjectService {
      */
     @Override
     public Boolean insertByBo(ProjectBo bo) {
+
+        if (baseMapper.selectCount(Wrappers.lambdaQuery(Project.class).eq(Project::getCode, bo.getCode())) > 0) {
+            throw new BusinessException(MessageUtils.message("project.add.codeexists"));
+        }
+
         Project add = MapstructUtils.convert(bo, Project.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;

+ 1 - 1
ruoyi-modules/yingpaipay-setting/src/main/java/com/yingpaipay/setting/domain/AiSetting.java

@@ -12,6 +12,6 @@ public class AiSetting extends BaseEntity {
 
     private Long id;
 
-    private Integer enabledFlag;
+    private Boolean enabledFlag;
 
 }