Bläddra i källkod

5.25 整理接口时添加注释与优化

chendayu 2 år sedan
förälder
incheckning
51e8f0790a

+ 34 - 1
PAS/src/main/java/cn/cslg/pas/common/model/vo/ProjectImportPatentVO.java

@@ -6,25 +6,58 @@ import java.util.List;
 
 @Data
 public class ProjectImportPatentVO {
+    /**
+     * 专题库id
+     */
     private Integer projectId;
+    /**
+     * 数据来源(1.智慧芽 2.合享 3.Patentics)
+     */
+    private String sourceId;
+    /**
+     * 自定义字段ids
+     */
     private List<Field> fieldList;
+    /**
+     * 文件夹ids
+     */
     private List<Integer> folderIds;
-    private String sourceId;
 
     @Data
     public static class Field {
+        /**
+         * 自定义字段id
+         */
         private Integer fieldId;
+        /**
+         * 自定义字段类型(6为树)
+         */
         private Integer type;
+        /**
+         * 选项id
+         */
         private Integer optionId;
         private String text;
     }
 
     @Data
     public static class Folder {
+        /**
+         * 文件夹id
+         */
         private Integer id;
+        /**
+         * 上级文件夹id
+         */
         private Integer parentId;
+        /**
+         * 文件夹名称
+         */
         private String name;
         private Boolean selected;
+        /**
+         * 子级文件夹们
+         */
         private List<Folder> children;
     }
 }

+ 25 - 1
PAS/src/main/java/cn/cslg/pas/common/model/vo/TaskParams.java

@@ -1,6 +1,5 @@
 package cn.cslg.pas.common.model.vo;
 
-import cn.hutool.poi.excel.ExcelReader;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
@@ -11,16 +10,41 @@ import java.util.Map;
 @Data
 @Accessors(chain = true)
 public class TaskParams implements Serializable {
+    /**
+     * 任务类型(1.上传,2导出)
+     */
     private Integer taskType;
+    /**
+     * 任务id
+     */
     private Integer taskId;
+    /**
+     * 创建人id
+     */
     private String userId;
+    /**
+     * 文件路径
+     */
     private String path;
     private String token;
     private String ids;
+    /**
+     * 专题库id
+     */
     private Integer projectId;
     private String selected;
+    /**
+     * Excel中的全部专利的数据(每一个元素即一个专利的数据)
+     * key:表头  value:表头对应的专利内容
+     */
     private List<Map<Object, Object>> rowList;
+    /**
+     * 文件原始名称
+     */
     private String oldName;
+    /**
+     * 专利总数量
+     */
     private Integer total;
     private Integer index;
     private Integer productId;

+ 3 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/UploadParamsVO.java

@@ -17,6 +17,9 @@ public class UploadParamsVO {
      * 专利
      */
     private Patent patent;
+    /**
+     * 法律状态
+     */
     private String patentSimpleStatus;
 
     /**

+ 3 - 1
PAS/src/main/java/cn/cslg/pas/common/model/vo/UploadSettingVO.java

@@ -6,6 +6,8 @@ import lombok.experimental.Accessors;
 import java.util.List;
 
 /**
+ * uploadSetting.json数据源配置文件实体类
+ *
  * @author 沈永艺
  * @date 2022/7/1
  * @description 用于存储从配置文件(Json类型)中解析出来的配置参数
@@ -15,7 +17,7 @@ import java.util.List;
 @Accessors(chain = true)
 public class UploadSettingVO {
     /**
-     * 数据来源 ID
+     * 数据来源id(1.智慧芽 2.合享 3.Patentics)
      */
     private String sourceId;
 

+ 3 - 5
PAS/src/main/java/cn/cslg/pas/common/utils/ExcelUtils.java

@@ -1,8 +1,5 @@
 package cn.cslg.pas.common.utils;
 
-import cn.cslg.pas.common.utils.DateUtils;
-import cn.cslg.pas.common.utils.FileUtils;
-import cn.cslg.pas.common.utils.SpringUtils;
 import cn.hutool.core.util.IdUtil;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ooxml.POIXMLDocumentPart;
@@ -26,6 +23,7 @@ public class ExcelUtils {
         if (!filePath.endsWith(".xls") && !filePath.endsWith(".xlsx") && !filePath.endsWith(".XLS") && !filePath.endsWith(".XLSX")) {
             System.out.println("文件不是excel类型");
         }
+
         FileInputStream fis = null;
         Workbook wookbook = null;
         Sheet sheet = null;
@@ -70,7 +68,7 @@ public class ExcelUtils {
      * @throws IOException
      */
     public static Map<String, PictureData> getPictures1(HSSFSheet sheet) throws IOException {
-        Map<String, PictureData> map = new HashMap<String, PictureData>();
+        Map<String, PictureData> map = new HashMap();
         if (sheet.getDrawingPatriarch() != null) {
             List<HSSFShape> list = sheet.getDrawingPatriarch().getChildren();
             for (HSSFShape shape : list) {
@@ -94,7 +92,7 @@ public class ExcelUtils {
      * @throws IOException
      */
     public static Map<String, PictureData> getPictures2(XSSFSheet sheet) throws IOException {
-        Map<String, PictureData> map = new HashMap<String, PictureData>();
+        Map<String, PictureData> map = new HashMap();
         List<POIXMLDocumentPart> list = sheet.getRelations();
         for (POIXMLDocumentPart part : list) {
             if (part instanceof XSSFDrawing) {

+ 5 - 5
PAS/src/main/java/cn/cslg/pas/common/utils/UploadPatentBatchUtil.java

@@ -32,14 +32,14 @@ public class UploadPatentBatchUtil {
      * @description 通过与前段传入参数中的数据源ID进行比对从而得到对应数据源的配置项目
      */
     public static List<UploadSettingVO.Column> parsingConfigurationFiles(ProjectImportPatentVO projectImportPatentVO, String getSettingJson) {
-        //将 Json 转换为 对象数组
-        List<UploadSettingVO> test = JsonUtils.jsonToList(getSettingJson, UploadSettingVO.class);
+        //将uploadSetting.json数据源配置文件的json字符串转换为UploadSettingVO对象(即实体类)集合
+        List<UploadSettingVO> uploadSettingVOs = JsonUtils.jsonToList(getSettingJson, UploadSettingVO.class);
         //创建一个存放单一数据源的对象 这个对象存放的是 我们需要使用哪一个数据源的配置数据 所以只存一个 正常在Json文件里面会有多个数据源 也就是多条数据
         List<UploadSettingVO.Column> jsonData = new ArrayList<>();
-        //开始将前端传入的数据源参数与 Json 中解析出来的 sourceId(数据来源ID) 进行比对 并将比对中的那一条数据放入上方定义的 jsonData 中 用于后续使用
-        for (int i = 0; i < Objects.requireNonNull(test).size(); i++) {
+        //遍历uploadSettingVOs,
+        for (int i = 0; i < Objects.requireNonNull(uploadSettingVOs).size(); i++) {
             //提取一个常量
-            UploadSettingVO constant = Objects.requireNonNull(test).get(i);
+            UploadSettingVO constant = Objects.requireNonNull(uploadSettingVOs).get(i);
             //判断 如果说 Json 解析出来的 List<T> 中的 sourceId 和传入参数的 sourceId 匹配成功 则开始装配数据
             if (constant.getSourceId().equals(projectImportPatentVO.getSourceId())) {
                 //填充数据

+ 4 - 1
PAS/src/main/java/cn/cslg/pas/domain/ProjectField.java

@@ -35,7 +35,7 @@ public class ProjectField extends BaseEntity<ProjectField> {
     private Integer type;
 
     /**
-     * 状态(正常、关闭)
+     * 状态(1正常、0关闭)
      */
     private Integer status;
 
@@ -88,6 +88,9 @@ public class ProjectField extends BaseEntity<ProjectField> {
     @TableField(exist = false)
     private String projectName;
 
+    /**
+     * 数据来源对象
+     */
     @Data
     public static class dataType {
         private String name;

+ 2 - 4
PAS/src/main/java/cn/cslg/pas/domain/Task.java

@@ -59,11 +59,9 @@ public class Task extends BaseEntity<Task> {
     private Integer endTime;
 
     /**
-     * 0.队列中
-     * 1.进行中
-     * 2.成功
-     * 3.失败
+     * 0.队列中 1.进行中 2.成功 3.失败
      */
+    @TableField("status")
     private Integer status;
 
     /**

+ 22 - 2
PAS/src/main/java/cn/cslg/pas/service/ProjectFieldService.java

@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -33,6 +34,7 @@ import java.util.stream.Collectors;
  * @author 王岩
  * @since 2021-12-16
  */
+@Slf4j
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, ProjectField> {
@@ -226,28 +228,43 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
     }
 
     public Map<String, Object> getCustomField(Integer projectId) {
+        //创建map用于装载:1.自定义字段(标引/非树类型字段、分类/树类型字段)  2.文件夹  3.数据来源,和返回结果
         Map<String, Object> result = new HashMap<>();
+
+        //创建非树类型字段集合
         List<ProjectField> indexs = new ArrayList<>();
+        //创建树类型字段集合
         List<Object> classifys = new ArrayList<>();
+
+        //1、自定义字段(标引和分类):根据专题库projectId查询自定义字段表“os_patent_field”列表
         List<ProjectField> fieldList = this.getProjectFieldByProjectId(projectId);
+        //根据自定义字段ids(自定义字段列表fieldList过滤出ids集合)查询自定义字段多选关联表“os_patent_field_multiple”列表
         List<ProjectFieldOption> optionList = projectFieldOptionService.getFieldOptionList(fieldList.stream().map(ProjectField::getId).collect(Collectors.toList()));
+        //遍历自定义字段列表fieldList,给每个自定义字段装载选项 ↓
         fieldList.forEach(item -> {
+            //标引(非树类型字段) -> 装载当前自定义字段id对应的选项(遍历自定义字段多选关联表列表optionList,根据多选的自定义字段id与当前遍历的自定义字段id相同过滤出选项)
             if (item.getType() != 6) {
                 item.setOption(optionList.stream().filter(option -> option.getFieldId().equals(item.getId())).collect(Collectors.toList()));
                 indexs.add(item);
+                //分类(树类型字段) -> 装载当前自定义字段id对应的树(使用装载树方法)
             } else {
                 item.setOption(JsonUtils.jsonToList(JsonUtils.objectToJson(projectFieldTreeService.getProjectFieldTreeNodeByFieldId(item.getId())), ProjectFieldOption.class));
                 classifys.add(item);
             }
         });
+
+        //2、文件夹:根据专题库projectId查询文件夹主表“os_portfolio”列表
         List<ProjectFolder> folderList = projectFolderService.getProjectFolderOptionByProjectId(projectId);
         result.put("index", indexs);
         result.put("classify", classifys);
         result.put("folder", projectFolderService.getProjectFolderTreeNode(projectId, folderList));
 
-        //数据源名称
+        //3、数据来源(analysisJsonFile()方法 -> 拿到uploadSetting.json文件并按行读取文件字符流,返回整个文件字符串)
         String getSettingJson = fileUtils.analysisJsonFile();
+        //将文件字符串转换为数据来源对象UploadSettingVO集合
         List<UploadSettingVO> settingJsonList = JsonUtils.jsonToList(getSettingJson, UploadSettingVO.class);
+
+        //手动创建数据来源对象集合dataTypesLst,装载数据
         List<ProjectField.dataType> dataTypesLst = new ArrayList<>();
         Objects.requireNonNull(settingJsonList).forEach(item -> {
             ProjectField.dataType dataType = new ProjectField.dataType();
@@ -257,6 +274,7 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
         });
         result.put("dataType", dataTypesLst);
 
+        //返回结果(包含1.自定义字段(标引/非树类型字段、分类/树类型字段)  2.文件夹  3.数据来源)
         return result;
     }
 
@@ -315,8 +333,9 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
         }
         return projectField;
     }
+
     public IPage<ProjectField> getPageList(ProjectFieldVO params) throws IOException {
-        PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
         //分页查询列表
         params.setTenantId(personnelVO.getTenantId());
         IPage<ProjectField> pageList = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
@@ -342,6 +361,7 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
 
         return pageList;
     }
+
     public ProjectField getByProjectIdAndNameAndType(String name, Integer type, Integer projectId) {
         LambdaQueryWrapper<ProjectField> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ProjectField::getName, name);

+ 11 - 0
PAS/src/main/java/cn/cslg/pas/service/ProjectService.java

@@ -646,14 +646,25 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
     }
 
     public TaskParams getImportPatentTaskParams(MultipartFile file, Integer projectId) {
+        //将文件上传至本地并返回文件对象
         UploadFileDTO fileDTO = fileUtils.uploadFile(file);
+        //获得文件路径
         String path = fileUtils.getPath(fileDTO.getPath());
+
+        //集合rowList,准备装载Excel中的全部专利的数据(Excel文件总行数即为集合长度,集合每个元素就是每一行数据,集合第一个元素是表头行数据,其余是每行专利的数据)
         List<List<Object>> rowList = new ArrayList<>();
+        //Excel中的全部专利的数据(key:表头即专利的栏位名称如著录、权利要求等  value:表头即专利的栏位名称对应的数据)
         List<Map<Object, Object>> mapList = new ArrayList<>();
+
+        //使用框架(excel工具类)解析读取excel文件,装载数据到rowList
         ExcelUtil.readBySax(path, -1, (sheetIndex, rowIndex, row) -> rowList.add(row));
+
+        //集合mapList装载数据()
         for (int i = 1; i < rowList.size(); i++) {
             mapList.add(IterUtil.toMap(rowList.get(0), rowList.get(i)));
         }
+
+        //新增任务(专利导入导出任务表)
         Integer taskId = taskService.add(fileDTO, projectId, null, rowList.size() - 1, 1, 0, file.getOriginalFilename());
         TaskParams taskParams = new TaskParams();
         taskParams.setTaskId(taskId);

+ 16 - 0
PAS/src/main/java/cn/cslg/pas/service/TaskService.java

@@ -57,23 +57,39 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
     }
 
     public Integer add(UploadFileDTO fileDTO, Integer projectId, Integer productId, Integer total, Integer type, Integer fieldNum, String oldName) {
+        //创建任务表实体类,准备装载数据 ↓
         Task task = new Task();
+
+        //任务开始时间
         task.setStartTime(DateUtils.getDateTime());
+        //任务状态(0.队列中 1.进行中 2.成功 3.失败)
         task.setStatus(0);
         if (projectId != null) {
+            //专题库id
             task.setProjectId(projectId);
         }
         if (productId != null) {
+            //产品id
             task.setProductId(productId);
         }
+        //文件名称
         task.setFileName(fileDTO.getFileName());
+        //文件路径
         task.setUrl(fileDTO.getPath());
+        //文件的专利总数量
         task.setTotal(total);
+        //文件大小
         task.setFileSize(fileDTO.getFileSize());
+        //任务类型 (1.上传 2导出)
         task.setType(type);
+        //导入导出字段数量
         task.setFieldNum(fieldNum);
+        //创建人id
         task.setCreateBy(loginUtils.getId());
+        //文件原始名称
         task.setOldName(oldName);
+
+        //数据入任务表
         task.insert();
         return task.getId();
     }

+ 5 - 3
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -58,15 +58,17 @@ public class UploadPatentBatchService {
 
     @Async("singleThreadAsyncTaskExecutor")
     public void uploadPatentBatch(TaskParams params, ProjectImportPatentVO projectImportPatentVO) {
+        //获得专利总数量
         Integer total = params.getRowList().size();
         try {
-            //先解析Json文件 获得配置文件的Json串
+            //先解析Json文件,获得配置文件的Json串 (拿到存放在服务器的专利数据来源配置文件uploadSetting.json并按行读取文件字符流,返回整个文件字符串)
             String getSettingJson = fileUtils.analysisJsonFile();
-            //查找需求数据源的对应配置
+            //装载数据源的对应配置(如前台传来的数据来源id是1,即“智慧芽”,那么jsonData装载的就是智慧芽的数据源配置)
             List<UploadSettingVO.Column> jsonData = UploadPatentBatchUtil.parsingConfigurationFiles(projectImportPatentVO, getSettingJson);
 
+            //装载所有专利的摘要附图(key:下标即专利行数  value:摘要附图图片数据)
             Map<String, PictureData> pictureDataMap = ExcelUtils.getDataFromExcel(params.getPath());
-            //将数据进行装配并进行数据库操作
+            //遍历所有专利(专利总数量),将数据进行装配并进行数据库操作
             for (int i = 0; i < params.getRowList().size(); i++) {
                 //获取每一行的数据
                 Map<Object, Object> row = params.getRowList().get(i);