Browse Source

修改删除报表时,如果类型为手动报表,则将相应的数据报表也同时删除了

zhoupeng 1 year ago
parent
commit
d0999e2e7c

+ 18 - 2
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/service/impl/ReportTableServiceImpl.java

@@ -200,6 +200,7 @@ public class ReportTableServiceImpl implements ReportTableService {
     @Override
     public Result delTableTemplateById(Integer id) {
         TableTemplate tableTemplate = reportTableDao.getTableTemplateById(id);
+        Integer templateType = tableTemplate.getTemplateType();
         if (reportTableDao.delTableTemplateById(id) <= 0) {
             return Result.no(ResultEnum.SERVER_ERROR.getRespCode(), "删除报表模板失败");
         }
@@ -212,8 +213,23 @@ public class ReportTableServiceImpl implements ReportTableService {
             reportTableDao.delTtcByTtId(id);
         }
         reportTableDao.delTableTemplateLogByTtId(id);
-        //将相应的报表变为逻辑删除
-        reportTableDao.logicDeleteReportTable(id, tableTemplate.getTemplateType(), ConstantStr.PUBLIC_IS_DELETE);
+        if (templateType.equals(ConstantStr.MANUAL_REPORT)) {
+            ReportTable reportTable = reportTableDao.getReportTableByTemplate(tableTemplate);
+            Integer reportTableId = reportTable.getId();
+            reportTableDao.delReportTableById(reportTableId);
+            reportTableDao.delRtiByRtId(reportTableId);
+            List<ReportChart> reportChartList = reportTableDao.getReportChartList(reportTableId);
+            if (Blank.isNotEmpty(reportChartList)) {
+                for (ReportChart reportChart : reportChartList) {
+                    reportTableDao.delRciByRcId(reportChart.getId());
+                }
+                reportTableDao.delRcByRtId(reportTableId);
+            }
+            reportTableDao.delTableUserGroup(id);
+        } else {
+            //将相应的报表变为逻辑删除
+            reportTableDao.logicDeleteReportTable(id, templateType, ConstantStr.PUBLIC_IS_DELETE);
+        }
         return Result.ok("删除报表模板成功");
     }