Quellcode durchsuchen

删除 2022/12/9

lwhhszx vor 2 Jahren
Ursprung
Commit
d11003c02c

+ 0 - 1
RMS/src/main/java/cn/cslg/report/controller/TaskController.java

@@ -31,7 +31,6 @@ public class TaskController {
     private final TaskService taskService;
     private final BaseService baseService;
     private final ImportTaskService importTaskService;
-    private final ReportFieldService reportFieldService;
 
     @RequestMapping(value = "/deleteTask", method = RequestMethod.POST)
     @Operation(summary = "删除任务")

+ 10 - 0
RMS/src/main/java/cn/cslg/report/service/business/CompareScenariosService.java

@@ -134,6 +134,16 @@ public class CompareScenariosService extends ServiceImpl<CompareScenariosMapper,
 
     }
 
+    /**
+     * @DESCRIPTION 根据报告ID删除对比方案
+     * @param reportId 报告ID
+     * @return
+     */
+    public Boolean deleteByReportId(Integer reportId){
+         LambdaQueryWrapper<CompareScenarios> queryWrapper =new LambdaQueryWrapper<>();
+         queryWrapper.eq(CompareScenarios::getReportId,reportId);
+        return  this.remove(queryWrapper);
+    }
 
 
 }

+ 1 - 0
RMS/src/main/java/cn/cslg/report/service/business/FeatureService.java

@@ -397,6 +397,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
     public Integer delByReportId(int reportId){
         LambdaQueryWrapper<Features> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(Features::getReportId,reportId);
+        this.remove(queryWrapper);
   List<Features> features =this.list(queryWrapper);
 //  List<Integer> featureIds =features
         return 1;

+ 3 - 3
RMS/src/main/java/cn/cslg/report/service/business/ReportDocumentService.java

@@ -231,9 +231,9 @@ public class ReportDocumentService extends ServiceImpl<ReportDocumentMapper, Rep
             //创造性列表
             List<String> creativeFiles = new ArrayList<>();
             //当前方案所有的特征Id
-            partFeatures.forEach(
+            records.forEach(
                     item -> {
-                        String tmName = item.getSignPatentNo();
+                        String tmName = item.getPatentNo();
                         if (OtherName.containsKey(tmName)) {
                             tmName = OtherName.get(tmName).toString();
                         }
@@ -241,7 +241,7 @@ public class ReportDocumentService extends ServiceImpl<ReportDocumentMapper, Rep
                             creativeFiles.add(tmName);}
                     }
             );
-            List<AssoScenarIOS> andRecords = partScenariosRecords.stream().filter(tm -> tm.getScenariosID().equals(item1.getId())).collect(Collectors.toList());
+            List<AssoScenarIOS> andRecords = partScenariosRecords.stream().filter(tm -> tm.getScenariosID().equals(item1.getId())&&tm.getFeaturesID()!=0).collect(Collectors.toList());
             if (andRecords.size() != 0) {
                 creativeFiles.add("C");
             }

+ 15 - 1
RMS/src/main/java/cn/cslg/report/service/business/ReportFieldService.java

@@ -72,7 +72,7 @@ private  final  AssoTaskPersonelService assoTaskPersonelService;
        return Response.success();
     }
 
-  @Transactional
+  @Transactional(rollbackFor = Exception.class)
   public String delete(Integer id) {
       this.removeById(id);
       reportFieldTextService.deleteByFieldId(id);
@@ -82,6 +82,20 @@ private  final  AssoTaskPersonelService assoTaskPersonelService;
         return Response.success(true);
    }
 
+   //根据报告Id删除自定义字段
+    @Transactional(rollbackFor = Exception.class)
+    public String deleteByReportId(Integer id) {
+        LambdaQueryWrapper<ReportField> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(ReportField::getReportId,id);
+        List<ReportField> reportFields =this.list(queryWrapper);
+        reportFieldTextService.deleteByFieldId(id);
+        reportFieldOptionService.deleteByFieldId(id);
+        reportFieldTreeService.deleteByFieldId(id);
+        reportFieldPatentLinkService.deleteByFieldId(id);
+        this.remove(queryWrapper);
+        return Response.success(true);
+    }
+
    //获得自定义字段列表
   public String getPageList(ReportFieldVO reportFieldVO){
       LambdaQueryWrapper<ReportField> queryWrapper = new LambdaQueryWrapper<>();

+ 1 - 0
RMS/src/main/java/cn/cslg/report/service/business/ReportReferencesService.java

@@ -143,6 +143,7 @@ public class ReportReferencesService extends ServiceImpl<ReportReferencesMapper,
         //删除对应的文件
         reportFileService.removeByIds( list.stream().map(AssoReportReferences::getFileID).collect(Collectors.toList()));
         assoReportReferencesService.remove(wrapper);
+
        return Response.success();
 
     }

+ 57 - 44
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -47,12 +47,16 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     private final AssoReportFileService assoReportFileService;
     private final ReportFileService reportFileService;
     private final AssoTaskPersonelService assoTaskPersonelService;
+    private final TaskService taskService;
+    private final FeatureService featureService;
+    private final CompareScenariosService compareScenariosService;
+
     /**
      * @param report 报告类
      * @author 沈永艺
      */
     @Transactional(rollbackFor = Exception.class)
-    public Integer addReport(Report report ,List<MultipartFile> files) {
+    public Integer addReport(Report report, List<MultipartFile> files) {
         try {
             report.getScenarioList();
             report.setScenarioId(StringUtils.join(report.getScenarioList(), ","));
@@ -71,12 +75,12 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
             report.setClientName(clientName);
             report.setDepartmentName(map.get("departName").toString());
             report.setPersonName(map.get("personName").toString());
-            PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
+            PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
             report.setCreatePersonId(personnelVO.getId());
             report.setCreatePersonName(personnelVO.getName());
             boolean addFlag = this.save(report);
 
-            if (files!=null&&files.size() != 0) {
+            if (files != null && files.size() != 0) {
                 //将文档上传并返回文件入库的Id
                 List<Integer> fileIds = reportFileService.uploadFiles(files);
                 assoReportFileService.addAsso(report.getId(), fileIds);
@@ -84,7 +88,7 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
             }
 
             if (addFlag) {
-              reportFieldService.addDefaultField(report.getId(),report.getType());
+                reportFieldService.addDefaultField(report.getId(), report.getType());
                 return report.getId();
             } else {
                 return 0;
@@ -126,17 +130,18 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     }
 
     public List<Report> reportData(List<Report> reports) throws IOException {
-        List<Integer> reportIds =reports.stream().map(Report::getId).collect(Collectors.toList());
-        List<AssoReportFile> assoReportFiles=assoReportFileService.queryFileByReportId(reportIds);
-        List<ReportFiles> reportFilesList =new ArrayList<>();
-        if(assoReportFiles.size()!=0){
-        List<Integer> fileIds =assoReportFiles.stream().map(AssoReportFile::getFileId).collect(Collectors.toList());
-         reportFilesList =reportFileService.getFiles(fileIds);}
+        List<Integer> reportIds = reports.stream().map(Report::getId).collect(Collectors.toList());
+        List<AssoReportFile> assoReportFiles = assoReportFileService.queryFileByReportId(reportIds);
+        List<ReportFiles> reportFilesList = new ArrayList<>();
+        if (assoReportFiles.size() != 0) {
+            List<Integer> fileIds = assoReportFiles.stream().map(AssoReportFile::getFileId).collect(Collectors.toList());
+            reportFilesList = reportFileService.getFiles(fileIds);
+        }
 
         String res = outInterfaceService.getDictsFromPAS();
         JSONObject jsonObject = JSONObject.parseObject(res);
-        List<SystemDictVO> list = JSONArray.parseArray(jsonObject.getString("data"),SystemDictVO.class);
-        List<ReportFiles> temList=reportFilesList;
+        List<SystemDictVO> list = JSONArray.parseArray(jsonObject.getString("data"), SystemDictVO.class);
+        List<ReportFiles> temList = reportFilesList;
         reports.forEach(
                 item -> {
                     if (StringUtils.isNotEmpty(item.getScenarioId())) {
@@ -144,9 +149,10 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
                         item.setScenarioNames(list.stream().filter(systemDict -> systemDict.getType().equals(Constants.ENTERPRISE_APPLICATION_SCENARIO) && item.getScenarioList().contains(systemDict.getValue())).map(SystemDictVO::getLabel).collect(Collectors.toList()));
                         item.setScenarioId(null);
                     }
-                  List<AssoReportFile> partReportFiles =assoReportFiles.stream().filter(tem->tem.getReportId().equals(item.getId())).collect(Collectors.toList());
-                    if(partReportFiles.size()==0){ item.setReportFiles(null);}
-                    else {
+                    List<AssoReportFile> partReportFiles = assoReportFiles.stream().filter(tem -> tem.getReportId().equals(item.getId())).collect(Collectors.toList());
+                    if (partReportFiles.size() == 0) {
+                        item.setReportFiles(null);
+                    } else {
                         List<Integer> partFileIds = partReportFiles.stream().map(AssoReportFile::getFileId).collect(Collectors.toList());
                         List<ReportFiles> partFiles = temList.stream().filter(tem -> partFileIds.contains(tem.getId())).collect(Collectors.toList());
                         item.setReportFiles(partFiles);
@@ -158,58 +164,65 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
 
     //更新报告
     @Transactional(rollbackFor = Exception.class)
-    public Boolean updateReport( Report report, List<MultipartFile> files){
+    public Boolean updateReport(Report report, List<MultipartFile> files) {
         // 根据报告Id查询对应的附件Id
-        LambdaQueryWrapper<AssoReportFile> wrapper =new LambdaQueryWrapper<>();
-        wrapper.eq(AssoReportFile::getReportId,report.getId());
-List<AssoReportFile> assoReportFiles= assoReportFileService.list(wrapper);
-List<Integer> fileIds =assoReportFiles.stream().map(AssoReportFile::getFileId).collect(Collectors.toList());
-       // 获得报告更新后的附件Id
-        List<Integer> updateFileId =new ArrayList<>();
-        if(report.getReportFiles()!=null){
-       updateFileId = report.getReportFiles().stream().map(ReportFiles::getId).collect(Collectors.toList());
-            fileIds.removeAll(updateFileId);}
+        LambdaQueryWrapper<AssoReportFile> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(AssoReportFile::getReportId, report.getId());
+        List<AssoReportFile> assoReportFiles = assoReportFileService.list(wrapper);
+        List<Integer> fileIds = assoReportFiles.stream().map(AssoReportFile::getFileId).collect(Collectors.toList());
+        // 获得报告更新后的附件Id
+        List<Integer> updateFileId = new ArrayList<>();
+        if (report.getReportFiles() != null) {
+            updateFileId = report.getReportFiles().stream().map(ReportFiles::getId).collect(Collectors.toList());
+            fileIds.removeAll(updateFileId);
+        }
         //做差获得被删除的文件Id
 
-if(fileIds.size()!=0){
-    //根据文件Id删除报告文件关联表记录
-    LambdaQueryWrapper<AssoReportFile> deleteWrapper = new LambdaQueryWrapper<>();
-    deleteWrapper.in(AssoReportFile::getFileId,fileIds);
-    assoReportFileService.remove(deleteWrapper);
-    //根据文件Id删除文件表记录
-    reportFileService.removeByIds(fileIds);
-}
+        if (fileIds.size() != 0) {
+            //根据文件Id删除报告文件关联表记录
+            LambdaQueryWrapper<AssoReportFile> deleteWrapper = new LambdaQueryWrapper<>();
+            deleteWrapper.in(AssoReportFile::getFileId, fileIds);
+            assoReportFileService.remove(deleteWrapper);
+            //根据文件Id删除文件表记录
+            reportFileService.removeByIds(fileIds);
+        }
 //添加附件
-        if (files!=null&&files.size() != 0) {
+        if (files != null && files.size() != 0) {
             //将文档上传并返回文件入库的Id
             List<Integer> fileIdList = reportFileService.uploadFiles(files);
             assoReportFileService.addAsso(report.getId(), fileIdList);
 
         }
-     return  report.updateById();
+        return report.updateById();
 
     }
 
     //删除报告
     @Transactional(rollbackFor = Exception.class)
-    public String reportDele(int id) throws IOException{
+    public String reportDele(int id) throws IOException {
+        //删除所有和报告有关的任务
+        taskService.deleteTaskByreportId(id);
+        //删除所有和报告有关的特征
+        featureService.delByReportId(id);
+        //删除所有和报告有关的自定义字段
+        reportFieldService.deleteByReportId(id);
+        //删除所有和报告有关的对比方案
+        compareScenariosService.deleteByReportId(id);
         assoTaskPersonelService.deleAssoTaskPersonel(id);
-
-       int  dele  = reportMapper.dele(id);
-        if(dele>0){
+        int dele = reportMapper.dele(id);
+        if (dele > 0) {
             return Response.success();
         }
-        return   Response.error("没有数据");
-
+        return Response.error("没有数据");
     }
-    public String getName(int id) throws IOException{
+
+    public String getName(int id) throws IOException {
         LambdaQueryWrapper<Report> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Report::getId,id);
+        wrapper.eq(Report::getId, id);
         Report report = this.list(wrapper).get(0);
         return report.getName();
 
     }
 
 
-
 }

+ 15 - 0
RMS/src/main/java/cn/cslg/report/service/business/TaskService.java

@@ -59,6 +59,21 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         }
     }
 
+
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean deleteTaskByreportId(Integer id) {
+        try {
+            LambdaQueryWrapper<Task> queryWrapper =new LambdaQueryWrapper<>();
+            queryWrapper.eq(Task::getReportId,id);
+            return  this.remove(queryWrapper);
+        } catch (Exception e) {
+            log.error("删除任务异常,异常信息:" + LogExceptionUtil.getMessage(e));
+            log.info("删除任务异常,开始回滚! 时间: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            log.info("回滚完毕! 时间: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+            return false;
+        }
+    }
     @Transactional(rollbackFor = Exception.class)
     public String updateTask(Task task) {
         try {