From b5001441f2e5e6de26f01422ba58f6497b62ce5b Mon Sep 17 00:00:00 2001 From: xuyang <748613696@qq.com> Date: Mon, 25 Dec 2023 11:07:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B2=B3=E5=8C=97=E8=B6=85=E9=AB=98=E5=8E=8B?= =?UTF-8?q?=E7=AE=97=E6=B3=95=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/line/IntegrityController.java | 20 ++-- .../mysql/Impl/line/IntegrityServiceImpl.java | 92 ++++++++++--------- .../service/mysql/line/IntegrityService.java | 4 +- 3 files changed, 63 insertions(+), 53 deletions(-) diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/IntegrityController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/IntegrityController.java index 3ebda0863..25f681b90 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/IntegrityController.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/IntegrityController.java @@ -1,6 +1,5 @@ package com.njcn.prepare.harmonic.controller.line; -import cn.hutool.core.collection.CollectionUtil; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; @@ -8,17 +7,14 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.NjcnDateUtils; import com.njcn.device.biz.commApi.CommTerminalGeneralClient; -import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.service.mysql.line.IntegrityService; -import com.njcn.prepare.harmonic.utils.PublicUtil; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -53,14 +49,18 @@ public class IntegrityController extends BaseController { public HttpResult dataIntegrity(@RequestBody @Validated LineParam lineParam){ log.info(LocalDateTime.now()+"dataIntegrity开始执行"); String methodDescribe = getMethodDescribe("dataIntegrity"); - CalculatedParam calculatedParam = new CalculatedParam(); - calculatedParam.setDataDate(lineParam.getDataDate()); - if (CollectionUtil.isNotEmpty(lineParam.getLineIds())){ - calculatedParam.setIdList(lineParam.getLineIds()); + String startTime,endTime; + if (Objects.nonNull(lineParam.getRepairFlag()) && lineParam.getRepairFlag()){ + List timeRange = NjcnDateUtils.findEveryDay(lineParam.getBeginTime(),lineParam.getEndTime()); + for (String item : timeRange) { + log.info(item+"-->开始执行"); + startTime = item+" "+"00:00:00"; + endTime = item+" "+"23:59:59"; + integrityService.dataIntegrity(lineParam,startTime,endTime); + } } else { - calculatedParam.setIdList(commTerminalGeneralClient.getRunMonitorIds().getData()); + integrityService.dataIntegrity(lineParam,lineParam.getBeginTime(),lineParam.getEndTime()); } - integrityService.dataIntegrity(calculatedParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, CommonResponseEnum.SUCCESS.getMessage(), methodDescribe); } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/IntegrityServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/IntegrityServiceImpl.java index e11378c35..0bb3f5610 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/IntegrityServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/IntegrityServiceImpl.java @@ -1,13 +1,17 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.line; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.LocalDateTimeUtil; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.common.pojo.enums.common.ServerEnum; import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; +import com.njcn.device.biz.pojo.param.DeptGetLineParam; import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.influx.constant.InfluxDbSqlConstant; +import com.njcn.influx.deprecated.InfluxDBPublicParam; import com.njcn.influx.imapper.DataVMapper; import com.njcn.influx.pojo.bo.MeasurementCount; import com.njcn.influx.pojo.constant.InfluxDBTableConstant; @@ -16,15 +20,21 @@ import com.njcn.influx.query.InfluxQueryWrapper; import com.njcn.influx.utils.InfluxDbUtils; import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.service.mysql.line.IntegrityService; import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.po.Dept; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.ListUtils; +import org.influxdb.dto.QueryResult; +import org.influxdb.impl.InfluxDBResultMapper; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -54,37 +64,35 @@ public class IntegrityServiceImpl extends MppServiceImpl lineDevGetDTOList = new ArrayList<>(); -// if (CollUtil.isEmpty(lineParam.getLineIds())){ -// Dept dept = deptFeignClient.getRootDept().getData(); -// -// DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); -// deptGetLineParam.setDeptId(dept.getId()); -// deptGetLineParam.setServerName(ServerEnum.HARMONIC.getName()); -// List monitorIds = commTerminalGeneralClient.getRunMonitorIds().getData(); -// lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(monitorIds).getData(); -// }else { -// lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(lineParam.getLineIds()).getData(); -// } -// List list = new ArrayList<>(); -// for (LineDevGetDTO lineDetail :lineDevGetDTOList){ -// int dataCount = getDataCount(lineDetail.getPointId(),startTime,endTime); -// RStatIntegrityD integrityDpo = new RStatIntegrityD(); -// integrityDpo.setTimeId(dateTime); -// integrityDpo.setLineIndex(lineDetail.getPointId()); -// integrityDpo.setDueTime(InfluxDBPublicParam.DAY_MINUTE/lineDetail.getInterval()); -// integrityDpo.setRealTime(dataCount); -// list.add(integrityDpo); -// } -// this.saveOrUpdateBatchByMultiId(list,500); -// } + @Override + @Async("asyncExecutor") + @Deprecated + public void dataIntegrity(LineParam lineParam, String startTime, String endTime) { + LocalDate dateTime = LocalDate.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + List lineDevGetDTOList; + if (CollUtil.isEmpty(lineParam.getLineIds())){ + Dept dept = deptFeignClient.getRootDept().getData(); + + DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); + deptGetLineParam.setDeptId(dept.getId()); + deptGetLineParam.setServerName(ServerEnum.HARMONIC.getName()); + List monitorIds = commTerminalGeneralClient.getRunMonitorIds().getData(); + lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(monitorIds).getData(); + }else { + lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(lineParam.getLineIds()).getData(); + } + List list = new ArrayList<>(); + for (LineDevGetDTO lineDetail :lineDevGetDTOList){ + int dataCount = getDataCount(lineDetail.getPointId(),startTime,endTime); + RStatIntegrityD integrityDpo = new RStatIntegrityD(); + integrityDpo.setTimeId(dateTime); + integrityDpo.setLineIndex(lineDetail.getPointId()); + integrityDpo.setDueTime(InfluxDBPublicParam.DAY_MINUTE/lineDetail.getInterval()); + integrityDpo.setRealTime(dataCount); + list.add(integrityDpo); + } + this.saveOrUpdateBatchByMultiId(list,500); + } /********************************新算法************************************************/ @Override @@ -144,16 +152,16 @@ public class IntegrityServiceImpl extends MppServiceImpl= '" + startTime + "' and time <= '" + endTime + "' and line_id = '" + lineId + "' and phasic_type = 'T' and value_type = 'MAX' tz('Asia/Shanghai')"); -// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); -// List list = resultMapper.toPOJO(sqlResult, DataV.class); -// if (CollectionUtils.isEmpty(list)){ -// return 0; -// } else { -// return list.size(); -// } -// } + private int getDataCount(String lineId,String startTime,String endTime){ + QueryResult sqlResult = influxDbUtils.query("SELECT * FROM data_v WHERE time >= '" + startTime + "' and time <= '" + endTime + "' and line_id = '" + lineId + "' and phasic_type = 'A' and value_type = 'MAX' tz('Asia/Shanghai')"); + InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); + List list = resultMapper.toPOJO(sqlResult, DataV.class); + if (CollectionUtils.isEmpty(list)){ + return 0; + } else { + return list.size(); + } + } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/IntegrityService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/IntegrityService.java index 1195cdaa4..dffb14d0a 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/IntegrityService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/IntegrityService.java @@ -1,6 +1,7 @@ package com.njcn.prepare.harmonic.service.mysql.line; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.pojo.param.LineParam; /** * @author xiaoyao @@ -9,7 +10,8 @@ import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; */ public interface IntegrityService { -// void dataIntegrity(LineParam lineParam,String startTime,String endTime); + @Deprecated + void dataIntegrity(LineParam lineParam, String startTime, String endTime); /*** * 监测点数据完整性_日表