lwhhszx vor 2 Jahren
Ursprung
Commit
c50e75e416

+ 28 - 10
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/InvalidReasonService.java

@@ -49,7 +49,7 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
     private final LoginUtils loginUtils;
     private final CompareFilesService compareFilesService;
     private final InvalidReasonFieldValueService invalidReasonFieldValueService;
-
+    private final AssoProofGroupStrService assoProofGroupStrService;
     /**
      * 判断特征是否有重复的方法
      *
@@ -342,17 +342,33 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
                 //复制DTO类字段到InvalidReason实体类并保存入库
                 BeanUtils.copyProperties(invalidReasonDTO, invalidReason);
                 invalidReason.updateById();
-                //删除无效理由的证据组合
-                proofGroupService.deleteProofGroupByInvalid(invalidReason.getId());
                 //根据proofGroups保存proofGroup
                 List<ProofGroupDTO> proofGroupDTOS = new ArrayList<>();
+                List<Integer> noDeleteIds = new ArrayList<>();
                 for (InvalidReasonDTO.ProofGroupIn proofGroupIn : invalidReasonDTO.getProofGroups()) {
-                    ProofGroupDTO proofGroupDTO = new ProofGroupDTO();
-                    proofGroupDTO.setInvalidReasonId(invalidReason.getId());//无效理由id
-                    proofGroupDTO.setDescription(proofGroupIn.getDescription());//描述
-                    proofGroupDTO.setArgumentStr(proofGroupIn.getArgumentStr());//陈述意见
-                    proofGroupDTO.setGroupDetails(proofGroupIn.getGroupDetails());//证据ids
-                    proofGroupDTOS.add(proofGroupDTO);
+                    if (proofGroupIn.getId() != null) {
+                        noDeleteIds .add(proofGroupIn.getId());
+                    } else {
+                        ProofGroupDTO proofGroupDTO = new ProofGroupDTO();
+                        proofGroupDTO.setInvalidReasonId(invalidReason.getId());//无效理由id
+                        proofGroupDTO.setDescription(proofGroupIn.getDescription());//描述
+                        proofGroupDTO.setArgumentStr(proofGroupIn.getArgumentStr());//陈述意见
+                        proofGroupDTO.setGroupDetails(proofGroupIn.getGroupDetails());//证据ids
+                        proofGroupDTOS.add(proofGroupDTO);
+                    }
+                }
+                //删除无效理由的证据组合
+                if(noDeleteIds.size()!=0) {
+                    LambdaQueryWrapper<ProofGroup> lambdaQueryWrapper =new LambdaQueryWrapper<>();
+                    lambdaQueryWrapper.notIn(ProofGroup::getId,noDeleteIds).eq(ProofGroup::getInvalidReasonId,invalidReason.getId());
+                    List<ProofGroup> proofGroups =proofGroupService.list(lambdaQueryWrapper);
+                    List<Integer> deleteIds =proofGroups.stream().map(ProofGroup::getId).collect(Collectors.toList());
+                    if(deleteIds.size()!=0) {
+                        LambdaQueryWrapper<AssoProofGroupStr> queryWrapper = new LambdaQueryWrapper<>();
+                        queryWrapper.in(AssoProofGroupStr::getProofGroupId, deleteIds);
+                        assoProofGroupStrService.remove(queryWrapper);
+                        proofGroupService.removeByIds(deleteIds);
+                    }
                 }
                 proofGroupService.addProofGroup(proofGroupDTOS);
             } else {
@@ -420,7 +436,6 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
         //由于查出来的proofGroups中没有proofIds这个字段,于是采用下面的方法装载成proofGroupVOS
         List<QueryInvalidReasonVO.proofGroupIn> proofGroupIns = this.loadProofGroupVO(proofGroups);
         //根据无效理由id查询自定义字段
-
         //根据无效理由id查询自定义字段值
         LambdaQueryWrapper<InvalidReasonFieldValue> wrapper = new LambdaQueryWrapper<>();
         wrapper.in(InvalidReasonFieldValue::getInvalidReasonId, invalidReasonsIds);
@@ -462,6 +477,7 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
         for (ProofGroup proofGroup : proofGroups) {
             QueryInvalidReasonVO.proofGroupIn proofGroupIn = new QueryInvalidReasonVO.proofGroupIn();
             //基本信息装载
+            proofGroupIn.setId(proofGroup.getId());
             proofGroupIn.setInvalidReasonId(proofGroup.getInvalidReasonId());
             proofGroupIn.setDescription(proofGroup.getDescription());
             proofGroupIn.setArgument_str(proofGroup.getArgumentStr());
@@ -639,6 +655,7 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
         invalidReason.updateById();
         return Response.success("修改成功");
     }
+
     /**
      * 导出无效理由所需的查询
      *
@@ -703,6 +720,7 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
             return null;
         }
     }
+
     /**
      * 根据无效理由id,返回相关证据的字符串
      *

+ 0 - 2
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ProofGroupService.java

@@ -125,8 +125,6 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
             LambdaQueryWrapper<AssoProofGroup> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.in(AssoProofGroup::getGroupId, ids);
             assoProofGroupService.remove(queryWrapper);
-            //根据ids批量删除证据组合
-            this.removeByIds(ids);
             //根据证据组合id批量删除证据组合-无效证据关联
             LambdaQueryWrapper<AssoProofGroupStr> strWrapper = new LambdaQueryWrapper<>();
             strWrapper.in(AssoProofGroupStr::getProofGroupId, ids);

BIN
RMS/target/classes/cn/cslg/report/service/business/CompareFilesService.class