lyhzzz hai 1 ano
pai
achega
f1990d0267

+ 3 - 0
src/main/java/com/fdkankan/fusion/controller/FusionGuidePathController.java

@@ -29,6 +29,9 @@ public class FusionGuidePathController {
 
     @GetMapping("/allList")
     public ResultData allList(@RequestParam(required = false) Integer guideId){
+        if(guideId == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
         return ResultData.ok(fusionGuidePathService.getListByGuideId(guideId));
     }
 

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

@@ -28,4 +28,8 @@ public interface ICaseViewService extends IService<CaseView> {
     void deleteByNum(String num);
 
     void hideOrShow(String num,Integer hide);
+
+    List<CaseView> getByCaseId(Integer oldCaseId);
+
+    List<CaseView> getByFusionId(Integer oldFusionId);
 }

+ 4 - 0
src/main/java/com/fdkankan/fusion/service/IFusionMeterService.java

@@ -26,4 +26,8 @@ public interface IFusionMeterService extends IService<FusionMeter> {
     void deleteByFusionNumIds(List<Integer> fusionNunIds);
 
     void hideOrShow( List<Integer> fusionNumIds, Integer hide);
+
+    List<FusionMeter> getByFusionId(Integer oldFusionId);
+
+    List<FusionMeter> getByFusionNumId(Integer oldFusionNumId);
 }

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

@@ -36,4 +36,6 @@ public interface IFusionNumService extends IService<FusionNum> {
     void deleteById(Integer fusionNumId);
 
     void hideOrShow(Integer modelId, String num,Integer hide);
+
+    List<FusionNum> getByFusionId(Integer oldFusionId);
 }

+ 4 - 0
src/main/java/com/fdkankan/fusion/service/ITmMessageService.java

@@ -4,6 +4,8 @@ import com.fdkankan.fusion.entity.TmMessage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.fusion.request.MessageReqDto;
 
+import java.util.List;
+
 /**
  * <p>
  * 留言信息表 服务类
@@ -17,4 +19,6 @@ public interface ITmMessageService extends IService<TmMessage> {
     void addNew(MessageReqDto body);
 
     Object pageList(MessageReqDto messageReqDto);
+
+    List<TmMessage> getByProjectId(String oldProjectId);
 }

+ 6 - 4
src/main/java/com/fdkankan/fusion/service/ITmProjectService.java

@@ -44,9 +44,11 @@ public interface ITmProjectService extends IService<TmProject> {
 
     List<DataGroupVo> groupByDeptId(DataParam param);
 
-    List<DataGroupVo> groupByMonth(DataParam param,List<String> deptIds);
+    List<DataGroupVo> groupByMonth(DataParam param, List<String> deptIds);
 
-    List<DataGroupVo> groupByPlace(DataParam param,List<String> deptIds);
+    List<DataGroupVo> groupByPlace(DataParam param, List<String> deptIds);
 
-    List<DataGroupVo> groupByReason(DataParam param,List<String> deptIds);
-}
+    List<DataGroupVo> groupByReason(DataParam param, List<String> deptIds);
+
+    String setCaseNewName(TmProject tmProject);
+}

+ 14 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseViewServiceImpl.java

@@ -120,4 +120,18 @@ public class CaseViewServiceImpl extends ServiceImpl<ICaseViewMapper, CaseView>
         wrapper.set(CaseView::getBindHide,hide);
         this.update(wrapper);
     }
+
+    @Override
+    public List<CaseView> getByCaseId(Integer oldCaseId) {
+        LambdaQueryWrapper<CaseView> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseView::getCaseId,oldCaseId);
+        return this.list(wrapper);
+    }
+
+    @Override
+    public List<CaseView> getByFusionId(Integer oldFusionId) {
+        LambdaQueryWrapper<CaseView> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseView::getFusionId,oldFusionId);
+        return this.list(wrapper);
+    }
 }

+ 146 - 4
src/main/java/com/fdkankan/fusion/service/impl/CopyCaseService.java

@@ -2,6 +2,8 @@ package com.fdkankan.fusion.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.fusion.common.ResultCode;
+import com.fdkankan.fusion.common.enums.IdPreEnum;
+import com.fdkankan.fusion.common.util.IdUtils;
 import com.fdkankan.fusion.common.util.UploadToOssUtil;
 import com.fdkankan.fusion.entity.*;
 import com.fdkankan.fusion.exception.BusinessException;
@@ -44,14 +46,24 @@ public class CopyCaseService {
     ICaseVideoFolderService caseVideoFolderService;
     @Autowired
     ICaseVideoService caseVideoService;
-
-
+    @Autowired
+    ICaseViewService caseViewService;
+    @Autowired
+    IFusionGuideService fusionGuideService;
+    @Autowired
+    IFusionGuidePathService fusionGuidePathService;
+    @Autowired
+    IFusionNumService fusionNumService;
+    @Autowired
+    IFusionMeterService fusionMeterService;
+    @Autowired
+    ITmProjectService projectService;
+    @Autowired
+    ITmMessageService tmMessageService;
 
 
     @Autowired
     UploadToOssUtil uploadToOssUtil;
-    @Value("${upload.query-path}")
-    private String queryPath;
 
 
     public void copyCase(Integer oldCaseId){
@@ -66,6 +78,8 @@ public class CopyCaseService {
         this.cpCaseSettingsResource(oldCaseId,newCaseId);
         this.cpCaseTag(oldCaseId,newCaseId);
         this.cpCaseVideo(oldCaseId,newCaseId);
+        this.cpCaseViewByCaseId(oldCaseId,newCaseId);
+        this.cpFusionGuide(oldCaseId,newCaseId);
     }
 
 
@@ -78,12 +92,38 @@ public class CopyCaseService {
         if(caseEntity == null){
             throw new BusinessException(ResultCode.CASE_NOT_EXIST);
         }
+        String oldProjectId = caseEntity.getTmProjectId();
         caseEntity.setCaseId(null);
         caseEntity.setCaseTitle(caseEntity.getCaseTitle()+"(copy)");
+        String newProjectId = cpProject(oldProjectId);
+        caseEntity.setTmProjectId(newProjectId);
         caseService.save(caseEntity);
         return caseEntity.getCaseId();
     }
 
+    private String cpProject(String oldProjectId) {
+        TmProject tmProject = projectService.getById(oldProjectId);
+        String newId = IdUtils.genId(IdPreEnum.PROJECT_PRE.getPre());
+        tmProject.setId(newId);
+        tmProject.setProjectSn(tmProject.getProjectSn() +"(copy)");
+        tmProject.setCaseNewName(projectService.setCaseNewName(tmProject));
+        projectService.save(tmProject);
+        cpMessage(oldProjectId,newId);
+        return  newId;
+    }
+
+    private void cpMessage(String oldProjectId, String newId) {
+        List<TmMessage> messages = tmMessageService.getByProjectId(oldProjectId);
+        if(messages == null || messages.isEmpty()){
+            return;
+        }
+        for (TmMessage message : messages) {
+            message.setId(IdUtils.genId(IdPreEnum.MESSAGE_PRE.getPre()));
+            message.setProjectId(newId);
+            tmMessageService.save(message);
+        }
+    }
+
     /**
      * 复制案件提取清单
      */
@@ -121,9 +161,13 @@ public class CopyCaseService {
             return;
         }
         for (CaseFusion entity : listByCaseId) {
+            Integer oldFusionId = entity.getFusionId();
             entity.setFusionId(null);
             entity.setCaseId(newCaseId);
             caseFusionService.save(entity);
+
+            cpCaseViewByFusionId(oldFusionId,entity.getFusionId(),newCaseId);
+            cpFusionNum(oldFusionId,entity.getFusionId());
         }
     }
 
@@ -279,5 +323,103 @@ public class CopyCaseService {
         }
     }
 
+    /**
+     * 复制案件视图提取
+     */
+    private void cpCaseViewByCaseId(Integer oldCaseId, Integer newCaseId) {
+        List<CaseView> listByCaseId = caseViewService.getByCaseId(oldCaseId);
+        if(listByCaseId == null || listByCaseId.isEmpty()){
+            return;
+        }
+        for (CaseView entity : listByCaseId) {
+            if(entity.getFusionId() != null){
+                continue;
+            }
+            entity.setViewId(null);
+            entity.setCaseId(newCaseId);
+            caseViewService.save(entity);
+        }
+    }
+
+    private void cpCaseViewByFusionId(Integer oldFusionId, Integer newFusionId,Integer newCaseId) {
+        List<CaseView> listByCaseId = caseViewService.getByFusionId(oldFusionId);
+        if(listByCaseId == null || listByCaseId.isEmpty()){
+            return;
+        }
+        for (CaseView entity : listByCaseId) {
+            entity.setViewId(null);
+            entity.setFusionId(newFusionId+"");
+            entity.setCaseId(newCaseId);
+            caseViewService.save(entity);
+        }
+    }
+
+
+    /**
+     * 复制案件导览
+     */
+    private void cpFusionGuide(Integer oldCaseId, Integer newCaseId) {
+        List<FusionGuide> listByCaseId = fusionGuideService.getAllList(oldCaseId);
+        if(listByCaseId == null || listByCaseId.isEmpty()){
+            return;
+        }
+        for (FusionGuide entity : listByCaseId) {
+            Integer oldGuideId =entity.getFusionGuideId();
+
+            entity.setFusionGuideId(null);
+            entity.setCaseId(newCaseId);
+            fusionGuideService.save(entity);
+
+            Integer newGuideId = entity.getFusionGuideId();
+
+            List<FusionGuidePath> listByGuideId = fusionGuidePathService.getListByGuideId(oldGuideId);
+            if(listByGuideId == null || listByGuideId.isEmpty()){
+                continue;
+            }
+            for (FusionGuidePath byId : listByGuideId) {
+                byId.setGuidePathId(null);
+                byId.setGuideId(newGuideId);
+                fusionGuidePathService.save(byId);
+            }
+
+        }
+    }
+
+    /**
+     * 复制案件编辑器ID
+     */
+    private void cpFusionNum(Integer oldFusionId, Integer newFusionId) {
+        List<FusionNum> listByCaseId = fusionNumService.getByFusionId(oldFusionId);
+        if(listByCaseId == null || listByCaseId.isEmpty()){
+            return;
+        }
+        for (FusionNum entity : listByCaseId) {
+            Integer oldFusionNumId = entity.getFusionNumId();
+            entity.setFusionNumId(null);
+            entity.setFusionId(newFusionId);
+            fusionNumService.save(entity);
+
+            Integer newFusionNumId = entity.getFusionNumId();
 
+            cpFusionMeter(oldFusionNumId,newFusionNumId,newFusionId);
+        }
+    }
+
+    /**
+     * 复制案件测量数据
+     */
+    private void cpFusionMeter(Integer oldFusionNumId, Integer newFusionNumId,Integer newFusionId) {
+        List<FusionMeter> listByCaseId = fusionMeterService.getByFusionNumId(oldFusionNumId);
+        if(listByCaseId == null || listByCaseId.isEmpty()){
+            return;
+        }
+        for (FusionMeter entity : listByCaseId) {
+            String oldPosition = entity.getPosition();
+            entity.setFusionMeterId(null);
+            entity.setFusionId(newFusionId);
+            String newPosition = oldPosition.replaceAll("\"fusionNumId\":\""+oldFusionNumId+"\"","\"fusionNumId\":\""+newFusionNumId+"\"");
+            entity.setPosition(newPosition);
+            fusionMeterService.save(entity);
+        }
+    }
 }

+ 0 - 3
src/main/java/com/fdkankan/fusion/service/impl/FusionGuidePathServiceImpl.java

@@ -33,9 +33,6 @@ public class FusionGuidePathServiceImpl extends ServiceImpl<IFusionGuidePathMapp
 
     @Override
     public List<FusionGuidePath> getListByGuideId(Integer guideId) {
-        if(guideId == null){
-            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
-        }
         LambdaQueryWrapper<FusionGuidePath> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(FusionGuidePath::getGuideId,guideId);
         wrapper.orderByAsc(FusionGuidePath::getSort);

+ 14 - 0
src/main/java/com/fdkankan/fusion/service/impl/FusionMeterServiceImpl.java

@@ -100,4 +100,18 @@ public class FusionMeterServiceImpl extends ServiceImpl<IFusionMeterMapper, Fusi
             this.update(wrapper);
         }
     }
+
+    @Override
+    public List<FusionMeter> getByFusionId(Integer oldFusionId) {
+        LambdaQueryWrapper<FusionMeter> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(FusionMeter::getFusionId,oldFusionId);
+        return list(wrapper);
+    }
+
+    @Override
+    public List<FusionMeter> getByFusionNumId(Integer oldFusionNumId) {
+        LambdaQueryWrapper<FusionMeter> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(FusionMeter::getPosition,"\"fusionNumId\":\""+oldFusionNumId+"\"");
+        return list(wrapper);
+    }
 }

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

@@ -275,4 +275,12 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
         fusionMeterService.hideOrShow(fusionNumIds,hide);
         caseTagPointService.hideOrShow(fusionNumIds,hide);
     }
+
+
+    @Override
+    public List<FusionNum> getByFusionId(Integer oldFusionId) {
+        LambdaQueryWrapper<FusionNum> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(FusionNum::getFusionId,oldFusionId);
+        return this.list(wrapper);
+    }
 }

+ 8 - 0
src/main/java/com/fdkankan/fusion/service/impl/TmMessageServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fdkankan.fusion.service.impl;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -83,4 +84,11 @@ public class TmMessageServiceImpl extends ServiceImpl<ITmMessageMapper, TmMessag
         }
         return PageInfo.PageInfo(page);
     }
+
+    @Override
+    public List<TmMessage> getByProjectId(String oldProjectId) {
+        LambdaQueryWrapper<TmMessage> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TmMessage::getProjectId,oldProjectId);
+        return this.list(wrapper);
+    }
 }

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

@@ -261,7 +261,8 @@ public class TmProjectServiceImpl extends ServiceImpl<ITmProjectMapper, TmProjec
         caseService.save(caseEntity);
     }
 
-    private String setCaseNewName(TmProject tmProject) {
+    @Override
+    public String setCaseNewName(TmProject tmProject) {
         String name = "";
         if(StringUtils.isNotBlank(tmProject.getProjectAddress())){
             name += tmProject.getProjectAddress();