Browse Source

完成OpcDa驱动配置的基础数据项接口对接,并验证,opcda读取的时候,基础属性存储和附属属性存储是否生效
完成手动报表、自动报表修改模板报表的数据项信息和统计图信息的同时,修改相应报表的数据项信息和统计图信息
完成事件驱动报表,修改模板数据项信息的同时,修改报表的数据项信息
修改数据库报表模板、报表以及相关联的数据项表和统计图表表结构

zhoupeng 1 year ago
parent
commit
9c4742e83c
18 changed files with 404 additions and 257 deletions
  1. 13 31
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/TableTemplate.java
  2. 10 36
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/TableTemplateChart.java
  3. 1 1
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/TableTemplateChartItem.java
  4. 14 50
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/TableTemplateTableItem.java
  5. 2 2
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/dao/DataSourceDao.java
  6. 20 8
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/dao/ReportTableDao.java
  7. 1 1
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/dynamicSchedule/DynamicScheduleConfig.java
  8. 0 4
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/service/impl/DataSourceServiceImpl.java
  9. 17 9
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/service/impl/ItemGroupServiceImpl.java
  10. 25 45
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/service/impl/ReportTableServiceImpl.java
  11. 1 1
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcAsyncTask.java
  12. 1 1
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaChangeTask.java
  13. 1 1
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaExceedTask.java
  14. 1 1
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaFrequencyTask.java
  15. 238 21
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/ReportTableTask.java
  16. 4 4
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/util/OpcDaUtil.java
  17. 4 4
      chaunyi_opc/opc_da/src/main/resources/mapper/DataSourceDao.xml
  18. 51 37
      chaunyi_opc/opc_da/src/main/resources/mapper/ReportTableDao.xml

+ 13 - 31
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/TableTemplate.java

@@ -10,44 +10,26 @@ import java.util.List;
 @Data
 public class TableTemplate implements Serializable {
 
-    /**
-     * id
-     */
+    //id
     private Integer id;
-    /**
-     * 用户id
-     */
+    //用户id
     private String userId;
-    /**
-     * 模板名称
-     */
+    //模板名称(必填)
     private String templateName;
-    /**
-     * 模板类型0手动,1自动,2事件驱动
-     */
+    //模板类型0手动,1自动,2事件驱动(必填)
     private Integer templateType;
-    /**
-     * 模板信息
-     */
+    //模板信息(必填)
     private String templateData;
-    /**
-     * 允许事件驱动数量
-     */
+    //允许事件驱动数量,事件驱动报表时必填
     private Integer eventNum;
-    /**
-     * 版本号
-     */
+    //版本号
     private Integer version;
-    /**
-     * 修改时间
-     */
+    //修改时间
     private Date updateTime;
-    /**
-     * 创建时间
-     */
+    //创建时间
     private Date createTime;
-
-    List<TableTemplateTableItem> tableTemplateItemList=new ArrayList<>();
-
-    List<TableTemplateChart> tableTemplateChartList=new ArrayList<>();
+    //模板表格数据关联的数据项集合
+    List<TableTemplateTableItem> tableTemplateItemList = new ArrayList<>();
+    //模板统计图集合(事件驱动报表时,不能有统计图)
+    List<TableTemplateChart> tableTemplateChartList = new ArrayList<>();
 }

+ 10 - 36
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/TableTemplateChart.java

@@ -10,50 +10,24 @@ import java.util.List;
 @Data
 public class TableTemplateChart implements Serializable {
 
-    /**
-     * id
-     */
+    //id
     private Integer id;
-    /**
-     * 报表模板id
-     */
+    //报表模板id
     private Integer tableTemplateId;
-    /**
-     * 统计图类型,line折线图,bar柱状图,pie饼状图
-     */
+    //统计图类型,line折线图,bar柱状图,pie饼状图(必填)
     private String chartType;
-    /**
-     * 统计图名称
-     */
+    //统计图名称(必填)
     private String chartName;
-    /**
-     * 取值模式0平均值,1最大值,2最小值,3瞬时值(必填)
-     */
+    //取值模式0平均值,1最大值,2最小值,3瞬时值(自动必填,其他不管)
     private Integer valueTakingMode;
-    /**
-     * 0取原始值,1取计算值
-     */
+    //0取原始值,1取计算值(必填)
     private Integer valueType;
-    /**
-     * 时段类型0天,1时,2分,3秒(必填)
-     */
+    //时段类型0天,1时,2分,3秒(自动必填,其他不管)
     private Integer bucketType;
-    /**
-     * 时段值(必填)
-     */
+    //时段值(自动必填,其他不管)
     private Integer bucketValue;
-    /**
-     * 取值开始时间(手动必填,其他不要)
-     */
-    private Date startTime;
-    /**
-     * 取值结束时间(手动必填,其他不要)
-     */
-    private Date endTime;
-    /**
-     * 备用字段
-     */
+    //备用字段
     private String standby;
-
+    //统计图对应的数据项集合
     List<TableTemplateChartItem> tableTemplateChartItemList = new ArrayList<>();
 }

+ 1 - 1
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/TableTemplateChartItem.java

@@ -16,7 +16,7 @@ public class TableTemplateChartItem implements Serializable {
      */
     private Integer tableTemplateChartId;
     /**
-     * 数据项id
+     * 数据项id(必填)
      */
     private Integer itemId;
     /**

+ 14 - 50
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/TableTemplateTableItem.java

@@ -8,68 +8,32 @@ import java.util.Date;
 @Data
 public class TableTemplateTableItem implements Serializable {
 
-    /**
-     * id
-     */
+    //id
     private Integer id;
-    /**
-     * 报表模板id
-     */
+    //报表模板id
     private Integer tableTemplateId;
-    /**
-     * 数据项id(必填)
-     */
+    //数据项id(必填)
     private Integer itemId;
-    /**
-     * 虚拟字段,用于返回数据。item组id
-     */
+    //虚拟字段,用于返回数据。item组id
     private Integer itemGroupId;
-    /**
-     * 虚拟字段,用于返回数据。项名称
-     */
+    //虚拟字段,用于返回数据。项名称
     private String itemName;
-    /**
-     * 虚拟字段,用于返回数据。数据源配置id
-     */
+    //虚拟字段,用于返回数据。数据源配置id
     private Integer dataSourceId;
-    /**
-     * 占位符名字(必填)
-     */
+    //占位符名字(必填)
     private String placeHolder;
-    /**
-     * 横坐标,x轴(必填)
-     */
+    //横坐标,x轴(必填)
     private Integer xaxis;
-    /**
-     * 纵坐标,y轴(必填)
-     */
+    //纵坐标,y轴(必填)
     private Integer yaxis;
-    /**
-     * 取值模式0平均值,1最大值,2最小值,3瞬时值(必填)
-     */
+    //取值模式0平均值,1最大值,2最小值,3瞬时值(自动必填,其他不管)
     private Integer valueTakingMode;
-    /**
-     * 0取原始值,1取计算值
-     */
+    //0取原始值,1取计算值(必填)
     private Integer valueType;
-    /**
-     * 时段类型0天,1时,2分,3秒(必填)
-     */
+    //时段类型0天,1时,2分,3秒(自动必填,其他不管)
     private Integer bucketType;
-    /**
-     * 时段值(必填)
-     */
+    //时段值(自动必填,其他不管)
     private Integer bucketValue;
-    /**
-     * 取值开始时间(手动必填,其他不要)
-     */
-    private Date startTime;
-    /**
-     * 取值结束时间(手动必填,其他不要)
-     */
-    private Date endTime;
-    /**
-     * 备用字段
-     */
+    //备用字段
     private String standby;
 }

+ 2 - 2
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/dao/DataSourceDao.java

@@ -47,9 +47,9 @@ public interface DataSourceDao {
 
     Integer delDriverBasicItem(Integer dataSourceDriverId);
 
-    DataSourceDriver getDsdByTypeId(Integer dataSourceTypeId);
-
     Integer addDriverBasicItemList(Integer dataSourceDriverId,List<DriverBasicItem> driverBasicItemList);
 
     DataSourceDriver getDataSourceDriverByid(Integer id);
+
+    DataSourceDriver getDataSourceDriverByclsId(String clsId);
 }

+ 20 - 8
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/dao/ReportTableDao.java

@@ -80,13 +80,10 @@ public interface ReportTableDao {
 
     Integer addTableTemplateItem(List<TableTemplateTableItem> tableTemplateTableItemList);
 
-    //根据报表模板id,获取报表模板项的基础信息
+    //根据报表模板id,获取报表模板表格数据项的详细信息
     List<TableTemplateTableItem> getTtiByTemplateId(Integer tableTemplateId);
 
-    //根据报表模板id,获取报表模板项的详细信息
-    List<TableTemplateTableItem> getTtiDataByTemplateId(Integer tableTemplateId);
-
-    //删除报表模板关联的项
+    //删除报表模板表格数据关联的数据项信息
     Integer delTtiByTtId(Integer tableTemplateId);
 
     Integer addReportTableItem(ReportTableItem reportTableItem);
@@ -105,7 +102,7 @@ public interface ReportTableDao {
 
     Integer runAutoTableById(ReportTable reportTable);
 
-    Integer delTableItem(Integer tableId);
+    Integer delRtiByRtId(Integer reportTableId);
 
     Integer addReportTableItemList(List<ReportTableItem> reportTableItemList);
 
@@ -117,10 +114,9 @@ public interface ReportTableDao {
 
     Integer addTableTemplateChartItem(Integer tableTemplateChartId, List<TableTemplateChartItem> tableTemplateChartItemList);
 
+    //通过模板id,获取模板中的统计图信息
     List<TableTemplateChart> getTtcByTemplateId(Integer tableTemplateId);
 
-    List<TableTemplateChart> getTtcDataByTemplateId(Integer tableTemplateId);
-
     Integer addReportChart(ReportChart reportChart);
 
     Integer addReportChartItem(List<ReportChartItem> reportChartItemList);
@@ -129,5 +125,21 @@ public interface ReportTableDao {
 
     Integer stopAutoTableById(Integer reportTableId, Integer runState);
 
+    //通过报表id,获取报表的统计图信息
     List<ReportChart> getReportChartList(Integer reportTableId);
+
+    //通过模板的id和模板的名称,获取相应的报表(自动报表和驱动报表是获取到的主报表)
+    ReportTable getReportTableByTemplate(TableTemplate tableTemplate);
+
+    //通过模板统计图的统计图id,删除相应统计图的数据项
+    Integer delTtciByTtcId(Integer tableTemplateChartId);
+
+    //通过模板删除,模板对应的统计图
+    Integer delTtcByTtId(Integer tableTemplateId);
+
+    //通过报表统计图id,删除相应统计图的数据项信息
+    Integer delRciByRcId(Integer reportChartId);
+
+    //通过报表id,删除报表相应的统计图
+    Integer delRcByRtId(Integer reportTableId);
 }

+ 1 - 1
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/dynamicSchedule/DynamicScheduleConfig.java

@@ -51,7 +51,7 @@ public class DynamicScheduleConfig implements SchedulingConfigurer {
         List<ReportTable> reportTableList = reportTableDao.getAllAutoReportTable(ConstantStr.AUTOMATIC_REPORT, ConstantStr.START_UP);
         if (Blank.isNotEmpty(reportTableList)) {
             for (ReportTable reportTable : reportTableList) {
-                SchedulingRunnable task = new SchedulingRunnable(ReportTableTask.class, "getTableData", new Object[]{reportTable});
+                SchedulingRunnable task = new SchedulingRunnable(ReportTableTask.class, "genAutoTableData", new Object[]{reportTable});
                 cronTaskRegister.addCronTask(task, reportTable.getCronId(), reportTable.getCron());
 //                scheduledTaskRegistrar.addTriggerTask(
 //                        new SchedulingRunnable(TestTask.class, "test1", new Object[]{reportTable.getId(), reportTable.getCron()})

+ 0 - 4
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/service/impl/DataSourceServiceImpl.java

@@ -300,10 +300,6 @@ public class DataSourceServiceImpl implements DataSourceService {
 
     @Override
     public Result delDataSourceDriver(Integer id) {
-        List<DriverBasicItem> driverBasicItemList = dataSourceDao.getDbItemByDid(id);
-        if (Blank.isNotEmpty(driverBasicItemList)) {
-            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此驱动下配置了相应的基础属性,不能直接删除");
-        }
         if (dataSourceDao.delDataSourceDriver(id) <= 0) {
             return Result.no(ResultEnum.SERVER_ERROR.getRespCode(), "删除失败");
         }

+ 17 - 9
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/service/impl/ItemGroupServiceImpl.java

@@ -95,7 +95,7 @@ public class ItemGroupServiceImpl implements ItemGroupService {
         Integer dataSourceId = itemGroup.getDataSourceId();
         DataSource dataSource = dataSourceDao.getDataSourceById(dataSourceId);
         DataSourceType dataSourceType = dataSourceDao.getDataSourceTypeById(dataSource.getTypeId());
-        DataSourceDriver dataSourceDriver = dataSourceDao.getDsdByTypeId(dataSourceType.getId());
+        Boolean isOpcDa = OpcUtil.isOpcDa(dataSourceType.getDataSourceTypeKey());
         if (Blank.isEmpty(itemGroup.getId())) {
             ItemGroup isExistItemGroup = itemGroupDao.getItemGroupByName(userId, itemGroup.getGroupName());
             if (Blank.isNotEmpty(isExistItemGroup)) {
@@ -104,9 +104,11 @@ public class ItemGroupServiceImpl implements ItemGroupService {
             itemGroupDao.addItemGroup(itemGroup);
             if (Blank.isNotEmpty(itemGroup.getItemList())) {
                 List<Item> itemList = itemGroup.getItemList();
-                if (OpcUtil.isOpcDa(dataSourceType.getDataSourceTypeKey())) {
-                    itemGroup.setItemList(OpcDaUtil.genReadNameBasicDa(dataSource, itemList,
-                            Blank.isEmpty(dataSourceDriver) ? null : dataSourceDriver, Blank.isEmpty(dataSourceDriver) ? null : dataSourceDao.getDbItemByDid(dataSourceDriver.getId())));
+                if (isOpcDa) {
+                    String clsId = dataSource.getClsId();
+                    DataSourceDriver dataSourceDriver = dataSourceDao.getDataSourceDriverByclsId(clsId.toUpperCase());
+                    itemGroup.setItemList(OpcDaUtil.genBasicDa(dataSource, itemList,
+                            Blank.isEmpty(dataSourceDriver) ? null : dataSourceDriver));
                 }
                 int count = 0;
                 for (Item item : itemList) {
@@ -137,9 +139,11 @@ public class ItemGroupServiceImpl implements ItemGroupService {
             if (dataSourceId != itemGroup1.getDataSourceId()) {
                 itemGroupDao.delItemByGroupId(id);
                 if (Blank.isNotEmpty(itemList)) {
-                    if (OpcUtil.isOpcDa(dataSourceType.getDataSourceTypeKey())) {
-                        itemList = OpcDaUtil.genReadNameBasicDa(dataSource, itemList,
-                                Blank.isEmpty(dataSourceDriver) ? null : dataSourceDriver, Blank.isEmpty(dataSourceDriver) ? null : dataSourceDao.getDbItemByDid(dataSourceDriver.getId()));
+                    if (isOpcDa){
+                        String clsId = dataSource.getClsId();
+                        DataSourceDriver dataSourceDriver = dataSourceDao.getDataSourceDriverByclsId(clsId.toUpperCase());
+                        itemList = OpcDaUtil.genBasicDa(dataSource, itemList,
+                                Blank.isEmpty(dataSourceDriver) ? null : dataSourceDriver);
                     }
                     int count = 0;
                     for (Item item : itemList) {
@@ -156,8 +160,12 @@ public class ItemGroupServiceImpl implements ItemGroupService {
                 if (Blank.isEmpty(itemList)) {
                     itemGroupDao.delItemByGroupId(id);
                 } else {
-                    itemList = OpcDaUtil.genReadNameBasicDa(dataSource, itemList,
-                            Blank.isEmpty(dataSourceDriver) ? null : dataSourceDriver, Blank.isEmpty(dataSourceDriver) ? null : dataSourceDao.getDbItemByDid(dataSourceDriver.getId()));
+                    if (isOpcDa){
+                        String clsId = dataSource.getClsId();
+                        DataSourceDriver dataSourceDriver = dataSourceDao.getDataSourceDriverByclsId(clsId.toUpperCase());
+                        itemList = OpcDaUtil.genBasicDa(dataSource, itemList,
+                                Blank.isEmpty(dataSourceDriver) ? null : dataSourceDriver);
+                    }
                     //删除已经删除的项
                     itemGroupDao.delItemNoPub(id, itemList);
                     //得到没有删除的项

+ 25 - 45
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/service/impl/ReportTableServiceImpl.java

@@ -97,11 +97,14 @@ public class ReportTableServiceImpl implements ReportTableService {
         }
 
         if (templateType.equals(ConstantStr.MANUAL_REPORT)) {
-            reportTableTask.manualReport(tableTemplate);
+            reportTableTask.addManualReport(tableTemplate);
         } else if (templateType.equals(ConstantStr.AUTOMATIC_REPORT)) {
-            reportTableTask.autoReport(tableTemplate);
+            reportTableTask.addAutoReport(tableTemplate);
         } else if (templateType.equals(ConstantStr.EVENT_DRIVEN_REPORT)) {
-            reportTableTask.eventReport(tableTemplate);
+            if (Blank.isNotEmpty(tableTemplate.getTableTemplateChartList())) {
+                throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "事件驱动报表模板中,不能存在统计图");
+            }
+            reportTableTask.addEventReport(tableTemplate);
         } else {
             throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前只支持手动,自动,事件驱动类型的报表");
         }
@@ -122,8 +125,9 @@ public class ReportTableServiceImpl implements ReportTableService {
             return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "已经存在此名称的报表模板了,请更改名称");
         }
         TableTemplate oldTableTemplate = reportTableDao.getTableTemplateById(tableTemplate.getId());
+        ReportTable reportTable = reportTableDao.getReportTableByTemplate(oldTableTemplate);
         if (!tableTemplate.getVersion().equals(oldTableTemplate.getVersion())) {
-            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "报表模板已经被修改,请新后重试");
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "报表模板已经被修改,请新后重试");
         }
         tableTemplate.setVersion(oldTableTemplate.getVersion() + 1);
         Date date = new Date();
@@ -131,45 +135,21 @@ public class ReportTableServiceImpl implements ReportTableService {
         if (reportTableDao.updateTableTemplate(tableTemplate) <= 0) {
             return Result.no(ResultEnum.SERVER_ERROR.getRespCode(), "修改报表模板失败");
         }
-        List<TableTemplateTableItem> tableTemplateItemList = tableTemplate.getTableTemplateItemList();
-        reportTableDao.delTtiByTtId(id);
-        if (Blank.isNotEmpty(tableTemplateItemList)) {
-            if (templateType.equals(ConstantStr.MANUAL_REPORT)) {
-                for (TableTemplateTableItem t : tableTemplateItemList) {
-                    t.setTableTemplateId(id);
-                    if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis(), t.getValueTakingMode(), t.getBucketType(),
-                            t.getBucketValue(), t.getStartTime(), t.getEndTime())) {
-                        throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标、取值模式、时段类型、值、开始、结束时间都不能为空");
-                    }
-                }
-            } else if (templateType.equals(ConstantStr.AUTOMATIC_REPORT)) {
-                for (TableTemplateTableItem t : tableTemplateItemList) {
-                    t.setTableTemplateId(id);
-                    if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis(), t.getValueTakingMode(), t.getBucketType(), t.getBucketValue())) {
-                        throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标、取值模式、时段类型、值都不能为空");
-                    }
-                }
-            } else if (templateType.equals(ConstantStr.EVENT_DRIVEN_REPORT)) {
-                Integer eventNum = tableTemplate.getEventNum();
-                if (Blank.isEmpty(eventNum)) {
-                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "显示数量不能为空");
-                }
-                for (TableTemplateTableItem t : tableTemplateItemList) {
-                    t.setTableTemplateId(id);
-                    if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis())) {
-                        throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标都不能为空");
-                    }
-                }
-            } else {
-                throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前只支持手动,自动,事件驱动类型的报表模板");
+        if (templateType.equals(ConstantStr.MANUAL_REPORT)) {
+            reportTableTask.updateManualReport(tableTemplate, reportTable);
+        } else if (templateType.equals(ConstantStr.AUTOMATIC_REPORT)) {
+            reportTableTask.updateAutoReport(tableTemplate, reportTable);
+        } else if (templateType.equals(ConstantStr.EVENT_DRIVEN_REPORT)) {
+            if (Blank.isNotEmpty(tableTemplate.getTableTemplateChartList())) {
+                throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "事件驱动报表模板中,不能存在统计图");
             }
-            reportTableDao.addTableTemplateItem(tableTemplateItemList);
+            reportTableTask.updateEventReport(tableTemplate, reportTable);
+        } else {
+            throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前只支持手动,自动,事件驱动类型的报表");
         }
-        TableTemplateLog tableTemplateLog = new TableTemplateLog();
-        tableTemplateLog.setTableTemplateId(id);
-        tableTemplateLog.setTableTemplateVersion(tableTemplate.getVersion());
-        tableTemplateLog.setCreateTime(date);
-        reportTableDao.addTableTemplateLog(tableTemplateLog);
+        reportTableDao.addTableTemplateLog(new TableTemplateLog(
+                id, tableTemplate.getVersion(), date
+        ));
         return Result.ok("修改报表模板成功");
     }
 
@@ -258,7 +238,7 @@ public class ReportTableServiceImpl implements ReportTableService {
                 if (Blank.isEmpty(tableTemplate)) {
                     return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "模板不存在");
                 }
-                List<TableTemplateTableItem> tableTemplateItemList = reportTableDao.getTtiDataByTemplateId(tableTemplateId);
+                List<TableTemplateTableItem> tableTemplateItemList = reportTableDao.getTtiByTemplateId(tableTemplateId);
                 String cron = reportTable.getCron();
                 Date startTime = CronUtil.mappingTime(cron, reportTable.getStartTime());
                 Date endTime = CronUtil.mappingTime(cron, reportTable.getEndTime());
@@ -368,7 +348,7 @@ public class ReportTableServiceImpl implements ReportTableService {
         }
         if (reportTableType.equals(ConstantStr.EVENT_DRIVEN_REPORT)) {
             Integer tableTemplateId = reportTable.getTableTemplateId();
-            List<TableTemplateTableItem> tableTemplateItemList = reportTableDao.getTtiDataByTemplateId(tableTemplateId);
+            List<TableTemplateTableItem> tableTemplateItemList = reportTableDao.getTtiByTemplateId(tableTemplateId);
             if (Blank.isNotEmpty(tableTemplateItemList)) {
                 TableTemplateTableItem tableTemplateItem = tableTemplateItemList.get(0);
                 ItemGroup itemGroup = itemGroupDao.getItemGroupById(tableTemplateItem.getItemGroupId());
@@ -387,7 +367,7 @@ public class ReportTableServiceImpl implements ReportTableService {
             return Result.no(ResultEnum.SERVER_ERROR.getRespCode(), "删除报表失败");
         }
         reportTableDao.delAutoChLog(id);
-        reportTableDao.delTableItem(id);
+        reportTableDao.delRtiByRtId(id);
         reportTableDao.delTableUserGroup(id);
         return Result.ok("删除报表成功");
     }
@@ -477,7 +457,7 @@ public class ReportTableServiceImpl implements ReportTableService {
             if (runState.equals(ConstantStr.START_UP)) {
                 return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此自动报表已经处于启动状态");
             }
-            SchedulingRunnable task = new SchedulingRunnable(ReportTableTask.class, "getTableData", new Object[]{oldReportTable});
+            SchedulingRunnable task = new SchedulingRunnable(ReportTableTask.class, "genAutoTableData", new Object[]{oldReportTable});
             //新增定时器任务
             reportTableDao.runAutoTableById(reportTable);
             cronTaskRegister.addCronTask(task, cronId, reportTable.getCron());

+ 1 - 1
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcAsyncTask.java

@@ -101,7 +101,7 @@ public class OpcAsyncTask {
                         TableTemplate tableTemplate = reportTableDao.getTableTemplateById(tableTemplateId);
                         Integer eventNum = tableTemplate.getEventNum();
                         Integer chTableId = reportTableDao.getEventChTableId(tableId);
-                        List<TableTemplateTableItem> tableTemplateItemList = reportTableDao.getTtiDataByTemplateId(tableTemplateId);
+                        List<TableTemplateTableItem> tableTemplateItemList = reportTableDao.getTtiByTemplateId(tableTemplateId);
                         if (Blank.isEmpty(chTableId)) {
                             //如果没有子报表,则新增报表,则只需要生成新报表,并向新报表添加数据即可
                             //如果模板设置的数量大于等于当前拿数据的数量,则只需要添加一张新报表存储数据即可

+ 1 - 1
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaChangeTask.java

@@ -90,7 +90,7 @@ public class OpcDaChangeTask extends TimerTask {
                 if (!connected) {
                     messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
                             itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "服务断开",
-                            "服务断开,马进行重新连接",
+                            "服务断开,马进行重新连接",
                             ConstantStr.NO_READ));
                     Timer listenerTimer = new Timer();
                     listenerTimer.schedule(new TimerTask() {

+ 1 - 1
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaExceedTask.java

@@ -88,7 +88,7 @@ public class OpcDaExceedTask extends TimerTask {
                 if (!connected) {
                     messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
                             itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "服务断开",
-                            "服务断开,马进行重新连接",
+                            "服务断开,马进行重新连接",
                             ConstantStr.NO_READ));
                     Timer listenerTimer = new Timer();
                     listenerTimer.schedule(new TimerTask() {

+ 1 - 1
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaFrequencyTask.java

@@ -88,7 +88,7 @@ public class OpcDaFrequencyTask extends TimerTask {
                 if (!connected) {
                     messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
                             itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "服务断开",
-                            "服务断开,马进行重新连接",
+                            "服务断开,马进行重新连接",
                             ConstantStr.NO_READ));
                     Timer listenerTimer = new Timer();
                     listenerTimer.schedule(new TimerTask() {

+ 238 - 21
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/ReportTableTask.java

@@ -61,7 +61,7 @@ public class ReportTableTask {
      *
      * @param tableTemplate
      */
-    public void manualReport(TableTemplate tableTemplate) {
+    public void addManualReport(TableTemplate tableTemplate) {
         Integer tableTemplateId = tableTemplate.getId();
         List<TableTemplateTableItem> tableTemplateItemList = tableTemplate.getTableTemplateItemList();
         List<TableTemplateChart> tableTemplateChartList = tableTemplate.getTableTemplateChartList();
@@ -80,13 +80,93 @@ public class ReportTableTask {
         if (Blank.isNotEmpty(tableTemplateItemList)) {
             List<ReportTableItem> reportTableItemList = new ArrayList<>();
             for (TableTemplateTableItem t : tableTemplateItemList) {
-                if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis())) {
-                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标都不能为空");
+                if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis(), t.getValueType())) {
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标、取值类型都不能为空");
                 }
                 t.setTableTemplateId(tableTemplateId);
-                if (Blank.isEmpty(t.getItemGroupId())) {
-                    continue;
+                //根据模板的数据项信息,生成报表数据项信息
+                reportTableItemList.add(new ReportTableItem(
+                        reportTableId, t.getItemId(), t.getValueType(), t.getXaxis(), t.getYaxis(), t.getStandby(), null, null, null
+                ));
+            }
+            //添加报表数据项信息
+            if (Blank.isNotEmpty(reportTableItemList)) {
+                reportTableDao.addReportTableItemList(reportTableItemList);
+            }
+            //添加模板数据项信息
+            reportTableDao.addTableTemplateItem(tableTemplateItemList);
+        }
+        //保存模板统计图相关的数据项信息,以及报表统计图相关的信息
+        if (Blank.isNotEmpty(tableTemplateChartList)) {
+            //遍历模板中的所有统计图
+            for (TableTemplateChart ttc : tableTemplateChartList) {
+                if (Blank.isEmpty(ttc.getChartType(), ttc.getChartName(), ttc.getValueTakingMode(), ttc.getValueType(),
+                        ttc.getBucketType(), ttc.getBucketValue())) {
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "统计图类型、名称、取值模式、时段类型、时段值、取值类型不能为空");
+                }
+                ttc.setTableTemplateId(tableTemplateId);
+                //添加模板中的统计图
+                reportTableDao.addTableTemplateChart(ttc);
+                //根据模板中的统计图生成相应的报表统计图,并添加
+                ReportChart reportChart = new ReportChart(
+                        reportTableId, ttc.getChartType(), ttc.getChartName(), ttc.getValueType(), ttc.getStandby()
+                );
+                reportTableDao.addReportChart(reportChart);
+                Integer reportChartId = reportChart.getId();
+                //获取模板统计图中的数据项信息
+                List<TableTemplateChartItem> ttciList = ttc.getTableTemplateChartItemList();
+                if (Blank.isNotEmpty(ttciList)) {
+                    List<ReportChartItem> reportChartItemList = new ArrayList<>();
+                    for (int i = 0; i < ttciList.size(); i++) {
+                        TableTemplateChartItem ttci = ttciList.get(i);
+                        //根据模板中的统计图中的数据项生成相应的报表统计图数据项
+                        ReportChartItem reportChartItem = new ReportChartItem(
+                                reportChartId, ttci.getItemId(), null, null, null
+                        );
+                        reportChartItemList.add(reportChartItem);
+                    }
+                    //添加报表统计图相关的数据项
+                    if (Blank.isNotEmpty(reportChartItemList)) {
+                        reportTableDao.addReportChartItem(reportChartItemList);
+                    }
+                    //添加模板统计图相关的数据项
+                    reportTableDao.addTableTemplateChartItem(ttc.getId(), ttciList);
                 }
+            }
+        }
+    }
+
+    /**
+     * 手动报表模板修改
+     *
+     * @param tableTemplate
+     */
+    public void updateManualReport(TableTemplate tableTemplate, ReportTable reportTable) {
+        Integer tableTemplateId = tableTemplate.getId();
+        List<TableTemplateTableItem> tableTemplateItemList = tableTemplate.getTableTemplateItemList();
+        List<TableTemplateChart> tableTemplateChartList = tableTemplate.getTableTemplateChartList();
+
+        //根据模板修改相应的报表
+        reportTable.setReportTableName(tableTemplate.getTemplateName());
+        reportTable.setReportTableData(tableTemplate.getTemplateData());
+        reportTable.setVersion(tableTemplate.getVersion());
+        if (reportTableDao.updateReportTable(reportTable) <= 0) {
+            throw new CustomException(ResultEnum.SERVER_ERROR.getRespCode(), "修改数据报表失败");
+        }
+        Integer reportTableId = reportTable.getId();
+
+        //删除模板表格数据相关的数据项信息
+        reportTableDao.delTtiByTtId(tableTemplateId);
+        //删除报表表格数据相关的数据项信息
+        reportTableDao.delRtiByRtId(reportTableId);
+        //保存模板表格相关的数据项信息,以及报表表格相关的信息
+        if (Blank.isNotEmpty(tableTemplateItemList)) {
+            List<ReportTableItem> reportTableItemList = new ArrayList<>();
+            for (TableTemplateTableItem t : tableTemplateItemList) {
+                if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis(), t.getValueType())) {
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标、取值类型都不能为空");
+                }
+                t.setTableTemplateId(tableTemplateId);
                 //根据模板的数据项信息,生成报表数据项信息
                 reportTableItemList.add(new ReportTableItem(
                         reportTableId, t.getItemId(), t.getValueType(), t.getXaxis(), t.getYaxis(), t.getStandby(), null, null, null
@@ -99,13 +179,34 @@ public class ReportTableTask {
             //添加模板数据项信息
             reportTableDao.addTableTemplateItem(tableTemplateItemList);
         }
+
+        List<TableTemplateChart> tableTemplateCharts = reportTableDao.getTtcByTemplateId(tableTemplateId);
+        if (Blank.isNotEmpty(tableTemplateCharts)) {
+            for (TableTemplateChart ttc : tableTemplateCharts) {
+                //删除模板统计图相应的数据项信息
+                reportTableDao.delTtciByTtcId(ttc.getId());
+            }
+        }
+        //删除模板统计图信息
+        reportTableDao.delTtcByTtId(tableTemplateId);
+
+        List<ReportChart> reportChartList = reportTableDao.getReportChartList(reportTableId);
+        if (Blank.isNotEmpty(reportChartList)) {
+            for (ReportChart reportChart : reportChartList) {
+                //删除报表统计图相应的数据项信息
+                reportTableDao.delRciByRcId(reportChart.getId());
+            }
+        }
+        //删除报表统计图信息
+        reportTableDao.delRcByRtId(reportTableId);
+
         //保存模板统计图相关的数据项信息,以及报表统计图相关的信息
         if (Blank.isNotEmpty(tableTemplateChartList)) {
             //遍历模板中的所有统计图
             for (TableTemplateChart ttc : tableTemplateChartList) {
-                if (Blank.isEmpty(ttc.getChartType(), ttc.getChartName(), ttc.getValueTakingMode(),
+                if (Blank.isEmpty(ttc.getChartType(), ttc.getChartName(), ttc.getValueTakingMode(), ttc.getValueType(),
                         ttc.getBucketType(), ttc.getBucketValue())) {
-                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "统计图类型、名称、取值模式、时段类型、时段值不能为空");
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "统计图类型、名称、取值模式、时段类型、时段值、取值类型不能为空");
                 }
                 ttc.setTableTemplateId(tableTemplateId);
                 //添加模板中的统计图
@@ -137,6 +238,7 @@ public class ReportTableTask {
                 }
             }
         }
+
     }
 
     /**
@@ -144,7 +246,7 @@ public class ReportTableTask {
      *
      * @param tableTemplate
      */
-    public void autoReport(TableTemplate tableTemplate) {
+    public void addAutoReport(TableTemplate tableTemplate) {
         Integer tableTemplateId = tableTemplate.getId();
         List<TableTemplateTableItem> tableTemplateItemList = tableTemplate.getTableTemplateItemList();
         List<TableTemplateChart> tableTemplateChartList = tableTemplate.getTableTemplateChartList();
@@ -162,18 +264,95 @@ public class ReportTableTask {
         if (Blank.isNotEmpty(tableTemplateItemList)) {
             for (TableTemplateTableItem t : tableTemplateItemList) {
                 t.setTableTemplateId(tableTemplateId);
-                if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis(), t.getValueTakingMode(), t.getBucketType(), t.getBucketValue())) {
-                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标、取值模式、时段类型、值都不能为空");
+                if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis(), t.getValueTakingMode(), t.getValueType(), t.getBucketType(), t.getBucketValue())) {
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标、取值模式、时段类型、值、取值类型都不能为空");
+                }
+            }
+            //自动报表只需要添加模板的数据项信息,定时器执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
+            reportTableDao.addTableTemplateItem(tableTemplateItemList);
+        }
+        if (Blank.isNotEmpty(tableTemplateChartList)) {
+            for (TableTemplateChart ttc : tableTemplateChartList) {
+                if (Blank.isEmpty(ttc.getChartType(), ttc.getChartName(), ttc.getValueTakingMode(), ttc.getValueType(),
+                        ttc.getBucketType(), ttc.getBucketValue())) {
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "统计图类型、名称、取值模式、时段类型、时段值、取值类型不能为空");
+                }
+                ttc.setTableTemplateId(tableTemplateId);
+                //添加模板中的统计图
+                reportTableDao.addTableTemplateChart(ttc);
+                //根据模板中的统计图生成相应的报表统计图,并添加
+                ReportChart reportChart = new ReportChart(
+                        reportTableId, ttc.getChartType(), ttc.getChartName(), ttc.getValueType(), ttc.getStandby()
+                );
+                reportTableDao.addReportChart(reportChart);
+                //获取模板统计图中的数据项信息
+                List<TableTemplateChartItem> ttciList = ttc.getTableTemplateChartItemList();
+                if (Blank.isNotEmpty(ttciList)) {
+                    reportTableDao.addTableTemplateChartItem(ttc.getId(), ttciList);
+                }
+            }
+        }
+    }
+
+    /**
+     * 自动报表模板修改
+     *
+     * @param tableTemplate
+     */
+    public void updateAutoReport(TableTemplate tableTemplate, ReportTable reportTable) {
+        Integer tableTemplateId = tableTemplate.getId();
+        List<TableTemplateTableItem> tableTemplateItemList = tableTemplate.getTableTemplateItemList();
+        List<TableTemplateChart> tableTemplateChartList = tableTemplate.getTableTemplateChartList();
+
+        //根据模板修改相应的报表
+        reportTable.setReportTableName(tableTemplate.getTemplateName());
+        reportTable.setReportTableData(tableTemplate.getTemplateData());
+        reportTable.setVersion(tableTemplate.getVersion());
+        if (reportTableDao.updateReportTable(reportTable) <= 0) {
+            throw new CustomException(ResultEnum.SERVER_ERROR.getRespCode(), "修改数据报表失败");
+        }
+        Integer reportTableId = reportTable.getId();
+
+        //删除模板表格数据相关的数据项信息
+        reportTableDao.delTtiByTtId(tableTemplateId);
+        //删除报表表格数据相关的数据项信息
+        reportTableDao.delRtiByRtId(reportTableId);
+        if (Blank.isNotEmpty(tableTemplateItemList)) {
+            for (TableTemplateTableItem t : tableTemplateItemList) {
+                t.setTableTemplateId(tableTemplateId);
+                if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis(), t.getValueTakingMode(), t.getValueType(), t.getBucketType(), t.getBucketValue())) {
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标、取值模式、时段类型、值、取值类型都不能为空");
                 }
             }
+            //自动报表只需要添加模板的数据项信息,定时器执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
+            reportTableDao.addTableTemplateItem(tableTemplateItemList);
+        }
+
+        List<TableTemplateChart> tableTemplateCharts = reportTableDao.getTtcByTemplateId(tableTemplateId);
+        if (Blank.isNotEmpty(tableTemplateCharts)) {
+            for (TableTemplateChart ttc : tableTemplateCharts) {
+                //删除模板统计图相应的数据项信息
+                reportTableDao.delTtciByTtcId(ttc.getId());
+            }
         }
-        //自动报表只需要添加模板的数据项信息,定时器执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
-        reportTableDao.addTableTemplateItem(tableTemplateItemList);
+        //删除模板统计图信息
+        reportTableDao.delTtcByTtId(tableTemplateId);
+
+        List<ReportChart> reportChartList = reportTableDao.getReportChartList(reportTableId);
+        if (Blank.isNotEmpty(reportChartList)) {
+            for (ReportChart reportChart : reportChartList) {
+                //删除报表统计图相应的数据项信息
+                reportTableDao.delRciByRcId(reportChart.getId());
+            }
+        }
+        //删除报表统计图信息
+        reportTableDao.delRcByRtId(reportTableId);
+
         if (Blank.isNotEmpty(tableTemplateChartList)) {
             for (TableTemplateChart ttc : tableTemplateChartList) {
-                if (Blank.isEmpty(ttc.getChartType(), ttc.getChartName(), ttc.getValueTakingMode(),
+                if (Blank.isEmpty(ttc.getChartType(), ttc.getChartName(), ttc.getValueTakingMode(), ttc.getValueType(),
                         ttc.getBucketType(), ttc.getBucketValue())) {
-                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "统计图类型、名称、取值模式、时段类型、时段值不能为空");
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "统计图类型、名称、取值模式、时段类型、时段值、取值类型不能为空");
                 }
                 ttc.setTableTemplateId(tableTemplateId);
                 //添加模板中的统计图
@@ -197,7 +376,7 @@ public class ReportTableTask {
      *
      * @param tableTemplate
      */
-    public void eventReport(TableTemplate tableTemplate) {
+    public void addEventReport(TableTemplate tableTemplate) {
         Integer tableTemplateId = tableTemplate.getId();
         List<TableTemplateTableItem> tableTemplateItemList = tableTemplate.getTableTemplateItemList();
         Integer eventNum = tableTemplate.getEventNum();
@@ -217,13 +396,51 @@ public class ReportTableTask {
         if (Blank.isNotEmpty(tableTemplateItemList)) {
             for (TableTemplateTableItem t : tableTemplateItemList) {
                 t.setTableTemplateId(tableTemplateId);
-                if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis())) {
-                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标都不能为空");
+                if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis(), t.getValueType())) {
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标、取值类型都不能为空");
                 }
             }
+            //事件驱动报表只需要添加模板的数据项信息,驱动执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
+            reportTableDao.addTableTemplateItem(tableTemplateItemList);
+        }
+    }
+
+    /**
+     * 事件驱动模板修改
+     *
+     * @param tableTemplate
+     */
+    public void updateEventReport(TableTemplate tableTemplate, ReportTable reportTable) {
+        Integer tableTemplateId = tableTemplate.getId();
+        List<TableTemplateTableItem> tableTemplateItemList = tableTemplate.getTableTemplateItemList();
+        Integer eventNum = tableTemplate.getEventNum();
+        if (Blank.isEmpty(eventNum)) {
+            throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "事件驱动显示数量设置不能为空");
+        }
+
+        //根据模板修改相应的报表
+        reportTable.setReportTableName(tableTemplate.getTemplateName());
+        reportTable.setReportTableData(tableTemplate.getTemplateData());
+        reportTable.setVersion(tableTemplate.getVersion());
+        if (reportTableDao.updateReportTable(reportTable) <= 0) {
+            throw new CustomException(ResultEnum.SERVER_ERROR.getRespCode(), "修改数据报表失败");
+        }
+        Integer reportTableId = reportTable.getId();
+
+        //删除模板表格数据相关的数据项信息
+        reportTableDao.delTtiByTtId(tableTemplateId);
+        //删除报表表格数据相关的数据项信息
+        reportTableDao.delRtiByRtId(reportTableId);
+        if (Blank.isNotEmpty(tableTemplateItemList)) {
+            for (TableTemplateTableItem t : tableTemplateItemList) {
+                t.setTableTemplateId(tableTemplateId);
+                if (Blank.isEmpty(t.getItemId(), t.getPlaceHolder(), t.getXaxis(), t.getYaxis(), t.getValueType())) {
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据项、占位符、横、纵坐标、取值类型都不能为空");
+                }
+            }
+            //事件驱动报表只需要添加模板的数据项信息,驱动执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
+            reportTableDao.addTableTemplateItem(tableTemplateItemList);
         }
-        //事件驱动报表只需要添加模板的数据项信息,驱动执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
-        reportTableDao.addTableTemplateItem(tableTemplateItemList);
     }
 
     /**
@@ -387,7 +604,7 @@ public class ReportTableTask {
      *
      * @param reportTable
      */
-    public void getTableData(ReportTable reportTable) {
+    public void genAutoTableData(ReportTable reportTable) {
         log.info("自动报表,{},执行开始,时间为{}", reportTable, DateUtil.dateChangeStrYmdhmss(new Date()));
         String reportTableData = reportTable.getReportTableData();
         Integer tableTemplateId = reportTable.getTableTemplateId();
@@ -395,7 +612,7 @@ public class ReportTableTask {
         if (Blank.isEmpty(tableTemplate)) {
             log.info("报表模板不存在");
         }
-        List<TableTemplateTableItem> tableTemplateItemList = reportTableDao.getTtiDataByTemplateId(tableTemplateId);
+        List<TableTemplateTableItem> tableTemplateItemList = reportTableDao.getTtiByTemplateId(tableTemplateId);
         Date date = new Date();
         //生成一张新的子报表,并添加相应的日志,以及用户组授权
         ReportTable reportTable1 = new ReportTable(

+ 4 - 4
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/util/OpcDaUtil.java

@@ -303,19 +303,19 @@ public class OpcDaUtil {
     }
 
     /**
-     * 根据传入的数据项,以及数据源驱动,生成相应的读数据项名称(itemName原名称,itemReadName读取名称)
+     * 根据传入的数据项
      * 生成是基础属性还是附属属性,如果在数据源驱动配置中,未有这个驱动配置,则此数据源下的所有项均为基础属性
      * 如果有这个配置,根据是否配置了这个驱动的基础项来判断,如果和配置服务,则为基础属性,否则为附属属性
      *
      * @param dataSource
      * @param itemList
      * @param dataSourceDriver
-     * @param driverBasicItemList
      * @return
      */
-    public static List<Item> genReadNameBasicDa(DataSource dataSource, List<Item> itemList,
-                                                DataSourceDriver dataSourceDriver, List<DriverBasicItem> driverBasicItemList) {
+    public static List<Item> genBasicDa(DataSource dataSource, List<Item> itemList,
+                                        DataSourceDriver dataSourceDriver) {
         if (Blank.isNotEmpty(dataSourceDriver)) {
+            List<DriverBasicItem> driverBasicItemList = dataSourceDriver.getDriverBasicItemList();
             if (Blank.isNotEmpty(driverBasicItemList)) {
                 for (int i = 0; i < itemList.size(); i++) {
                     Item item = itemList.get(i);

+ 4 - 4
chaunyi_opc/opc_da/src/main/resources/mapper/DataSourceDao.xml

@@ -206,17 +206,17 @@
         where driver_id=#{driverId}
     </select>
 
-    <select id="getDsdByTypeId" resultType="com.example.opc_common.entity.DataSourceDriver">
+    <select id="getDataSourceDriverByid" resultType="com.example.opc_common.entity.DataSourceDriver">
         select
         <include refid="dataSourceDriver"/>
         from t_data_source_driver
-        where data_source_type_id=#{dataSourceTypeId}
+        where id=#{id}
     </select>
 
-    <select id="getDataSourceDriverByid" resultType="com.example.opc_common.entity.DataSourceDriver">
+    <select id="getDataSourceDriverByclsId" resultMap="allDataSourceDriver">
         select
         <include refid="dataSourceDriver"/>
         from t_data_source_driver
-        where id=#{id}
+        where cls_id=#{clsId}
     </select>
 </mapper>

+ 51 - 37
chaunyi_opc/opc_da/src/main/resources/mapper/ReportTableDao.xml

@@ -15,9 +15,13 @@
     <sql id="tableTemplateTableItem">
         id
         , table_template_id, item_id , place_holder, xaxis, yaxis, value_taking_mode, value_type, bucket_type,
-            bucket_value, start_time, end_time, standby
+            bucket_value, standby
+    </sql>
+    <sql id="tableTemplateChart">
+        id
+        , table_template_id, chart_type, chart_name, value_taking_mode, bucket_type,
+            bucket_value, standby
     </sql>
-    <sql id="tableTemplateChart"></sql>
 
     <sql id="reportTable">
         id
@@ -110,8 +114,7 @@
     <insert id="addTableTemplateItem">
         <if test="tableTemplateTableItemList!= null and tableTemplateTableItemList.size() >0">
             insert into t_table_template_table_item (table_template_id, item_id, place_holder, xaxis, yaxis,
-            value_taking_mode, value_type, bucket_type, bucket_value, start_time,
-            end_time, standby)
+            value_taking_mode, value_type, bucket_type, bucket_value, standby)
             values
             <foreach collection="tableTemplateTableItemList" item="tableTemplateTableItem" separator=",">
                 (#{tableTemplateTableItem.tableTemplateId}, #{tableTemplateTableItem.itemId},
@@ -120,8 +123,7 @@
                 , #{tableTemplateTableItem.yaxis},
                 #{tableTemplateTableItem.valueTakingMode},#{tableTemplateTableItem.valueType},
                 #{tableTemplateTableItem.bucketType},
-                #{tableTemplateTableItem.bucketValue}
-                , #{tableTemplateTableItem.startTime}, #{tableTemplateTableItem.endTime},
+                #{tableTemplateTableItem.bucketValue},
                 #{tableTemplateTableItem.standby})
             </foreach>
         </if>
@@ -151,13 +153,13 @@
             keyProperty="id">
         insert into t_table_template_chart(table_template_id, chart_type, chart_name, value_taking_mode, value_type,
                                            bucket_type,
-                                           bucket_value, start_time, end_time, standby) VALUE
+                                           bucket_value, standby) VALUE
             (#{tableTemplateId},#{chartType},#{chartName}, #{valueTakingMode}, #{valueType},
-            #{bucketType}, #{bucketValue}, #{startTime}, #{endTime}, #{standby})
+            #{bucketType}, #{bucketValue}, #{standby})
     </insert>
 
     <insert id="addTableTemplateChartItem">
-        insert into t_table_template_chart(table_template_chart_id, item_id) VALUES
+        insert into t_table_template_chart_item(table_template_chart_id, item_id) VALUES
         <foreach collection="tableTemplateChartItemList" item="tableTemplateChartItem" separator=",">
             (#{tableTemplateChartId}, #{tableTemplateChartItem.tableTemplateChartId})
         </foreach>
@@ -192,14 +194,8 @@
     <update id="updateReportTable">
         update t_report_table
         set report_table_name=#{reportTableName},
-        <if test="startTime != null">
-            start_time=#{startTime},
-        </if>>
-        <if test="endTime != null">
-            end_time=#{endTime},
-        </if>>
-        cron=#{cron},
-        version=#{version}
+            report_table_data=#{reportTableData},
+            version=#{version}
         where id = #{id}
     </update>
 
@@ -281,10 +277,34 @@
         where table_template_id = #{tableTemplateId}
     </delete>
 
-    <delete id="delTableItem">
+    <delete id="delRtiByRtId">
         delete
         from t_report_table_item
-        where report_table_id = #{tableId}
+        where report_table_id = #{reportTableId}
+    </delete>
+
+    <delete id="delTtciByTtcId">
+        delete
+        from t_table_template_chart_item
+        where table_template_chart_id = #{tableTemplateChartId}
+    </delete>
+
+    <delete id="delTtcByTtId">
+        delete
+        from t_table_template_chart
+        where table_template_id = #{tableTemplateId}
+    </delete>
+
+    <delete id="delRciByRcId">
+        delete
+        from t_report_chart_item
+        where report_chart_id = #{reportChartId}
+    </delete>
+
+    <delete id="delRcByRtId">
+        delete
+        from t_report_chart
+        where report_table_id = #{reportTableId}
     </delete>
 
     <select id="getTableTemplateByName" resultType="com.example.opc_common.entity.TableTemplate">
@@ -620,13 +640,6 @@
     </select>
 
     <select id="getTtiByTemplateId" resultType="com.example.opc_common.entity.TableTemplateTableItem">
-        select
-        <include refid="tableTemplateTableItem"/>
-        from t_table_template_table_item
-        where table_template_id = #{tableTemplateId}
-    </select>
-
-    <select id="getTtiDataByTemplateId" resultType="com.example.opc_common.entity.TableTemplateTableItem">
         SELECT tttti.id,
                tttti.table_template_id,
                tttti.item_id,
@@ -640,8 +653,6 @@
                tttti.value_type,
                tttti.bucket_type,
                tttti.bucket_value,
-               tttti.start_time,
-               tttti.end_time,
                tttti.standby
         FROM t_table_template_table_item tttti
                  LEFT JOIN t_item ti ON tttti.item_id = ti.id
@@ -747,7 +758,10 @@
 
     <select id="getTtcByTemplateId" resultMap="allTableTemplateChart">
         select
-            <include refid="tableTemplateChart"/> t_
+        <include refid="tableTemplateChart"/>
+        from
+        t_table_template_chart
+        where id=#{tableTemplateId}
     </select>
 
     <resultMap type="com.example.opc_common.entity.TableTemplateChart" id="allTableTemplateChart">
@@ -758,8 +772,6 @@
         <result property="valueTakingMode" column="value_taking_mode"/>
         <result property="bucketType" column="bucket_type"/>
         <result property="bucketValue" column="bucket_value"/>
-        <result property="startTime" column="start_time"/>
-        <result property="endTime" column="end_time"/>
         <result property="standby" column="standby"/>
         <collection column="id" property="tableTemplateChartItemList"
                     ofType="com.example.opc_common.entity.TableTemplateChartItem"
@@ -782,10 +794,6 @@
         where tttci.table_template_chart_id = #{id}
     </select>
 
-    <select id="getTtcDataByTemplateId" resultType="com.example.opc_common.entity.TableTemplateChart">
-
-    </select>
-
     <resultMap type="com.example.opc_common.entity.TableTemplateChart" id="allTableTemplateChart1">
         <id property="id" column="id"/>
         <result property="tableTemplateId" column="table_template_id"/>
@@ -794,8 +802,6 @@
         <result property="valueTakingMode" column="value_taking_mode"/>
         <result property="bucketType" column="bucket_type"/>
         <result property="bucketValue" column="bucket_value"/>
-        <result property="startTime" column="start_time"/>
-        <result property="endTime" column="end_time"/>
         <result property="standby" column="standby"/>
         <collection column="id" property="tableTemplateChartItemList"
                     ofType="com.example.opc_common.entity.TableTemplateChartItem"
@@ -874,4 +880,12 @@
         where report_chart_id = #{id}
     </select>
 
+    <select id="getReportTableByTemplate" resultType="com.example.opc_common.entity.ReportTable">
+        select
+        <include refid="reportTable"/>
+        from t_report_table
+        where report_name=#{templateName}
+        and table_template_id=#{id}
+    </select>
+
 </mapper>