|
|
@@ -2,8 +2,14 @@ package com.jjt.calc.service.impl;
|
|
|
|
|
|
import com.jjt.biz.domain.TwinDevice;
|
|
|
import com.jjt.biz.service.ITwinDeviceService;
|
|
|
-import com.jjt.calc.domain.*;
|
|
|
-import com.jjt.calc.mapper.*;
|
|
|
+import com.jjt.calc.domain.TwinCalcHour;
|
|
|
+import com.jjt.calc.domain.TwinCalcHourSpec;
|
|
|
+import com.jjt.calc.domain.TwinRecordAlarms;
|
|
|
+import com.jjt.calc.domain.TwinRecordStop;
|
|
|
+import com.jjt.calc.mapper.TwinCalcHourMapper;
|
|
|
+import com.jjt.calc.mapper.TwinCalcHourSpecMapper;
|
|
|
+import com.jjt.calc.mapper.TwinRecordAlarmsMapper;
|
|
|
+import com.jjt.calc.mapper.TwinRecordStopMapper;
|
|
|
import com.jjt.calc.service.ITwinCalcAlarmsService;
|
|
|
import com.jjt.calc.service.ITwinCalcDayService;
|
|
|
import com.jjt.calc.service.ITwinCalcHourService;
|
|
|
@@ -16,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.ibatis.session.ExecutorType;
|
|
|
import org.apache.ibatis.session.SqlSession;
|
|
|
import org.apache.ibatis.session.SqlSessionFactory;
|
|
|
+import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
@@ -53,6 +60,8 @@ public class TwinCalcHourServiceImpl implements ITwinCalcHourService {
|
|
|
private ITwinCalcDayService dayService;
|
|
|
@Resource
|
|
|
private ITwinEmpCalcService empCalcService;
|
|
|
+ @Resource
|
|
|
+ private JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
/**
|
|
|
* 查询1小时统计数据
|
|
|
@@ -147,6 +156,42 @@ public class TwinCalcHourServiceImpl implements ITwinCalcHourService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 补录某天的数据
|
|
|
+ *
|
|
|
+ * @param date 时间
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void calcBl(Date date) {
|
|
|
+ log.info("指定日期{}补录数据开始===========", date);
|
|
|
+ //先删除数据
|
|
|
+ LocalDate localDate = DateUtils.toLocalDate(date);
|
|
|
+ LocalDateTime start = LocalDateTime.of(localDate, LocalTime.MIN).plusHours(7);
|
|
|
+ LocalDateTime stop = start.plusHours(23);
|
|
|
+ String startTime = DateUtils.parseTimeToStr(start);
|
|
|
+ String endTime = DateUtils.parseTimeToStr(stop);
|
|
|
+ List<String> sqls = new ArrayList<>();
|
|
|
+ String sql = "DELETE FROM TWIN_CALC_ALARMS WHERE DATEADD(hour,[HOUR], DATA_DATE) between '%s' AND '%s'";
|
|
|
+ sqls.add(String.format(sql, startTime, endTime));
|
|
|
+ sql = "DELETE FROM TWIN_CALC_STOP WHERE DATEADD(hour,[HOUR], DATA_DATE) between '%s' AND '%s'";
|
|
|
+ sqls.add(String.format(sql, startTime, endTime));
|
|
|
+ sql = "DELETE FROM TWIN_CALC_HOUR WHERE DATEADD(hour,[HOUR], DATA_DATE) between '%s' AND '%s'";
|
|
|
+ sqls.add(String.format(sql, startTime, endTime));
|
|
|
+ sql = "DELETE FROM TWIN_CALC_HOUR_SPEC WHERE DATEADD(hour,[HOUR], DATA_DATE) between '%s' AND '%s'";
|
|
|
+ sqls.add(String.format(sql, startTime, endTime));
|
|
|
+ sql = "DELETE FROM TWIN_PAN_HEAD_INFO WHERE RECORD_TIME between '%s' AND '%s'";
|
|
|
+ sqls.add(String.format(sql, startTime, endTime));
|
|
|
+ jdbcTemplate.batchUpdate(sqls.toArray(new String[0]));
|
|
|
+
|
|
|
+ while (!start.isAfter(stop)) {
|
|
|
+ LocalDateTime end = start.plusHours(1);
|
|
|
+ calc4device(start, end);
|
|
|
+ log.info("补录数据===========start:{},end:{},stop:{}", start, end, stop);
|
|
|
+ start = end;
|
|
|
+ }
|
|
|
+ log.info("指定日期{}补录数据结束===========", date);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 统计指定日期指定时段数据
|
|
|
*
|
|
|
* @param date 指定日期 yyyy-mm-dd
|