Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

chendayu 2 vuotta sitten
vanhempi
commit
0a95bceeb1
21 muutettua tiedostoa jossa 353 lisäystä ja 128 poistoa
  1. 5 0
      RMS/pom.xml
  2. 3 0
      RMS/src/main/java/cn/cslg/report/common/model/vo/PatentQueryFieldSourceVO.java
  3. 74 0
      RMS/src/main/java/cn/cslg/report/common/model/vo/TaskReportVO.java
  4. 3 0
      RMS/src/main/java/cn/cslg/report/common/model/vo/TaskVO.java
  5. 7 0
      RMS/src/main/java/cn/cslg/report/controller/CompareController.java
  6. 6 1
      RMS/src/main/java/cn/cslg/report/controller/FeatureController.java
  7. 0 1
      RMS/src/main/java/cn/cslg/report/controller/PatentFiledController.java
  8. 1 1
      RMS/src/main/java/cn/cslg/report/controller/TaskController.java
  9. 36 0
      RMS/src/main/java/cn/cslg/report/entity/CompareMessage.java
  10. 7 1
      RMS/src/main/java/cn/cslg/report/entity/Features.java
  11. 1 0
      RMS/src/main/java/cn/cslg/report/entity/Task.java
  12. 8 0
      RMS/src/main/java/cn/cslg/report/mapper/TaskMapper.java
  13. 8 2
      RMS/src/main/java/cn/cslg/report/service/BaseService.java
  14. 39 5
      RMS/src/main/java/cn/cslg/report/service/business/CompareFilesService.java
  15. 23 6
      RMS/src/main/java/cn/cslg/report/service/business/FeatureService.java
  16. 6 26
      RMS/src/main/java/cn/cslg/report/service/business/ReportDocumentService.java
  17. 36 25
      RMS/src/main/java/cn/cslg/report/service/business/ReportFieldPatentLinkService.java
  18. 46 22
      RMS/src/main/java/cn/cslg/report/service/business/ReportFieldService.java
  19. 6 0
      RMS/src/main/java/cn/cslg/report/service/business/ReportService.java
  20. 5 38
      RMS/src/main/java/cn/cslg/report/service/business/TaskService.java
  21. 33 0
      RMS/src/main/resources/mapper/TaskMapper.xml

+ 5 - 0
RMS/pom.xml

@@ -154,6 +154,11 @@
             <artifactId>okhttp</artifactId>
             <version>3.9.1</version>
         </dependency>
+        <dependency>
+            <groupId>io.github.draco1023</groupId>
+            <artifactId>poi-tl-ext</artifactId>
+            <version>0.4.2</version>
+        </dependency>
         <!--rabbitmq-->
         <dependency>
             <groupId>org.springframework.boot</groupId>

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

@@ -5,6 +5,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.models.security.SecurityScheme;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class PatentQueryFieldSourceVO extends BaseVO {
     @Schema(description = "自定义字段id")
@@ -22,6 +24,7 @@ public class PatentQueryFieldSourceVO extends BaseVO {
     private Integer applicantStatus;
     private Integer customFieldId;
     private Integer customFieldTreeType;
+     private List<String> paths;
     @Schema(description = "专利号")
     private String patentNo;
     @Schema(description = "任务ID")

+ 74 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/TaskReportVO.java

@@ -0,0 +1,74 @@
+package cn.cslg.report.common.model.vo;
+
+
+import cn.cslg.report.common.model.BaseVO;
+import cn.cslg.report.entity.Report;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author lrj
+ * @date 2022-11-9
+ * @description 任务VO类
+ */
+@Data
+@Accessors(chain = true)
+@Schema(description="任务VO",required = true)
+public class TaskReportVO extends BaseVO {
+    private Integer id;
+    private String createName;
+   private Integer  reportType;
+    @Schema(description = "报告信息")
+    private Report report;
+    @Schema(description = "报告Id")
+    private Integer reportId;
+    @Schema(description = "参与人Id列表")
+    private List<Integer> personIds;
+
+    @Schema(description = "任务名称")
+    private String taskName;
+
+    @Schema(description = "任务Id")
+    private String taskId;
+
+    @Schema(description = "任务类型 0开卷审核任务")
+    private Integer type;
+
+    @Schema(description = "处理人ID",required = true)
+    private Integer handlePersonId;
+
+
+   @Schema(description = "处理人姓名",required = true)
+   private String handlePersonName;
+
+
+ @Schema(description = "创建任务时间")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+    /**
+     * 任务开始时间
+     */
+    @Schema(description = "任务开始时间")
+    private Date beginTime;
+
+    /**
+     * 结束时间
+     */
+    @Schema(description = "任务结束时间")
+    private Date endTime;
+
+    @Schema(description = "任务状态 0未完成 1已完成")
+    private Integer taskStatus;
+
+    @Schema(description = "登录人在任务中的身份 0创建人 1处理人")
+    private Integer roleInTask;
+}

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

@@ -56,6 +56,9 @@ public class TaskVO extends BaseVO {
 
     @Schema(description = "登录人在任务中的身份 0创建人 1处理人")
     private Integer roleInTask;
+
+    @Schema(description = "登录人Id")
+    private Integer loginId;
    @Schema(description = "人员专题号对象列表")
   private List<personPatents> personPatents;
 

+ 7 - 0
RMS/src/main/java/cn/cslg/report/controller/CompareController.java

@@ -32,6 +32,13 @@ public class CompareController {
         return res;
     }
 
+    @RequestMapping(value = "/addFTOCompareFile", method = RequestMethod.POST)
+    @Operation(summary = "添加FTO对比文件")
+    public String addFTOCompareFile(@RequestBody CompareFilesVO compareFilesVO) throws IOException {
+        String res =   compareFilesService.addFTOCompareFile(compareFilesVO);
+        return res;
+    }
+
     @RequestMapping(value = "/getCompareFile", method = RequestMethod.POST)
     @Operation(summary = "获得对比文件详情(分页)")
     public String getCompareFile(@RequestBody PatentVO patentVO) throws IOException {

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

@@ -52,7 +52,7 @@ public class FeatureController {
     }
     @RequestMapping(value = "/addPatentRight", method = RequestMethod.POST)
     @Operation(summary = "保存权要")
-    public String addPatentRight(@RequestBody List<PatentRightVo>  patentRightVos) throws IOException {
+    public String addPatentRight(@RequestBody List<PatentRightVo> patentRightVos) throws IOException {
         String res =  featureService.addFeatures(patentRightVos);
         return res;
     }
@@ -63,4 +63,9 @@ public class FeatureController {
         return Response.success(featureService.querySimFeaturePatent(patentVO));
     }
 
+    @RequestMapping(value = "/getSplitMessage", method = RequestMethod.GET)
+    @Operation(summary = "根据专利号和报告ID获得拆分信息")
+    public String getSplitMessage(Integer reportId ,String patentNo) throws IOException {
+        return Response.success(featureService.getSplitMessage(reportId,patentNo));
+    }
 }

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

@@ -4,7 +4,6 @@ import cn.cslg.report.common.core.base.Constants;
 
 import cn.cslg.report.common.model.vo.PatentQueryFieldSourceVO;
 import cn.cslg.report.common.model.vo.ReportFieldVO;
-import cn.cslg.report.common.model.vo.SourceVO;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.entity.ReportField;
 import cn.cslg.report.entity.ReportFieldOption;

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

@@ -48,7 +48,7 @@ public class TaskController {
     @RequestMapping(value = "/queryPageList", method = RequestMethod.POST)
     @Operation(summary = "分页查询任务列表")
     public String queryPageList(@RequestBody TaskVO taskVO) {
-        return taskService.queryPageList(taskVO);
+        return Response.success(taskService.queryPageList(taskVO));
     }
 
     @RequestMapping(value = "/add", method = RequestMethod.GET)

+ 36 - 0
RMS/src/main/java/cn/cslg/report/entity/CompareMessage.java

@@ -0,0 +1,36 @@
+package cn.cslg.report.entity;
+
+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 = "COMPARE_MESSAGE")
+public class CompareMessage extends BaseEntity<CompareMessage> {
+    @Schema(description = "标的说明")
+    @TableField(value = "TARGET_DESCRIPTION")
+    private String targetDescription;
+
+    @Schema(description = "对比说明")
+    @TableField(value = "COMPARE_DESCRIPTION")
+    private String compareDescription;
+
+    @Schema(description = "对比结果")
+    @TableField(value = "COMPARE_RESULT")
+    private String compareResult;
+
+    @Schema(description = "特征ID")
+    @TableField(value = "FEATURE_ID")
+    private Integer featureId;
+
+
+}

+ 7 - 1
RMS/src/main/java/cn/cslg/report/entity/Features.java

@@ -7,6 +7,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.util.List;
+
 /**
  * 特征表
  */
@@ -80,5 +82,9 @@ public class Features extends BaseEntity<Features> {
 
     @TableField(value = "FEATURES_ORDER")
     private Integer featuresOrder;
-
+    /**
+     * 特征拆分人IDs
+     */
+    @TableField(exist = false)
+    private List<Integer> partnerIds;
 }

+ 1 - 0
RMS/src/main/java/cn/cslg/report/entity/Task.java

@@ -65,6 +65,7 @@ public class Task extends BaseEntity<Task> {
     @Schema(description = "任务创建人姓名")
     @TableField(value = "CREATE_NAME")
     private String createName;
+
     /**
      * 任务开始时间
      */

+ 8 - 0
RMS/src/main/java/cn/cslg/report/mapper/TaskMapper.java

@@ -1,9 +1,17 @@
 package cn.cslg.report.mapper;
 
+import cn.cslg.report.common.model.vo.TaskReportVO;
+import cn.cslg.report.common.model.vo.TaskVO;
 import cn.cslg.report.entity.Task;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 @Mapper
 public interface TaskMapper extends BaseMapper<Task> {
+    public IPage<TaskReportVO> queryTasks(Page<TaskReportVO> page , @Param("param") TaskVO taskVo);
 }

+ 8 - 2
RMS/src/main/java/cn/cslg/report/service/BaseService.java

@@ -9,9 +9,12 @@ import cn.cslg.report.common.model.vo.TaskParams;
 import cn.cslg.report.common.utils.*;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.report.entity.ImportTask;
+import cn.cslg.report.entity.Task;
+import cn.cslg.report.service.business.ImportTaskService;
 import cn.hutool.core.collection.IterUtil;
 import cn.hutool.poi.excel.ExcelUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -39,6 +42,7 @@ public class BaseService {
     private final FileUtils fileUtils;
     private final LoginUtils loginUtils;
     private final CacheUtils cacheUtils;
+    private final ImportTaskService importTaskService;
     /**
      * @return 1.生成验证码的base64转码 2.生成的UUID 与Redis里面的验证码KEY值一致
      * @title 获取验证码
@@ -301,7 +305,7 @@ public class BaseService {
                     taskParams.setUserId(String.valueOf(importTask.getCreateUserId()));
                     taskParams.setIndex((int) rowIndex);
                     try {
-                        outInterfaceService.importPatents(taskParams);
+                    String res =     outInterfaceService.importPatents(taskParams);
                         if((int) rowIndex==taskParams.getTotal())
                         {
                             importTask.setState(1);
@@ -340,7 +344,9 @@ public class BaseService {
                 .setOldName(importTask.getTaskName())
                 .setUrl("")
                 .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), String.valueOf(importTask.getCreateUserId()));
-
+     ImportTask importTask1 =   importTaskService.getById(importTask.getId());
+     importTask1.setState(2);
+     importTask1.updateById();
 
     }
 

+ 39 - 5
RMS/src/main/java/cn/cslg/report/service/business/CompareFilesService.java

@@ -106,6 +106,41 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
     }
 
     /**
+     *
+     * @param compareFilesVO
+     * @return
+     * @throws IOException
+     * @Autor lrj
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String addFTOCompareFile(CompareFilesVO compareFilesVO) throws IOException {
+
+        List<CompareFiles> compareFiles = new ArrayList<>();
+        PatentVO patentVO = new PatentVO();
+        patentVO.setStartNumber(compareFilesVO.getStartNumber() - 1);
+        patentVO.setEndNumber(compareFilesVO.getEndNumber());
+        patentVO.setReportId(compareFilesVO.getReportId());
+
+        // 见outInterfaceService getComPatentNos接口
+        String res = outInterfaceService.getComPatentNos(patentVO);
+        JSONObject jsonObject = JSONObject.parseObject(res);
+        List<String> patentNos = JSONArray.parseArray(jsonObject.get("data").toString(), String.class);
+        //删除原有的
+        patentNos.removeAll(compareFilesVO.getIsDelete());
+        //添加新的
+        patentNos.addAll(compareFilesVO.getIsAdd());
+        for(int i=0;i<patentNos.size();i++){
+            CompareFiles compareFiles1 = new CompareFiles();
+            //根据专利号和报告id造对象
+            compareFiles1.setPatentNo(patentNos.get(i));
+            compareFiles1.setReportId(compareFilesVO.getReportId());
+            compareFiles.add(compareFiles1);
+        }
+        // 批量添加
+        this.saveBatch(compareFiles);
+        return Response.success();
+    }
+    /**
      * @function 根据PatentVO里的条件(分页)模糊查询标的专利号和数量
      * @param patentVO
      * @return 标的专利号和数量 map
@@ -282,16 +317,15 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
         if(params.getTaskID()!=null) {
             reportFieldPatentLinkService.updatePatentIndexSetting(params);
             LambdaQueryWrapper<AssoTaskPersonel> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.eq(AssoTaskPersonel::getTaskId, params.getTaskID()).eq(AssoTaskPersonel::getPatentNo, params.getPatentNo());
+            queryWrapper.eq(AssoTaskPersonel::getTaskId, params.getTaskID())
+                    .eq(AssoTaskPersonel::getPatentNo, params.getPatentNo());
             AssoTaskPersonel assoTaskPersonel = assoTaskPersonelService.list(queryWrapper).get(0);
             assoTaskPersonel.setState(1);
             assoTaskPersonel.updateById();
-
-        }else {
+        }
+        else {
             reportFieldPatentLinkService.updatePatentIndexSetting(params);
-
         }
-
     }
 
     /**

+ 23 - 6
RMS/src/main/java/cn/cslg/report/service/business/FeatureService.java

@@ -163,9 +163,8 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
             List<Features> featuresList = new ArrayList<>();
             String[] tems = patentRights.get(i).getContent().split("\\.");
             String name = "权要" + tems[0].replace(" ", "");
-            int rightId = patentRights.get(i).getId();
+            int rightId = patentRights.get(i).getSort();
             //对需要拆解的权要进行拆解
-
             if (featureFromDb != null && featureFromDb.size() != 0) {
                 featuresList = featureFromDb.stream().filter(item -> item.getRightId().equals(rightId) && item.getSplitBy().equals(a) && item.getPartnerId().equals(personnelVO.getId()) && item.getSplitType().equals(b)).collect(Collectors.toList());
             }
@@ -184,7 +183,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
                 //遍历拆解出来的内容并装载到features最后存入列表
                 for (int t = 0; t < contents.size(); t++) {
                     Features features = new Features();
-                    features.setRightId(patentRights.get(i).getId());
+                    features.setRightId(patentRights.get(i).getSort());
                     features.setIsFinal(0);
                     features.setSignPatentNo(patentNo);
                     features.setReportId(reportId);
@@ -254,7 +253,8 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         Features featureTO = new Features();
         featureTO.setReportId(reportId);
         featureTO.setSignPatentNo(patentNo);
-        featureTO.setPartnerId(report.getPersonId());
+        featureTO.setPartnerIds(Arrays.asList(report.getPersonId(),report.getCreatePersonId()));
+
         //查询数据库里是否有查询记录
         List<Features> featureFromDb = this.queryFeatures(featureTO);
         //将拆解的权要和特征装载到对象PatentRightVo
@@ -263,8 +263,8 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
             List<Features> featuresList = new ArrayList<>();
             //对需要拆解的权要进行拆解
             if (featureFromDb != null && featureFromDb.size() != 0) {
-                int rightId = patentRights.get(i).getId();
-                featuresList = featureFromDb.stream().filter(item -> item.getRightId().equals(rightId) && item.getPartnerId().equals(report.getPersonId())).collect(Collectors.toList());
+                int rightId = patentRights.get(i).getSort();
+                featuresList = featureFromDb.stream().filter(item -> item.getRightId().equals(rightId) && (item.getPartnerId().equals(report.getPersonId())||item.getPartnerId().equals(report.getCreatePersonId()))).collect(Collectors.toList());
             }
             //装载到对象PatentRightVo
             PatentRightVo patentRightVo = new PatentRightVo();
@@ -333,6 +333,10 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         if (features.getSplitType() != null) {
             lambdaQueryWrapper.eq(Features::getSplitType, features.getSplitType());
         }
+        if(features.getPartnerIds()!=null&&features.getPartnerIds().size()>0){
+            lambdaQueryWrapper.in(Features::getPartnerId, features.getPartnerIds());
+
+        }
         featureList = this.list(lambdaQueryWrapper);
         return featureList;
     }
@@ -467,4 +471,17 @@ List<Map<String,Object>> mapList =new ArrayList<Map<String,Object>>();
         return 1;
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String,Object> getSplitMessage(Integer reportId,String patentNo) {
+      LambdaQueryWrapper<Features> queryWrapper =new LambdaQueryWrapper<>();
+      queryWrapper.eq(Features::getReportId,reportId)
+                  .eq(Features::getSignPatentNo,patentNo);
+      List<Features> features =this.list(queryWrapper);
+      Map<String,Object> map =new HashMap<>();
+      if(features!=null&& features.size()!=0){
+          map.put("splitBy",features.get(0).getSplitBy());
+          map.put("splitType",features.get(0).getSplitType());
+      }
+        return map;
+    }
 }

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 6 - 26
RMS/src/main/java/cn/cslg/report/service/business/ReportDocumentService.java


+ 36 - 25
RMS/src/main/java/cn/cslg/report/service/business/ReportFieldPatentLinkService.java

@@ -38,7 +38,8 @@ public class ReportFieldPatentLinkService extends ServiceImpl<ReportFieldPatentL
     private final ReportFieldService reportFieldService;
     private final LoginUtils loginUtils;
     private final ReportFieldOptionService reportFieldOptionService;
-    private final ReportFieldTreeService reportFieldTreeService;
+    private final  ReportFieldPatentLinkService reportFieldPatentLinkService;
+
 
     /**
      * @function 根据专利号和报告id插叙标引内容关联专利
@@ -223,7 +224,7 @@ public class ReportFieldPatentLinkService extends ServiceImpl<ReportFieldPatentL
                 break;
                 //树类型
             case 6:
-                List<ReportFieldTree> projectFieldTreeList = reportFieldTreeService.getProjectFieldTreeOptionByIds(optionIds);
+                List<ReportFieldTree> projectFieldTreeList = projectFieldTreeService.getProjectFieldTreeOptionByIds(optionIds);
                 for (ReportFieldTree projectFieldTree : projectFieldTreeList) {
                     LabelDTO map = new LabelDTO();
                     map.setValue(projectFieldTree.getId());
@@ -241,7 +242,11 @@ public class ReportFieldPatentLinkService extends ServiceImpl<ReportFieldPatentL
      */
     @Transactional(rollbackFor = Exception.class)
     public void updatePatentIndexSetting(PatentIndexSettingVO params) {
-
+        LambdaQueryWrapper<ReportFieldPatentLink> lambdaQueryWrapper =new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(ReportFieldPatentLink::getPatentNo,params.getPatentNo())
+                          .eq(ReportFieldPatentLink::getReportId,params.getReportId())
+                           .eq(ReportFieldPatentLink::getFieldId,params.getFieldId());
+        reportFieldPatentLinkService.remove(lambdaQueryWrapper);
         List<Integer> optionIds = params.getSelected().stream().map(LabelDTO::getValue).distinct().collect(Collectors.toList());
         List<String> texts = params.getSelected().stream().map(LabelDTO::getLabel).distinct().collect(Collectors.toList());
         List<ReportFieldPatentLink> projectFieldPatentLinkList = new ArrayList<>();
@@ -249,23 +254,6 @@ public class ReportFieldPatentLinkService extends ServiceImpl<ReportFieldPatentL
             case 0:
             case 1:
             case 2:
-//                List<ReportFieldText> tempList = reportFieldTextService.getProjectFieldTextByFieldId(params.getFieldId());
-//                for (String text : texts) {
-//                    if (StringUtils.isEmpty(text)) {
-//                        continue;
-//                    }
-//                    ReportFieldText reportFieldText = tempList.stream().filter(item -> item.getText().equals(text)).findFirst().orElse(null);
-//                    if (reportFieldText != null) {
-//                        reportFieldText.setFieldId(params.getFieldId());
-//                        reportFieldText.setText(text);
-//                        reportFieldText.updateById();
-//                    }
-//                    else {
-//                        reportFieldText=new ReportFieldText();
-//                        reportFieldText.setFieldId(params.getFieldId());
-//                        reportFieldText.setText(text);
-//                        reportFieldText.insert();
-//                    }
                     LambdaQueryWrapper<ReportFieldPatentLink> queryWrapper = new LambdaQueryWrapper<>();
                     queryWrapper.eq(ReportFieldPatentLink::getPatentNo, params.getPatentNo())
                             .eq(ReportFieldPatentLink::getReportId, params.getReportId())
@@ -284,29 +272,52 @@ public class ReportFieldPatentLinkService extends ServiceImpl<ReportFieldPatentL
                         reportFieldPatentLink.setCreateBy(loginUtils.getId());
                         reportFieldPatentLink.setPatentNo(params.getPatentNo());
                         reportFieldPatentLink.setReportId(params.getReportId());
-                        reportFieldPatentLink.setTreePath(reportFieldText.getId().toString());
                         reportFieldPatentLink.updateById();
                     }else {
+                        LambdaQueryWrapper<ReportFieldText> queryWrapper1 =new LambdaQueryWrapper<>();
+                        queryWrapper1.eq(ReportFieldText::getText,params.getSelected().get(0).getLabel())
+                                      .eq(ReportFieldText::getFieldId,params.getFieldId());
+                         List<ReportFieldText> reportFieldTexts = reportFieldTextService.list(queryWrapper1);
                         reportFieldPatentLink=new ReportFieldPatentLink();
                         ReportFieldText reportFieldText=new ReportFieldText();
-                        reportFieldText.setText(params.getSelected().get(0).getLabel());
-                        reportFieldText.setFieldId(params.getFieldId());
-                        reportFieldText.insert();
+                        if(reportFieldTexts!=null&&reportFieldTexts.size()!=0) {
+                            reportFieldText =reportFieldTexts.get(0);
+                        }
+           else {
+                            reportFieldText.setText(params.getSelected().get(0).getLabel());
+                            reportFieldText.setFieldId(params.getFieldId());
+                            reportFieldText.insert();
+                        }
                         reportFieldPatentLink.setFieldId(reportFieldText.getFieldId());
                         reportFieldPatentLink.setOptionId(reportFieldText.getId());
                         reportFieldPatentLink.setCreateBy(loginUtils.getId());
                         reportFieldPatentLink.setPatentNo(params.getPatentNo());
                         reportFieldPatentLink.setReportId(params.getReportId());
-                        reportFieldPatentLink.setTreePath(reportFieldText.getId().toString());
                         reportFieldPatentLink.insert();
                     }
+                   //将没有使用到的选项值删除
+                LambdaQueryWrapper<ReportFieldPatentLink> lambdaQueryWrapper1 =new LambdaQueryWrapper<>();
+                lambdaQueryWrapper1.eq(ReportFieldPatentLink::getReportId,params.getReportId())
+                        .eq(ReportFieldPatentLink::getFieldId,params.getFieldId());
+List<ReportFieldPatentLink> links =reportFieldPatentLinkService.list(lambdaQueryWrapper1);
+if(links.size()!=0){
+    List<Integer> opIds =links.stream().map(ReportFieldPatentLink::getOptionId).collect(Collectors.toList());
+    LambdaQueryWrapper<ReportFieldText> removeWrapper= new LambdaQueryWrapper<>();
+    removeWrapper.notIn(ReportFieldText::getId,opIds).eq(ReportFieldText::getFieldId,params.getFieldId());
+    reportFieldTextService.remove(removeWrapper);
 
 
+}
                 break;
             case 3:
             case 4:
             case 5:
             case 6:
+                LambdaQueryWrapper<ReportFieldPatentLink> queryWrapper1 =new LambdaQueryWrapper<>();
+                queryWrapper1.eq(ReportFieldPatentLink::getPatentNo,params.getPatentNo())
+                             .eq(ReportFieldPatentLink::getFieldId,params.getFieldId())
+                             .eq(ReportFieldPatentLink::getReportId,params.getReportId());
+                 this.remove(queryWrapper1);
                 for (Integer optionId : optionIds) {
                     ReportFieldPatentLink projectFieldPatentLink = new ReportFieldPatentLink();
                     projectFieldPatentLink.setPatentNo(params.getPatentNo());

+ 46 - 22
RMS/src/main/java/cn/cslg/report/service/business/ReportFieldService.java

@@ -50,6 +50,7 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
     private final AssoTaskPersonelService assoTaskPersonelService;
     private final ReportFieldService reportFieldService;
     private final CompareFilesService compareFilesService;
+
     public List<ReportField> getProjectFieldByProjectId(Integer projectId) {
         LambdaQueryWrapper<ReportField> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ReportField::getReportId, projectId);
@@ -305,6 +306,8 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
      * @function 查询自定义字段,统计与之相关的专利的数量
      */
     public List<PatentQueryFieldSourceVO> getPatentQuerySourcePageList(PatentQueryFieldSourceVO params) {
+        //记录树最大长度
+        Integer treeLevel = 0;
         List<PatentQueryFieldSourceVO> list = new ArrayList<>();
         //根据fieldId 从patent_field中获得 自定义字段对象
         LambdaQueryWrapper<ReportField> wrapper = new LambdaQueryWrapper<>();
@@ -374,13 +377,18 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
                 LambdaQueryWrapper<ReportFieldTree> queryWrapper6 = new LambdaQueryWrapper<>();
                 queryWrapper6.eq(ReportFieldTree::getFieldId, params.getFieldId());
                 List<ReportFieldTree> reportFieldTrees = reportFieldTreeService.list(queryWrapper6);
-                reportFieldTrees.forEach(item -> {
+                for (ReportFieldTree item : reportFieldTrees) {
                     PatentQueryFieldSourceVO patentQueryFieldSourceVO = new PatentQueryFieldSourceVO();
                     patentQueryFieldSourceVO.setFieldId(params.getFieldId());
+                    String[] arr1 = item.getPath().split("\\/");
+                    patentQueryFieldSourceVO.setPaths(Arrays.asList(arr1));
+                    if (patentQueryFieldSourceVO.getPaths().size() > treeLevel) {
+                        treeLevel = patentQueryFieldSourceVO.getPaths().size();
+                    }
                     patentQueryFieldSourceVO.setKey(item.getId());
                     patentQueryFieldSourceVO.setLabel(item.getName());
                     list.add(patentQueryFieldSourceVO);
-                });
+                }
                 break;
         }
         List<Integer> valueIds = list.stream().map(PatentQueryFieldSourceVO::getKey).collect(Collectors.toList());
@@ -419,6 +427,23 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
             }
             tem.setType(type1);
         }
+//当是树类型时,对数量进行格式化
+        if (type1 == 6) {
+            for (int i = treeLevel; i > 1; i--) {
+                int t = i;
+                List<PatentQueryFieldSourceVO> temList = list.stream().filter(item -> item.getPaths().size() == t).collect(Collectors.toList());
+                for (PatentQueryFieldSourceVO vo : list) {
+                        if(vo.getPaths().size()==t-1){
+                       List<Integer> counts = temList.stream().filter(item->item.getPaths().containsAll(vo.getPaths())).map(PatentQueryFieldSourceVO::getCount).collect(Collectors.toList());
+                            Integer count =0;
+                       for(Integer intg :counts){
+                           count+=intg;
+                       }
+                           vo.setCount(vo.getCount()+count);
+                        }
+                }
+            }
+        }
         //未选择选项
         PatentQueryFieldSourceVO patentQueryFieldSourceVO = new PatentQueryFieldSourceVO();
         patentQueryFieldSourceVO.setFieldId(params.getFieldId());
@@ -426,6 +451,7 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
         patentQueryFieldSourceVO.setLabel("未选择");
         patentQueryFieldSourceVO.setCount(allNos.size() - choosed);
         list.add(patentQueryFieldSourceVO);
+
         //获得所有未选择的数量
         //根据值id从ReportFieldPatentLink表中获得信息
         return list;
@@ -466,7 +492,7 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
      */
 
     public String getReportField(PatentQueryFieldSourceVO params) {
-        if (params.getName() != null&&params.getName()!="") {
+        if (params.getName() != null && params.getName() != "") {
             List<PatentQueryFieldSourceVO> list = new ArrayList<>();
             LambdaQueryWrapper<ReportField> wrapper = new LambdaQueryWrapper<>();
             wrapper.eq(ReportField::getId, params.getFieldId());
@@ -490,9 +516,7 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
                     list.add(param);
                 }
 
-            }
-
-            else if (type1 == 5 || type1 == 4) {
+            } else if (type1 == 5 || type1 == 4) {
                 LambdaQueryWrapper<ReportFieldOption> queryWrapper5 = new LambdaQueryWrapper<>();
                 queryWrapper5.eq(ReportFieldOption::getFieldId, params.getFieldId());
 
@@ -515,24 +539,23 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
             } else if (type1 == 6) {
                 LambdaQueryWrapper<ReportFieldTree> queryWrapper6 = new LambdaQueryWrapper<>();
                 queryWrapper6.eq(ReportFieldTree::getFieldId, params.getFieldId());
-                    queryWrapper6.like(ReportFieldTree::getName, params.getName());
-                    List<ReportFieldTree> list1 = reportFieldTreeService.list(queryWrapper6);
-                    for (ReportFieldTree a : list1) {
-                        PatentQueryFieldSourceVO param = new PatentQueryFieldSourceVO();
-                        LambdaQueryWrapper<ReportFieldPatentLink> wrapper1 = new LambdaQueryWrapper<>();
-                        wrapper1.eq(ReportFieldPatentLink::getFieldId, a.getFieldId()).eq(ReportFieldPatentLink::getOptionId, a.getId());
-                        param.setName(a.getName());
-                        param.setType(type1);
-                        param.setFieldId(a.getFieldId());
-                        param.setKey(a.getId());
-                        param.setCount(reportFieldPatentLinkService.list(wrapper1).size());
-                        list.add(param);
-                    }
-
+                queryWrapper6.like(ReportFieldTree::getName, params.getName());
+                List<ReportFieldTree> list1 = reportFieldTreeService.list(queryWrapper6);
+                for (ReportFieldTree a : list1) {
+                    PatentQueryFieldSourceVO param = new PatentQueryFieldSourceVO();
+                    LambdaQueryWrapper<ReportFieldPatentLink> wrapper1 = new LambdaQueryWrapper<>();
+                    wrapper1.eq(ReportFieldPatentLink::getFieldId, a.getFieldId()).eq(ReportFieldPatentLink::getOptionId, a.getId());
+                    param.setName(a.getName());
+                    param.setType(type1);
+                    param.setFieldId(a.getFieldId());
+                    param.setKey(a.getId());
+                    param.setCount(reportFieldPatentLinkService.list(wrapper1).size());
+                    list.add(param);
                 }
+
+            }
             return Response.success(list);
-        }
-        else {
+        } else {
             List<PatentQueryFieldSourceVO> list = new ArrayList<>();
             //根据fieldId 从patent_field中获得 自定义字段对象
             LambdaQueryWrapper<ReportField> wrapper = new LambdaQueryWrapper<>();
@@ -665,6 +688,7 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
 
         }
     }
+
     /**
      * 自定义字段的id查询专利号
      * 并集:当自定义字段的id相同的时候取并集

+ 6 - 0
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -15,6 +15,7 @@ import cn.cslg.report.service.OutInterfaceService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
@@ -119,6 +120,11 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         if(reportVO.getSignPatentNo()!=null&&reportVO.getSignPatentNo()!=""){
             queryWrapper.like(Report::getSignPatentNo,reportVO.getSignPatentNo());
         }
+        queryWrapper.and(QueryWrapper-> {
+            QueryWrapper.eq(Report::getCreatePersonId,  loginUtils.getId())
+                    .or().eq(Report::getPersonId,loginUtils.getId());
+     });
+
         queryWrapper.orderByDesc(Report::getId);
         //分页
         if (reportVO.getSize() != null && reportVO.getCurrent() != null) {

+ 5 - 38
RMS/src/main/java/cn/cslg/report/service/business/TaskService.java

@@ -17,6 +17,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.swagger.v3.oas.models.security.SecurityScheme;
@@ -113,44 +114,10 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
      * @return
      * @function 查询任务
      */
-    public String queryPageList(TaskVO taskVO) {
-        //获得登录人的信息
-        PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
-        LambdaQueryWrapper<Task> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-
-        if (taskVO.getType() != null) {
-            lambdaQueryWrapper.eq(Task::getType, taskVO.getType());
-        }
-        if (taskVO.getTaskStatus() != null) {
-            lambdaQueryWrapper.eq(Task::getTaskStatus, taskVO.getTaskStatus());
-        }
-        if(taskVO.getCreateName()!=null){
-            lambdaQueryWrapper.like(Task::getCreateName,taskVO.getCreateName());
-        }
-        if(taskVO.getTaskName()!=null){
-            lambdaQueryWrapper.like(Task::getTaskName,taskVO.getTaskName());
-        }
-        if (taskVO.getRoleInTask() != null) {
-            if (taskVO.getRoleInTask() == 0) {
-                lambdaQueryWrapper.eq(Task::getCreateID, personnelVO.getId());
-
-            } else if (taskVO.getRoleInTask() == 1) {
-                lambdaQueryWrapper.eq(Task::getHandlePersonId, personnelVO.getId());
-            }
-        }
-
-        lambdaQueryWrapper.orderByDesc(Task::getId);
-        List<Task> taskList;
-        Long count = this.count(lambdaQueryWrapper);
-        //分页
-        if (taskVO.getCurrent() != null && taskVO.getSize() != null) {
-            taskList = this.page(new Page<>(taskVO.getCurrent(), taskVO.getSize()), lambdaQueryWrapper).getRecords();
-            return Response.success(taskList, DataUtils.setPageColumn(taskVO.getSize(), taskVO.getCurrent(), Math.toIntExact(count)));
-        } else {
-            taskList = this.list(lambdaQueryWrapper);
-            return Response.success(taskList);
-        }
-
+    public IPage<TaskReportVO> queryPageList(TaskVO taskVO) {
+        taskVO.setLoginId(StpUtil.getLoginIdAsInt());
+        IPage<TaskReportVO> dataPage =   baseMapper.queryTasks(new Page<>(taskVO.getCurrent(),taskVO.getSize()),taskVO);
+return dataPage;
     }
 
     /**

+ 33 - 0
RMS/src/main/resources/mapper/TaskMapper.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.cslg.report.mapper.TaskMapper">
+    <select id="queryTasks" resultType="cn.cslg.report.common.model.vo.TaskReportVO" >
+   select a.* ,b.TYPE as reportType from TASK a left join REPORT b on a.REPORT_ID=b.ID
+   <where>
+<if test="param.type !=null">
+ and a.TYPE =#{param.type}
+</if>
+        <if test="param.taskStatus !=null">
+and a.TASK_STATUS=#{param.taskStatus}
+
+        </if>
+        <if test="param.createName !=null">
+and a.CREATE_NAME like concat('%', #{param.createName}, '%')
+
+        </if>
+        <if test="param.taskName !=null">
+and a.TASK_NAME  like concat('%', #{param.taskName}, '%')
+
+        </if>
+
+        <if test="param.roleInTask !=null and param.roleInTask == 0">
+and a.CREATE_ID=#{param.loginId}
+
+        </if>
+        <if test="param.roleInTask !=null and param.roleInTask == 1">
+            and a.HANDLE_PERSON_ID=#{param.loginId}
+        </if>
+   </where>
+        order by a.id desc
+    </select>
+</mapper>