lyhzzz 2 年之前
父节点
当前提交
900cb1804b

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

@@ -28,5 +28,5 @@ public interface ICaseNumService extends IService<CaseNumEntity> {
 
     List<CaseNumEntity> getByNum(String num);
 
-    void deleteByNum(Integer caseId,List<String> num);
+    void deleteByNum(Integer caseId,List<String> num,Integer type);
 }

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

@@ -21,7 +21,7 @@ public interface ICaseViewService extends IService<CaseView> {
 
     void updateNameOrSort(CaseView caseView);
 
-    void deleteByNumList(Integer caseId, List<String> updateNumList);
+    void deleteByNumList(Integer caseId, List<String> updateNumList,Integer type);
 
     void deleteByCaseId(Integer caseId);
 

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

@@ -29,7 +29,7 @@ public interface IFusionNumService extends IService<FusionNum> {
 
     void deleteByCaseId(Integer caseId);
 
-    void deleteByNumList(Integer caseId,List<String> updateNumList,boolean del);
+    void deleteByNumList(Integer caseId,List<String> updateNumList,boolean del,Integer type);
 
     void deleteByModelId(Integer modelId);
 

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

@@ -35,7 +35,7 @@ public interface IModelService extends IService<Model> {
 
     List<Model> getListByModelIdStrs(List<String> numList);
 
-    Model getIsNullNewByNum(String num);
+    Model getIsNullNewByNum(String num,Integer type);
 
     Object getInfo(Integer modelId);
 

+ 5 - 4
src/main/java/com/fdkankan/fusion/service/impl/CaseNumServiceImpl.java

@@ -95,7 +95,7 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
                 if(param.getType() == 3){                   //用户上传三维模型跳过
                     continue;
                 }
-                Model model = modelService.getIsNullNewByNum(num);
+                Model model = modelService.getIsNullNewByNum(num,param.getType());
                 model.setModelDateType("obj");
                 model.setType(param.getType());
                 model.setModelType("pointcloud");    //深时点云类型
@@ -200,20 +200,21 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
                     addList.add(num);
                 }
             }
-            this.deleteByNum(caseId,delList);
+            this.deleteByNum(caseId,delList,param.getType());
         }
 
         return addList;
     }
 
     @Override
-    public void deleteByNum(Integer caseId, List<String> delList) {
+    public void deleteByNum(Integer caseId, List<String> delList,Integer type) {
         if(delList.size() >0){
             LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
             wrapper.eq(CaseNumEntity::getCaseId,caseId);
+            wrapper.eq(CaseNumEntity::getNumType,type);
             wrapper.in(CaseNumEntity::getNum,delList);
             this.remove(wrapper);
-            fusionNumService.deleteByNumList(caseId,delList,true);
+            fusionNumService.deleteByNumList(caseId,delList,true,type);
         }
     }
 

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

@@ -98,38 +98,9 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
             }
         }
         //官网删除的场景,删除对应资源
-        List<String> kkNumList = param.getTypeMap().get(0);
-        List<String> kjNumList = param.getTypeMap().get(1);
-        List<String> ssNumList = param.getTypeMap().get(2);
-        List<String> ssObjNumList = param.getTypeMap().get(4);
-        if(kkNumList == null){
-            kkNumList = new ArrayList<>();
-        }
-        if(kjNumList != null && kjNumList.size() >0){
-            kkNumList.addAll(kjNumList);
-        }
-        if(ssNumList != null && ssNumList.size() >0){
-            kkNumList.addAll(ssNumList);
-        }
-        if(ssObjNumList != null && ssObjNumList.size() >0){
-            kkNumList.addAll(ssObjNumList);
-        }
-        if(kkNumList.size() >0){
-            List<String> numList = listAll.parallelStream().map(SceneVo::getNum).collect(Collectors.toList());
-            List<String> delNumList = new ArrayList<>();
-            for (String num : kkNumList) {
-                if(!numList.contains(num)){
-                    delNumList.add(num);
-                }
-            }
-            List<String> delNumList2 = new ArrayList<>();
-            for (SceneVo sceneVo : listAll) {
-                if(sceneVo.getStatus() !=2 && sceneVo.getStatus() !=3){
-                    delNumList2.add(sceneVo.getNum());
-                }
-            }
-            caseNumService.deleteByNum(param.getCaseId(),delNumList);
-            fusionNumService.deleteByNumList(param.getCaseId(),delNumList2,false);
+        for (Integer type : param.getTypeMap().keySet()) {
+            List<String> dbNumList = listAll.stream().filter(entity -> entity.getType().equals(type)).map(SceneVo::getNum).collect(Collectors.toList());
+            this.deleteNotInScene(param.getTypeMap().get(type), dbNumList,type,param.getCaseId(),listAll);
         }
 
         //相机解绑,标注,测量隐藏,视图
@@ -156,6 +127,25 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
         return listAll;
     }
 
+    private void deleteNotInScene(List<String> numList,List<String> obNumList,Integer type,Integer caseId,List<SceneVo> sceneVos) {
+        if(numList.size() >0){
+            List<String> delNumList = new ArrayList<>();
+            for (String num : numList) {
+                if(!obNumList.contains(num)){
+                    delNumList.add(num);
+                }
+            }
+            List<String> delNumList2 = new ArrayList<>();
+            for (SceneVo sceneVo : sceneVos) {
+                if(sceneVo.getStatus() !=2 && sceneVo.getStatus() !=3 && sceneVo.getType().equals(type)){
+                    delNumList2.add(sceneVo.getNum());
+                }
+            }
+            caseNumService.deleteByNum(caseId,delNumList,type);
+            fusionNumService.deleteByNumList(caseId,delNumList2,false,type);
+        }
+    }
+
     @Override
     public void addOrUpdate(CaseParam param, String token) {
         String userName = JwtUtil.getUsername(token);

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

@@ -88,13 +88,14 @@ public class CaseViewServiceImpl extends ServiceImpl<ICaseViewMapper, CaseView>
     }
 
     @Override
-    public void deleteByNumList(Integer caseId, List<String> delNumList) {
+    public void deleteByNumList(Integer caseId, List<String> delNumList,Integer type) {
         if(delNumList.size()<=0){
             return;
         }
         LambdaQueryWrapper<CaseView> queryW = new LambdaQueryWrapper<>();
         queryW.eq(CaseView::getCaseId,caseId);
         queryW.in(CaseView::getNum,delNumList);
+        queryW.eq(CaseView::getNumType,type);
         this.remove(queryW);
     }
 

+ 4 - 2
src/main/java/com/fdkankan/fusion/service/impl/FusionNumServiceImpl.java

@@ -197,7 +197,7 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
      * 删除视图不存在的场景码
      */
     @Override
-    public void deleteByNumList(Integer caseId,List<String> deleteNum,boolean del) {
+    public void deleteByNumList(Integer caseId,List<String> deleteNum,boolean del,Integer type) {
         if(deleteNum.size() <=0){
             return;
         }
@@ -207,9 +207,11 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
             if(fusionIds.size() >0){
                 LambdaQueryWrapper<Model> wrapper = new LambdaQueryWrapper<>();
                 wrapper.in(Model::getNum,deleteNum);
+                wrapper.eq(Model::getType,type);
                 List<Model> list = modelService.list(wrapper);
                 LambdaQueryWrapper<Model> wrapper2 = new LambdaQueryWrapper<>();
                 wrapper2.in(Model::getModelId,deleteNum);
+                wrapper2.eq(Model::getType,type);
                 List<Model> list2 = modelService.list(wrapper);
                 list.addAll(list2);
                 if(list.size()<=0){
@@ -228,7 +230,7 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
                 }
             }
         }
-        caseViewService.deleteByNumList(caseId,deleteNum);
+        caseViewService.deleteByNumList(caseId,deleteNum,type);
     }
 
     @Override

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

@@ -300,9 +300,10 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
     }
 
     @Override
-    public Model getIsNullNewByNum(String num) {
+    public Model getIsNullNewByNum(String num,Integer type) {
         LambdaQueryWrapper<Model> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(Model::getNum,num);
+        wrapper.eq(Model::getType,type);
         Model model = this.getOne(wrapper);
         if(model == null){
             model = new Model();