lyhzzz 2 miesięcy temu
rodzic
commit
1e7f0a67a4

+ 46 - 0
src/main/java/com/fdkankan/fusion/service/impl/SceneDeptShareServiceImpl.java

@@ -2,6 +2,7 @@ package com.fdkankan.fusion.service.impl;
 
 import cn.dev33.satoken.context.SaHolder;
 import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.fusion.common.ResultCode;
@@ -87,9 +88,53 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
         }
         if(param.getCaseId() != null){
             caseService.setMapShow(param.getCaseId(),param.getMapShow());
+            delAndSave(param);
         }
 
+    }
+
+    private void delAndSave(SceneDeptShare param){
+        if(param.getCaseId() != null){
+            List<CaseNumEntity> byCaseId = caseNumService.getByCaseId(param.getCaseId());
+            List<CaseNumEntity> laserNum = byCaseId.stream().filter(e -> NumTypeUtils.isLaser(e.getNumType())).collect(Collectors.toList());
+            List<CaseNumEntity> meshNum = byCaseId.stream().filter(e -> !NumTypeUtils.isLaser(e.getNumType())).collect(Collectors.toList());
+            delAndSaveNum(laserNum,0,param);
+            delAndSaveNum(meshNum,1,param);
 
+            List<CaseFusionRelation> caseFusionRelations = fusionRelationService.getByCaseId(param.getCaseId());
+            List<Integer> fusionIds = caseFusionRelations.stream().map(CaseFusionRelation::getFusionId).collect(Collectors.toList());
+            if(!fusionIds.isEmpty()){
+                LambdaQueryWrapper<SceneDeptShare> delWr = new LambdaQueryWrapper<>();
+                delWr.in(SceneDeptShare::getFusionId,fusionIds);
+                this.remove(delWr);
+                for (CaseFusionRelation caseFusionRelation : caseFusionRelations) {
+                    SceneDeptShare numScene = new SceneDeptShare();
+                    BeanUtil.copyProperties(param,numScene);
+                    numScene.setCaseId(null);
+                    numScene.setFusionId(caseFusionRelation.getFusionId());
+                    this.save(numScene);
+                }
+            }
+        }
+    }
+    private void delAndSaveNum(List<CaseNumEntity> numList,Integer isObj,SceneDeptShare param){
+        if(!numList.isEmpty()){
+            LambdaQueryWrapper<SceneDeptShare> delWr = new LambdaQueryWrapper<>();
+            delWr.in(SceneDeptShare::getNum,numList);
+            delWr.eq(SceneDeptShare::getIsObj,isObj);
+            this.remove(delWr);
+            for (CaseNumEntity caseNumEntity : numList) {
+                if(caseNumEntity.getNumType() == 3){
+                    continue;
+                }
+                SceneDeptShare numScene = new SceneDeptShare();
+                BeanUtil.copyProperties(param,numScene);
+                numScene.setCaseId(null);
+                numScene.setNum(caseNumEntity.getNum());
+                numScene.setIsObj(isObj);
+                this.save(numScene);
+            }
+        }
     }
 
     @Override
@@ -188,6 +233,7 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
                 }
             }
         }
+
         return list;
     }