潘志宝
8 天以前 3d5b12473c18cd48e70fc76fbc61968eecd7121e
数据归档
已修改4个文件
62 ■■■■■ 文件已修改
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/controller/admin/ArcDataController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/ArcDataService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/PointArchivingTaskNetDay.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/controller/admin/ArcDataController.java
@@ -12,6 +12,8 @@
import javax.validation.Valid;
import java.util.Calendar;
import static com.iailab.framework.common.pojo.CommonResult.success;
/**
@@ -30,7 +32,10 @@
    @PostMapping("archiving")
    public CommonResult<Boolean> archiving(@RequestBody String type) {
        arcDataService.archiving(type);
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.SECOND, 0);
        arcDataService.archiving(type, calendar);
        return success(true);
    }
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/ArcDataService.java
@@ -5,9 +5,12 @@
import com.iailab.module.data.arc.entity.ArcDataEntity;
import com.iailab.module.data.arc.vo.ArcDataPageReqVO;
import java.util.Calendar;
import java.util.Date;
public interface ArcDataService extends BaseService<ArcDataEntity> {
    //根据归档类型进行归档
    void archiving(String type);
    void archiving(String type, Calendar calendar);
    PageResult<ArcDataEntity> queryPage(ArcDataPageReqVO reqVO);
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java
@@ -35,31 +35,30 @@
    //根据归档类型进行归档
    @Override
    public void archiving(String type) {
    public void archiving(String type, Calendar calendar) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("type", type);
        switch (ArcTypeEnum.getEumByCode(type)) {
            case HOUR:
                //查询对应类型的归档设置列表
                List<ArcSettingEntity> arcHourList = arcPointSettingService.list(params);
                Date endTime1 = calendar.getTime();
                calendar.add(Calendar.HOUR_OF_DAY, -1);
                Date startTime1 = calendar.getTime();
                //遍历列表
                arcHourList.forEach(item -> {
                    log.debug("开始归档,point:"+item.getPoint());
                    //获取开始时间
                    Calendar calendar = Calendar.getInstance();
                    calendar.add(Calendar.HOUR_OF_DAY, -1);
                    Date startTime = calendar.getTime();
                    //通过point编号查询数据
                    ApiPointValueQueryDTO queryDto = new ApiPointValueQueryDTO();
                    queryDto.setPointNo(item.getPoint());
                    queryDto.setStart(startTime);
                    queryDto.setEnd(new Date());
                    queryDto.setStart(startTime1);
                    queryDto.setEnd(endTime1);
                    List<ApiPointValueDTO> valueList = dataPointApi.queryPointHistoryValue(queryDto);
                    //判断根据计算类型计算
                    BigDecimal value = calculate(item.getCalculate(), valueList);
                    //归档
                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH");
                    String arcTime = dateFormat.format(startTime);
                    String arcTime = dateFormat.format(startTime1);
                    ArcDataEntity arcDataEntity = new ArcDataEntity();
                    arcDataEntity.setId(String.valueOf(new Date().getTime()));
                    arcDataEntity.setArcTime(arcTime);
@@ -72,24 +71,23 @@
            case SHIFT:
                //查询对应类型的归档设置列表
                List<ArcSettingEntity> arcShiftList = arcPointSettingService.list(params);
                Date endTime2 = calendar.getTime();
                calendar.add(Calendar.HOUR_OF_DAY, -1);
                Date startTime2 = calendar.getTime();
                //遍历列表
                arcShiftList.forEach(item -> {
                    log.debug("开始归档,point:"+item.getPoint());
                    //获取开始时间
                    Calendar calendar = Calendar.getInstance();
                    calendar.add(Calendar.HOUR_OF_DAY, -12);
                    Date startTime = calendar.getTime();
                    //通过point编号查询数据
                    ApiPointValueQueryDTO queryDto = new ApiPointValueQueryDTO();
                    queryDto.setPointNo(item.getPoint());
                    queryDto.setStart(startTime);
                    queryDto.setEnd(new Date());
                    queryDto.setStart(startTime2);
                    queryDto.setEnd(endTime2);
                    List<ApiPointValueDTO> valueList = dataPointApi.queryPointHistoryValue(queryDto);
                    //判断根据计算类型计算
                    BigDecimal value = calculate(item.getCalculate(), valueList);
                    //归档
                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH");
                    String arcTime = dateFormat.format(startTime);
                    String arcTime = dateFormat.format(startTime2);
                    ArcDataEntity arcDataEntity = new ArcDataEntity();
                    arcDataEntity.setId(String.valueOf(new Date().getTime()));
                    arcDataEntity.setArcTime(arcTime);
@@ -102,24 +100,23 @@
            case DAY:
                //查询对应类型的归档设置列表
                List<ArcSettingEntity> arcDayList = arcPointSettingService.list(params);
                Date endTime3 = calendar.getTime();
                calendar.add(Calendar.DAY_OF_YEAR, -1);
                Date startTime3 = calendar.getTime();
                //遍历列表
                arcDayList.forEach(item -> {
                    log.debug("开始归档,point:"+item.getPoint());
                    //获取开始时间
                    Calendar calendar = Calendar.getInstance();
                    calendar.add(Calendar.DAY_OF_MONTH, -1);
                    Date startTime = calendar.getTime();
                    //通过point编号查询数据
                    ApiPointValueQueryDTO queryDto = new ApiPointValueQueryDTO();
                    queryDto.setPointNo(item.getPoint());
                    queryDto.setStart(startTime);
                    queryDto.setEnd(new Date());
                    queryDto.setStart(startTime3);
                    queryDto.setEnd(endTime3);
                    List<ApiPointValueDTO> valueList = dataPointApi.queryPointHistoryValue(queryDto);
                    //判断根据计算类型计算
                    BigDecimal value = calculate(item.getCalculate(), valueList);
                    //归档
                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                    String arcTime = dateFormat.format(startTime);
                    String arcTime = dateFormat.format(startTime3);
                    ArcDataEntity arcDataEntity = new ArcDataEntity();
                    arcDataEntity.setId(String.valueOf(new Date().getTime()));
                    arcDataEntity.setArcTime(arcTime);
@@ -138,7 +135,6 @@
                arcMonthList.forEach(item -> {
                    log.debug("开始归档,point:"+item.getPoint());
                    //获取开始时间
                    Calendar calendar = Calendar.getInstance();
                    calendar.add(Calendar.MONTH, -1);
                    Date startTime = calendar.getTime();
                    //通过point编号查询数据
@@ -170,7 +166,7 @@
                arcYearList.forEach(item -> {
                    log.debug("开始归档,point:"+item.getPoint());
                    //获取开始时间
                    Calendar calendar = Calendar.getInstance();
                    //Calendar calendar = Calendar.getInstance();
                    calendar.add(Calendar.YEAR, -1);
                    Date startTime = calendar.getTime();
                    //通过point编号查询数据
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/PointArchivingTaskNetDay.java
@@ -8,6 +8,7 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Calendar;
/**
 * @description: Point归档日
@@ -24,8 +25,11 @@
    @Override
    public void run(String params){
        logger.debug("PointArchivingTaskNetDay定时任务正在执行,参数为:{}", params);
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.SECOND, 0);
        try {
            arcPointDataService.archiving(ArcTypeEnum.DAY.getCode());
            arcPointDataService.archiving(ArcTypeEnum.DAY.getCode(), calendar);
            logger.info("PointArchivingTaskNetDay定时任务完成时间:" + LocalDateTime.now());
        } catch (Exception ex) {
            ex.printStackTrace();