From 7a3e590f484fa598f69d64a2f5e3d9ee2d790824 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期一, 05 五月 2025 16:31:58 +0800 Subject: [PATCH] Merge branch 'master' of http://dlindusit.com:53929/r/iailab-plat --- iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java | 76 +++++++++++++++++++++++++------------ 1 files changed, 51 insertions(+), 25 deletions(-) diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java index d1dca00..b36fc35 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/arc/service/impl/ArcDataServiceImpl.java @@ -2,6 +2,8 @@ import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.iailab.framework.mybatis.core.query.QueryWrapperX; import com.iailab.module.data.api.point.DataPointApiImpl; import com.iailab.module.data.api.point.dto.ApiPointValueDTO; import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO; @@ -35,36 +37,39 @@ //根据归档类型进行归档 @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); arcDataEntity.setArcId(item.getId()); arcDataEntity.setArcValue(value); + arcDataDao.delete(new LambdaQueryWrapperX<ArcDataEntity>() + .eq(ArcDataEntity::getArcId, arcDataEntity.getArcId()) + .eq(ArcDataEntity::getArcTime, arcDataEntity.getArcId()) + ); insert(arcDataEntity); log.debug("归档完成,point:"+item.getPoint()); }); @@ -72,29 +77,32 @@ 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); arcDataEntity.setArcId(item.getId()); arcDataEntity.setArcValue(value); + arcDataDao.delete(new LambdaQueryWrapperX<ArcDataEntity>() + .eq(ArcDataEntity::getArcId, arcDataEntity.getArcId()) + .eq(ArcDataEntity::getArcTime, arcDataEntity.getArcId()) + ); insert(arcDataEntity); log.debug("归档完成,point:"+item.getPoint()); }); @@ -102,29 +110,34 @@ 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); arcDataEntity.setArcId(item.getId()); arcDataEntity.setArcValue(value); + arcDataEntity.setCode(item.getCode()); + arcDataEntity.setCreateTime(new Date()); + arcDataDao.delete(new LambdaQueryWrapperX<ArcDataEntity>() + .eq(ArcDataEntity::getArcId, arcDataEntity.getArcId()) + .eq(ArcDataEntity::getArcTime, arcDataEntity.getArcId()) + ); insert(arcDataEntity); log.debug("归档完成,point:"+item.getPoint()); }); @@ -136,7 +149,6 @@ arcMonthList.forEach(item -> { log.debug("开始归档,point:"+item.getPoint()); //获取开始时间 - Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, -1); Date startTime = calendar.getTime(); //通过point编号查询数据 @@ -155,6 +167,12 @@ arcDataEntity.setArcTime(arcTime); arcDataEntity.setArcId(item.getId()); arcDataEntity.setArcValue(value); + arcDataEntity.setCode(item.getCode()); + arcDataEntity.setCreateTime(new Date()); + arcDataDao.delete(new LambdaQueryWrapperX<ArcDataEntity>() + .eq(ArcDataEntity::getArcId, arcDataEntity.getArcId()) + .eq(ArcDataEntity::getArcTime, arcDataEntity.getArcId()) + ); insert(arcDataEntity); log.debug("归档完成,point:"+item.getPoint()); }); @@ -166,7 +184,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编号查询数据 @@ -185,6 +203,12 @@ arcDataEntity.setArcTime(arcTime); arcDataEntity.setArcId(item.getId()); arcDataEntity.setArcValue(value); + arcDataEntity.setCode(item.getCode()); + arcDataEntity.setCreateTime(new Date()); + arcDataDao.delete(new LambdaQueryWrapperX<ArcDataEntity>() + .eq(ArcDataEntity::getArcId, arcDataEntity.getArcId()) + .eq(ArcDataEntity::getArcTime, arcDataEntity.getArcId()) + ); insert(arcDataEntity); log.debug("归档完成,point:"+item.getPoint()); }); @@ -218,7 +242,9 @@ BigDecimal prev = BigDecimal.valueOf(valueList.get(0).getV()); for (int i = 1; i < valueList.size(); i++) { BigDecimal curr = BigDecimal.valueOf(valueList.get(i).getV()); - value = value.add(curr.subtract(prev)); + if(curr.compareTo(prev) > 0) { + value = value.add(curr.subtract(prev)); + } prev = curr; } break; -- Gitblit v1.9.3