瀏覽代碼

添加单个对比文件接口

lwhhszx 2 年之前
父節點
當前提交
1ebe1e29f7

+ 76 - 0
RMS/src/main/java/cn/cslg/report/common/model/dto/invalidReReport/ArgumentsDTO.java

@@ -0,0 +1,76 @@
+package cn.cslg.report.common.model.dto.invalidReReport;
+
+import cn.cslg.report.common.model.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 陈述意见DTO类
+ *
+ * @Author 李仁杰
+ * @Date 2023/7/4
+ */
+@Data
+public class ArgumentsDTO  {
+    /**
+     * 报告id
+     */
+    private Integer reportId;
+
+    /**
+     * 权要id
+     */
+    private Integer rightId;
+
+    /**
+     * 特征id
+     */
+    private Integer featureId;
+
+    /**
+     * 无效证据
+     */
+    private String proofStr;
+
+    /**
+     * 陈述意见
+     */
+    private String argumentStr;
+
+    /**
+     * 证据id
+     */
+    private Integer proofId;
+    /**
+     * 划词内容
+     */
+    private String content ;
+
+    /**
+     * 划词类型
+     */
+    private String scratchType ;
+
+    /**
+     * 划词颜色
+     */
+    private String scratchColor ;
+
+    /**
+     * 划词栏位
+     */
+    private String scratchField ;
+
+    /**
+     * 划词位置
+     */
+    private Integer position ;
+
+    /**
+     * 划词专利
+     */
+    private String patentNo ;
+}

+ 23 - 0
RMS/src/main/java/cn/cslg/report/common/model/dto/invalidReReport/ArgumentsQueryDTO.java

@@ -0,0 +1,23 @@
+package cn.cslg.report.common.model.dto.invalidReReport;
+
+import cn.cslg.report.common.model.BaseVO;
+import lombok.Data;
+
+/**
+ * 陈述意见DTO类
+ *
+ * @Author 李仁杰
+ * @Date 2023/7/4
+ */
+@Data
+public class ArgumentsQueryDTO extends BaseVO {
+    /**
+     * 权要id
+     */
+    private Integer rightId;
+    /**
+     * 报告id
+     */
+    private Integer reportId;
+
+}

+ 11 - 0
RMS/src/main/java/cn/cslg/report/common/model/dto/invalidReReport/ProofQueryDTO.java

@@ -0,0 +1,11 @@
+package cn.cslg.report.common.model.dto.invalidReReport;
+
+import cn.cslg.report.common.model.BaseVO;
+import lombok.Data;
+
+@Data
+public class ProofQueryDTO extends BaseVO {
+    private Integer reportId;
+    private String orderType;
+
+}

+ 23 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/invalidReReport/ArgumentsQueryVO.java

@@ -0,0 +1,23 @@
+package cn.cslg.report.common.model.vo.invalidReReport;
+
+import cn.cslg.report.common.model.BaseVO;
+import lombok.Data;
+
+/**
+ * 陈述意见DTO类
+ *
+ * @Author 李仁杰
+ * @Date 2023/7/4
+ */
+@Data
+public class ArgumentsQueryVO extends BaseVO {
+    /**
+     * 权要id
+     */
+    private Integer rightId;
+    /**
+     * 报告id
+     */
+    private Integer reportId;
+
+}

+ 34 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/invalidReReport/ArgumentsVO.java

@@ -0,0 +1,34 @@
+package cn.cslg.report.common.model.vo.invalidReReport;
+
+import lombok.Data;
+
+/**
+ * 陈述意见DTO类
+ *
+ * @Author 李仁杰
+ * @Date 2023/7/4
+ */
+@Data
+public class ArgumentsVO {
+
+    /**
+     * 权要id
+     */
+    private Integer rightId;
+
+    /**
+     * 特征id
+     */
+    private Integer featureId;
+
+    /**
+     * 无效证据
+     */
+    private String proofStr;
+
+    /**
+     * 陈述意见
+     */
+    private String argumentStr;
+
+}

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

@@ -41,6 +41,14 @@ public class CompareController {
         return res;
     }
 
+    @RequestMapping(value = "/addSingle", method = RequestMethod.GET)
+    @Operation(summary = "添加单个对比文件")
+    public Integer addSingle(Integer reportId, String PatentNo) throws IOException {
+        Integer res = compareFilesService.addSingle(reportId,PatentNo);
+        return res;
+    }
+
+
     @RequestMapping(value = "/getCompareFile", method = RequestMethod.POST)
     @Operation(summary = "获得对比文件详情(分页)")
     public String getCompareFile(@RequestBody PatentVO patentVO) throws IOException {

+ 10 - 2
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ProofController.java

@@ -2,10 +2,13 @@ package cn.cslg.report.controller.InvalidReReport;
 
 import cn.cslg.report.common.core.base.Constants;
 import cn.cslg.report.common.model.dto.ProofAddNewDTO;
+import cn.cslg.report.common.model.dto.ReportDTO;
 import cn.cslg.report.common.model.dto.ShareReportDTO;
+import cn.cslg.report.common.model.dto.invalidReReport.ProofQueryDTO;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.service.business.InvalidReReport.ProofService;
 import cn.cslg.report.service.business.asso.AssoReportPersonService;
+import com.alibaba.fastjson.JSONObject;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
@@ -44,9 +47,9 @@ public class ProofController {
 
     @Operation(summary = "上传非专利文献证据")
     @PostMapping("/addProofByFile")
-    public String addProofByFile(@RequestBody ProofAddNewDTO proofAddNewDTO, List<MultipartFile> files) {
+    public String addProofByFile(String proofAddNewDTOStr, List<MultipartFile> files) {
+        ProofAddNewDTO proofAddNewDTO = JSONObject.parseObject(proofAddNewDTOStr, ProofAddNewDTO.class);
         log.info("开始处理【上传非专利文献证据】的请求,请求参数为:{}, {}", proofAddNewDTO, files);
-
         proofService.addProofByFile(proofAddNewDTO, files);
         return Response.success();
     }
@@ -57,5 +60,10 @@ public class ProofController {
 //    public String addPatentFile(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
 //        return Response.success(assoReportPersonService.showShare(shareReportDTO));
 //    }
+  @Operation(summary = "查询专利文献列表")
+  @PostMapping("/queryProof")
+public String queryProof(@RequestBody ProofQueryDTO proofAddNewDTO) {
+    return proofService.queryProof(proofAddNewDTO);
+}
 
 }

+ 7 - 0
RMS/src/main/java/cn/cslg/report/entity/CompareFiles.java

@@ -41,4 +41,11 @@ public class CompareFiles extends BaseEntity<CompareFiles> {
     @TableField(value = "SYS_ORDER")
     private Integer SysOrder;
 
+    @TableField(value = "FILE_ID")
+    private Integer fileId;
+
+    @TableField(value = "FILE_NAME")
+    private String fileName ;
+    @TableField(value = "FILE_TYPE")
+    private Integer fileType ;
 }

+ 2 - 0
RMS/src/main/java/cn/cslg/report/entity/invalidReReport/Scratch.java

@@ -16,6 +16,8 @@ import java.util.Date;
 @Data
 @TableName(value = "SCRATCH")
 public class Scratch extends BaseEntity<Scratch> {
+    @TableField("REPORT_ID")
+    private String reportId ;
     /**
      * 划词内容
      */

+ 19 - 0
RMS/src/main/java/cn/cslg/report/mapper/InvalidReReport/ScratchMapper.java

@@ -0,0 +1,19 @@
+package cn.cslg.report.mapper.InvalidReReport;
+
+import cn.cslg.report.entity.invalidReReport.Arguments;
+import cn.cslg.report.entity.invalidReReport.Scratch;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ *划词Mapper层
+ * @Author 李仁杰
+ * @Date 2023/6/30
+ */
+@Repository
+public interface ScratchMapper extends BaseMapper<Scratch> {
+
+
+}
+

+ 36 - 0
RMS/src/main/java/cn/cslg/report/service/business/CompareFilesService.java

@@ -13,6 +13,7 @@ import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.entity.*;
 import cn.cslg.report.entity.asso.AssoRecordsFeature;
 import cn.cslg.report.entity.asso.AssoTaskPersonel;
+import cn.cslg.report.entity.invalidReReport.Proof;
 import cn.cslg.report.mapper.CompareFilesMapper;
 import cn.cslg.report.service.OutInterfaceService;
 import cn.hutool.core.lang.func.Func;
@@ -200,6 +201,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
         this.saveBatch(compareFiles);
         return Response.success();
     }
+
     /**
      * @param patentVO
      * @return 标的专利号和数量 map
@@ -590,4 +592,38 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
         map.put("selectedTotal", i);
         return Response.success(map);
     }
+
+
+    /**
+     * @param patentVO
+     * @return 标的专利号和数量 map
+     * @throws IOException
+     * @function 根据PatentVO里的条件(分页)模糊查询标的专利号和数量
+     */
+    public Integer addSingle(Integer reportId, String patentNo) throws IOException {
+        CompareFiles compareFiles = new CompareFiles();
+        compareFiles.setFileId(reportId);
+        compareFiles.setPatentNo(patentNo);
+        List<CompareFiles> proofList = this.list(new LambdaQueryWrapper<CompareFiles>().eq(CompareFiles::getReportId, reportId).orderByDesc(CompareFiles::getSysOrder).last("limit 1"));
+        Integer biggestSort;
+        //若该报告目前没有证据,则最大排序序号设为0;若有则最大排序序号就是当前按序号倒序的第一个证据的排序序号
+        if (proofList == null || proofList.size() == 0) {
+            biggestSort = 0;
+        } else {
+            if (proofList.get(0).getSysOrder() == null) {
+                biggestSort = 0;
+            }
+            else {
+                biggestSort = proofList.get(0).getSysOrder();
+            }
+
+        }
+
+        compareFiles.setSysOrder(biggestSort);
+        compareFiles.setFileType(1);
+        compareFiles.insert();
+        return compareFiles.getId();
+    }
+
+
 }

+ 139 - 1
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ArgumentsService.java

@@ -1,19 +1,157 @@
 package cn.cslg.report.service.business.InvalidReReport;
 
+import cn.cslg.report.common.model.dto.invalidReReport.ArgumentsDTO;
+import cn.cslg.report.common.model.dto.invalidReReport.ArgumentsQueryDTO;
+import cn.cslg.report.common.model.vo.invalidReReport.ArgumentsVO;
+import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.report.entity.invalidReReport.Arguments;
 import cn.cslg.report.entity.invalidReReport.AssoArguments;
+import cn.cslg.report.entity.invalidReReport.Proof;
+import cn.cslg.report.entity.invalidReReport.Scratch;
 import cn.cslg.report.mapper.InvalidReReport.ArgumentsMapper;
 import cn.cslg.report.mapper.InvalidReReport.AssoArgumentsMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.swagger.v3.oas.models.security.SecurityScheme;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 
 @Service
 @Slf4j
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
-public class ArgumentsService extends ServiceImpl<ArgumentsMapper,Arguments> {
+public class ArgumentsService extends ServiceImpl<ArgumentsMapper, Arguments> {
+    private static ProofService proofService;
+    private static LoginUtils loginUtils;
+    private static ScratchService scratchService;
+    private static AssoArgumentsService assoArgumentsService;
+    /**
+     * 添加陈述意见
+     *
+     * @param argumentsDTO
+     */
+    public void addArguments(ArgumentsDTO argumentsDTO) {
+        // 检验参数
+        if (argumentsDTO == null||argumentsDTO.getReportId() == null || argumentsDTO.getFeatureId() == null || argumentsDTO.getRightId() == null||argumentsDTO.getProofId()==null) {
+            return;
+        }
+        Integer  loginId=loginUtils.getId();
+        //装载陈述意见实体类
+        Arguments arguments = new Arguments();
+        BeanUtils.copyProperties(argumentsDTO, arguments);
+        arguments.setCreateId(loginId);
+        arguments.insert();
+        //若划词不为空
+        if(argumentsDTO.getContent()!=null){
+            Scratch scratch =new Scratch();
+            BeanUtils.copyProperties(argumentsDTO,scratch);
+            //根据证据类型获得证据的专利号
+           Proof proof = proofService.getById(arguments.getProofId());
+           String patenNo =proof.getPatentNo();
+           scratch.setPatentNo(patenNo);
+           scratch.setCreateId(loginId);
+           scratch.insert();
+        }
+
+
+    }
+
+    /**
+     * 查询陈述意见详情
+     *
+     * @param argumentsId
+     */
+    public ArgumentsVO queryArgumentsDetail(Integer argumentsId) {
+      //判断argumentsId是否为空
+        if(argumentsId==null){
+            return null;
+        }
+        ArgumentsVO argumentsVO =new ArgumentsVO();
+      //根据argumentsId查询陈述意见
+     Arguments arguments =this.getById(argumentsId);
+        BeanUtils.copyProperties(arguments,argumentsVO);
+        //根据证据id获得专利号
+        Proof proof =proofService.getById(arguments.getProofId());
+        if(proof.getPatentNo()!=null){
+            //根据专利号和报告id获得划词内容
+            LambdaQueryWrapper<Scratch> scratchLambdaQueryWrapper =new LambdaQueryWrapper<>();
+            scratchLambdaQueryWrapper.eq(Scratch::getPatentNo,proof.getPatentNo());
+            scratchLambdaQueryWrapper.eq(Scratch::getReportId,arguments.getReportId());
+            List<Scratch> scratchList =scratchService.list(scratchLambdaQueryWrapper);
+            if(scratchList.size()>0){
+                Scratch scratch =scratchList.get(0);
+                BeanUtils.copyProperties(scratch,argumentsVO);
+            }
+        }
+
+        return argumentsVO;
+    }
+
+    /**
+     * 删除陈述意见详情
+     *
+     * @param argumentsIds
+     */
+    public void deleteArguments(List<Integer> argumentsIds) {
+        //判断argumentsId是否为空
+        if(argumentsIds==null){
+            return ;
+        }
+        //判断陈述意见方案中是否有正在使用的陈述意见
+        LambdaQueryWrapper<AssoArguments> assoArgumentsWrapper=new LambdaQueryWrapper<>();
+        assoArgumentsWrapper.in(AssoArguments::getArgumentId,argumentsIds);
+        List<AssoArguments> assoArguments =assoArgumentsService.list(assoArgumentsWrapper);
+        if(assoArguments.size()>0){
+            return ;
+        }
+        //根据argumentsId查询陈述意见
+        LambdaQueryWrapper<Arguments> argumentsWrapper=new LambdaQueryWrapper<>();
+        argumentsWrapper.in(Arguments::getId,argumentsIds);
+        List<Arguments> arguments =this.list(argumentsWrapper);
+        List<Integer> proofIds =arguments.stream().map(Arguments::getProofId).collect(Collectors.toList());
+        //根据proofIds获得proof
+        LambdaQueryWrapper<Proof> proofWrapper =new LambdaQueryWrapper<>();
+        proofWrapper.in(Proof::getId,proofIds);
+        List<Proof> proofs = proofService.list(proofWrapper);
+        List<String> patentNos =proofs.stream().map(Proof::getPatentNo).collect(Collectors.toList());
+        if(patentNos.size()>0){
+            //根据专利号和报告id获得划词内容
+            LambdaQueryWrapper<Scratch> scratchLambdaQueryWrapper =new LambdaQueryWrapper<>();
+            scratchLambdaQueryWrapper.in(Scratch::getPatentNo,patentNos);
+            scratchLambdaQueryWrapper.eq(Scratch::getReportId,arguments.get(0).getReportId());
+            scratchService.remove(scratchLambdaQueryWrapper);
+        }
+         this.remove(argumentsWrapper);
+        return ;
+    }
+
+    /**
+     * 查询陈述意见列表
+     *
+     * @param argumentsQueryDTO
+     */
+    public void queryArguments(ArgumentsQueryDTO argumentsQueryDTO) {
+        //判断reportId是否为空
+        if(argumentsQueryDTO.getReportId()==null){
+            return;
+        }
+        LambdaQueryWrapper<Arguments> argumentsLambdaQueryWrapper =new LambdaQueryWrapper<>();
+        argumentsLambdaQueryWrapper.eq(Arguments::getReportId,argumentsQueryDTO.getReportId());
+        if(argumentsQueryDTO.getReportId()!=null){
+            argumentsLambdaQueryWrapper.eq(Arguments::getRightId,argumentsQueryDTO.getRightId());
+        }
+
+
+
+
+    }
 
 }

+ 1 - 2
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ProofDetailService.java

@@ -11,8 +11,7 @@ import cn.cslg.report.exception.XiaoShiException;
 import cn.cslg.report.mapper.InvalidReReport.ProofDetailMapper;
 import cn.cslg.report.mapper.TemplateMapper;
 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 lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;

+ 47 - 4
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ProofService.java

@@ -2,18 +2,18 @@ package cn.cslg.report.service.business.InvalidReReport;
 
 import cn.cslg.report.common.model.dto.ProofAddNewDTO;
 import cn.cslg.report.common.model.dto.UploadFileDTO;
+import cn.cslg.report.common.model.dto.invalidReReport.ProofQueryDTO;
 import cn.cslg.report.common.model.vo.PersonnelVO;
-import cn.cslg.report.common.utils.CacheUtils;
-import cn.cslg.report.common.utils.FileUtils;
-import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.common.model.vo.invalidReReport.ProofVO;
+import cn.cslg.report.common.utils.*;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
-import cn.cslg.report.common.utils.ThrowException;
 import cn.cslg.report.entity.Template;
 import cn.cslg.report.entity.invalidReReport.Proof;
 import cn.cslg.report.mapper.InvalidReReport.ProofMapper;
 import cn.cslg.report.mapper.TemplateMapper;
 import cn.cslg.report.service.business.ReportFileService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.Query;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -83,5 +83,48 @@ public class ProofService extends ServiceImpl<ProofMapper, Proof> {
 
     }
 
+    /**
+     * 分页查询证据
+     * @param proofAddNewDTO
+     * @return
+     */
+    public String queryProof(ProofQueryDTO proofAddNewDTO){
+        Integer reportId =proofAddNewDTO.getReportId();
+        Integer current =proofAddNewDTO.getCurrent();
+        Integer size =proofAddNewDTO.getSize();
+        String orderType =proofAddNewDTO.getOrderType();
+        if(reportId==null||current==null||size==null){
+            return "" ;
+        }
+        LambdaQueryWrapper<Proof> wrapper =new LambdaQueryWrapper<>();
+        wrapper.eq(Proof::getReportId,reportId);
+        if("desc".equals(orderType)){
+            wrapper.orderByDesc(Proof::getSort);
+        }
+        else {
+            wrapper.orderByAsc(Proof::getSort);
+        }
+        List<Proof> proofs =this.page(new Page<>(current,size),wrapper).getRecords();
+        List<ProofVO> proofVOS =this.loadProof(proofs);
+        long count = this.count(wrapper);
+        return Response.success(proofVOS, DataUtils.setPageColumn(size, current, Math.toIntExact(count)));
+    }
 
+    private List<ProofVO> loadProof(List<Proof> proofs){
+       List<ProofVO> proofVOS =new ArrayList<>();
+        proofs.forEach(item->{
+            ProofVO proofVO =new ProofVO();
+            if(item.getProofType().equals(1)) {
+                proofVO.setProofType("专利文献");
+                proofVO.setProofName(item.getPatentNo());
+            }
+            else if(item.getProofType().equals(2)){
+                proofVO.setProofType("非专利文献");
+                proofVO.setProofName(item.getProofName());
+            }
+            proofVO.setSortStr("D"+item.getSort());
+            proofVOS.add(proofVO);
+        });
+        return proofVOS;
+    }
 }

+ 29 - 0
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ScratchService.java

@@ -0,0 +1,29 @@
+package cn.cslg.report.service.business.InvalidReReport;
+
+import cn.cslg.report.common.model.dto.invalidReReport.ArgumentsDTO;
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.Template;
+import cn.cslg.report.entity.invalidReReport.Scratch;
+import cn.cslg.report.mapper.InvalidReReport.ScratchMapper;
+import cn.cslg.report.mapper.TemplateMapper;
+
+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 lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class ScratchService extends ServiceImpl<ScratchMapper, Scratch> {
+
+
+
+}