解决云上-生产环境空指针报错

This commit is contained in:
zq
2025-12-23 09:50:27 +08:00
parent 15a25b5ada
commit 944adf3503

View File

@ -7,24 +7,55 @@ import com.xzzn.common.enums.DeviceCategory;
import com.xzzn.common.enums.SiteEnum; import com.xzzn.common.enums.SiteEnum;
import com.xzzn.common.utils.DateUtils; import com.xzzn.common.utils.DateUtils;
import com.xzzn.common.utils.StringUtils; import com.xzzn.common.utils.StringUtils;
import com.xzzn.ems.domain.*; import com.xzzn.ems.domain.EmsAmmeterData;
import com.xzzn.ems.domain.EmsBatteryCluster;
import com.xzzn.ems.domain.EmsBatteryData;
import com.xzzn.ems.domain.EmsBatteryStack;
import com.xzzn.ems.domain.EmsCoolingData;
import com.xzzn.ems.domain.EmsDhData;
import com.xzzn.ems.domain.EmsEmsData;
import com.xzzn.ems.domain.EmsPcsBranchData;
import com.xzzn.ems.domain.EmsPcsData;
import com.xzzn.ems.domain.EmsStrategyTemp;
import com.xzzn.ems.domain.EmsXfData;
import com.xzzn.ems.domain.vo.*; import com.xzzn.ems.domain.vo.*;
import com.xzzn.ems.mapper.*; import com.xzzn.ems.mapper.EmsAlarmRecordsMapper;
import com.xzzn.ems.mapper.EmsAmmeterDataMapper;
import com.xzzn.ems.mapper.EmsBatteryClusterMapper;
import com.xzzn.ems.mapper.EmsBatteryStackMapper;
import com.xzzn.ems.mapper.EmsDailyChargeDataMapper;
import com.xzzn.ems.mapper.EmsDailyEnergyDataMapper;
import com.xzzn.ems.mapper.EmsDevicesSettingMapper;
import com.xzzn.ems.mapper.EmsEnergyPriceConfigMapper;
import com.xzzn.ems.mapper.EmsPcsDataMapper;
import com.xzzn.ems.mapper.EmsPointMatchMapper;
import com.xzzn.ems.mapper.EmsStrategyRunningMapper;
import com.xzzn.ems.mapper.EmsStrategyTempMapper;
import com.xzzn.ems.service.IEmsEnergyPriceConfigService; import com.xzzn.ems.service.IEmsEnergyPriceConfigService;
import com.xzzn.ems.service.ISingleSiteService; import com.xzzn.ems.service.ISingleSiteService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalTime; import java.time.LocalTime;
import java.util.*; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
/** /**
* 单点监控 服务层实现 * 单点监控 服务层实现
*/ */
@ -920,9 +951,9 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
BigDecimal pvPower = powerStat != null ? powerStat.getPvPower() : BigDecimal.ZERO; BigDecimal pvPower = powerStat != null ? powerStat.getPvPower() : BigDecimal.ZERO;
BigDecimal storagePower = powerStat != null ? powerStat.getStoragePower() : BigDecimal.ZERO; BigDecimal storagePower = powerStat != null ? powerStat.getStoragePower() : BigDecimal.ZERO;
BigDecimal gridPower = powerStat != null ? powerStat.getGridPower() : BigDecimal.ZERO; BigDecimal gridPower = powerStat != null ? powerStat.getGridPower() : BigDecimal.ZERO;
BigDecimal avgSoh = stackStat != null ? stackStat.getAvgSoh().setScale(2,RoundingMode.HALF_UP) : BigDecimal.ZERO; BigDecimal avgSoh = stackStat != null ? (stackStat.getAvgSoh() == null ? BigDecimal.ZERO : stackStat.getAvgSoh().setScale(2,RoundingMode.HALF_UP)) : BigDecimal.ZERO;
BigDecimal avgSoc = stackStat != null ? stackStat.getAvgSoc().setScale(2,RoundingMode.HALF_UP) : BigDecimal.ZERO; BigDecimal avgSoc = stackStat != null ? (stackStat.getAvgSoc() == null ? BigDecimal.ZERO : stackStat.getAvgSoc().setScale(2,RoundingMode.HALF_UP)) : BigDecimal.ZERO;
BigDecimal avgTemp = stackStat != null ? stackStat.getAvgTemp().setScale(2,RoundingMode.HALF_UP) : BigDecimal.ZERO; BigDecimal avgTemp = stackStat != null ? (stackStat.getAvgTemp() == null ? BigDecimal.ZERO : stackStat.getAvgTemp().setScale(2,RoundingMode.HALF_UP)) : BigDecimal.ZERO;
// 假设完整构造参数(补充原代码中缺失的部分) // 假设完整构造参数(补充原代码中缺失的部分)
return new PointDataResponse(date, pvPower, storagePower, BigDecimal.ZERO, gridPower, avgSoh, avgSoc, avgTemp); return new PointDataResponse(date, pvPower, storagePower, BigDecimal.ZERO, gridPower, avgSoh, avgSoc, avgTemp);