zero 10 months ago
parent
commit
396dc39d04

+ 1 - 1
src/main/java/cn/cslg/wdc/common/core/auth/Response.java

@@ -2,7 +2,7 @@ package cn.cslg.wdc.common.core.auth;
 
 
 
 
 import cn.cslg.wdc.common.utils.JsonUtils;
 import cn.cslg.wdc.common.utils.JsonUtils;
-import cn.cslg.wdc.vo.common.BaseVO;
+import cn.cslg.wdc.entity.common.BaseVO;
 
 
 public class Response {
 public class Response {
 
 

+ 11 - 0
src/main/java/cn/cslg/wdc/config/WebSocketConfig.java

@@ -0,0 +1,11 @@
+package cn.cslg.wdc.config;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class WebSocketConfig {
+//    @Bean
+//    public ServerEndpointExporter serverEndpointExporter() {
+//        return new ServerEndpointExporter();
+//    }
+}

+ 28 - 0
src/main/java/cn/cslg/wdc/controller/WordDiffCompareController.java

@@ -1,11 +1,39 @@
 package cn.cslg.wdc.controller;
 package cn.cslg.wdc.controller;
 
 
 import cn.cslg.wdc.common.core.base.Constants;
 import cn.cslg.wdc.common.core.base.Constants;
+import cn.cslg.wdc.dto.DiscrepancyIdDTO;
+import cn.cslg.wdc.dto.SelectCaseInfoDTO;
+import cn.cslg.wdc.service.CaseFileService;
+import cn.cslg.wdc.service.DiscrepancyService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
 @RequestMapping(Constants.API_XiaoSHI + "/wordDiffCompare")
 @RequestMapping(Constants.API_XiaoSHI + "/wordDiffCompare")
 @RestController
 @RestController
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class WordDiffCompareController {
 public class WordDiffCompareController {
 
 
+    @Autowired
+    private CaseFileService caseFileService;
+
+    @Autowired
+    private DiscrepancyService discrepancyService;
+
+    @Operation(summary = "查询案件信息")
+    @PostMapping("/selectCaseInfoList")
+    public String selectCaseInfoList(@RequestBody SelectCaseInfoDTO vo){
+        return caseFileService.selectCaseInfoList(vo);
+    }
+
+    @Operation(summary = "查询差异信息")
+    @PostMapping("/selectDiscrepancy")
+    public String selectDiscrepancy(@RequestBody DiscrepancyIdDTO vo){
+        return discrepancyService.selectDiscrepancy(vo);
+    }
 }
 }

+ 9 - 0
src/main/java/cn/cslg/wdc/dto/DiscrepancyIdDTO.java

@@ -0,0 +1,9 @@
+package cn.cslg.wdc.dto;
+
+import lombok.Data;
+
+@Data
+public class DiscrepancyIdDTO {
+
+    private Integer discrepancyId;
+}

+ 26 - 0
src/main/java/cn/cslg/wdc/dto/SelectCaseInfoDTO.java

@@ -2,6 +2,32 @@ package cn.cslg.wdc.dto;
 
 
 import lombok.Data;
 import lombok.Data;
 
 
+import java.util.Date;
+
 @Data
 @Data
 public class SelectCaseInfoDTO {
 public class SelectCaseInfoDTO {
+
+    private String caseNo;
+
+    private String title;
+
+    private String customer;
+
+    private String writer;
+
+    private String auditor;
+
+    private Date completionDate;
+
+    private Double firstBegin;
+
+    private Double firstEnd;
+
+    private Double secondBegin;
+
+    private Double secondEnd;
+
+    private Long current;
+
+    private Long size;
 }
 }

+ 3 - 0
src/main/java/cn/cslg/wdc/entity/Discrepancy.java

@@ -27,4 +27,7 @@ public class Discrepancy extends BaseEntity<Discrepancy> {
      */
      */
     @TableField(value = "discrepancy_type")
     @TableField(value = "discrepancy_type")
     private Integer discrepancyType;
     private Integer discrepancyType;
+
+    @TableField(value = "full_text_rate")
+    private Double fullTextRate;
 }
 }

+ 2 - 2
src/main/java/cn/cslg/wdc/entity/DiscrepancyDetail.java

@@ -30,8 +30,8 @@ public class DiscrepancyDetail extends BaseEntity<DiscrepancyDetail>{
     private String diffContent;
     private String diffContent;
 
 
     @TableField(value = "rate")
     @TableField(value = "rate")
-    private String rate;
+    private Double rate;
 
 
     @TableField(value = "similarity")
     @TableField(value = "similarity")
-    private String similarity;
+    private Double similarity;
 }
 }

+ 1 - 1
src/main/java/cn/cslg/wdc/vo/common/BaseVO.java

@@ -1,4 +1,4 @@
-package cn.cslg.wdc.vo.common;
+package cn.cslg.wdc.entity.common;
 
 
 import lombok.Data;
 import lombok.Data;
 import lombok.experimental.Accessors;
 import lombok.experimental.Accessors;

+ 11 - 0
src/main/java/cn/cslg/wdc/entity/common/Records.java

@@ -0,0 +1,11 @@
+package cn.cslg.wdc.entity.common;
+
+import lombok.Data;
+
+@Data
+public class Records {
+    private Long current;
+    private Long size;
+    private Long total;
+    private Object data;
+}

+ 9 - 0
src/main/java/cn/cslg/wdc/mapper/CaseFileMapper.java

@@ -1,9 +1,18 @@
 package cn.cslg.wdc.mapper;
 package cn.cslg.wdc.mapper;
 
 
+import cn.cslg.wdc.dto.SelectCaseInfoDTO;
 import cn.cslg.wdc.entity.CaseFile;
 import cn.cslg.wdc.entity.CaseFile;
+import cn.cslg.wdc.vo.SelectCaseInfoVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface CaseFileMapper extends BaseMapper<CaseFile> {
 public interface CaseFileMapper extends BaseMapper<CaseFile> {
+
+    List<SelectCaseInfoVO> selectCaseInfoList(@Param("vo")SelectCaseInfoDTO vo);
+
+    Long selectCaseInfoCount(@Param("vo")SelectCaseInfoDTO vo);
 }
 }

+ 59 - 12
src/main/java/cn/cslg/wdc/service/CaseFileService.java

@@ -1,8 +1,10 @@
 package cn.cslg.wdc.service;
 package cn.cslg.wdc.service;
 
 
+import cn.cslg.wdc.common.core.auth.Response;
 import cn.cslg.wdc.common.exception.XiaoShiException;
 import cn.cslg.wdc.common.exception.XiaoShiException;
 import cn.cslg.wdc.common.utils.FileUtils;
 import cn.cslg.wdc.common.utils.FileUtils;
 import cn.cslg.wdc.common.utils.ReadExcelUtils;
 import cn.cslg.wdc.common.utils.ReadExcelUtils;
+import cn.cslg.wdc.dto.SelectCaseInfoDTO;
 import cn.cslg.wdc.dto.common.GetBaseInfoByWDDTO;
 import cn.cslg.wdc.dto.common.GetBaseInfoByWDDTO;
 import cn.cslg.wdc.dto.common.GetCaseInfoByWDDTO;
 import cn.cslg.wdc.dto.common.GetCaseInfoByWDDTO;
 import cn.cslg.wdc.dto.common.GetPatentActionByWDDTO;
 import cn.cslg.wdc.dto.common.GetPatentActionByWDDTO;
@@ -12,6 +14,7 @@ import cn.cslg.wdc.entity.CaseFile;
 import cn.cslg.wdc.entity.Discrepancy;
 import cn.cslg.wdc.entity.Discrepancy;
 import cn.cslg.wdc.entity.DiscrepancyDetail;
 import cn.cslg.wdc.entity.DiscrepancyDetail;
 import cn.cslg.wdc.entity.common.PatentData;
 import cn.cslg.wdc.entity.common.PatentData;
+import cn.cslg.wdc.entity.common.Records;
 import cn.cslg.wdc.mapper.AssoCaseFileMapper;
 import cn.cslg.wdc.mapper.AssoCaseFileMapper;
 import cn.cslg.wdc.mapper.CaseFileMapper;
 import cn.cslg.wdc.mapper.CaseFileMapper;
 import cn.cslg.wdc.mapper.DiscrepancyDetailMapper;
 import cn.cslg.wdc.mapper.DiscrepancyDetailMapper;
@@ -19,6 +22,8 @@ import cn.cslg.wdc.mapper.DiscrepancyMapper;
 import cn.cslg.wdc.service.common.CosineSimilarityService;
 import cn.cslg.wdc.service.common.CosineSimilarityService;
 import cn.cslg.wdc.service.common.FileManagerService;
 import cn.cslg.wdc.service.common.FileManagerService;
 import cn.cslg.wdc.service.common.GetReportInfoFromWDService;
 import cn.cslg.wdc.service.common.GetReportInfoFromWDService;
+import cn.cslg.wdc.vo.SelectAssoCaseFileVO;
+import cn.cslg.wdc.vo.SelectCaseInfoVO;
 import cn.cslg.wdc.vo.common.GetBaseInfoByWDVO;
 import cn.cslg.wdc.vo.common.GetBaseInfoByWDVO;
 import cn.cslg.wdc.vo.common.GetCaseInfoByWDVO;
 import cn.cslg.wdc.vo.common.GetCaseInfoByWDVO;
 import cn.cslg.wdc.vo.common.TableRowsVO;
 import cn.cslg.wdc.vo.common.TableRowsVO;
@@ -39,7 +44,6 @@ import org.apache.commons.text.diff.EditScript;
 import org.apache.commons.text.diff.StringsComparator;
 import org.apache.commons.text.diff.StringsComparator;
 import org.apache.poi.hwpf.extractor.WordExtractor;
 import org.apache.poi.hwpf.extractor.WordExtractor;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.jsoup.Jsoup;
 import org.jsoup.Jsoup;
@@ -118,7 +122,7 @@ public class CaseFileService extends ServiceImpl<CaseFileMapper, CaseFile> {
      *
      *
      * @return
      * @return
      */
      */
-    @Scheduled(cron = "0 0 1 * * ?")
+//    @Scheduled(cron = "0 0 1 * * ?")
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
     public void getCaseInfoByHanding() throws Exception {
     public void getCaseInfoByHanding() throws Exception {
         System.out.println("新申请递交中类型的案件相关信息开始导入-----importBegin");
         System.out.println("新申请递交中类型的案件相关信息开始导入-----importBegin");
@@ -278,7 +282,7 @@ public class CaseFileService extends ServiceImpl<CaseFileMapper, CaseFile> {
      *
      *
      * @return
      * @return
      */
      */
-    @Scheduled(cron = "0 0 3 * * ?")
+//    @Scheduled(cron = "0 0 3 * * ?")
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Throwable.class)
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Throwable.class)
     public void getCaseInfoByFinish() throws Exception {
     public void getCaseInfoByFinish() throws Exception {
         System.out.println("新申请完成类型的案件相关信息开始导入-----importBegin");
         System.out.println("新申请完成类型的案件相关信息开始导入-----importBegin");
@@ -473,14 +477,14 @@ public class CaseFileService extends ServiceImpl<CaseFileMapper, CaseFile> {
             Map<Object, Object> patentDataMap = patentData.getMap();
             Map<Object, Object> patentDataMap = patentData.getMap();
             String caseNo = patentDataMap.get("我方文号").toString();
             String caseNo = patentDataMap.get("我方文号").toString();
             String completionDate = patentDataMap.get("完成日").toString();
             String completionDate = patentDataMap.get("完成日").toString();
+            String writer = patentDataMap.get("案件处理人").toString();
+            String auditor = patentDataMap.get("案件核稿人").toString();
             CaseFile caseFile = caseFileMapper.selectOne(new LambdaQueryWrapper<CaseFile>()
             CaseFile caseFile = caseFileMapper.selectOne(new LambdaQueryWrapper<CaseFile>()
                     .eq(CaseFile::getCaseNo, caseNo));
                     .eq(CaseFile::getCaseNo, caseNo));
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
             if (ObjectUtils.isEmpty(caseFile)) {
             if (ObjectUtils.isEmpty(caseFile)) {
                 String title = patentDataMap.get("案件名称").toString();
                 String title = patentDataMap.get("案件名称").toString();
                 String customer = patentDataMap.get("客户名称").toString();
                 String customer = patentDataMap.get("客户名称").toString();
-                String writer = patentDataMap.get("案件处理人").toString();
-                String auditor = patentDataMap.get("案件核稿人").toString();
 
 
                 CaseFile caseFile1 = new CaseFile();
                 CaseFile caseFile1 = new CaseFile();
                 caseFile1.setCaseNo(caseNo);
                 caseFile1.setCaseNo(caseNo);
@@ -495,13 +499,19 @@ public class CaseFileService extends ServiceImpl<CaseFileMapper, CaseFile> {
                 caseFile1.insert();
                 caseFile1.insert();
                 list.add(caseNo);
                 list.add(caseNo);
             } else {
             } else {
-                if (caseFile.getCompletionDate() == null) {
+                if (caseFile.getCompletionDate() == null || StringUtils.isEmpty(caseFile.getWriter()) || StringUtils.isEmpty(caseFile.getAuditor())) {
                     caseFile.setId(caseFile.getId());
                     caseFile.setId(caseFile.getId());
                     if (StringUtils.isNotEmpty(completionDate)) {
                     if (StringUtils.isNotEmpty(completionDate)) {
                         Date finishDate = format.parse(completionDate);
                         Date finishDate = format.parse(completionDate);
                         caseFile.setCompletionDate(finishDate);
                         caseFile.setCompletionDate(finishDate);
-                        caseFile.updateById();
                     }
                     }
+                    if (StringUtils.isNotEmpty(writer)) {
+                        caseFile.setWriter(writer);
+                    }
+                    if (StringUtils.isNotEmpty(auditor)) {
+                        caseFile.setAuditor(auditor);
+                    }
+                    caseFile.updateById();
                 }
                 }
             }
             }
         }
         }
@@ -823,7 +833,7 @@ public class CaseFileService extends ServiceImpl<CaseFileMapper, CaseFile> {
                         discrepancy.setDiscrepancyType(1);
                         discrepancy.setDiscrepancyType(1);
                         discrepancy.insert();
                         discrepancy.insert();
 
 
-                        this.getFile(assoCaseFile1.getFileGuid(), assoCaseFile2.getFileGuid(), discrepancy.getId(), assoCaseFile1.getFileName(), assoCaseFile2.getFileName());
+                        this.getDiscrepancyByFile(assoCaseFile1.getFileGuid(), assoCaseFile2.getFileGuid(), discrepancy.getId(), assoCaseFile1.getFileName(), assoCaseFile2.getFileName());
                     }
                     }
                 }
                 }
                 if (ObjectUtils.isNotEmpty(assoCaseFile2) && ObjectUtils.isNotEmpty(assoCaseFile3)) {
                 if (ObjectUtils.isNotEmpty(assoCaseFile2) && ObjectUtils.isNotEmpty(assoCaseFile3)) {
@@ -838,7 +848,7 @@ public class CaseFileService extends ServiceImpl<CaseFileMapper, CaseFile> {
                         discrepancy.setDiscrepancyType(2);
                         discrepancy.setDiscrepancyType(2);
                         discrepancy.insert();
                         discrepancy.insert();
 
 
-                        this.getFile(assoCaseFile2.getFileGuid(), assoCaseFile3.getFileGuid(), discrepancy.getId(), assoCaseFile2.getFileName(), assoCaseFile3.getFileName());
+                        this.getDiscrepancyByFile(assoCaseFile2.getFileGuid(), assoCaseFile3.getFileGuid(), discrepancy.getId(), assoCaseFile2.getFileName(), assoCaseFile3.getFileName());
                     }
                     }
                 }
                 }
             }
             }
@@ -856,7 +866,7 @@ public class CaseFileService extends ServiceImpl<CaseFileMapper, CaseFile> {
      * @param fileName2
      * @param fileName2
      * @throws IOException
      * @throws IOException
      */
      */
-    public void getFile(String guid1, String guid2, Integer discrepancyId, String fileName1, String fileName2) throws IOException {
+    public void getDiscrepancyByFile(String guid1, String guid2, Integer discrepancyId, String fileName1, String fileName2) throws IOException {
         byte[] bytes = fileManagerService.downloadSystemFileFromFMS(guid1);
         byte[] bytes = fileManagerService.downloadSystemFileFromFMS(guid1);
         File tempFile = null;
         File tempFile = null;
         if (fileName1.endsWith(".doc")) {
         if (fileName1.endsWith(".doc")) {
@@ -1073,9 +1083,14 @@ public class CaseFileService extends ServiceImpl<CaseFileMapper, CaseFile> {
             detail.setDelWorldCount(delSum);
             detail.setDelWorldCount(delSum);
             detail.setDiffType(type);
             detail.setDiffType(type);
             detail.setDiffContent(html3);
             detail.setDiffContent(html3);
-            detail.setRate(diff.toString());
-            detail.setSimilarity(String.format("%.6f", similarity));
+            detail.setRate(diff.doubleValue());
+            detail.setSimilarity(similarity);
             detail. insert();
             detail. insert();
+            if (type == 1) {
+                Discrepancy discrepancy = discrepancyMapper.selectById(discrepancyId);
+                discrepancy.setFullTextRate(diff.doubleValue());
+                discrepancy.updateById();
+            }
         }
         }
 
 
         // 关闭文档
         // 关闭文档
@@ -1086,4 +1101,36 @@ public class CaseFileService extends ServiceImpl<CaseFileMapper, CaseFile> {
         }
         }
     }
     }
 
 
+
+    public String selectCaseInfoList(SelectCaseInfoDTO vo) {
+        List<SelectCaseInfoVO> caseInfoVOS = caseFileMapper.selectCaseInfoList(vo);
+        if (!CollectionUtils.isEmpty(caseInfoVOS)) {
+            for (SelectCaseInfoVO caseInfoVO : caseInfoVOS) {
+                Integer caseId = caseInfoVO.getCaseId();
+                List<AssoCaseFile> caseFiles = assoCaseFileMapper.selectList(new LambdaQueryWrapper<AssoCaseFile>()
+                        .eq(AssoCaseFile::getCaseId, caseId));
+                if (!CollectionUtils.isEmpty(caseFiles)) {
+                    List<SelectAssoCaseFileVO> fileVOS = new ArrayList<>();
+                    caseFiles.forEach(i -> {
+                        SelectAssoCaseFileVO fileVO = new SelectAssoCaseFileVO();
+                        fileVO.setAssoCaseFileId(i.getId());
+                        fileVO.setCaseId(i.getCaseId());
+                        fileVO.setFileType(i.getFileType());
+                        fileVO.setFileName(i.getFileName());
+                        fileVO.setFileGuid(i.getFileGuid());
+                        fileVOS.add(fileVO);
+                    });
+                    caseInfoVO.setAssoCaseFileVOList(fileVOS);
+                }
+            }
+        }
+        Long count = caseFileMapper.selectCaseInfoCount(vo);
+        Records records = new Records();
+        records.setTotal(count);
+        records.setCurrent(vo.getCurrent());
+        records.setSize(vo.getSize());
+        records.setData(caseInfoVOS);
+        return Response.success(records);
+    }
+
 }
 }

+ 34 - 0
src/main/java/cn/cslg/wdc/service/DiscrepancyService.java

@@ -1,17 +1,51 @@
 package cn.cslg.wdc.service;
 package cn.cslg.wdc.service;
 
 
+import cn.cslg.wdc.common.core.auth.Response;
+import cn.cslg.wdc.dto.DiscrepancyIdDTO;
+import cn.cslg.wdc.entity.AssoCaseFile;
 import cn.cslg.wdc.entity.Discrepancy;
 import cn.cslg.wdc.entity.Discrepancy;
+import cn.cslg.wdc.entity.DiscrepancyDetail;
+import cn.cslg.wdc.mapper.AssoCaseFileMapper;
+import cn.cslg.wdc.mapper.DiscrepancyDetailMapper;
 import cn.cslg.wdc.mapper.DiscrepancyMapper;
 import cn.cslg.wdc.mapper.DiscrepancyMapper;
+import cn.cslg.wdc.vo.SelectDiscrepanyInfoVO;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.List;
+
 
 
 @Slf4j
 @Slf4j
 @Service
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class DiscrepancyService extends ServiceImpl<DiscrepancyMapper, Discrepancy> {
 public class DiscrepancyService extends ServiceImpl<DiscrepancyMapper, Discrepancy> {
 
 
+    @Autowired
+    private AssoCaseFileMapper assoCaseFileMapper;
+
+    @Autowired
+    private DiscrepancyDetailMapper discrepancyDetailMapper;
+
+    public String selectDiscrepancy(DiscrepancyIdDTO vo) {
+        Discrepancy discrepancy = this.getById(vo.getDiscrepancyId());
+        SelectDiscrepanyInfoVO infoVO = new SelectDiscrepanyInfoVO();
+        infoVO.setDiscrepancyId(discrepancy.getId());
+        infoVO.setDiscrepancyType(discrepancy.getDiscrepancyType());
+        infoVO.setCaseId(discrepancy.getCaseId());
+        infoVO.setCaseFileId1(discrepancy.getCaseFileId1());
+        AssoCaseFile caseFile1 = assoCaseFileMapper.selectById(discrepancy.getCaseFileId1());
+        infoVO.setCaseFileName1(caseFile1.getFileName());
+        infoVO.setCaseFileId2(discrepancy.getCaseFileId2());
+        AssoCaseFile caseFile2 = assoCaseFileMapper.selectById(discrepancy.getCaseFileId2());
+        infoVO.setCaseFileName2(caseFile2.getFileName());
+        List<DiscrepancyDetail> discrepancyDetails = discrepancyDetailMapper.selectList(new LambdaQueryWrapper<DiscrepancyDetail>()
+                .eq(DiscrepancyDetail::getDiscrepancyId, discrepancy.getId()));
+        infoVO.setDiscrepancyDetails(discrepancyDetails);
+        return Response.success(infoVO);
+    }
 }
 }

+ 17 - 0
src/main/java/cn/cslg/wdc/vo/SelectAssoCaseFileVO.java

@@ -0,0 +1,17 @@
+package cn.cslg.wdc.vo;
+
+import lombok.Data;
+
+@Data
+public class SelectAssoCaseFileVO {
+
+    private Integer assoCaseFileId;
+
+    private Integer caseId;
+
+    private String fileName;
+
+    private Integer fileType;
+
+    private String fileGuid;
+}

+ 27 - 0
src/main/java/cn/cslg/wdc/vo/SelectCaseInfoVO.java

@@ -2,6 +2,33 @@ package cn.cslg.wdc.vo;
 
 
 import lombok.Data;
 import lombok.Data;
 
 
+import java.util.Date;
+import java.util.List;
+
 @Data
 @Data
 public class SelectCaseInfoVO {
 public class SelectCaseInfoVO {
+
+    private Integer caseId;
+
+    private String caseNo;
+
+    private String title;
+
+    private String customer;
+
+    private String writer;
+
+    private String auditor;
+
+    private Date completionDate;
+
+    private Integer firstDiscrepancyId;
+
+    private Double firstDiffRate;
+
+    private Integer secondDiscrepancyId;
+
+    private Double secondDiffRate;
+
+    private List<SelectAssoCaseFileVO> assoCaseFileVOList;
 }
 }

+ 26 - 0
src/main/java/cn/cslg/wdc/vo/SelectDiscrepanyInfoVO.java

@@ -0,0 +1,26 @@
+package cn.cslg.wdc.vo;
+
+import cn.cslg.wdc.entity.DiscrepancyDetail;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SelectDiscrepanyInfoVO {
+
+    private Integer discrepancyId;
+
+    private Integer caseId;
+
+    private Integer discrepancyType;
+
+    private Integer caseFileId1;
+
+    private String caseFileName1;
+
+    private Integer caseFileId2;
+
+    private String caseFileName2;
+
+    private List<DiscrepancyDetail> discrepancyDetails;
+}

+ 105 - 0
src/main/resources/mapper/CaseFileMapper.xml

@@ -1,4 +1,109 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <?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" >
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="cn.cslg.wdc.mapper.CaseFileMapper">
 <mapper namespace="cn.cslg.wdc.mapper.CaseFileMapper">
+
+    <select id="selectCaseInfoList" resultType="cn.cslg.wdc.vo.SelectCaseInfoVO">
+        SELECT
+        cf.id as caseId,
+        cf.case_no,
+        cf.title,
+        cf.customer,
+        cf.writer,
+        cf.auditor,
+        cf.completion_date,
+        dis1.id as firstDiscrepancyId,
+        dis1.full_text_rate AS firstDiffRate,
+        dis2.id as secondDiscrepancyId,
+        dis2.full_text_rate AS secondDiffRate
+        FROM
+        case_file cf
+        LEFT JOIN
+        (SELECT id, case_id, full_text_rate FROM discrepancy WHERE discrepancy_type = 1) dis1
+        ON cf.id = dis1.case_id
+        LEFT JOIN
+        (SELECT id, case_id, full_text_rate FROM discrepancy WHERE discrepancy_type = 2) dis2
+        ON cf.id = dis2.case_id
+        <where>
+            <if test="vo.caseNo != null and vo.caseNo != ''">
+                cf.case_no = #{vo.caseNo}
+            </if>
+            <if test="vo.title != null and vo.title != ''">
+                and cf.title like concat('%',#{vo.title},'%')
+            </if>
+            <if test="vo.customer != null and vo.customer != ''">
+                and cf.customer like concat('%',#{vo.customer},'%')
+            </if>
+            <if test="vo.writer != null and vo.writer != ''">
+                and cf.writer like concat('%',#{vo.writer},'%')
+            </if>
+            <if test="vo.auditor != null and vo.auditor != ''">
+                and cf.auditor like concat('%',#{vo.auditor},'%')
+            </if>
+            <if test="vo.completionDate != null">
+                and cf.completion_date = #{vo.completionDate}
+            </if>
+            <if test="vo.firstBegin != null">
+                and dis1.full_text_rate &gt;= #{vo.firstBegin}
+            </if>
+            <if test="vo.firstEnd != null">
+                and dis1.full_text_rate &lt;= #{vo.firstEnd}
+            </if>
+            <if test="vo.secondBegin != null">
+                and dis2.full_text_rate &gt;= #{vo.secondBegin}
+            </if>
+            <if test="vo.secondEnd != null">
+                and dis2.full_text_rate &lt;= #{vo.secondEnd}
+            </if>
+        </where>
+        order by cf.create_time desc
+        <if test="vo.current != null and vo.size != null">
+            limit
+            ${(vo.current -1) * vo.size},${vo.size}
+        </if>
+    </select>
+
+    <select id="selectCaseInfoCount" resultType="java.lang.Long">
+        select count(*)
+        FROM
+        case_file cf
+        LEFT JOIN
+        (SELECT id, case_id, full_text_rate FROM discrepancy WHERE discrepancy_type = 1) dis1
+        ON cf.id = dis1.case_id
+        LEFT JOIN
+        (SELECT id, case_id, full_text_rate FROM discrepancy WHERE discrepancy_type = 2) dis2
+        ON cf.id = dis2.case_id
+        <where>
+            <if test="vo.caseNo != null and vo.caseNo != ''">
+                cf.case_no = #{vo.caseNo}
+            </if>
+            <if test="vo.title != null and vo.title != ''">
+                and cf.title like concat('%',#{vo.title},'%')
+            </if>
+            <if test="vo.customer != null and vo.customer != ''">
+                and cf.customer like concat('%',#{vo.customer},'%')
+            </if>
+            <if test="vo.writer != null and vo.writer != ''">
+                and cf.writer like concat('%',#{vo.writer},'%')
+            </if>
+            <if test="vo.auditor != null and vo.auditor != ''">
+                and cf.auditor like concat('%',#{vo.auditor},'%')
+            </if>
+            <if test="vo.completionDate != null">
+                and cf.completion_date = #{vo.completionDate}
+            </if>
+            <if test="vo.firstBegin != null">
+                and dis1.full_text_rate &gt;= #{vo.firstBegin}
+            </if>
+            <if test="vo.firstEnd != null">
+                and dis1.full_text_rate &lt;= #{vo.firstEnd}
+            </if>
+            <if test="vo.secondBegin != null">
+                and dis2.full_text_rate &gt;= #{vo.secondBegin}
+            </if>
+            <if test="vo.secondEnd != null">
+                and dis2.full_text_rate &lt;= #{vo.secondEnd}
+            </if>
+        </where>
+    </select>
+
 </mapper>
 </mapper>

+ 2 - 1
src/test/java/cn/cslg/wdc/WdcApplicationTests.java

@@ -1,6 +1,7 @@
 package cn.cslg.wdc;
 package cn.cslg.wdc;
 
 
 import cn.cslg.wdc.common.exception.XiaoShiException;
 import cn.cslg.wdc.common.exception.XiaoShiException;
+import cn.cslg.wdc.dto.SelectCaseInfoDTO;
 import cn.cslg.wdc.dto.common.SectionDiffCommandVisitor;
 import cn.cslg.wdc.dto.common.SectionDiffCommandVisitor;
 import cn.cslg.wdc.entity.AssoCaseFile;
 import cn.cslg.wdc.entity.AssoCaseFile;
 import cn.cslg.wdc.entity.CaseFile;
 import cn.cslg.wdc.entity.CaseFile;
@@ -68,7 +69,7 @@ class WdcApplicationTests {
         Integer s = 8;
         Integer s = 8;
         String s3 = "241023-P20241102-PACN2417839-翻译方法、翻译装置、电子设备以及计算机可读存储介质-专利申请文件-v1F.docx";
         String s3 = "241023-P20241102-PACN2417839-翻译方法、翻译装置、电子设备以及计算机可读存储介质-专利申请文件-v1F.docx";
         String s4 = "241024-S2435631-测试卷-压缩包-语音翻译方法及装置、电子设备以及计算机可读存储介质-新申请文档-定稿.docx";
         String s4 = "241024-S2435631-测试卷-压缩包-语音翻译方法及装置、电子设备以及计算机可读存储介质-新申请文档-定稿.docx";
-        caseFileService.getFile(s1, s2, s, s3, s4);
+        caseFileService.getDiscrepancyByFile(s1, s2, s, s3, s4);
         System.out.println("AAAAAA");
         System.out.println("AAAAAA");
 
 
 //        final Long count = discrepancyService.getBaseMapper().selectCount(new LambdaQueryWrapper<Discrepancy>());
 //        final Long count = discrepancyService.getBaseMapper().selectCount(new LambdaQueryWrapper<Discrepancy>());

+ 33 - 0
src/test/java/cn/cslg/wdc/WordDiffCompareTest.java

@@ -0,0 +1,33 @@
+package cn.cslg.wdc;
+
+import cn.cslg.wdc.dto.SelectCaseInfoDTO;
+import cn.cslg.wdc.service.CaseFileService;
+import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@SpringBootTest
+@RunWith(SpringRunner.class)
+public class WordDiffCompareTest {
+
+    @Autowired
+    private CaseFileService caseFileService;
+
+    @Test
+    public void selectCaseInfoList() {
+        SelectCaseInfoDTO vo = new SelectCaseInfoDTO();
+        vo.setCurrent(1L);
+        vo.setSize(10L);
+//        vo.setCaseNo("S2435631-测试卷-压缩包");
+//        vo.setTitle("机构");
+//        vo.setCustomer("深圳");
+//        vo.setWriter();
+//        vo.setAuditor();
+        vo.setFirstBegin(0.564D);
+        vo.setFirstEnd(5.214d);
+        String infoList = caseFileService.selectCaseInfoList(vo);
+        System.out.println(infoList);
+    }
+}