Bläddra i källkod

案件移除场景融合场景中也移除

lyhzzz 3 år sedan
förälder
incheckning
5f343dd1e5

+ 1 - 1
src/main/java/com/fdkankan/fusion/service/ICaseNumService.java

@@ -22,7 +22,7 @@ public interface ICaseNumService extends IService<CaseNumEntity> {
 
     void addBatch(Integer caseId, List<SceneNumParam> sceneNumParam);
 
-    void deleteByCaseId(Integer caseId);
+    void deleteByCaseId(Integer caseId,Boolean rest);
 
     HashMap<Integer, List<String>> getTypeMap(Integer caseId);
 

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/IFusionNumService.java

@@ -28,4 +28,6 @@ public interface IFusionNumService extends IService<FusionNum> {
     void updateModel(FusionParam param);
 
     void deleteByCaseId(Integer caseId);
+
+    void deleteByNumList(Integer caseId,List<String> updateNumList);
 }

+ 8 - 3
src/main/java/com/fdkankan/fusion/service/impl/CaseNumServiceImpl.java

@@ -60,14 +60,16 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
     @Override
     public void addBatch(Integer caseId, List<SceneNumParam> sceneNumParam) {
 
-        this.deleteByCaseId(caseId);
+        this.deleteByCaseId(caseId,true);
 
         List<CaseNumEntity> newCaseNums = new ArrayList<>();
         List<Model> modelList = new ArrayList<>();
+        List<String> updateNumList = new ArrayList<>();
         for (SceneNumParam param : sceneNumParam) {
             List<String> numList = param.getNumList();
             HashSet<String> setNum = new HashSet<>(numList);
             for (String num : setNum) {
+                updateNumList.add(num);
                 CaseNumEntity caseNumEntity = new CaseNumEntity();
                 caseNumEntity.setCaseId(caseId);
                 caseNumEntity.setNumType(param.getType());
@@ -97,6 +99,7 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
         if(modelList.size() >0){
             modelService.saveOrUpdateBatch(modelList);
         }
+        fusionNumService.deleteByNumList(caseId,updateNumList);
     }
 
     private String getGlbUrl(Integer type, String num) {
@@ -126,11 +129,13 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
     }
 
     @Override
-    public void deleteByCaseId(Integer caseId) {
+    public void deleteByCaseId(Integer caseId,Boolean rest) {
         LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(CaseNumEntity::getCaseId,caseId);
         this.remove(wrapper);
-        fusionNumService.deleteByCaseId(caseId);
+        if(!rest){
+            fusionNumService.deleteByCaseId(caseId);
+        }
     }
 
     @Override

+ 1 - 1
src/main/java/com/fdkankan/fusion/service/impl/CaseServiceImpl.java

@@ -144,7 +144,7 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         //删除关联的场景
-        caseNumService.deleteByCaseId(caseId);
+        caseNumService.deleteByCaseId(caseId,false);
 
         this.removeById(caseId);
     }

+ 28 - 0
src/main/java/com/fdkankan/fusion/service/impl/FusionNumServiceImpl.java

@@ -182,4 +182,32 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
             }
         }
     }
+
+    @Override
+    public void deleteByNumList(Integer caseId,List<String> updateNumList) {
+        List<CaseFusion> caseFusionList = caseFusionService.getListByCaseId(caseId);
+        if(caseFusionList.size() >0){
+            List<Integer> fusionIds = caseFusionList.parallelStream().map(CaseFusion::getFusionId).collect(Collectors.toList());
+            if(fusionIds.size() >0){
+                if(updateNumList.size() <=0){
+                    this.deleteByCaseId(caseId);
+                    return;
+                }
+                LambdaQueryWrapper<Model> wrapper = new LambdaQueryWrapper<>();
+                wrapper.in(Model::getNum,updateNumList);
+                List<Model> list = modelService.list(wrapper);
+                if(list.size()<=0){
+                    this.deleteByCaseId(caseId);
+                    return;
+                }
+                List<Integer> modelIds = list.parallelStream().map(Model::getModelId).collect(Collectors.toList());
+                LambdaQueryWrapper<FusionNum> deleteWr = new LambdaQueryWrapper<>();
+                deleteWr.in(FusionNum::getFusionId,fusionIds);
+                deleteWr.notIn(FusionNum::getModelId,modelIds);
+                this.remove(deleteWr);
+            }
+        }
+
+
+    }
 }