Browse Source

Merge remote-tracking branch 'origin/master'

chenyi 2 years ago
parent
commit
904355339e

+ 1 - 1
RMS/src/main/java/cn/cslg/report/controller/BaseController.java

@@ -129,7 +129,7 @@ public class BaseController {
     }
 
     @GetMapping("/getPatentNos")
-    @Operation(summary = "根据专利号获得专利")
+    @Operation(summary = "根据专题库Id获得专利")
     @Parameters(value = {
             @Parameter(name = "projectId",description = "专题库Id",required = true),
 

+ 5 - 13
RMS/src/main/java/cn/cslg/report/controller/CompareRecordsController.java

@@ -26,7 +26,7 @@ public class CompareRecordsController {
     @PostMapping(value = "/addCompareRecords")
     @Operation(summary = "增加对比记录数据")
     public String addCompareRecords(@RequestBody CompareRecords compareRecords)throws IOException{
-       compareRecords.setPersonId(loginUtils.getId());
+//       compareRecords.setPersonId(loginUtils.getId());
         return compareRecordsService.addCompareRecord(compareRecords);
     }
     @RequestMapping(value = "/deleCompareRecords", method = RequestMethod.GET)
@@ -42,20 +42,12 @@ public class CompareRecordsController {
         return compareRecordsService.updateCompareRecords(compareRecord);
 
     }
-    @GetMapping(value = "/selectCompareRecord1")
-    @Operation(summary ="查询对比记录1")
-    public String getCompareRecords(int reportId,String  patentNo)throws IOException{
-        int i=loginUtils.getId();
-        return compareRecordsService.getCompareRecords( reportId, patentNo,i);
+    @PostMapping(value = "/selectCompareRecord")
+    @Operation(summary ="查询对比记录")
+    public String getCompareRecords(@RequestBody CompareRecords compareRecord)throws IOException{
 
+      return compareRecordsService.getCompareRecords(compareRecord.getReportId(), compareRecord.getPatentNo());
     }
-    @GetMapping(value = "selectCompareRecord2")
-    @Operation(summary ="查询对比记录2")
-    public String postCompareRecords(int reportId)throws IOException{
-        int i=loginUtils.getId();
-        return compareRecordsService.getCompareRecords(reportId,i);
-    }
-
 
     }
 

+ 21 - 21
RMS/src/main/java/cn/cslg/report/entity/CompareRecords.java

@@ -1,8 +1,10 @@
 package cn.cslg.report.entity;
 
 import cn.cslg.report.common.model.BaseEntity;
+import cn.cslg.report.entity.asso.AssoRecordsFeature;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -20,64 +22,62 @@ public class CompareRecords extends BaseEntity<CompareRecords> {
     /**
      * 专利号
      */
+    @Schema(description ="专利号")
     @TableField(value = "PATENT_NO")
     private String patentNo;
 
     /**
      * 位置
      */
+    @Schema(description = "位置")
     @TableField(value = "POSITION")
     private String position;
     /*
     栏位
      */
+
+    @Schema(description = "栏位")
     @TableField(value = "FIELDS")
     private String fields;
     /**
      * 内容
      */
+
+    @Schema(description = "内容")
     @TableField(value = "CONTENT")
     private String content;
 
-    /**
-     * 特征ID
-     */
-    @TableField(value = "FEATURES_ID")
-    private String featuresId;
-    @TableField(exist = false)
-    private List<Integer> featuresIdList;
 
-    /**
-     * 特征
-     */
-//    @TableField(value = "FEATURES")
-//    private String features;
-//    @TableField(exist = false)
-//    private List<String> featuresList;
     @TableField(exist = false)
-    private List<CY> CY;
+    private List<Integer> featuresIdList;
 
-    @Data
-    public static class CY {
-        private int id;
-        private String rightName;
-        private String content;
 
-    }
 
 
+    @TableField(exist = false)
+    private List<Features> features;
 
 
     /**
      * 对比人ID
      */
+    @Schema(description = "对比人ID")
     @TableField(value = "PERSON_ID")
     private int personId;
 
     /**
      * 报告ID
      */
+    @Schema(description = "报告ID")
     @TableField(value = "REPORT_ID")
     private int reportId;
 
+    /**
+     * 结果
+     */
+    @Schema(description = "0公开1部分公开")
+    @TableField(exist = false)
+    private List<AssoRecordsFeature> assoRecordsFeatures;
+
+
 }

+ 33 - 0
RMS/src/main/java/cn/cslg/report/entity/asso/AssoRecordsFeature.java

@@ -0,0 +1,33 @@
+package cn.cslg.report.entity.asso;
+
+import cn.cslg.report.common.model.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 对比方案与对比记录关联表
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+@TableName(value = "ASSO_RECORDS_FEATURES")
+public class AssoRecordsFeature extends BaseEntity<AssoRecordsFeature> {
+    @Schema(description = "记录Id")
+    @TableField(value = "RECORDS_ID")
+    private Integer recordsId;
+
+
+    @Schema(description = "特征Id",required = true)
+    @TableField(value = "FEATURE_ID")
+    private Integer featureId;
+
+    @Schema(description = "结果")
+    @TableField(value = "COM_RESULT")
+    private String comResult;
+
+
+}

+ 14 - 0
RMS/src/main/java/cn/cslg/report/mapper/AssoRecordsFeatureMapper.java

@@ -0,0 +1,14 @@
+package cn.cslg.report.mapper;
+
+import cn.cslg.report.entity.asso.AssoRecordsFeature;
+import cn.cslg.report.entity.asso.AssoTaskPersonel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface AssoRecordsFeatureMapper extends BaseMapper<AssoRecordsFeature> {
+
+}

+ 35 - 0
RMS/src/main/java/cn/cslg/report/service/business/AssoRecordsFeatureService.java

@@ -0,0 +1,35 @@
+package cn.cslg.report.service.business;
+
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.asso.AssoRecordsFeature;
+import cn.cslg.report.entity.asso.AssoTaskPersonel;
+import cn.cslg.report.mapper.AssoRecordsFeatureMapper;
+import cn.cslg.report.mapper.AssoTaskPersonelMapper;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+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.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class AssoRecordsFeatureService extends ServiceImpl<AssoRecordsFeatureMapper, AssoRecordsFeature> {
+
+
+
+
+}

+ 53 - 75
RMS/src/main/java/cn/cslg/report/service/business/CompareRecordsService.java

@@ -2,11 +2,13 @@ package cn.cslg.report.service.business;
 
 import cn.cslg.report.common.model.vo.CompareRecordsVO;
 import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.report.common.utils.StringUtils;
 import cn.cslg.report.entity.CompareFiles;
 import cn.cslg.report.entity.CompareRecords;
 import cn.cslg.report.entity.Features;
 import cn.cslg.report.entity.Report;
+import cn.cslg.report.entity.asso.AssoRecordsFeature;
 import cn.cslg.report.mapper.CompareFilesMapper;
 import cn.cslg.report.mapper.CompareRecordsMapper;
 import cn.cslg.report.mapper.FeatureMapper;
@@ -25,101 +27,77 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 @Slf4j
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class CompareRecordsService extends ServiceImpl<CompareRecordsMapper, CompareRecords> {
-   public final CompareRecordsMapper compareRecordsMapper;
-   public final FeatureMapper featureMapper;
-    public String addCompareRecord(CompareRecords compareRecord) throws IOException{
-        compareRecord.setFeaturesId(StringUtils.join(compareRecord.getFeaturesIdList(),","));
+    public final CompareRecordsMapper compareRecordsMapper;
+    public final FeatureMapper featureMapper;
+    public final LoginUtils loginUtils;
+    public final FeatureService featureService;
+    public final AssoRecordsFeatureService assoRecordsFeatureService;
+
+    @Transactional(rollbackFor = Exception.class)
+    public String addCompareRecord(CompareRecords compareRecord) throws IOException {
         compareRecord.insert();
+        List<AssoRecordsFeature> assoRecordsFeatures = compareRecord.getAssoRecordsFeatures();
+        assoRecordsFeatures.forEach(item -> item.setRecordsId(compareRecord.getId()));
+        assoRecordsFeatureService.saveBatch(assoRecordsFeatures);
         return Response.success();
 
     }
-    public String deleCompareRecords(int id)throws IOException{
-          this.removeById(id);
-          return Response.success();
+
+    public String deleCompareRecords(int id) throws IOException {
+        this.removeById(id);
+        return Response.success();
     }
+
     @Transactional
-    public String updateCompareRecords(CompareRecords compareRecord)throws IOException{
+    public String updateCompareRecords(CompareRecords compareRecord) throws IOException {
         String str = StringUtils.join(compareRecord.getFeaturesIdList(), ",");
         Integer id = compareRecord.getId();
-        compareRecordsMapper.updateCompareRecords(str,id);
+        compareRecordsMapper.updateCompareRecords(str, id);
         return Response.success();
     }
-    public String getCompareRecords(int reportId,String  patentNo,int personId)throws IOException{
-        List<CompareRecords> compareRecords = compareRecordsMapper.find(reportId, patentNo, personId);
-        List<CompareRecords> list=new ArrayList<>();
-        for(CompareRecords c:compareRecords){
-            String featuresId = c.getFeaturesId();
-            if(featuresId==null){
-                return Response.success(compareRecords);
-            }
-            List<CompareRecords.CY> list1=new ArrayList<>();
-            String[] split = featuresId.split(",");
-            for(String str :split){
-                int id=Integer.parseInt(str);
-                Features features = featureMapper.find(id);
-                CompareRecords.CY cy=new CompareRecords.CY();
-                cy.setId(id);
-                cy.setContent(features.getContent());
-                cy.setRightName(features.getRightName());
-                list1.add(cy);
-            }
-            c.setCY(list1);
-            list.add(c);
-        }
 
-        return  Response.success(list);
-    }
-    public String getCompareRecords(int reportId,int id)throws IOException{
-        CompareRecords compareRecords = compareRecordsMapper.getCompareRecords(reportId);
-        int personId = compareRecords.getPersonId();
-        String str1=String.valueOf(personId);
-        String str2=String.valueOf(id);
-        if(str1.equals(str2)){
-            List<CompareRecords> compareRecords1 = compareRecordsMapper.findCompareRecords(id);
-            List<CompareRecords> list2=new ArrayList<>();
-            for(CompareRecords a:compareRecords1){
-                CompareRecords compareRecords2=new CompareRecords();
-                String featuresId = a.getFeaturesId();
-                if(featuresId==null){
-                    return Response.success(compareRecords);
-                }
-                String[] split = featuresId.split(",");
-                List<CompareRecords.CY> list=new ArrayList<>();
-                for(String str :split){
-                    int i=Integer.parseInt(str);
-                    Features features = featureMapper.find(i);
-                    CompareRecords.CY cy=new CompareRecords.CY();
-                    cy.setId(i);
-                    cy.setContent(features.getContent());
-                    cy.setRightName(features.getRightName());
-                    list.add(cy);
-                }
-                a.setCY(list);
-                list2.add(a);
-            }
-            return Response.success(list2);
+    public String getCompareRecords(int reportId, String patentNo) throws IOException {
+        Integer personId = loginUtils.getId();
+        LambdaQueryWrapper<CompareRecords> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CompareRecords::getReportId, reportId)
+                .eq(CompareRecords::getPersonId, personId);
+        if (patentNo != null) {
+            wrapper.eq(CompareRecords::getPatentNo, patentNo);
+        }
+        List<CompareRecords> list = new ArrayList<>();
+        List<CompareRecords> compareRecords = this.list(wrapper);
+        if (compareRecords.size() == 0 || compareRecords == null) {
+            return Response.success(list);
         }
-        List<CompareRecords.CY> list=new ArrayList<>();
-        String str3=compareRecords.getFeaturesId();
-        if(str3==null){
+        List<Integer> ids = compareRecords.stream().map(CompareRecords::getId).collect(Collectors.toList());
+        if (ids.size() == 0) {
             return Response.success(compareRecords);
         }
-        String[] split = str3.split(",");
-        for(String str :split){
-            int i=Integer.parseInt(str);
-            Features features = featureMapper.find(i);
-            CompareRecords.CY cy=new CompareRecords.CY();
-            cy.setId(i);
-            cy.setContent(features.getContent());
-            cy.setRightName(features.getRightName());
-            list.add(cy);
+        LambdaQueryWrapper<AssoRecordsFeature> assoWrapper = new LambdaQueryWrapper<>();
+        assoWrapper.in(AssoRecordsFeature::getRecordsId, ids);
+        List<AssoRecordsFeature> assoRecordsFeatures = assoRecordsFeatureService.list(assoWrapper);
+        List<Integer> featureIds = assoRecordsFeatures.stream().map(AssoRecordsFeature::getFeatureId).collect(Collectors.toList());
+        List<Features> features = new ArrayList<>();
+        if (featureIds.size() != 0 && featureIds != null) {
+            LambdaQueryWrapper<Features> featuresLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            featuresLambdaQueryWrapper.in(Features::getId, featureIds);
+            features = featureService.list(featuresLambdaQueryWrapper);
+
+        }
+        for (CompareRecords records : compareRecords) {
+            List<AssoRecordsFeature> assoRecordsFeatures1 = assoRecordsFeatures.stream().filter(item -> item.getRecordsId().equals(records.getId())).collect(Collectors.toList());
+            List<Integer> featureId = assoRecordsFeatures1.stream().map(AssoRecordsFeature::getFeatureId).collect(Collectors.toList());
+            records.setAssoRecordsFeatures(assoRecordsFeatures1);
+            List<Features> featuresList = features.stream().filter(item -> featureId.contains(item.getId())).collect(Collectors.toList());
+            records.setFeatures(featuresList);
         }
-        compareRecords.setCY(list);
         return Response.success(compareRecords);
     }
+
 }