Преглед изворни кода

修改不同类型报表设置定时时间接口方法

zhoupeng пре 1 година
родитељ
комит
2ca21615ce
12 измењених фајлова са 191 додато и 190 уклоњено
  1. 6 1
      industry-system/industry-da/src/main/java/com/example/opc_da/policy/EventReportTableTask.java
  2. 6 42
      industry-system/industry-da/src/main/java/com/example/opc_da/service/impl/ReportTableServiceImpl.java
  3. 0 138
      industry-system/industry-da/src/main/java/com/example/opc_da/task/PolicyReadTask.java
  4. 7 0
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/AutomaticChReportTableValidate.java
  5. 38 8
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/AutomaticMaReportTableValidate.java
  6. 7 0
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/DeviceChReportTableValidate.java
  7. 43 1
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/DeviceMaReportTableValidate.java
  8. 35 0
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/DeviceReportTableValidate.java
  9. 6 0
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/EventChReportTableValidate.java
  10. 24 0
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/EventMaReportTableValidate.java
  11. 15 0
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/ManualReportTableValidate.java
  12. 4 0
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/ReportTableValidate.java

+ 6 - 1
industry-system/industry-da/src/main/java/com/example/opc_da/policy/EventReportTableTask.java

@@ -82,7 +82,7 @@ public class EventReportTableTask implements DisposableBean {
             String id = IdUtil.createSnowflake(1, 1).nextId() + "";
             this.currentReportTableId = id;
             asyncTask.addHaveKeyChReport(reportTable.getId(), id,
-                    ConstantStr.EVENT_GENERATE_REPORT, reportTable.getReportTableData(), null);
+                    ConstantStr.EVENT_GENERATE_REPORT, reportTable.getReportTableData(), false);
         }
         this.cureentNum++;
         if (CollUtil.isNotEmpty(itemDataMap)) {
@@ -103,6 +103,11 @@ public class EventReportTableTask implements DisposableBean {
         //如果数量达到了设置的条数
         if (this.cureentNum == this.flagNum) {
             generateReportTable();
+            //是否打印报表
+            if (this.reportTable.getIsRunPrint() == 1) {
+                asyncTask.runPrint(this.currentReportTableId,
+                        this.reportTable.getPrintIp(), this.reportTable.getPrintConfigId());
+            }
 
             this.cureentNum = 0;
             this.currentReportTableId = null;

+ 6 - 42
industry-system/industry-da/src/main/java/com/example/opc_da/service/impl/ReportTableServiceImpl.java

@@ -1,7 +1,6 @@
 package com.example.opc_da.service.impl;
 
 import cn.hutool.core.util.IdUtil;
-import cn.hutool.extra.servlet.ServletUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.example.opc_common.entity.Dict;
 import com.example.opc_common.entity.ReportTable;
@@ -22,14 +21,16 @@ import com.example.opc_da.util.RedisUtil;
 import com.example.opc_da.util.UserUtil;
 import com.example.opc_da.validate.reportTable.ReportTableValidate;
 import com.example.opc_da.validate.reportTable.ReportTableValidateFactory;
-import org.quartz.CronExpression;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
 
 @Service
 @Transactional
@@ -446,45 +447,8 @@ public class ReportTableServiceImpl implements ReportTableService {
                 return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "已经存在此报表名称了,请修改");
             }
         }
-        ReportTable oldReportTable = reportTableDao.getReportTableNoDataById(id);
-        if (oldReportTable.getRunState().equals(ConstantStr.START_UP)) {
-            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "自动报表现在处于启动状态,不允许修改定时时间");
-        }
-        //如果报表不是手动报表,设置其打印
-        if (!reportTableType.equals(ConstantStr.MANUAL_REPORT)) {
-            if (reportTable.getIsRunPrint().equals(ConstantStr.START_UP)) {
-                if (Blank.isEmpty(reportTable.getPrintConfigId())) {
-                    return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "报表配置打印时,需要配置打印配置");
-                }
-            }
-            String clientIP = ServletUtil.getClientIP(request, "");
-            clientIP = "0:0:0:0:0:0:0:1".equals(clientIP) ? "127.0.0.1" : clientIP;
-            reportTable.setPrintIp(clientIP);
-        } else {
-            //如果是手动报表,则修改其名称即可
-            if (reportTableDao.updateTableNameById(id, reportTableName) <= 0) {
-                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "修改失败");
-            }
-            return Result.ok("修改成功");
-        }
-        if (reportTableType.equals(ConstantStr.AUTOMATIC_REPORT)) {
-            String cron = reportTable.getCron();
-            if (Blank.isEmpty(cron)) {
-                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "定时器配置不能为空");
-            }
-            if (reportTable.getType().equals(1) && !CronExpression.isValidExpression(cron)) {
-                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "定时任务配置不正确,请重新配置");
-            }
-            String cronId = oldReportTable.getCronId();
-            if (Blank.isEmpty(cronId)) {
-                cronId = UUID.randomUUID().toString().replace("-", "");
-                reportTable.setCronId(cronId);
-            }
-        }
-        if (reportTableDao.setAutoTableTime(reportTable) <= 0) {
-            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "修改失败");
-        }
-        return Result.ok("修改成功");
+        return ReportTableValidateFactory.getReportTableValidate(reportTableType)
+                .setAutoTableTime(reportTable, request);
     }
 
     @Override

+ 0 - 138
industry-system/industry-da/src/main/java/com/example/opc_da/task/PolicyReadTask.java

@@ -1,138 +0,0 @@
-package com.example.opc_da.task;
-
-import cn.hutool.core.collection.CollUtil;
-import com.cqcy.ei.influxdb.entity.Item;
-import com.cqcy.ei.influxdb.service.QueryService;
-import com.example.opc_common.entity.ReportDataPolicy;
-import com.example.opc_common.entity.ReportDataPolicyItem;
-import com.example.opc_common.util.Blank;
-import com.example.opc_common.util.ConstantStr;
-import com.example.opc_common.util.MathUtil;
-import com.example.opc_da.util.QueryServiceUtil;
-import com.example.opc_da.util.RedisUtil;
-import lombok.extern.slf4j.Slf4j;
-
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
-
-@Slf4j
-public class PolicyReadTask extends TimerTask {
-    private final Timer timer;
-    private final QueryService queryService;
-    private final RedisUtil redisUtil;
-    private final AsyncTask asyncTask;
-    private final Long endTime;
-    private final ReportDataPolicy reportDataPolicy;
-    private final String dataSourceId;
-    private final List<String> items;
-
-    /**
-     * 有参构造
-     */
-    /**
-     * @param timer        任务停止时,摧毁timer
-     * @param queryService 从influxdb获取数据
-     * @param redisUtil    往缓存中添加获取数据
-     * @param asyncTask    使用异步任务,将获取的数据添加到数据库
-     * @param endTime      定时任务停止时间
-     */
-    public PolicyReadTask(Timer timer,
-                          QueryService queryService,
-                          RedisUtil redisUtil,
-                          AsyncTask asyncTask,
-                          Long endTime,
-                          ReportDataPolicy reportDataPolicy,
-                          String dataSourceId,
-                          List<String> items) {
-        this.timer = timer;
-        this.queryService = queryService;
-        this.redisUtil = redisUtil;
-        this.asyncTask = asyncTask;
-        this.endTime = endTime;
-        this.reportDataPolicy = reportDataPolicy;
-        this.dataSourceId = dataSourceId;
-        this.items = items;
-    }
-
-    @Override
-    public void run() {
-//        log.info("定时器内部开始执行");
-        //查看redis中此报表数据策略的状态
-        if (!getPolicyRunState(reportDataPolicy.getId())) {
-            timer.cancel();
-        }
-        //判断数据组是否到达了,今天的结束时间
-        if (System.currentTimeMillis() >= endTime) {
-            timer.cancel();
-        }
-        Integer readMode = reportDataPolicy.getReadMode();
-        Integer id = reportDataPolicy.getId();
-        List<ReportDataPolicyItem> policyItemList = reportDataPolicy.getPolicyItemList();
-        //查询数据项相关的数据
-        List<Item> itemDataByLast = queryService.getItemDataByLast(items, dataSourceId);
-        if (CollUtil.isEmpty(itemDataByLast)) {
-            return;
-        }
-        //判断数据是否为重复数据
-//        if (true) {
-//            return;
-//        }
-        //将得到的数据转换为Map<数据项名称,Item实体类>
-        Map<String, Item> map = itemDataByLast.stream().collect(Collectors.toMap(Item::getName, i -> i));
-        //将报表数据策略的数据项,赋值相应的值
-        for (int i = 0; i < policyItemList.size(); i++) {
-            ReportDataPolicyItem policyItem = policyItemList.get(i);
-            Item item = map.get(policyItem.getItemReadName());
-            QueryServiceUtil.itemParentCountValue(policyItem, item);
-        }
-
-        //按照频率读取
-        if (readMode.equals(ConstantStr.ON_FREQUENCY)) {
-            asyncTask.addData(id, policyItemList);
-            //按照值读取
-        } else if (readMode.equals(ConstantStr.ON_CHANGE)) {
-            changeRead(id, policyItemList);
-            //按照条件读取
-        }
-    }
-
-    /**
-     * 按照值改变读取
-     *
-     * @param id
-     * @param policyItemList
-     */
-    private void changeRead(Integer id, List<ReportDataPolicyItem> policyItemList) {
-        List<ReportDataPolicyItem> validPolicyItemList = new ArrayList<>();
-        for (ReportDataPolicyItem policyItem : policyItemList) {
-            Integer itemId = policyItem.getItemId();
-            BigDecimal dataValue = new BigDecimal(policyItem.getDataValue());
-            if (MathUtil.isMeetChange(
-                    (BigDecimal) redisUtil.get(ConstantStr.VALUE + itemId)
-                    , dataValue
-                    , new BigDecimal(reportDataPolicy.getModeValue())
-                    , reportDataPolicy.getReadModeType()
-            )) validPolicyItemList.add(policyItem);
-            redisUtil.set(ConstantStr.VALUE + itemId, dataValue);
-        }
-        if (Blank.isNotEmpty(validPolicyItemList)) asyncTask.addData(id, validPolicyItemList);
-    }
-
-
-
-    /**
-     * 获取redis中此时报表数据策略的运行状态
-     *
-     * @param id
-     * @return
-     */
-    public Boolean getPolicyRunState(Integer id) {
-        Boolean flage = (Boolean) redisUtil.get(ConstantStr.REPORT_DATA_POLICY + id);
-        if (Blank.isEmpty(flage)) {
-            flage = false;
-        }
-        return flage;
-    }
-
-}

+ 7 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/AutomaticChReportTableValidate.java

@@ -5,6 +5,8 @@ import com.example.opc_common.enums.ResultEnum;
 import com.example.opc_common.exception.CustomException;
 import com.example.opc_common.util.Result;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 自动子报表验证具体类
  */
@@ -19,4 +21,9 @@ public class AutomaticChReportTableValidate extends AutomaticReportTableValidate
     public Result runTable(String id, Integer runState, ReportTable oldReportTable) {
         throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此种类型报表不支持运行或停止");
     }
+
+    @Override
+    public Result setAutoTableTime(ReportTable reportTable, HttpServletRequest request) {
+        throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "自动报表子报表不允许配置");
+    }
 }

+ 38 - 8
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/AutomaticMaReportTableValidate.java

@@ -1,5 +1,6 @@
 package com.example.opc_da.validate.reportTable;
 
+import cn.hutool.extra.servlet.ServletUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.example.opc_common.entity.ReportTable;
@@ -14,11 +15,14 @@ import com.example.opc_da.task.AutoTableQuartzTask;
 import com.example.opc_da.task.AutoTableTimerTask;
 import com.example.opc_da.timer.PeriodTimerFactory;
 import com.example.opc_da.timer.QuartzTimerFactory;
+import org.quartz.CronExpression;
 
+import javax.servlet.http.HttpServletRequest;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.UUID;
 
 /**
  * 自动主报表验证具体类
@@ -71,18 +75,15 @@ public class AutomaticMaReportTableValidate extends AutomaticReportTableValidate
     public Result runTable(String id, Integer runState, ReportTable reportTable) {
         Integer oldRunState = reportTable.getRunState();
         String cronId = reportTable.getCronId();
-        if (Blank.isEmpty(cronId)) {
+        String cron = reportTable.getCron();
+        if (Blank.isEmpty(cronId, cron)) {
             return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "请先配置定时时间");
         }
-        String cron = reportTable.getCron();
         if (Blank.isEmpty(oldRunState)) {
             return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "未知报表运行状态,请刷新重试");
         }
         reportTableDao.runAutoTableById(id, runState);
         if (runState.equals(ConstantStr.START_UP)) {
-            if (Blank.isEmpty(cron)) {
-                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "请先配置定时时间");
-            }
             if (oldRunState.equals(ConstantStr.START_UP)) {
                 return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此自动报表已经处于启动状态");
             }
@@ -99,9 +100,6 @@ public class AutomaticMaReportTableValidate extends AutomaticReportTableValidate
             }
             return Result.ok("启动成功");
         } else if (runState.equals(ConstantStr.STOP_IT)) {
-            if (Blank.isEmpty(cronId)) {
-                throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "定时器主键丢失,停止失败");
-            }
             if (oldRunState.equals(ConstantStr.STOP_IT)) {
                 return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此自动报表已经处于停止状态");
             }
@@ -119,4 +117,36 @@ public class AutomaticMaReportTableValidate extends AutomaticReportTableValidate
         }
     }
 
+    @Override
+    public Result setAutoTableTime(ReportTable reportTable, HttpServletRequest request) {
+        ReportTable oldReportTable = reportTableDao.getReportTableNoDataById(reportTable.getId());
+        if (oldReportTable.getRunState().equals(ConstantStr.START_UP)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "自动报表现在处于启动状态,不允许修改定时时间");
+        }
+        if (reportTable.getIsRunPrint().equals(ConstantStr.START_UP)) {
+            if (Blank.isEmpty(reportTable.getPrintConfigId())) {
+                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "报表配置打印时,需要配置打印配置");
+            }
+        }
+        String clientIP = ServletUtil.getClientIP(request, "");
+        clientIP = "0:0:0:0:0:0:0:1".equals(clientIP) ? "127.0.0.1" : clientIP;
+        reportTable.setPrintIp(clientIP);
+        String cron = reportTable.getCron();
+        if (Blank.isEmpty(cron)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "定时器配置不能为空");
+        }
+        if (reportTable.getType().equals(1) && !CronExpression.isValidExpression(cron)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "定时任务配置不正确,请重新配置");
+        }
+        String cronId = oldReportTable.getCronId();
+        if (Blank.isEmpty(cronId)) {
+            cronId = UUID.randomUUID().toString().replace("-", "");
+            reportTable.setCronId(cronId);
+        }
+        if (reportTableDao.setAutoTableTime(reportTable) <= 0) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "修改失败");
+        }
+        return Result.ok("修改成功");
+    }
+
 }

+ 7 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/DeviceChReportTableValidate.java

@@ -5,6 +5,8 @@ import com.example.opc_common.enums.ResultEnum;
 import com.example.opc_common.exception.CustomException;
 import com.example.opc_common.util.Result;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 设备子报表验证具体类
  */
@@ -18,4 +20,9 @@ public class DeviceChReportTableValidate extends DeviceReportTableValidate {
     public Result runTable(String id, Integer runState, ReportTable oldReportTable) {
         throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此种类型报表不支持运行或停止");
     }
+
+    @Override
+    public Result setAutoTableTime(ReportTable reportTable, HttpServletRequest request) {
+        throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "设备报表子报表不允许配置");
+    }
 }

+ 43 - 1
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/DeviceMaReportTableValidate.java

@@ -1,12 +1,19 @@
 package com.example.opc_da.validate.reportTable;
 
+import cn.hutool.extra.servlet.ServletUtil;
 import com.example.opc_common.entity.ReportTable;
 import com.example.opc_common.enums.ResultEnum;
 import com.example.opc_common.exception.CustomException;
+import com.example.opc_common.util.Blank;
 import com.example.opc_common.util.ConstantStr;
 import com.example.opc_common.util.Result;
 import com.example.opc_da.config.SpringContextUtils;
 import com.example.opc_da.dao.ReportTableDao;
+import org.quartz.CronExpression;
+
+import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDateTime;
+import java.util.UUID;
 
 /**
  * 设备主报表验证具体类
@@ -16,6 +23,10 @@ public class DeviceMaReportTableValidate extends DeviceReportTableValidate {
 
     @Override
     public ReportTable getData(ReportTable reportTable) {
+        Integer runState = reportTable.getRunState();
+        if (ConstantStr.START_UP.equals(runState)) {
+            return reportTable.setReportTableData(resolveDeviceTableData(reportTable.getReportTableData(), LocalDateTime.now()));
+        }
         return reportTable;
     }
 
@@ -27,7 +38,6 @@ public class DeviceMaReportTableValidate extends DeviceReportTableValidate {
             if (oldRunState.equals(ConstantStr.START_UP)) {
                 return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此报表已经处于启动状态");
             }
-//                eventReportDataPolicyTaskRegister.addReportTableTask(reportTable);
             return Result.ok("启动成功");
         } else if (runState.equals(ConstantStr.STOP_IT)) {
             if (oldRunState.equals(ConstantStr.STOP_IT)) {
@@ -38,4 +48,36 @@ public class DeviceMaReportTableValidate extends DeviceReportTableValidate {
             throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "报表的状态只有启动或停止");
         }
     }
+
+    @Override
+    public Result setAutoTableTime(ReportTable reportTable, HttpServletRequest request) {
+        ReportTable oldReportTable = reportTableDao.getReportTableNoDataById(reportTable.getId());
+        if (oldReportTable.getRunState().equals(ConstantStr.START_UP)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "设备报表现在处于启动状态,不允许修改定时时间");
+        }
+        if (reportTable.getIsRunPrint().equals(ConstantStr.START_UP)) {
+            if (Blank.isEmpty(reportTable.getPrintConfigId())) {
+                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "报表配置打印时,需要配置打印配置");
+            }
+        }
+        String clientIP = ServletUtil.getClientIP(request, "");
+        clientIP = "0:0:0:0:0:0:0:1".equals(clientIP) ? "127.0.0.1" : clientIP;
+        reportTable.setPrintIp(clientIP);
+        String cron = reportTable.getCron();
+        if (Blank.isEmpty(cron)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "定时器配置不能为空");
+        }
+        if (reportTable.getType().equals(1) && !CronExpression.isValidExpression(cron)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "定时任务配置不正确,请重新配置");
+        }
+        String cronId = oldReportTable.getCronId();
+        if (Blank.isEmpty(cronId)) {
+            cronId = UUID.randomUUID().toString().replace("-", "");
+            reportTable.setCronId(cronId);
+        }
+        if (reportTableDao.setAutoTableTime(reportTable) <= 0) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "修改失败");
+        }
+        return Result.ok("修改成功");
+    }
 }

+ 35 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/DeviceReportTableValidate.java

@@ -1,7 +1,42 @@
 package com.example.opc_da.validate.reportTable;
 
+import com.alibaba.fastjson.JSONObject;
+
+import javax.validation.constraints.NotBlank;
+import java.time.LocalDateTime;
+
 /**
  * 设备报表验证抽象类
  */
 public abstract class DeviceReportTableValidate implements ReportTableValidate {
+
+    /**
+     * 解析设备表格数据
+     *
+     * @param reportTableDataStr 报表数据字符串
+     * @param referTime 参考时间
+     * @return 解析后的报表数据
+     */
+    public String resolveDeviceTableData(@NotBlank String reportTableDataStr, LocalDateTime referTime) {
+        //解析自动报表结构
+        JSONObject reportTableData = JSONObject.parseObject(reportTableDataStr);
+        //得到sheet数据
+        JSONObject sheet = reportTableData.getJSONObject("sheet");
+        reportTableData.put("sheet", resolveDeviceTableSheetData(sheet, referTime));
+
+        //将生成的数据重新转换为json
+        return reportTableData.toJSONString();
+    }
+
+    private JSONObject resolveDeviceTableSheetData(JSONObject sheet, LocalDateTime referTime) {
+        //解析sheet数据
+        JSONObject sheetData = sheet.getJSONObject("data");
+        //解析sheet的每一行数据
+        for (String key : sheetData.keySet()) {
+        }
+        //sheet数据最后往Json中存为data[0].data,回填数据
+//        echoSheet(sheetData, sheetTableDataMap);
+        sheet.put("data", sheetData);
+        return sheet;
+    }
 }

+ 6 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/EventChReportTableValidate.java

@@ -9,6 +9,7 @@ import com.example.opc_common.exception.CustomException;
 import com.example.opc_common.util.Blank;
 import com.example.opc_common.util.Result;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -29,6 +30,11 @@ public class EventChReportTableValidate extends EventReportTableValidate {
         throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此种类型报表不支持运行或停止");
     }
 
+    @Override
+    public Result setAutoTableTime(ReportTable reportTable, HttpServletRequest request) {
+        throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "事件驱动报表子报表不允许配置");
+    }
+
     /**
      * 回填表格数据
      *

+ 24 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/EventMaReportTableValidate.java

@@ -1,15 +1,19 @@
 package com.example.opc_da.validate.reportTable;
 
+import cn.hutool.extra.servlet.ServletUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.example.opc_common.entity.ReportTable;
 import com.example.opc_common.enums.ResultEnum;
 import com.example.opc_common.exception.CustomException;
+import com.example.opc_common.util.Blank;
 import com.example.opc_common.util.ConstantStr;
 import com.example.opc_common.util.Result;
 import com.example.opc_da.config.SpringContextUtils;
 import com.example.opc_da.dao.ReportTableDao;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 事件主报表验证具体类
  */
@@ -60,4 +64,24 @@ public class EventMaReportTableValidate extends EventReportTableValidate {
             throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "报表的状态只有启动或停止");
         }
     }
+
+    @Override
+    public Result setAutoTableTime(ReportTable reportTable, HttpServletRequest request) {
+        ReportTable oldReportTable = reportTableDao.getReportTableNoDataById(reportTable.getId());
+        if (oldReportTable.getRunState().equals(ConstantStr.START_UP)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "事件驱动报表现在处于启动状态,不允许修改");
+        }
+        if (reportTable.getIsRunPrint().equals(ConstantStr.START_UP)) {
+            if (Blank.isEmpty(reportTable.getPrintConfigId())) {
+                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "报表配置打印时,需要配置打印配置");
+            }
+        }
+        String clientIP = ServletUtil.getClientIP(request, "");
+        clientIP = "0:0:0:0:0:0:0:1".equals(clientIP) ? "127.0.0.1" : clientIP;
+        reportTable.setPrintIp(clientIP);
+        if (reportTableDao.setAutoTableTime(reportTable) <= 0) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "修改失败");
+        }
+        return Result.ok("修改成功");
+    }
 }

+ 15 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/ManualReportTableValidate.java

@@ -4,11 +4,17 @@ import com.example.opc_common.entity.ReportTable;
 import com.example.opc_common.enums.ResultEnum;
 import com.example.opc_common.exception.CustomException;
 import com.example.opc_common.util.Result;
+import com.example.opc_da.config.SpringContextUtils;
+import com.example.opc_da.dao.ReportTableDao;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * 手动报表验证具体类
  */
 public class ManualReportTableValidate implements ReportTableValidate {
+    ReportTableDao reportTableDao = SpringContextUtils.getBean(ReportTableDao.class);
+
     @Override
     public ReportTable getData(ReportTable reportTable) {
         return reportTable;
@@ -18,4 +24,13 @@ public class ManualReportTableValidate implements ReportTableValidate {
     public Result runTable(String id, Integer runState, ReportTable oldReportTable) {
         throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此种类型报表不支持运行或停止");
     }
+
+    @Override
+    public Result setAutoTableTime(ReportTable reportTable, HttpServletRequest request) {
+        //如果是手动报表,则修改其名称即可
+        if (reportTableDao.updateTableNameById(reportTable.getId(), reportTable.getReportTableName()) <= 0) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "修改失败");
+        }
+        return Result.ok("修改成功");
+    }
 }

+ 4 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/ReportTableValidate.java

@@ -3,6 +3,8 @@ package com.example.opc_da.validate.reportTable;
 import com.example.opc_common.entity.ReportTable;
 import com.example.opc_common.util.Result;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 报表验证抽象接口
  */
@@ -18,4 +20,6 @@ public interface ReportTableValidate {
 
     Result runTable(String id, Integer runState, ReportTable oldReportTable);
 
+    Result setAutoTableTime(ReportTable reportTable, HttpServletRequest request);
+
 }