Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

chenyi 2 лет назад
Родитель
Сommit
caa63c6ded
19 измененных файлов с 444 добавлено и 77 удалено
  1. 3 0
      RMS/src/main/java/cn/cslg/report/common/model/vo/PatentVO.java
  2. 126 0
      RMS/src/main/java/cn/cslg/report/common/model/vo/ReportFieldVO.java
  3. 27 0
      RMS/src/main/java/cn/cslg/report/common/model/vo/TaskParams.java
  4. 6 9
      RMS/src/main/java/cn/cslg/report/controller/CompareController.java
  5. 38 2
      RMS/src/main/java/cn/cslg/report/controller/PatentFiledController.java
  6. 16 0
      RMS/src/main/java/cn/cslg/report/controller/TaskController.java
  7. 14 10
      RMS/src/main/java/cn/cslg/report/entity/ReportField.java
  8. 4 7
      RMS/src/main/java/cn/cslg/report/entity/ReportFieldOption.java
  9. 7 6
      RMS/src/main/java/cn/cslg/report/entity/ReportFieldPatentLink.java
  10. 3 3
      RMS/src/main/java/cn/cslg/report/entity/ReportFieldText.java
  11. 8 5
      RMS/src/main/java/cn/cslg/report/entity/ReportFieldTree.java
  12. 2 0
      RMS/src/main/java/cn/cslg/report/mapper/CompareFilesMapper.java
  13. 32 1
      RMS/src/main/java/cn/cslg/report/service/BaseService.java
  14. 54 4
      RMS/src/main/java/cn/cslg/report/service/OutInterfaceService.java
  15. 38 14
      RMS/src/main/java/cn/cslg/report/service/business/CompareFilesService.java
  16. 12 12
      RMS/src/main/java/cn/cslg/report/service/business/ReportFieldOptionService.java
  17. 28 0
      RMS/src/main/java/cn/cslg/report/service/business/ReportFieldService.java
  18. 24 2
      RMS/src/main/java/cn/cslg/report/service/business/TaskService.java
  19. 2 2
      RMS/src/main/resources/application.yml

+ 3 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/PatentVO.java

@@ -24,4 +24,7 @@ public class PatentVO extends BaseVO {
     private Integer endNumber;
     @Schema(description = "专利号列表")
     private List<String> patentNos;
+    private List<String> notInPatentNos;
+    @Schema(description = "状态")
+    private Integer state;
 }

+ 126 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/ReportFieldVO.java

@@ -0,0 +1,126 @@
+package cn.cslg.report.common.model.vo;
+
+import cn.cslg.report.common.model.BaseEntity;
+import cn.cslg.report.common.model.BaseVO;
+import cn.cslg.report.entity.ReportFieldExpand;
+import cn.cslg.report.entity.ReportFieldOption;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 专利信息自定义字段表
+ * </p>
+ *
+ * @author 王岩
+ * @since 2021-12-16
+ */
+@Data
+@TableName("OS_PATENT_FIELD")
+public class ReportFieldVO extends BaseVO {
+
+
+    /**
+     * 自定义字段名称
+     */
+    @Schema(description ="自定义字段名称")
+    @TableField("NAME")
+    private String name;
+
+    /**
+     * 1.是标引 2.是分类
+     */
+    @Schema(description ="1.是标引 2.是分类")
+    @TableField("PTYPE")
+    private Integer ptype;
+
+    /**
+     * 字段类型
+     */
+    @TableField("TYPE")
+    @Schema(description ="字段类型")
+    private Integer type;
+
+    /**
+     * 字段类型
+     */
+    @TableField("REPORT_TYPE")
+    @Schema(description ="字段类型")
+    private Integer reportType;
+
+
+    /**
+     * 状态(正常、关闭)
+     */
+    @TableField("STATUS")
+    @Schema(description ="状态(正常、关闭)")
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    @TableField("REMARK")
+    @Schema(description ="备注")
+    private String remark;
+
+    /**
+     * 创建人账户ID
+     */
+    @Schema(description ="创建人账户ID")
+    @TableField("CID")
+    private Integer createBy;
+
+    /**
+     * 创建时间
+     */
+    @Schema(description ="创建时间")
+    @TableField("CREATE_TIME")
+    private Date createTime;
+
+    /**
+     * 报告Id
+     */
+    @TableField("REPORT_ID")
+    @Schema(description ="专题库")
+    private Integer reportId;
+
+    /**
+     * 拓展类型
+     */
+    @Schema(description ="拓展类型")
+    @TableField(exist = false)
+    public List<ReportFieldExpand> expand;
+
+    /**
+     * 选项
+     */
+    @Schema(description ="选项")
+    @TableField(exist = false)
+    private List<ReportFieldOption> option;
+
+    @TableField(exist = false)
+    private String createName;
+
+    @TableField(exist = false)
+    private Boolean enabled = false;
+
+    @TableField(exist = false)
+    private String text;
+
+    @TableField(exist = false)
+    private List<Integer> selected;
+
+    @TableField(exist = false)
+    private String projectName;
+
+    @Data
+    public static class dataType {
+        private String name;
+        private Object id;
+    }
+}

+ 27 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/TaskParams.java

@@ -0,0 +1,27 @@
+package cn.cslg.report.common.model.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+@Data
+@Accessors(chain = true)
+public class TaskParams implements Serializable {
+    private Integer taskType;
+    private Integer taskId;
+    private String userId;
+    private String path;
+    private String token;
+    private String ids;
+    private Integer projectId;
+    private String selected;
+    private List<Map<Object, Object>> rowList;
+    private String oldName;
+
+    public TaskParams() {
+
+    }
+}

+ 6 - 9
RMS/src/main/java/cn/cslg/report/controller/CompareController.java

@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 import java.io.IOException;
+import java.util.List;
 
 
 @Tag(name = "对比专利管理")
@@ -55,15 +56,11 @@ public class CompareController {
         String res = compareFilesService.getCompareNos(reportId);
         return res;
     }
-    @RequestMapping(value = "/deleteCompareNo", method = RequestMethod.GET)
-    @Operation(summary = "删除单个对比专利")
-    @Parameters(value = {
-            @Parameter(name="reportId",description = "报告ID",required = true),
-            @Parameter(name="patentNo",description = "专利号",required = true)
-    }
-    )
-    public String deleteCompareNo(Integer reportId,String patentNo) throws IOException {
-        String res = compareFilesService.deletePatentNo(reportId,patentNo);
+    @RequestMapping(value = "/deleteCompareNo", method = RequestMethod.POST)
+    @Operation(summary = "删除多个对比专利")
+
+    public String deleteCompareNo(@RequestBody  CompareFilesVO compareFilesVO) throws IOException {
+        String res = compareFilesService.deletePatentNo(compareFilesVO);
         return res;
     }
 }

+ 38 - 2
RMS/src/main/java/cn/cslg/report/controller/PatentFiledController.java

@@ -1,9 +1,14 @@
 package cn.cslg.report.controller;
 
 import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.common.model.vo.ReportFieldVO;
+import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.entity.ReportField;
+import cn.cslg.report.entity.ReportFieldOption;
 import cn.cslg.report.service.business.CompareFilesService;
+import cn.cslg.report.service.business.ReportFieldOptionService;
 import cn.cslg.report.service.business.ReportFieldService;
+import cn.cslg.report.service.business.ReportFieldTreeService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -18,7 +23,8 @@ import java.io.IOException;
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class PatentFiledController {
     private final ReportFieldService reportFieldService;
-
+    private final ReportFieldTreeService reportFieldTreeService;
+    private final ReportFieldOptionService reportFieldOptionService;
     @PostMapping("add")
     @Operation(summary = "新增自定义字段")
     public String add(@RequestBody ReportField reportFieldField) {
@@ -31,11 +37,41 @@ public class PatentFiledController {
         return reportFieldService.edit(reportField);
     }
 
-    @PostMapping("delete")
+    @GetMapping("delete")
     @Operation(summary = "删除自定义字段")
     public String delete(Integer id) {
         return reportFieldService.delete(id);
     }
 
+    @PostMapping("list")
+    @Operation(summary = "自定义字段列表")
+    public String getPageList(@RequestBody ReportFieldVO reportFieldVO) {
+        return reportFieldService.getPageList(reportFieldVO);
+    }
+
+    @GetMapping("option/list")
+    @Operation(summary = "选项列表")
+    public String getList(Integer fieldId,Integer type) {
+        if (type == 6) {
+            return Response.success(reportFieldTreeService.getReportFieldTreeNodeByFieldId(fieldId));
+        } else {
+            return Response.success(reportFieldOptionService.getListByFieldId(fieldId));
+        }
+    }
+    @PostMapping("update")
+    @Operation(summary = "更新选项")
+    public String update(@RequestBody ReportFieldOption reportFieldOption) {
+        return reportFieldOptionService.updateReportFieldOption(reportFieldOption);
+    }
 
+    @GetMapping("option/delete")
+    @Operation(summary = "删除选项")
+    public String delete(Integer type, Integer id) {
+        if (type == 6) {
+            reportFieldService.delete(id);
+        } else {
+            reportFieldOptionService.delete(id);
+        }
+        return Response.success(true);
+    }
 }

+ 16 - 0
RMS/src/main/java/cn/cslg/report/controller/TaskController.java

@@ -5,10 +5,13 @@ import cn.cslg.report.common.core.base.Constants;
 import cn.cslg.report.common.model.BaseVO;
 import cn.cslg.report.common.model.vo.AssignTaskVO;
 import cn.cslg.report.common.model.vo.AuditTaskVO;
+import cn.cslg.report.common.model.vo.TaskParams;
 import cn.cslg.report.common.model.vo.TaskVO;
 import cn.cslg.report.common.utils.DataUtils;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.entity.Task;
+import cn.cslg.report.service.BaseService;
+import cn.cslg.report.service.OutInterfaceService;
 import cn.cslg.report.service.business.TaskService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -18,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.text.ParseException;
@@ -32,6 +36,8 @@ import java.util.regex.Pattern;
 public class TaskController {
 
     private final TaskService taskService;
+    private final BaseService baseService;
+    private final OutInterfaceService outInterfaceService;
 
     @RequestMapping(value = "/deleteTask", method = RequestMethod.POST)
     @Operation(summary = "删除任务")
@@ -87,4 +93,14 @@ public class TaskController {
         return taskService.reTaskPatents(taskVO);
     }
 
+    @RequestMapping(value = "/import", method = RequestMethod.POST)
+    @Operation(summary = "导入")
+    public String importPatent(MultipartFile file) throws ParseException, IOException {
+        //解析file装载数据
+      TaskParams taskParams = baseService.getImportPatentTaskParamsBro(file);
+        //将装载的数据导入数据库
+        outInterfaceService.importPatents(taskParams);
+        return Response.success();
+    }
+
 }

+ 14 - 10
RMS/src/main/java/cn/cslg/report/entity/ReportField.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -27,34 +28,34 @@ public class ReportField extends BaseEntity<ReportField> {
      * 自定义字段名称
      */
     @Schema(description ="自定义字段名称")
-    @TableField("name")
+    @TableField("NAME")
     private String name;
 
     /**
      * 1.是标引 2.是分类
      */
     @Schema(description ="1.是标引 2.是分类")
-    @TableField("ptype")
+    @TableField("PTYPE")
     private Integer ptype;
 
     /**
      * 字段类型
      */
-    @TableField("type")
-    @Schema(description ="字段类型")
+    @TableField("TYPE")
+    @Schema(description ="字段类型",required = true)
     private Integer type;
 
     /**
      * 状态(正常、关闭)
      */
-    @TableField("status")
+    @TableField("STATUS")
     @Schema(description ="状态(正常、关闭)")
     private Integer status;
 
     /**
      * 备注
      */
-    @TableField("remark")
+    @TableField("REMARK")
     @Schema(description ="备注")
     private String remark;
 
@@ -62,23 +63,26 @@ public class ReportField extends BaseEntity<ReportField> {
      * 创建人账户ID
      */
     @Schema(description ="创建人账户ID")
-    @TableField("cid")
+    @TableField("CID")
     private Integer createBy;
 
     /**
      * 创建时间
      */
     @Schema(description ="创建时间")
-    @TableField("createtime")
-    private Integer createTime;
+    @TableField("CREATE_TIME")
+    private Date createTime;
 
     /**
      * 报告Id
      */
-    @TableField("report_id")
+    @TableField("REPORT_ID")
     @Schema(description ="专题库")
     private Integer reportId;
 
+    @TableField("REPORT_TYPE")
+    @Schema(description ="字段类型")
+    private Integer reportType;
     /**
      * 拓展类型
      */

+ 4 - 7
RMS/src/main/java/cn/cslg/report/entity/ReportFieldOption.java

@@ -22,23 +22,20 @@ import java.util.List;
 @Data
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
-@TableName("OS_PATENT_FILED_MULTIPLE")
+@TableName("OS_PATENT_FILED_OPTION")
 public class ReportFieldOption extends BaseEntity<ReportFieldOption> {
 
-    /**
-     * 唯一ID
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
+
     /**
      * 多选选项名称
      */
+    @TableField("NAME")
     private String name;
 
     /**
      * 自定义字段ID
      */
-    @TableField("cid")
+    @TableField("CID")
     private Integer fieldId;
 
     /**

+ 7 - 6
RMS/src/main/java/cn/cslg/report/entity/ReportFieldPatentLink.java

@@ -15,42 +15,43 @@ import lombok.Data;
  * @since 2022-02-22
  */
 @Data
-@TableName("os_patent_field_patent_link")
+@TableName("OS_PATENT_FIELD_PATENT_LINK")
 public class ReportFieldPatentLink extends BaseEntity<ReportFieldPatentLink> {
 
     /**
      * 分类标引id
      */
-    @TableField("fid")
+    @TableField("FID")
     private Integer optionId;
 
     /**
      * 字段ID
      */
-    @TableField("cid")
+    @TableField("CID")
     private Integer fieldId;
 
     /**
      * 标引类型 0-6
      */
+    @TableField("TYPE")
     private Integer type;
 
     /**
      * 专利id
      */
-    @TableField("pid")
+    @TableField("PATENT_ID")
     private Integer patentId;
 
     /**
      * 专题库id
      */
-    @TableField("tid")
+    @TableField("REPORT_ID")
     private Integer projectId;
 
     /**
      * 操作人
      */
-    @TableField("uid")
+    @TableField("USER_ID")
     private Integer createBy;
 
 }

+ 3 - 3
RMS/src/main/java/cn/cslg/report/entity/ReportFieldText.java

@@ -15,19 +15,19 @@ import lombok.Data;
  * @since 2022-02-22
  */
 @Data
-@TableName("os_patent_field_text")
+@TableName("OS_PATENT_FIELD_TEXT")
 public class ReportFieldText extends BaseEntity<ReportFieldText> {
 
     /**
      * 文本内容
      */
-    @TableField("name")
+    @TableField("NAME")
     private String text;
 
     /**
      * 自定义字段ID
      */
-    @TableField("cid")
+    @TableField("CID")
     private Integer fieldId;
 
 }

+ 8 - 5
RMS/src/main/java/cn/cslg/report/entity/ReportFieldTree.java

@@ -14,45 +14,48 @@ import lombok.Data;
  * @since 2021-12-17
  */
 @Data
-@TableName("os_patent_field_tree")
+@TableName("OS_PATENT_FIELD_TREE")
 public class ReportFieldTree extends BaseEntity<ReportFieldTree> {
 
     /**
      * 文本内容
      */
+    @TableField("NAME")
     private String name;
 
     /**
      * 自定义字段ID
      */
-    @TableField("cid")
+    @TableField("CID")
     private Integer fieldId;
 
     /**
      * 父级ID
      */
-    @TableField("sid")
+    @TableField("SID")
     private Integer parentId;
 
     /**
      * 树真正的ID
      */
-    @TableField("zid")
+    @TableField("ZID")
     private Integer treeId;
 
     /**
      * 层级
      */
+    @TableField("LEVEL")
     private Integer level;
 
     /**
      * 节点顺序
      */
-    @TableField("`order`")
+    @TableField("`ORDER`")
     private Integer order;
 
     /**
      * 路径
      */
+    @TableField("PATH")
     private String path;
 }

+ 2 - 0
RMS/src/main/java/cn/cslg/report/mapper/CompareFilesMapper.java

@@ -1,5 +1,6 @@
 package cn.cslg.report.mapper;
 
+import cn.cslg.report.common.model.vo.CompareFilesVO;
 import cn.cslg.report.entity.CompareFiles;
 import cn.cslg.report.entity.Features;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -11,4 +12,5 @@ import java.util.List;
 @Mapper
 public interface CompareFilesMapper extends BaseMapper<CompareFiles> {
     int selectedTotal(@Param("id") int id);
+
 }

+ 32 - 1
RMS/src/main/java/cn/cslg/report/service/BaseService.java

@@ -1,18 +1,27 @@
 package cn.cslg.report.service;
 
 import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.common.model.dto.UploadFileDTO;
 import cn.cslg.report.common.model.vo.LoginVO;
 import cn.cslg.report.common.model.vo.PersonnelVO;
+import cn.cslg.report.common.model.vo.TaskParams;
+import cn.cslg.report.common.utils.FileUtils;
 import cn.cslg.report.common.utils.LogExceptionUtil;
 import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
+import cn.hutool.core.collection.IterUtil;
+import cn.hutool.poi.excel.ExcelUtil;
 import com.alibaba.fastjson.JSONObject;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @Slf4j
@@ -20,7 +29,8 @@ import java.util.Map;
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class BaseService {
     private final OutInterfaceService outInterfaceService;
-
+    private final FileUtils fileUtils;
+    private final LoginUtils loginUtils;
     /**
      * @return 1.生成验证码的base64转码 2.生成的UUID 与Redis里面的验证码KEY值一致
      * @title 获取验证码
@@ -211,5 +221,26 @@ public class BaseService {
         }
     }
 
+    //获得
+    public TaskParams getImportPatentTaskParamsBro(MultipartFile file) {
+        //上传文档
+        UploadFileDTO fileDTO = fileUtils.uploadFile(file);
+        //获得文档保存的路径
+        String path = fileUtils.getPath(fileDTO.getPath());
+        List<List<Object>> rowList = new ArrayList<>();
+        //解析excel文件并保存进map里
+        List<Map<Object, Object>> mapList = new ArrayList<>();
+        ExcelUtil.readBySax(path, -1, (sheetIndex, rowIndex, row) -> rowList.add(row));
+        for (int i = 1; i < rowList.size(); i++) {
+            mapList.add(IterUtil.toMap(rowList.get(0), rowList.get(i)));
+        }
+        TaskParams taskParams = new TaskParams();
+        taskParams.setPath(path);
+        taskParams.setTaskType(1);
+        taskParams.setRowList(mapList);
+        taskParams.setUserId(String.valueOf(loginUtils.getId()));
+        taskParams.setOldName(file.getOriginalFilename());
+        return taskParams;
+    }
 
 }

+ 54 - 4
RMS/src/main/java/cn/cslg/report/service/OutInterfaceService.java

@@ -4,6 +4,7 @@ import cn.cslg.report.common.core.base.Constants;
 import cn.cslg.report.common.model.vo.LoginVO;
 import cn.cslg.report.common.model.vo.PatentVO;
 import cn.cslg.report.common.model.vo.PersonnelVO;
+import cn.cslg.report.common.model.vo.TaskParams;
 import cn.cslg.report.common.utils.CacheUtils;
 import cn.cslg.report.common.utils.JsonUtils;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
@@ -14,18 +15,19 @@ import cn.cslg.report.service.business.ReportService;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.google.gson.Gson;
+import io.lettuce.core.event.EventBus;
 import io.swagger.v3.oas.models.security.SecurityScheme;
 import lombok.RequiredArgsConstructor;
-import okhttp3.MediaType;
-import okhttp3.OkHttpClient;
-import okhttp3.Request;
-import okhttp3.RequestBody;
+import lombok.val;
+import okhttp3.*;
+import okio.ByteString;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -328,6 +330,7 @@ if(personnelVO.getName()==null)
         map.put("size", patentVO.getSize());
         map.put("current", patentVO.getCurrent());
         map.put("patentNos",patentVO.getPatentNos());
+        map.put("notInPatentNos",patentVO.getNotInPatentNos());
         JSONObject json = new JSONObject(map);
         RequestBody requestBody = RequestBody.create(JSON, String.valueOf(json));
         OkHttpClient okHttpClient = new OkHttpClient();
@@ -360,4 +363,51 @@ if(personnelVO.getName()==null)
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
+
+    public String importPatents(TaskParams taskParams) throws IOException {
+        OkHttpClient httpClient = new OkHttpClient.Builder()
+                .pingInterval(40, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
+                .build();
+            String param = new Gson().toJson(taskParams);
+        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        Request request = new Request.Builder()
+                .url(PASUrl + "/api/v2/project/import/sysPatent")
+                .get()
+                .build();
+
+        httpClient.newWebSocket(request, new WebSocketListener() {
+            @Override
+            public void onOpen(WebSocket webSocket, Response response) {
+                super.onOpen(webSocket, response);
+//                EventBus.getDefault().post(taskParams);
+            }
+
+            @Override
+            public void onMessage(WebSocket webSocket, String text) {
+                super.onMessage(webSocket, text);
+                //收到消息...(一般是这里处理json)
+            }
+
+            @Override
+            public void onMessage(WebSocket webSocket, ByteString bytes) {
+                super.onMessage(webSocket, bytes);
+                //收到消息...(一般很少这种消息)
+            }
+
+            @Override
+            public void onClosed(WebSocket webSocket, int code, String reason) {
+                super.onClosed(webSocket, code, reason);
+                //连接关闭...
+            }
+
+            @Override
+            public void onFailure(WebSocket webSocket, Throwable throwable, Response response) {
+                super.onFailure(webSocket, throwable, response);
+                //连接失败...
+            }
+        });
+
+
+        return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
+    }
 }

+ 38 - 14
RMS/src/main/java/cn/cslg/report/service/business/CompareFilesService.java

@@ -74,10 +74,19 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
     public String getCompareFile(PatentVO patentVO) throws IOException {
         LambdaQueryWrapper<CompareFiles> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(CompareFiles::getReportId, patentVO.getReportId());
+
         List<CompareFiles> compareFiles = this.list(queryWrapper);
         List<String> patentNos = compareFiles.stream().map(CompareFiles::getPatentNo).collect(Collectors.toList());
-        patentVO.setPatentNos(patentNos);
-        String res = outInterfaceService.getPatentFromPAS(patentVO, 0);
+        String res;
+        if (patentVO.getState() == 1) {
+            patentVO.setPatentNos(patentNos);
+            res = outInterfaceService.getPatentFromPAS(patentVO, 1);
+
+        } else {
+            patentVO.setNotInPatentNos(patentNos);
+            res = outInterfaceService.getPatentFromPAS(patentVO, 0);
+
+        }
         JSONObject jsonObject = JSONObject.parseObject(res);
         JSONObject resData = JSONObject.parseObject(jsonObject.getString("data"));
         List<JSONObject> list = JSONArray.parseArray(resData.getString("records"), JSONObject.class);
@@ -98,12 +107,12 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
 
     //获得已经确定的对比专利详情
     public String getSureCompareFile(PatentVO patentVO) throws IOException {
-        LambdaQueryWrapper<CompareFiles> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(CompareFiles::getReportId,patentVO.getReportId());
-        List<CompareFiles> compareFiles =this.list(queryWrapper);
-        List<String> patentNos =compareFiles.stream().map(CompareFiles::getPatentNo).collect(Collectors.toList());
+        LambdaQueryWrapper<CompareFiles> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CompareFiles::getReportId, patentVO.getReportId());
+        List<CompareFiles> compareFiles = this.list(queryWrapper);
+        List<String> patentNos = compareFiles.stream().map(CompareFiles::getPatentNo).collect(Collectors.toList());
         patentVO.setPatentNos(patentNos);
-        String res =outInterfaceService.getPatentFromPAS(patentVO,1);
+        String res = outInterfaceService.getPatentFromPAS(patentVO, 1);
         return res;
     }
 
@@ -116,12 +125,27 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
     }
 
     //删除单个对比专利
-    public String deletePatentNo(Integer reportId,String pantentNo) throws IOException {
-        LambdaQueryWrapper<CompareFiles> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(CompareFiles::getReportId,reportId)
-                    .eq(CompareFiles::getPatentNo,pantentNo);
-       this.remove(queryWrapper);
-
-        return  Response.success();
+    public String deletePatentNo(CompareFilesVO compareFilesVO) throws IOException {
+        List<String> patentNos = new ArrayList<>();
+        //是否根据范围删除
+        if (compareFilesVO.getStartNumber() != null && compareFilesVO.getEndNumber() != null && compareFilesVO.getEndNumber() > compareFilesVO.getStartNumber()) {
+            LambdaQueryWrapper<CompareFiles> wrapper = new LambdaQueryWrapper<>();
+            wrapper.select(CompareFiles::getPatentNo)
+                    .eq(CompareFiles::getReportId, compareFilesVO.getReportId())
+                    .last("limit" + (compareFilesVO.getStartNumber() - 1) + "," + compareFilesVO.getEndNumber());
+            patentNos = this.list(wrapper).stream().map(CompareFiles::getPatentNo).collect(Collectors.toList());
+        }
+        if (compareFilesVO.getIsDelete() != null) {
+            patentNos.removeAll(compareFilesVO.getIsDelete());
+        }
+        if (compareFilesVO.getIsAdd() != null) {
+            patentNos.addAll(compareFilesVO.getIsAdd());
+        }
+        if(patentNos.size()!=0) {
+            LambdaQueryWrapper<CompareFiles> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.in(CompareFiles::getPatentNo, patentNos);
+            this.remove(lambdaQueryWrapper);
+        }
+        return Response.success();
     }
 }

+ 12 - 12
RMS/src/main/java/cn/cslg/report/service/business/ReportFieldOptionService.java

@@ -108,16 +108,16 @@ public class ReportFieldOptionService extends ServiceImpl<ReportFieldOptionMappe
         }
     }
 
-//    public String updateReportFieldOption(ReportFieldOption reportFieldOption) {
-//        if (reportFieldOption.getType().equals(6)) {
-//            return projectFieldTreeService.updateByProjectFieldTreeNode(reportFieldOption);
-//        } else {
-//            ReportFieldOption temp = this.getReportFieldOptionByNameAndFieldId(reportFieldOption.getName(), reportFieldOption.getFieldId());
-//            if (temp != null && !temp.getId().equals(reportFieldOption.getId())) {
-//                return Response.error("选项名称已存在");
-//            }
-//            reportFieldOption.insertOrUpdate();
-//            return Response.success(reportFieldOption.getId());
-//        }
-//    }
+    public String updateReportFieldOption(ReportFieldOption reportFieldOption) {
+        if (reportFieldOption.getType().equals(6)) {
+            return reportFieldTreeService.updateByReportFieldTreeNode(reportFieldOption);
+        } else {
+            ReportFieldOption temp = this.getReportFieldOptionByNameAndFieldId(reportFieldOption.getName(), reportFieldOption.getFieldId());
+            if (temp != null && !temp.getId().equals(reportFieldOption.getId())) {
+                return Response.error("选项名称已存在");
+            }
+            reportFieldOption.insertOrUpdate();
+            return Response.success(reportFieldOption.getId());
+        }
+    }
 }

+ 28 - 0
RMS/src/main/java/cn/cslg/report/service/business/ReportFieldService.java

@@ -1,8 +1,11 @@
 package cn.cslg.report.service.business;
 
+import cn.cslg.report.common.model.vo.ReportFieldVO;
+import cn.cslg.report.common.utils.DataUtils;
 import cn.cslg.report.common.utils.DateUtils;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
+import cn.cslg.report.entity.Report;
 import cn.cslg.report.entity.ReportField;
 import cn.cslg.report.mapper.ReportFieldMapper;
 import cn.hutool.core.lang.tree.Tree;
@@ -55,6 +58,7 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
         reportField.updateById();
         return Response.success(true);
     }
+    //删除自定义字段
   @Transactional
   public String delete(Integer id) {
       this.removeById(id);
@@ -65,6 +69,30 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
         return Response.success(true);
    }
 
+   //获得自定义字段列表
+  public String getPageList(ReportFieldVO reportFieldVO){
+      LambdaQueryWrapper<ReportField> queryWrapper = new LambdaQueryWrapper<>();
+      if (reportFieldVO.getName() != null) {
+          queryWrapper.like(ReportField::getName, reportFieldVO.getName());
+      }
+      if(reportFieldVO.getReportType()!=null){
+          queryWrapper.like(ReportField::getReportType, reportFieldVO.getReportType());
+      }
+      queryWrapper.orderByDesc(ReportField::getId);
+      if (reportFieldVO.getSize() != null && reportFieldVO.getSize() != null) {
+          List<ReportField> reportFields = this.page(new Page<>(reportFieldVO.getCurrent(), reportFieldVO.getSize()), queryWrapper).getRecords();
+          long count = this.count(queryWrapper);
+          return Response.success(reportFields, DataUtils.setPageColumn(reportFieldVO.getSize(), reportFieldVO.getCurrent(), Math.toIntExact(count)));
+      } else {
+          List<ReportField> reportFields = this.list(queryWrapper);
+          return Response.success(reportFields);
+      }
+
+  }
+
+
+
+
 
     public ReportField getProjectFieldByName(String name, Integer projectId) {
         LambdaQueryWrapper<ReportField> queryWrapper = new LambdaQueryWrapper<>();

+ 24 - 2
RMS/src/main/java/cn/cslg/report/service/business/TaskService.java

@@ -177,16 +177,29 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
     //添加分配任务
     @Transactional(rollbackFor = Exception.class)
     public String addAssTask(AssignTaskVO assignTaskVO) throws ParseException, IOException {
+
+
+
         //遍历assignTaskVO的分配人员信息assigns,在任务表里插入分配任务
-        List<Task> tasks = new ArrayList<>();
         List<String> selectedNos = new ArrayList<>();
+        //记录所有人的id
+        List<Integer> personIds =new ArrayList<>();
+
         //记录总共专利号数量
         int num = 0;
         List<AssignTaskVO.assignPatents> personPatents = assignTaskVO.getAssigns();
         for (int i = 0; i < personPatents.size(); i++) {
             selectedNos.addAll(personPatents.get(i).getPatentNos());
             num += personPatents.get(i).getAssignCount();
+            personIds.add(personPatents.get(i).getPersonId());
         }
+        String resBody = outInterfaceService.getPersonnelByIdsFromPCS(personIds);
+        JSONObject jsonObject = JSONObject.parseObject(resBody);
+        //解析jason获得标的专利的权要
+        List<Personnel> personnels = JSON.parseArray(jsonObject.getString("data"), Personnel.class);
+        //获得登录人的信息
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
+
         num += selectedNos.size();
         // 根据报告Id获得待分配的专利号
         LambdaQueryWrapper<CompareFiles> wrapper = new LambdaQueryWrapper<>();
@@ -205,6 +218,8 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         int flag = 0;
         //遍历assignTaskVO的分配人员信息assigns,装配人员所被分配的专利信息
         for (int i = 0; i < personPatents.size(); i++) {
+            Integer handlePersonId = personIds.get(i);
+            Personnel   personnel = personnels.stream().filter(item -> item.getId().equals(handlePersonId)).findFirst().orElse(new Personnel());
             Task task = new Task();
             task.setTaskName(assignTaskVO.getTaskName());
             task.setReportId(assignTaskVO.getReportId());
@@ -213,6 +228,10 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
             task.setProgress(0.0);
             task.setEndTime(assignTaskVO.getEndTime());
             task.setRemark(assignTaskVO.getRemark());
+            task.setHandlePersonId(handlePersonId);
+            task.setHandlePersonName(personnel.getPersonnelName());
+            task.setCreateID(personnelVO.getId());
+            task.setCreateName(personnelVO.getName());
             //task.setCreateID();
             task.insert();
             //根据数量从分配的专利号列表中截取该数量的专利号,加上分配信息的专利号进行装配
@@ -241,12 +260,15 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         //根据任务Id和类型获得任务的清单
         LambdaQueryWrapper<AssoTaskPersonel> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(AssoTaskPersonel::getTaskId, taskVo.getTaskId());
+        queryWrapper.eq(AssoTaskPersonel::getState,taskVo.getTaskStatus());
         List<AssoTaskPersonel> assoTaskPersonels = assoTaskPersonelService.list(queryWrapper);
         List<String> PatentNos =assoTaskPersonels.stream().filter(item->item.getState()==taskVo.getTaskStatus()).map(AssoTaskPersonel::getPatentNo).collect(Collectors.toList());
         //根据清单获得获得专利详情
         PatentVO patentVO =new PatentVO();
         patentVO.setPatentNos(PatentNos);
+        patentVO.setSize(taskVo.getSize());
+        patentVO.setCurrent(taskVo.getCurrent());
         String res = outInterfaceService.getPatentFromPAS(patentVO, 1);
-        return Response.success(res);
+        return res;
     }
 }

+ 2 - 2
RMS/src/main/resources/application.yml

@@ -67,6 +67,6 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     cache-enabled: false
   mapper-locations: classpath:mapper/*.xml
-PCSUrl: http://192.168.1.17:8880
-PASUrl: http://192.168.1.17:8879
+PCSUrl: http://192.168.1.4:8880
+PASUrl: http://192.168.1.4:8879