算法优化

This commit is contained in:
xy
2025-07-17 10:32:40 +08:00
parent 1629e1c4cc
commit 882d56a2c5

View File

@@ -15,13 +15,17 @@ import com.njcn.csdevice.pojo.po.RStatOnlineRateD;
import com.njcn.csdevice.service.ICsCommunicateService; import com.njcn.csdevice.service.ICsCommunicateService;
import com.njcn.csdevice.service.IRStatOnlineRateDService; import com.njcn.csdevice.service.IRStatOnlineRateDService;
import com.njcn.csdevice.util.TimeUtil; import com.njcn.csdevice.util.TimeUtil;
import com.njcn.csharmonic.param.DataParam;
import com.njcn.csharmonic.pojo.param.StatisticsDataParam; import com.njcn.csharmonic.pojo.param.StatisticsDataParam;
import com.njcn.influx.deprecated.InfluxDBPublicParam; import com.njcn.influx.deprecated.InfluxDBPublicParam;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
@@ -159,18 +163,30 @@ public class RStatOnlineRateDServiceImpl extends MppServiceImpl<RStatOnlineRateD
} else { } else {
minute = (int) onlineTime; minute = (int) onlineTime;
} }
} else { }
if (type != null) {
/*当前统计时间内仅有一条数据*/ /*当前统计时间内仅有一条数据*/
else {
if (type != null) {
long differ = DateUtil.between(date, newDate, DateUnit.MINUTE); long differ = DateUtil.between(date, newDate, DateUnit.MINUTE);
if (online.equals(type)) { if (online.equals(type)) {
minute = InfluxDBPublicParam.DAY_MINUTE - (int) differ; minute = InfluxDBPublicParam.DAY_MINUTE - (int) differ;
} }
} else { } else {
List<PqsCommunicateDto> communicateDataOld = pqsCommunicateService.getRawDataEnd(lineParam); List<PqsCommunicateDto> communicateDataOld = pqsCommunicateService.getRawDataEnd(lineParam);
// if (!communicateDataOld.isEmpty()){
// if (online.equals(communicateDataOld.get(0).getType())){
// minute = InfluxDBPublicParam.DAY_MINUTE;
// }
// }
if (!communicateDataOld.isEmpty()){ if (!communicateDataOld.isEmpty()){
try {
if (online.equals(communicateDataOld.get(0).getType())){ if (online.equals(communicateDataOld.get(0).getType())){
minute = InfluxDBPublicParam.DAY_MINUTE; minute = (int) DateUtil.between(new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN).parse(communicateDataOld.get(0).getTime()), new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN).parse(lineParam.getEndTime()), DateUnit.MINUTE);
} else {
minute = (int) DateUtil.between(new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN).parse(lineParam.getStartTime()), new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN).parse(communicateDataOld.get(0).getTime()), DateUnit.MINUTE);
}
} catch (ParseException e) {
throw new RuntimeException(e);
} }
} }
} }