Pārlūkot izejas kodu

解决无法删除报告问题,增加近10张外键关联表的数据删除

chendayu 2 gadi atpakaļ
vecāks
revīzija
9b52a00adf

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

@@ -44,8 +44,8 @@ public class CompareController {
 
     @RequestMapping(value = "/addSingle", method = RequestMethod.GET)
     @Operation(summary = "添加单个对比文件")
-    public Integer addSingle(Integer reportId, String patentNo,String name,Integer asCompare) throws IOException {
-        Integer res = compareFilesService.addSingle(reportId, patentNo,name,asCompare);
+    public Integer addSingle(Integer reportId, String patentNo, String name, Integer asCompare) throws IOException {
+        Integer res = compareFilesService.addSingle(reportId, patentNo, name, asCompare);
         return res;
     }
 

+ 17 - 18
RMS/src/main/java/cn/cslg/report/service/business/CompareFilesService.java

@@ -187,7 +187,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
      * @function 根据PatentVO里的条件(分页)模糊查询标的专利号和数量
      */
     public String getCompareFile(PatentVO patentVO) throws IOException {
-        Integer reportId  =patentVO.getReportId();
+        Integer reportId = patentVO.getReportId();
         LambdaQueryWrapper<CompareFiles> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(CompareFiles::getReportId, patentVO.getReportId());
         //根据报告id 获取文件对比表的详情
@@ -604,12 +604,12 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
      * @function 根据PatentVO里的条件(分页)模糊查询标的专利号和数量
      */
     @Transactional(rollbackFor = Exception.class)
-    public Integer addSingle(Integer reportId, String patentNo, String name,Integer asCompare) throws IOException {
-        Integer flag =0;
+    public Integer addSingle(Integer reportId, String patentNo, String name, Integer asCompare) throws IOException {
+        Integer flag = 0;
         //根据报告id查询报告类型
-        Report report =reportService.getById(reportId);
-        int reportType =report.getType();
-        if(reportType==7||(asCompare!=null&&asCompare==1)) {
+        Report report = reportService.getById(reportId);
+        int reportType = report.getType();
+        if (reportType == 7 || (asCompare != null && asCompare == 1)) {
             //先查询,若没有才去入库
             List<CompareFiles> compareFiless = this.list(new LambdaQueryWrapper<CompareFiles>().eq(CompareFiles::getReportId, reportId).eq(CompareFiles::getPatentNo, patentNo));
             CompareFiles compareFiles = new CompareFiles();
@@ -638,8 +638,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
                     return -1;
                 }
             }
-        }
-        else {
+        } else {
             return 1;
         }
         return flag;
@@ -691,9 +690,9 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
                 proofVO.setProofConditions(item.getPatentNo());
             } else if (item.getFileType().equals(2)) {
                 ReportFiles reportFiles1 = reportFile.stream().filter(tem -> tem.getId().equals(item.getFileId())).findFirst().orElse(null);
-              if(reportFiles1!=null) {
-                  proofVO.setProofConditions(reportFiles1.getUrl());
-              }
+                if (reportFiles1 != null) {
+                    proofVO.setProofConditions(reportFiles1.getUrl());
+                }
                 proofVO.setProofType("非专利文献");
             }
             proofVO.setSortStr("D" + item.getSysOrder());
@@ -709,7 +708,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
     //上传非专利文献证据
     public void addProofByFile(ProofAddNewDTO proofAddNewDTO, List<MultipartFile> files) {
         //检查本次请求合法性(是否有上传非专利文献证据)
-        if (proofAddNewDTO==null||proofAddNewDTO.getFileName()==null||proofAddNewDTO.getFileName()=="") {
+        if (proofAddNewDTO == null || proofAddNewDTO.getFileName() == null || proofAddNewDTO.getFileName() == "") {
             ThrowException.throwXiaoShiException("请填写文件名");
         }
         ArrayList<Proof> proofs = new ArrayList<>();
@@ -730,7 +729,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
         CompareFiles proof = new CompareFiles();
         BeanUtils.copyProperties(proofAddNewDTO, proof);  //DTO赋值给实体类(装载报告id、证据名称、备注)
         proof.setFileType(2);  //装载证据类型
-        if(files!=null&&files.size()>0) {
+        if (files != null && files.size() > 0) {
             //上传非专利文献证据文件附件,附件信息入报告系统文件表后,返回附件ids
             List<Integer> fileIds = reportFileService.uploadFiles(files);
             proof.setFileId(fileIds.get(0));  //装载文件id
@@ -745,10 +744,10 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
 
     //删除证据文献
     public String deleteCompareFile(List<Integer> ids) {
-     if(ids==null||ids.size()==0){
-         return Response.error("请至少选择一个证据文献");
-     }
-     this.removeByIds(ids);
-     return Response.success("删除成功");
+        if (ids == null || ids.size() == 0) {
+            return Response.error("请至少选择一个证据文献");
+        }
+        this.removeByIds(ids);
+        return Response.success("删除成功");
     }
 }

+ 36 - 7
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -10,14 +10,11 @@ import cn.cslg.report.entity.*;
 
 import cn.cslg.report.entity.asso.AssoReportFile;
 import cn.cslg.report.entity.asso.AssoReportPerson;
-import cn.cslg.report.entity.invalidReReport.InvalidReReport;
-import cn.cslg.report.entity.invalidReReport.InvalidReason;
+import cn.cslg.report.entity.invalidReReport.*;
 import cn.cslg.report.exception.XiaoShiException;
 import cn.cslg.report.mapper.ReportMapper;
 import cn.cslg.report.service.*;
-import cn.cslg.report.service.business.InvalidReReport.InvalidReReportService;
-import cn.cslg.report.service.business.InvalidReReport.InvalidReasonFieldService;
-import cn.cslg.report.service.business.InvalidReReport.InvalidReasonService;
+import cn.cslg.report.service.business.InvalidReReport.*;
 import cn.cslg.report.service.business.asso.AssoReportPersonService;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -79,6 +76,12 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     private final InvalidReReportService invalidReReportService;
     private final InvalidReasonFieldService invalidReasonFieldService;
     private final InvalidReasonService invalidReasonService;
+    private final ArgumentsService argumentsService;
+    private final AssoPositionFeaturesService assoPositionFeaturesService;
+    private final ProofGroupService proofGroupService;
+    private final AssoProofGroupStrService assoProofGroupStrService;
+    private final InvalidProcessService invalidProcessService;
+    private final ProofStrService proofStrService;
 
     private Report loadReport(ReportDTO reportDto) {
         Report report = new Report();
@@ -503,8 +506,16 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     public String reportDele(int id) throws IOException {
         //删除所有和报告有关的任务
         taskService.deleteTaskByreportId(id);
+        //删除陈述意见表数据
+        argumentsService.remove(new LambdaQueryWrapper<Arguments>().eq(Arguments::getReportId, id));
         //删除所有和报告有关的特征
-        featureService.delByReportId(id);
+        List<Features> features = featureService.list(new LambdaQueryWrapper<Features>().eq(Features::getReportId, id));
+        //删除特征位置关联表数据
+        if (features != null && features.size() > 0) {
+            List<Integer> featureIds = features.stream().map(Features::getId).collect(Collectors.toList());
+            assoPositionFeaturesService.remove(new LambdaQueryWrapper<AssoPositionFeatures>().in(AssoPositionFeatures::getFeaturesID, featureIds));
+            featureService.delByReportId(id);
+        }
         //删除所有和报告有关的自定义字段
         reportFieldService.deleteByReportId(id);
         //删除所有和报告有关的对比方案
@@ -531,7 +542,25 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         //删除与报告关联的表数据
         invalidReReportService.remove(new LambdaQueryWrapper<InvalidReReport>().eq(InvalidReReport::getReportId, id));
         //删除无效理由表数据
-        invalidReasonService.remove(new LambdaQueryWrapper<InvalidReason>().eq(InvalidReason::getReportId, id));
+        List<InvalidReason> invalidReasons = invalidReasonService.list(new LambdaQueryWrapper<InvalidReason>().eq(InvalidReason::getReportId, id));
+        if (invalidReasons != null && invalidReasons.size() > 0) {
+            List<Integer> invalidReasonIds = invalidReasons.stream().map(InvalidReason::getId).collect(Collectors.toList());
+            //删除证据组合表数据
+            List<ProofGroup> proofGroups = proofGroupService.list(new LambdaQueryWrapper<ProofGroup>().in(ProofGroup::getInvalidReasonId, invalidReasonIds));
+            if (proofGroups != null && proofGroups.size() > 0) {
+                List<Integer> proofGroupIds = proofGroups.stream().map(ProofGroup::getId).collect(Collectors.toList());
+                //删除证据组合无效证据关联表数据
+                assoProofGroupStrService.remove(new LambdaQueryWrapper<AssoProofGroupStr>().in(AssoProofGroupStr::getProofGroupId, proofGroupIds));
+                proofGroupService.removeByIds(proofGroupIds);
+            }
+            //删除无效理由表数据
+            invalidReasonService.removeByIds(invalidReasons);
+        }
+        //删除无效事务表数据
+        invalidProcessService.remove(new LambdaQueryWrapper<InvalidProcess>().eq(InvalidProcess::getReportId, id));
+        //删除无效理由证据表数据
+        proofStrService.remove(new LambdaQueryWrapper<ProofStr>().eq(ProofStr::getReportId, id));
+
 
         Boolean dele = this.removeById(id);
         if (dele == true) {