Explorar el Código

提升了部分性能

Huanyi hace 2 meses
padre
commit
97c8fdd5be
Se han modificado 17 ficheros con 82 adiciones y 78 borrados
  1. 1 1
      ruoyi-admin/src/main/resources/application.yml
  2. 41 39
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
  3. 1 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/DocumentQcTask.java
  4. 1 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/DocumentQcTaskDetail.java
  5. 1 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/bo/DocumentQcTaskBo.java
  6. 1 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/bo/DocumentQcTaskDetailBo.java
  7. 10 2
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/dto/TextInR.java
  8. 1 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/DocumentAuditLogVo.java
  9. 1 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/DocumentQcTaskDetailVo.java
  10. 1 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/DocumentQcTaskVo.java
  11. 6 2
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/ProjectCenterListVo.java
  12. 1 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/ProjectOnDocumentVo.java
  13. 1 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/TaskCenterFilingListVo.java
  14. 0 11
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/DocumentServiceImpl.java
  15. 2 10
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/FolderServiceImpl.java
  16. 1 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/ProjectServiceImpl.java
  17. 12 5
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/TextInServiceImpl.java

+ 1 - 1
ruoyi-admin/src/main/resources/application.yml

@@ -62,7 +62,7 @@ spring:
     servlet:
         multipart:
             # 单个文件大小
-            max-file-size: 10MB
+            max-file-size: 50MB
             # 设置总上传的文件大小
             max-request-size: 150MB
     mvc:

+ 41 - 39
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java

@@ -155,7 +155,8 @@ public class SysTenantServiceImpl implements ISysTenantService {
         SysUser user = new SysUser();
         user.setTenantId(tenantId);
         user.setUserName(bo.getUsername());
-        user.setNickName(bo.getUsername());
+        // 尽可能不使用用户名进行,使用联系人作为管理员目前比较好时间
+        user.setNickName(bo.getContactUserName());
         user.setPassword(BCrypt.hashpw(bo.getPassword()));
         user.setDeptId(deptId);
         userMapper.insert(user);
@@ -171,44 +172,45 @@ public class SysTenantServiceImpl implements ISysTenantService {
         userRole.setRoleId(roleId);
         userRoleMapper.insert(userRole);
 
-        String defaultTenantId = TenantConstants.DEFAULT_TENANT_ID;
-        List<SysDictType> dictTypeList = dictTypeMapper.selectList(
-            new LambdaQueryWrapper<SysDictType>().eq(SysDictType::getTenantId, defaultTenantId));
-        List<SysDictData> dictDataList = dictDataMapper.selectList(
-            new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getTenantId, defaultTenantId));
-        for (SysDictType dictType : dictTypeList) {
-            dictType.setDictId(null);
-            dictType.setTenantId(tenantId);
-            dictType.setCreateDept(null);
-            dictType.setCreateBy(null);
-            dictType.setCreateTime(null);
-            dictType.setUpdateBy(null);
-            dictType.setUpdateTime(null);
-        }
-        for (SysDictData dictData : dictDataList) {
-            dictData.setDictCode(null);
-            dictData.setTenantId(tenantId);
-            dictData.setCreateDept(null);
-            dictData.setCreateBy(null);
-            dictData.setCreateTime(null);
-            dictData.setUpdateBy(null);
-            dictData.setUpdateTime(null);
-        }
-        dictTypeMapper.insertBatch(dictTypeList);
-        dictDataMapper.insertBatch(dictDataList);
-
-        List<SysConfig> sysConfigList = configMapper.selectList(
-            new LambdaQueryWrapper<SysConfig>().eq(SysConfig::getTenantId, defaultTenantId));
-        for (SysConfig config : sysConfigList) {
-            config.setConfigId(null);
-            config.setTenantId(tenantId);
-            config.setCreateDept(null);
-            config.setCreateBy(null);
-            config.setCreateTime(null);
-            config.setUpdateBy(null);
-            config.setUpdateTime(null);
-        }
-        configMapper.insertBatch(sysConfigList);
+        // TODO 目前的设计中,所有的字典等信息为通用信息。后续如果有隔离的需求,再将此处放开,并将前端同步租户的按钮放开
+//        String defaultTenantId = TenantConstants.DEFAULT_TENANT_ID;
+//        List<SysDictType> dictTypeList = dictTypeMapper.selectList(
+//            new LambdaQueryWrapper<SysDictType>().eq(SysDictType::getTenantId, defaultTenantId));
+//        List<SysDictData> dictDataList = dictDataMapper.selectList(
+//            new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getTenantId, defaultTenantId));
+//        for (SysDictType dictType : dictTypeList) {
+//            dictType.setDictId(null);
+//            dictType.setTenantId(tenantId);
+//            dictType.setCreateDept(null);
+//            dictType.setCreateBy(null);
+//            dictType.setCreateTime(null);
+//            dictType.setUpdateBy(null);
+//            dictType.setUpdateTime(null);
+//        }
+//        for (SysDictData dictData : dictDataList) {
+//            dictData.setDictCode(null);
+//            dictData.setTenantId(tenantId);
+//            dictData.setCreateDept(null);
+//            dictData.setCreateBy(null);
+//            dictData.setCreateTime(null);
+//            dictData.setUpdateBy(null);
+//            dictData.setUpdateTime(null);
+//        }
+//        dictTypeMapper.insertBatch(dictTypeList);
+//        dictDataMapper.insertBatch(dictDataList);
+//
+//        List<SysConfig> sysConfigList = configMapper.selectList(
+//            new LambdaQueryWrapper<SysConfig>().eq(SysConfig::getTenantId, defaultTenantId));
+//        for (SysConfig config : sysConfigList) {
+//            config.setConfigId(null);
+//            config.setTenantId(tenantId);
+//            config.setCreateDept(null);
+//            config.setCreateBy(null);
+//            config.setCreateTime(null);
+//            config.setUpdateBy(null);
+//            config.setUpdateTime(null);
+//        }
+//        configMapper.insertBatch(sysConfigList);
 
         // 未开启工作流不执行下方操作
         if (SpringUtils.getProperty("warm-flow.enabled", Boolean.class, false)) {

+ 1 - 1
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/DocumentQcTask.java

@@ -9,7 +9,7 @@ import java.util.Date;
 import java.io.Serial;
 
 /**
- * 文档质控任务对象 document_quality_control_task
+ * 文档质控任务对象 document_qc_task
  *
  * @author Huanyi
  * @date 2026-01-06

+ 1 - 1
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/DocumentQcTaskDetail.java

@@ -9,7 +9,7 @@ import java.io.Serial;
 import java.util.Date;
 
 /**
- * 文档质控细节对象 document_quality_control_task_detail
+ * 文档质控细节对象 document_qc_task_detail
  *
  * @author Huanyi
  * @date 2026-01-08

+ 1 - 1
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/bo/DocumentQcTaskBo.java

@@ -12,7 +12,7 @@ import java.util.Date;
 import java.util.List;
 
 /**
- * 文档质控任务业务对象 document_quality_control_task
+ * 文档质控任务业务对象 document_qc_task
  *
  * @author Huanyi
  * @date 2026-01-06

+ 1 - 1
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/bo/DocumentQcTaskDetailBo.java

@@ -10,7 +10,7 @@ import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
 
 /**
- * 文档质控细节业务对象 document_quality_control_task_detail
+ * 文档质控细节业务对象 document_qc_task_detail
  *
  * @author Huanyi
  * @date 2026-01-08

+ 10 - 2
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/dto/TextInR.java

@@ -3,12 +3,20 @@ package com.yingpaipay.business.domain.dto;
 import lombok.Data;
 
 @Data
-public class TextInR<E> {
+public class TextInR<R> {
 
     private Integer code;
 
     private String message;
 
-    private E result;
+    private R result;
+
+    public boolean isOk() {
+        return code != null && code == 200;
+    }
+
+    public boolean isError() {
+        return !isOk();
+    }
 
 }

+ 1 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/DocumentAuditLogVo.java

@@ -27,6 +27,7 @@ public class DocumentAuditLogVo implements Serializable {
     private String documentName;
     private Long documentId;
 
+    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "uploadVersion")
     private String uploadVersionUrl;
     private Long uploadVersion;
 

+ 1 - 1
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/DocumentQcTaskDetailVo.java

@@ -13,7 +13,7 @@ import java.io.Serializable;
 import java.util.Date;
 
 /**
- * 文档质控细节视图对象 document_quality_control_task_detail
+ * 文档质控细节视图对象 document_qc_task_detail
  *
  * @author Huanyi
  * @date 2026-01-08

+ 1 - 1
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/DocumentQcTaskVo.java

@@ -16,7 +16,7 @@ import java.util.List;
 
 
 /**
- * 文档质控任务视图对象 document_quality_control_task
+ * 文档质控任务视图对象 document_qc_task
  *
  * @author Huanyi
  * @date 2026-01-06

+ 6 - 2
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/ProjectCenterListVo.java

@@ -1,6 +1,8 @@
 package com.yingpaipay.business.domain.vo;
 
 import lombok.Data;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -22,8 +24,10 @@ public class ProjectCenterListVo implements Serializable {
 
     private Date updateTime;
 
-    private String createBy;
+    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
+    private Long createBy;
 
-    private String updateBy;
+    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "updateBy")
+    private Long updateBy;
 
 }

+ 1 - 1
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/ProjectOnDocumentVo.java

@@ -29,7 +29,7 @@ public class ProjectOnDocumentVo implements Serializable {
 
     private String type;
 
-    private String status;
+    private Integer status;
 
     private Date startTime;
 

+ 1 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/TaskCenterFilingListVo.java

@@ -32,6 +32,7 @@ public class TaskCenterFilingListVo implements Serializable {
 
     private Long ossId;
 
+    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "ossId")
     private String ossUrl;
 
     private Integer type;

+ 0 - 11
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/DocumentServiceImpl.java

@@ -419,20 +419,14 @@ public class DocumentServiceImpl implements IDocumentService {
     private void buildLogVos(List<DocumentAuditLogVo> vos) {
         List<Long> documentIds = new ArrayList<>();
         Map<Long, Document> documentMap = new HashMap<>();
-        List<Long> ossIds = new ArrayList<>();
-        Map<Long, SysOssVo> ossMap = new HashMap<>();
         vos.forEach(e -> {
             documentIds.add(e.getDocumentId());
-            ossIds.add(e.getUploadVersion());
         });
-        ossService.queryListByIds(ossIds).forEach(e -> ossMap.put(e.getOssId(), e));
         if (!documentIds.isEmpty()) {
             baseMapper.selectByIds(documentIds).forEach(e -> documentMap.put(e.getId(), e));
         }
         vos.forEach(e -> {
-            SysOssVo ossVo = ossMap.get(e.getUploadVersion());
             Document document = documentMap.get(e.getDocumentId());
-            e.setUploadVersionUrl(Optional.ofNullable(ossVo).map(SysOssVo::getUrl).orElse(null));
             e.setDocumentName(Optional.ofNullable(document).map(Document::getName).orElse(null));
         });
     }
@@ -614,16 +608,12 @@ public class DocumentServiceImpl implements IDocumentService {
         List<Long> folderIds = folderService.selectIdsOnFiling(bo.getCenterName(), projectIds);
         LambdaQueryWrapper<Document> wrapper = buildFilingListWrapper(bo, folderIds);
         IPage<Document> page = baseMapper.selectPage(pageQuery.build(), wrapper);
-        List<Long> ossIds = new ArrayList<>();
-        Map<Long, String> ossMap = new HashMap<>();
         List<Long> folderIdsInDocument = new ArrayList<>();
         Map<Long, String> folderMap = new HashMap<>();
         page.getRecords().forEach(e -> {
-            ossIds.add(e.getActualDocument());
             folderIdsInDocument.add(e.getFolderId());
         });
         folderService.listByIds(folderIdsInDocument).forEach(e -> folderMap.put(e.getId(), e.getName()));
-        ossService.queryListByIds(ossIds).forEach(e -> ossMap.put(e.getOssId(), e.getUrl()));
         return TableDataInfo.build(page.convert(e -> {
             TaskCenterFilingListVo vo = new TaskCenterFilingListVo();
             vo.setId(e.getId());
@@ -633,7 +623,6 @@ public class DocumentServiceImpl implements IDocumentService {
             vo.setSubmitTime(e.getSubmitTime());
             vo.setCreateTime(e.getCreateTime());
             vo.setOssId(e.getActualDocument());
-            vo.setOssUrl(ossMap.get(e.getActualDocument()));
             vo.setType(e.getType());
             vo.setDocumentType(e.getPlanType());
             vo.setProjectId(e.getProjectId());

+ 2 - 10
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/FolderServiceImpl.java

@@ -296,14 +296,6 @@ public class FolderServiceImpl implements IFolderService {
     public TableDataInfo<ProjectCenterListVo> queryCenterInfo(ProjectCenterListBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<Folder> wrapper = buildCenterQueryWrapper(bo);
         IPage<Folder> page = baseMapper.selectPage(pageQuery.build(), wrapper);
-        List<Long> userIds = new ArrayList<>();
-        Map<Long, String> userMap = new HashMap<>();
-        page.getRecords().forEach(e -> {
-            userIds.add(e.getCreateBy());
-            userIds.add(e.getUpdateBy());
-        });
-        userService.selectUserByIds(userIds)
-            .forEach(e -> userMap.put(e.getUserId(), e.getNickName()));
         return TableDataInfo.build(page.convert(e -> {
             ProjectCenterListVo vo = new ProjectCenterListVo();
             vo.setId(e.getId());
@@ -311,8 +303,8 @@ public class FolderServiceImpl implements IFolderService {
             vo.setStatus(e.getStatus());
             vo.setCreateTime(e.getCreateTime());
             vo.setUpdateTime(e.getUpdateTime());
-            vo.setCreateBy(userMap.get(e.getCreateBy()));
-            vo.setUpdateBy(userMap.get(e.getUpdateBy()));
+            vo.setCreateBy(e.getCreateBy());
+            vo.setUpdateBy(e.getUpdateBy());
             return vo;
         }));
     }

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

@@ -290,7 +290,7 @@ public class ProjectServiceImpl implements IProjectService {
             vo.setName(e.getName());
             vo.setLanguage(e.getLanguage());
             vo.setType(e.getType());
-            vo.setStatus(ProjectStatusEnum.getLabel(e.getStatus()));
+            vo.setStatus(e.getStatus());
             vo.setStartTime(e.getStartTime());
             vo.setEndTime(e.getEndTime());
             vo.setCreateTime(e.getCreateTime());

+ 12 - 5
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/TextInServiceImpl.java

@@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.logging.log4j.message.Message;
 import org.dromara.common.core.exception.BusinessException;
 import org.dromara.common.core.utils.MessageUtils;
+import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.json.utils.JsonUtils;
 import org.jspecify.annotations.NonNull;
 import org.springframework.http.MediaType;
@@ -31,16 +32,19 @@ import java.util.zip.ZipInputStream;
 @Slf4j
 public class TextInServiceImpl implements ITextInService {
 
+    private static final String HEADER_APP_ID = "x-ti-app-id";
+    private static final String HEADER_SECRET_CODE = "x-ti-secret-code";
+
     private final TextInConfig config;
 
     private final ITextinSettingService settingService;
 
     private HttpResponse getResponse(HttpRequest request) {
         TextinSettingVo setting = settingService.query();
-        HttpResponse response = request.header("x-ti-app-id", setting.getAppId())
-            .header("x-ti-secret-code", setting.getSecretCode())
+        return request
+            .header(HEADER_APP_ID, setting.getAppId())
+            .header(HEADER_SECRET_CODE, setting.getSecretCode())
             .execute();
-        return response;
     }
 
     @Override
@@ -57,15 +61,18 @@ public class TextInServiceImpl implements ITextInService {
     }
 
     private static @NonNull TextInR getR(HttpResponse response) {
-        if (response.getStatus() != 200) {
+        if (!response.isOk()) {
             throw new BusinessException(MessageUtils.message("textin.networkerror"));
         }
         String body = response.body();
+        if (StringUtils.isEmpty(body)) {
+            throw new BusinessException(MessageUtils.message("textin.recognitionfail"));
+        }
         TextInR result = JsonUtils.parseObject(body, TextInR.class);
         if (result == null) {
             throw new BusinessException(MessageUtils.message("textin.recognitionfail"));
         }
-        if (result.getCode() != 200) {
+        if (result.isError()) {
             throw new RuntimeException(result.getMessage());
         }
         return result;