diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/fill/entity/UseEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/fill/entity/UseEntity.java index f097c8d..75b7786 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/fill/entity/UseEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/fill/entity/UseEntity.java @@ -5,12 +5,17 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import org.springblade.core.tenant.mp.TenantEntity; import java.io.Serializable; import java.math.BigDecimal; +/** + * @author usj + */ +@EqualsAndHashCode(callSuper = true) @Data @TableName("hzims_fill_use") @ApiModel(value="UseEntity", description="保存用电量填报数据对象") diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/GenerateService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/GenerateService.java index 8e7bcfe..29bb8aa 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/GenerateService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/GenerateService.java @@ -6,12 +6,15 @@ import com.hnac.hzims.operational.fill.entity.RainfallEntity; import com.hnac.hzims.operational.fill.vo.GenerateVo; import com.hnac.hzims.operational.fill.vo.QueryVo; import com.hnac.hzims.operational.fill.vo.RainfallVo; +import com.hnac.hzims.operational.main.vo.GenerationPowerVo; import com.hnac.hzims.operational.main.vo.PowerMonthVo; +import com.hnac.hzims.operational.main.vo.UsrPowerVo; import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import java.util.List; +import java.util.Map; /** * @author ysj @@ -26,6 +29,12 @@ public interface GenerateService extends BaseService { // 新增/修改发电量填报数据 boolean saveUpdate(GenerateEntity entity); + // 查询填报用电量 + Float generate(String date,String station); + + // 查询30天填报用电量 + List generate30Day(String day, String station); + // 获取站点填报发电量 List generateThreeYear(String start, String end, String station); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/GenerateServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/GenerateServiceImpl.java index 6ff4613..2b1f037 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/GenerateServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/service/impl/GenerateServiceImpl.java @@ -5,12 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hnac.hzims.operational.fill.entity.GenerateEntity; +import com.hnac.hzims.operational.fill.entity.UseEntity; import com.hnac.hzims.operational.fill.mapper.GenerateMapper; import com.hnac.hzims.operational.fill.service.GenerateService; import com.hnac.hzims.operational.fill.vo.GenerateVo; import com.hnac.hzims.operational.fill.vo.QueryVo; import com.hnac.hzims.operational.fill.wrapper.GenerateWrapper; +import com.hnac.hzims.operational.main.vo.GenerationPowerVo; import com.hnac.hzims.operational.main.vo.PowerMonthVo; +import com.hnac.hzims.operational.main.vo.UsrPowerVo; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; @@ -25,6 +28,7 @@ import org.springblade.core.tool.utils.StringUtil; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import java.util.stream.Collectors; @@ -88,6 +92,56 @@ public class GenerateServiceImpl extends BaseServiceImpl powers = this.list(Wrappers.lambdaQuery() + .likeRight(GenerateEntity::getFillDate,date) + .eq(GenerateEntity::getStationCode,station) + ); + if(CollectionUtil.isEmpty(powers)){ + return 0f; + } + return (float) powers.stream().mapToDouble(GenerateEntity::getGenerate).sum(); + } + + /** + * 查询30天填报用电量 + * @param day : 结束日期 yyyy-MM-dd + * @param station 站点编码 + * @return + */ + @Override + public List generate30Day(String day, String station) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(DateUtil.parse(day,DateUtil.PATTERN_DATE)); + String end = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE); + calendar.add(Calendar.DAY_OF_MONTH,-29); + String start = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE); + List records = this.list(Wrappers.lambdaQuery() + .between(GenerateEntity::getFillDate,start,end) + .eq(GenerateEntity::getStationCode,station) + ); + if(CollectionUtil.isEmpty(records)){ + return new ArrayList<>(); + } + return records.stream().map(record->{ + GenerationPowerVo generate = new GenerationPowerVo(); + generate.setDate(record.getFillDate()); + if(Math.abs(record.getGenerate()) <= 0){ + generate.setGenerate(0f); + }else{ + generate.setGenerate(Float.parseFloat(record.getGenerate().toString())); + } + return generate; + }).collect(Collectors.toList()); + } + + /** * * @param start 时间: 年 - yyyy/月 yyyy-mm/日 yyyy-mm-dd * @param end 时间: 年 - yyyy/月 yyyy-mm/日 yyyy-mm-dd diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/controller/WebHomeController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/controller/WebHomeController.java index c7a5096..1f53f74 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/controller/WebHomeController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/controller/WebHomeController.java @@ -17,6 +17,9 @@ import org.springframework.web.bind.annotation.RestController; import java.util.List; +/** + * @author ysj + */ @RestController @RequestMapping("/webHome") @Api(value = "app首页", tags = "app-首页") @@ -24,12 +27,13 @@ import java.util.List; public class WebHomeController extends BladeController { private final HydropowerService service; + @ApiLog @ApiOperation("水电站站点统计") @GetMapping("/webStation") @ApiOperationSupport(order = 1) public R hydropowerStation(@ApiParam(value = "站点机构ID") Long deptId) { - HydropowerStationVo response = service.webStation(deptId); + HydropowerStationVo response = service.station(deptId); return R.data(response); } @ApiLog @@ -41,7 +45,6 @@ public class WebHomeController extends BladeController { return R.data(list); } @ApiLog - @ApiOperation("水电站站点列表") @GetMapping("/webStationList") @ApiOperationSupport(order = 2) @@ -49,4 +52,4 @@ public class WebHomeController extends BladeController { return R.data(service.webStationList(deptId)); } -} +} \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/HydropowerService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/HydropowerService.java index b7a0576..6ccae65 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/HydropowerService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/HydropowerService.java @@ -14,7 +14,7 @@ public interface HydropowerService { void loadHydropowerTarget(String param); - HydropowerStationVo webStation(Long deptId); + HydropowerStationVo station(Long deptId); List hydropowerDevice(Long deptId); diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java index 8393825..38f74be 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java @@ -2,6 +2,7 @@ package com.hnac.hzims.operational.main.service.impl; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hnac.hzims.EquipmentConstants; import com.hnac.hzims.equipment.feign.IPlanGenertionClient; import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; @@ -9,9 +10,10 @@ import com.hnac.hzims.equipment.vo.PlanPowerYearVo; import com.hnac.hzims.hzimsweather.response.weather.Daily; import com.hnac.hzims.hzimsweather.response.weather.HeWeatherWeatherDailyResponse; import com.hnac.hzims.hzimsweather.response.weather.HeWeatherWeatherNowResponse; +import com.hnac.hzims.operational.fill.service.GenerateService; +import com.hnac.hzims.operational.main.constant.HomePageConstant; import com.hnac.hzims.operational.main.service.*; import com.hnac.hzims.operational.main.vo.*; -import com.hnac.hzims.operational.main.constant.HomePageConstant; import com.hnac.hzims.operational.station.entity.StationEntity; import com.hnac.hzims.operational.station.service.IStationAttributeService; import com.hnac.hzims.operational.station.service.IStationService; @@ -44,23 +46,25 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class HydropowerServiceImpl implements HydropowerService { - private final IAnalyseDataService analyseDataService; - - private final IHomePageService homePageService; + private final IWaterService waterService; - private final IMainSystemMonitoringService maintenanceTaskService; + private final IWeatherService weatherService; private final IStationService stationService; - private final IStationAttributeService attributeService; + private final GenerateService generateService; - private final IWaterService waterService; + private final IHomePageService homePageService; - private final IPlanGenertionClient planGenertionClient; + private final IAnalyseDataService analyseDataService; + + private final IStationAttributeService attributeService; + + private final IMainSystemMonitoringService maintenanceTaskService; private final ISoeClient soeClient; - private final IWeatherService weatherService; + private final IPlanGenertionClient planGenertionClient; private final RedisTemplate redisTemplate; @@ -79,63 +83,54 @@ public class HydropowerServiceImpl implements HydropowerService { */ @Override public void loadHydropowerReal(String param) { - // 有效设备 - List valid = this.getValidDeviceList(); - if(CollectionUtil.isEmpty(valid)){ + // 水电站站点 + List stations = stationService.list(Wrappers.lambdaQuery() + .eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE) + .eq(StationEntity::getType,HomePageConstant.HYDROPOWER) + ); + if(CollectionUtil.isEmpty(stations)){ + return; + } + // 水电站设备 + List devices = this.pumpDevices(stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList())); + if(CollectionUtil.isEmpty(devices)){ return; } // 实时数据 Map map = this.getRealMap(); // 单位 Map unitMap = this.attributeService.getPointUnit(); - List list = new ArrayList<>(); - valid.forEach(device->{ - HydropowerUnitRealVo realVo = new HydropowerUnitRealVo(); - realVo.setDeptId(device.getCreateDept()); - realVo.setDeviceCode(device.getEmCode()); - realVo.setDeptName(device.getName()); - realVo.setDeviceName(device.getName()); + // 实时数据 + List reals = devices.stream().map(device->{ + HydropowerUnitRealVo real = new HydropowerUnitRealVo(); + real.setDeptId(device.getCreateDept()); + real.setDeviceCode(device.getEmCode()); + real.setDeptName(device.getName()); + real.setDeviceName(device.getName()); // 开关机状态 - String state = this.getSignageValue(device,map,HomePageConstant.JOINT_RELAY); - realVo.setState(state); + real.setState(this.getSignageValue(device,map,HomePageConstant.JOINT_RELAY)); // 有功功率 - String activePower = this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_ACTIVE_POWER); - realVo.setActivePower(activePower); + real.setActivePower(this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_ACTIVE_POWER)); // 无功功率 - String reactivePower = this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_REACTIVE_POWER); - realVo.setReactivePower(reactivePower); + real.setReactivePower(this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_REACTIVE_POWER)); // 功率因数 - String powerFactor = this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_POWERFACTOR); - realVo.setPowerFactor(powerFactor); + real.setPowerFactor(this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_POWERFACTOR)); // 机组频率 - String frequency = this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_FREQUENCY); - realVo.setFrequency(frequency); + real.setFrequency(this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_FREQUENCY)); // 导叶开度 - String guideOpen = this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_GUIDEOPEN); - realVo.setGuideOpen(guideOpen); + real.setGuideOpen(this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_GUIDEOPEN)); // 定子电压 - String statorVoltage = this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_VOLTAGE); - realVo.setStatorVoltage(statorVoltage); + real.setStatorVoltage(this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_VOLTAGE)); // 定子电流 - String statorCurrent = this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_CURRENT); - realVo.setStatorCurrent(statorCurrent); + real.setStatorCurrent(this.getSignageValue(device,map,HomePageConstant.HYDROPOWER_CURRENT)); // 单位设置 - this.setttingUnit(device,unitMap,realVo); - list.add(realVo); - }); - redisTemplate.opsForValue().set(load_hydropower_unit_real_key,list); - } - - /** - * 获取实时数据 - * @return - */ - private Map getRealMap() { - String json = (String) redisTemplate.opsForValue().get(real_id_key); - if(StringUtil.isBlank(json)){ - return null; + this.setttingUnit(device,unitMap,real); + return real; + }).collect(Collectors.toList()); + if(CollectionUtil.isEmpty(reals)){ + return; } - return JSONObject.parseObject(json, new TypeReference>() {}); + redisTemplate.opsForValue().set(load_hydropower_unit_real_key,reals); } /** @@ -144,59 +139,98 @@ public class HydropowerServiceImpl implements HydropowerService { */ @Override public void loadHydropowerTarget(String param) { - // 有效设备 - List valid = this.getValidDeviceList(); - if(CollectionUtil.isEmpty(valid)){ + // 水电站站点 + List stations = stationService.list(Wrappers.lambdaQuery() + .eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE) + .eq(StationEntity::getType,HomePageConstant.HYDROPOWER) + ); + if(CollectionUtil.isEmpty(stations)){ + return; + } + // 补充填补发电指标 + List targets = this.generteFill(stations); + // 水电站设备 + List devices = this.pumpDevices(stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList())); + if(CollectionUtil.isNotEmpty(devices)){ + targets.addAll(devices.stream().map(device->{ + HydropowerUnitTargetVo target = new HydropowerUnitTargetVo(); + target.setDeptId(device.getCreateDept()); + target.setDeviceCode(device.getEmCode()); + target.setDeviceName(device.getName()); + target.setDeptName(device.getName()); + // 当年发电量 + target.setPowerYear(this.getGenerationPower(device,0)); + // 当月发电量 + target.setPowerMon(this.getGenerationPower(device,1)); + // 当日发电量 + target.setPowerDay(this.getGenerationPower(device,2)); + // 当天有功功率 + target.setActivePowerVoList(waterService.getActivePowerVoList(device)); + // 30天发电量 + target.setGenerationPowerVoList(this.getGenerationPowerList(device)); + return target; + }).collect(Collectors.toList())); + } + // 站点指标数据为空 + if(CollectionUtil.isEmpty(targets)){ return; } - List list = new ArrayList<>(); - valid.forEach(device->{ - HydropowerUnitTargetVo targetVo = new HydropowerUnitTargetVo(); - targetVo.setDeptId(device.getCreateDept()); - targetVo.setDeviceCode(device.getEmCode()); - targetVo.setDeviceName(device.getName()); - targetVo.setDeptName(device.getName()); + redisTemplate.opsForValue().set(load_hydropower_unit_target_key,targets); + } + + /** + * 获取填报用电量 + * @param stations + * @return + */ + private List generteFill(List stations) { + Calendar calendar = Calendar.getInstance(); + String day = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE); + String mon = DateUtil.format(calendar.getTime(),"yyyy-MM"); + String year = String.valueOf(calendar.get(Calendar.YEAR)); + return stations.stream().map(station ->{ + HydropowerUnitTargetVo target = new HydropowerUnitTargetVo(); + target.setDeptId(station.getRefDept()); + target.setDeptName(station.getName()); // 当年发电量 - float powerYear = this.getGenerationPower(device,0); - targetVo.setPowerYear(powerYear); + target.setPowerYear(generateService.generate(year,station.getCode())); // 当月发电量 - float powerMon = this.getGenerationPower(device,1); - targetVo.setPowerMon(powerMon); + target.setPowerMon(generateService.generate(mon,station.getCode())); // 当日发电量 - float powerDay = this.getGenerationPower(device,2); - // 当天有功功率 - List activePowerVoList = waterService.getActivePowerVoList(device); - targetVo.setActivePowerVoList(activePowerVoList); + target.setPowerDay(generateService.generate(day,station.getCode())); // 30天发电量 - List generationPowerVoList = this.getGenerationPowerList(device); - targetVo.setGenerationPowerVoList(generationPowerVoList); - targetVo.setPowerDay(powerDay); - list.add(targetVo); - }); - redisTemplate.opsForValue().set(load_hydropower_unit_target_key,list); + target.setGenerationPowerVoList(generateService.generate30Day(day,station.getCode())); + return target; + }).collect(Collectors.toList()); } + /** - * 获取有效设备 + * 泵站设备 + * @param stations * @return */ - private List getValidDeviceList() { - // 水利站点(All) - List stationList = stationService.getStationType(HomePageConstant.HYDROPOWER_SERVETYPE, Collections.singletonList(HomePageConstant.HYDROPOWER), null); - if(CollectionUtil.isEmpty(stationList)){ - return null; + private List pumpDevices(List stations){ + if(CollectionUtil.isEmpty(stations)){ + return new ArrayList<>(); } - // 获取所有设备 - List deviceList = maintenanceTaskService.getEmInfoList(); - if(CollectionUtil.isEmpty(deviceList)){ - return null; + List devices = maintenanceTaskService.getEmInfoList(); + if(CollectionUtil.isEmpty(devices)){ + return new ArrayList<>(); } - // 有效泵租设备 - List deptIdList = stationList.stream().map(StationEntity::getRefDept).collect(Collectors.toList()); - if(CollectionUtil.isEmpty(deptIdList)){ + return devices.stream().filter(device->stations.contains(device.getCreateDept())).collect(Collectors.toList()); + } + + /** + * 获取实时数据 + * @return + */ + private Map getRealMap() { + String json = (String) redisTemplate.opsForValue().get(real_id_key); + if(StringUtil.isBlank(json)){ return null; } - return deviceList.stream().filter(o->deptIdList.contains(o.getCreateDept())).collect(Collectors.toList()); + return JSONObject.parseObject(json, new TypeReference>() {}); } @@ -334,7 +368,7 @@ public class HydropowerServiceImpl implements HydropowerService { * @return */ @Override - public HydropowerStationVo webStation(Long deptId) { + public HydropowerStationVo station(Long deptId) { if(ObjectUtil.isEmpty(deptId)){ return null; } @@ -343,86 +377,76 @@ public class HydropowerServiceImpl implements HydropowerService { if(ObjectUtil.isEmpty(station)){ return null; } - List list = this.getHydropowerStationList(Collections.singletonList(station)); - if(CollectionUtil.isEmpty(list)){ - return null; - } - return list.get(0); + // 实时监测点数据 + List realList = (List) redisTemplate.opsForValue().get(load_hydropower_unit_real_key); + // 获取站点机组指标数据 + List targetList = (List) redisTemplate.opsForValue().get(load_hydropower_unit_target_key); + // 所有设备 + List deviceList = maintenanceTaskService.getEmInfoList(); + // 实时天气 + Map weather = this.getWeather(Collections.singletonList(station.getCode())); + // 七天天气 + Map weekWeather = this.getWeekWeather(Collections.singletonList(station.getCode())); + HydropowerStationVo response = new HydropowerStationVo(); + response.setDeptId(station.getRefDept()); + response.setDeptName(station.getName()); + response.setStationCode(station.getCode()); + // 站点状态 + List soeDataList = soeClient.getByLastLimitTime(null, station.getCode(), 1).getData(); + response.setStationStatus(!CollectionUtil.isNotEmpty(soeDataList)); + // 站点实时天气 + response.setTemp(this.getTemp(weather,station.getCode())); + // 站点七天天气 + response.setWeather(this.getDailyList(weekWeather,station.getCode())); + // 限制水位 + response.setLimitWaterLevel(station.getLimitWaterLevel()); + // 运行天数 + response.setRunDay(this.getRunDay(station)); + // 装机容量 + response.setInstalledCapacity(this.getInstalledCapacity(deviceList,station.getRefDept())); + // 总有功功率(总发电负荷) + response.setPowerSum(this.getPowerSum(realList,station.getRefDept())); + // 总有功单位 + response.setPowerUnit(this.getPowerUnit(realList,station.getRefDept())); + // 月计划发电量 + response.setPlanPowerMon(this.getPlanPowerrMon(station.getCode())); + // 年计划发电量 + response.setPlanPowerYear(this.getPlanPowerYear(station.getCode())); + // 月发电量、年发电量、年发电完成率 + this.handleStationInfo(station.getRefDept(),response); + // 水位、水位曲线 + this.handleWaterLeve(station.getCode(),response); + // 年发电量完成百分比 + response.setPowerYearMap(this.handlePowerFinish(station)); + // 设备信息 + response.setDeviceList(this.getDevices(station,realList,targetList)); + return response; } + /** - * 获取首页站点信息 - * @param list + * 水电站-机组列表 + * @param deptId * @return */ - private List getHydropowerStationList(List list) { - if(CollectionUtil.isEmpty(list)){ + @Override + public List hydropowerDevice(Long deptId) { + if(ObjectUtil.isEmpty(deptId)){ + return null; + } + // 查询站点 + StationEntity station = stationService.getStationByCodeOrRefDept(null,deptId); + if(ObjectUtil.isEmpty(station)){ return null; } // 实时监测点数据 List realList = (List) redisTemplate.opsForValue().get(load_hydropower_unit_real_key); // 获取站点机组指标数据 List targetList = (List) redisTemplate.opsForValue().get(load_hydropower_unit_target_key); - // 所有设备 - List deviceList = maintenanceTaskService.getEmInfoList(); - // 实时天气 - Map weather = this.getWeather(list.stream().map(StationEntity::getCode).collect(Collectors.toList())); - // 七天天气 - Map weekWeather = this.getWeekWeather(list.stream().map(StationEntity::getCode).collect(Collectors.toList())); - List result = new ArrayList<>(); - list.forEach(station ->{ - HydropowerStationVo response = new HydropowerStationVo(); - response.setDeptId(station.getRefDept()); - response.setDeptName(station.getName()); - response.setStationCode(station.getCode()); - // 站点状态 - List soeDataList = soeClient.getByLastLimitTime(null, station.getCode(), 1).getData(); - if (CollectionUtil.isNotEmpty(soeDataList)) { - response.setStationStatus(false); - } else { - response.setStationStatus(true); - } - // 站点实时天气 - String temp = this.getTemp(weather,station.getCode()); - response.setTemp(temp); - // 站点七天天气 - List dailys = this.getDailyList(weekWeather,station.getCode()); - response.setWeather(dailys); - // 限制水位 - response.setLimitWaterLevel(station.getLimitWaterLevel()); - // 运行天数 - int runDay = this.getRunDay(station); - response.setRunDay(runDay); - // 装机容量 - double installedCapacity = this.getInstalledCapacity(deviceList,station.getRefDept()); - response.setInstalledCapacity(installedCapacity); - // 总有功功率(总发电负荷) - double powerSum = this.getPowerSum(realList,station.getRefDept()); - response.setPowerSum(powerSum); - // 总有功单位 - String unit = this.getPowerUnit(realList,station.getRefDept()); - response.setPowerUnit(unit); - // 月计划发电量 - float planPowerMon = this.getPlanPowerrMon(station.getCode()); - response.setPlanPowerMon(planPowerMon); - // 年计划发电量 - float planPowerYear = this.getPlanPowerYear(station.getCode()); - response.setPlanPowerYear(planPowerYear); - // 月发电量、年发电量、年发电完成率 - this.handleStationInfo(station.getRefDept(),response); - // 水位、水位曲线 - this.handleWaterLeve(station.getCode(),response); - // 年发电量完成百分比 - List powerYearList = this.handlePowerFinish(station); - response.setPowerYearMap(powerYearList); - // 设备信息 - List devices = this.getDevices(station,realList,targetList); - response.setDeviceList(devices); - result.add(response); - }); - return result; + return this.getDevices(station,realList,targetList); } + /** * 获取站点设备信息 * @param station @@ -705,39 +729,63 @@ public class HydropowerServiceImpl implements HydropowerService { }).collect(Collectors.toList()); } + /** - * 水电站-机组列表 + * 水电站站点列表 * @param deptId * @return */ @Override - public List hydropowerDevice(Long deptId) { - if(ObjectUtil.isEmpty(deptId)){ - return null; - } - // 查询站点 - StationEntity station = stationService.getStationByCodeOrRefDept(null,deptId); - if(ObjectUtil.isEmpty(station)){ + public List webStationList(Long deptId) { + List stations = stationService.getStationType(HomePageConstant.HYDROPOWER_SERVETYPE,Collections.singletonList(HomePageConstant.HYDROPOWER),null); + if(CollectionUtil.isEmpty(stations)){ return null; } // 实时监测点数据 List realList = (List) redisTemplate.opsForValue().get(load_hydropower_unit_real_key); // 获取站点机组指标数据 List targetList = (List) redisTemplate.opsForValue().get(load_hydropower_unit_target_key); - return this.getDevices(station,realList,targetList); - } - - /** - * 水电站站点列表 - * @param deptId - * @return - */ - @Override - public List webStationList(Long deptId) { - List list = stationService.getStationType(null,Collections.singletonList(HomePageConstant.HYDROPOWER),null); - if(CollectionUtil.isEmpty(list)){ - return null; - } - return this.getHydropowerStationList(list); + // 所有设备 + List deviceList = maintenanceTaskService.getEmInfoList(); + // 实时天气 + Map weather = this.getWeather(stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); + // 七天天气 + Map weekWeather = this.getWeekWeather(stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); + return stations.stream().map(station->{ + HydropowerStationVo hydropower = new HydropowerStationVo(); + hydropower.setDeptId(station.getRefDept()); + hydropower.setDeptName(station.getName()); + hydropower.setStationCode(station.getCode()); + // 站点状态 + List soeDataList = soeClient.getByLastLimitTime(null, station.getCode(), 1).getData(); + hydropower.setStationStatus(!CollectionUtil.isNotEmpty(soeDataList)); + // 站点实时天气 + hydropower.setTemp(this.getTemp(weather,station.getCode())); + // 站点七天天气 + hydropower.setWeather(this.getDailyList(weekWeather,station.getCode())); + // 限制水位 + hydropower.setLimitWaterLevel(station.getLimitWaterLevel()); + // 运行天数 + hydropower.setRunDay(this.getRunDay(station)); + // 装机容量 + hydropower.setInstalledCapacity(this.getInstalledCapacity(deviceList,station.getRefDept())); + // 总有功功率(总发电负荷) + hydropower.setPowerSum(this.getPowerSum(realList,station.getRefDept())); + // 总有功单位 + hydropower.setPowerUnit(this.getPowerUnit(realList,station.getRefDept())); + // 月计划发电量 + hydropower.setPlanPowerMon(this.getPlanPowerrMon(station.getCode())); + // 年计划发电量 + hydropower.setPlanPowerYear(this.getPlanPowerYear(station.getCode())); + // 月发电量、年发电量、年发电完成率 + this.handleStationInfo(station.getRefDept(),hydropower); + // 水位、水位曲线 + this.handleWaterLeve(station.getCode(),hydropower); + // 年发电量完成百分比 + hydropower.setPowerYearMap(this.handlePowerFinish(station)); + // 设备信息 + hydropower.setDeviceList(this.getDevices(station,realList,targetList)); + return hydropower; + }).collect(Collectors.toList()); } } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/SideHustleServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/SideHustleServiceImpl.java index decfe3d..1da8b9b 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/SideHustleServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/SideHustleServiceImpl.java @@ -23,9 +23,9 @@ import com.hnac.hzims.operational.duty.service.IImsDutyMainService; import com.hnac.hzims.operational.duty.vo.DutyInfoVo; import com.hnac.hzims.operational.duty.vo.DutyTaskVo; import com.hnac.hzims.operational.duty.vo.NextDutyInfoVo; +import com.hnac.hzims.operational.main.constant.HomePageConstant; import com.hnac.hzims.operational.main.service.*; import com.hnac.hzims.operational.main.vo.*; -import com.hnac.hzims.operational.main.constant.HomePageConstant; import com.hnac.hzims.operational.maintenance.constants.MaintenanceConstant; import com.hnac.hzims.operational.maintenance.entity.OperMaintenanceTaskEntity; import com.hnac.hzims.operational.maintenance.service.IOperMaintenanceTaskService; @@ -66,6 +66,9 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.stream.Collectors; +/** + * @author ysj + */ @Service @RequiredArgsConstructor @Slf4j @@ -308,13 +311,6 @@ public class SideHustleServiceImpl implements ISideHustleService { }}); List faultList = operPhenomenonEntityList.stream().map(OperPhenomenonEntity::getEmCode).distinct().collect(Collectors.toList()); deviceClassifyMap.put(HomePageConstant.FAULT,faultList); - // 保养 - /*List operMaintenanceTaskEntityList = operMaintenanceTaskService.list(new QueryWrapper() {{ - in("EM_CODE", deviceCodeList); - ne("STATUS", MaintenanceConstant.TASK_STATUS_5); - }}); - List maintainList = operMaintenanceTaskEntityList.stream().map(OperMaintenanceTaskEntity::getEmCode).collect(Collectors.toList()); - deviceClassifyMap.put(HomePageConstant.MAINTAIN,maintainList);*/ // 检修 List operAccessTaskEntityList = operAccessTaskService.list(new QueryWrapper() {{ in("EM_CODE", deviceCodeList); @@ -506,11 +502,11 @@ public class SideHustleServiceImpl implements ISideHustleService { areaDutyVo.setGeneratingCapacity(generatingCapacity); } - /** + /*** * 根据当班时间查询发电量 * @param devices - * @param startDate - * @param endDate + * @param start + * @param end * @return */ private float generateByDuty(List devices, Date start, Date end) { @@ -520,7 +516,7 @@ public class SideHustleServiceImpl implements ISideHustleService { } for(EminfoAndEmParamVo device : devices ){ generate += analyseDataService.periodTargetFloat(DateUtil.format(start,DateUtil.PATTERN_DATETIME),DateUtil.format(end,DateUtil.PATTERN_DATETIME),3,5,device.getEmCode(),device.getRideCount(),HomePageConstant.HYDROPOWER_GENERATE_POWER); - }; + } return generate; } @@ -585,7 +581,7 @@ public class SideHustleServiceImpl implements ISideHustleService { dateCal.set(Calendar.MINUTE, timeCal.get(Calendar.MINUTE)); dateCal.set(Calendar.SECOND, timeCal.get(Calendar.SECOND)); return dateCal.getTime(); - }; + } /** * 获取结束时间 @@ -608,7 +604,7 @@ public class SideHustleServiceImpl implements ISideHustleService { dateCal.set(Calendar.MINUTE, endCal.get(Calendar.MINUTE)); dateCal.set(Calendar.SECOND, endCal.get(Calendar.SECOND)); return dateCal.getTime(); - }; + } /** * 当班运行数据 @@ -840,7 +836,7 @@ public class SideHustleServiceImpl implements ISideHustleService { return null; } Map> powerMap = (Map>) redisTemplate.opsForValue().get(RECENT_YEAR_POWER_DATA); - List monList = homePageService.getMonthList(0,12,false);; + List monList = homePageService.getMonthList(0,12,false); // 获取总发电量 float sumPower = this.getSumPower(map.values(),powerMap,monList); List list = new ArrayList<>(); @@ -854,7 +850,7 @@ public class SideHustleServiceImpl implements ISideHustleService { } areaPowerScaleVo.setPower(power); // 发电量占比 - double scale = this.getPowerScale(power,sumPower);; + double scale = this.getPowerScale(power,sumPower); areaPowerScaleVo.setScale(scale); list.add(areaPowerScaleVo); }); @@ -874,7 +870,7 @@ public class SideHustleServiceImpl implements ISideHustleService { return null; } // 获取站点编码集合 - List codes = map.entrySet().stream().map(o-> o.getValue().get(0).getCode()).collect(Collectors.toList()); + List codes = map.values().stream().map(stationEntities -> stationEntities.get(0).getCode()).collect(Collectors.toList()); // 获取站点实时天气 Map nowWeather = this.weatherService.getNowWeather( codes); // 获取站点7日天气 @@ -974,7 +970,7 @@ public class SideHustleServiceImpl implements ISideHustleService { * @return */ private List getStationData() { - Map map = new HashMap<>(); + Map map; Object json = redisTemplate.opsForValue().get(station_data_key); if (ObjectUtil.isNotEmpty(json)) { map = JSONObject.parseObject(json.toString(), new TypeReference>() { @@ -1166,9 +1162,7 @@ public class SideHustleServiceImpl implements ISideHustleService { } List codeList = new ArrayList<>(); // 添加所有站点Code - map.values().forEach(item->{ - codeList.addAll(item.stream().map(StationEntity::getCode).collect(Collectors.toList())); - }); + map.values().forEach(item-> codeList.addAll(item.stream().map(StationEntity::getCode).collect(Collectors.toList()))); if(CollectionUtil.isEmpty(codeList)){ return null; } @@ -1214,7 +1208,6 @@ public class SideHustleServiceImpl implements ISideHustleService { return; } // 存放设备信息集合 - List deviceVoList = new ArrayList<>(); List equipmentCodeList = R.getData().stream().map(EmInfoEntity::getNumber).collect(Collectors.toList()); // 总数 @@ -1224,7 +1217,7 @@ public class SideHustleServiceImpl implements ISideHustleService { // 故障 List fault = this.handlerDeviceStatus(faultList,equipmentCodeList,"故障"); equipmentCountVo.setFaultCount((long) fault.size()); - deviceVoList.addAll(fault); + List deviceVoList = new ArrayList<>(fault); // 检修 List overhaul = this.handlerDeviceStatus(overhaultList,equipmentCodeList,"检修"); equipmentCountVo.setOverhaulCount((long) overhaul.size()); @@ -1266,7 +1259,7 @@ public class SideHustleServiceImpl implements ISideHustleService { if(CollectionUtil.isEmpty(statusList) || CollectionUtil.isEmpty(equipmentCodeList)){ return new ArrayList<>(); } - List statusDevice = statusList.stream().filter(o->equipmentCodeList.contains(o)).distinct().collect(Collectors.toList()); + List statusDevice = statusList.stream().filter(equipmentCodeList::contains).distinct().collect(Collectors.toList()); if(CollectionUtil.isEmpty(statusDevice)){ return new ArrayList<>(); } @@ -1340,37 +1333,6 @@ public class SideHustleServiceImpl implements ISideHustleService { } /** - * 递归查询子站点 - * - * @param departList - * @param parentPart - * @param list - * @return - */ - private List getAreaStation(List departList, Dept parentPart, List list) { - departList.forEach(dept -> { - if (dept.getParentId().equals(parentPart.getId())) { - // FIXME 是否只需要添加站点 - if (dept.getDeptCategory().equals(4)) { - list.add(dept); - } - getAreaStation(departList, dept, list); - } - }); - if(CollectionUtil.isEmpty(list)){ - return null; - } - List deptList = list.stream().map(Dept::getId).collect(Collectors.toList()); - List stationList = this.getStation(Collections.singletonList(HomePageConstant.HYDROPOWER), deptList); - if(CollectionUtil.isEmpty(stationList)){ - return null; - } - List refDeptList = stationList.stream().map(StationEntity::getRefDept).collect(Collectors.toList()); - return list.stream().filter(o->refDeptList.contains(o.getId())).collect(Collectors.toList()); - } - - - /** * 区域机构下是否存在水电站 * @param deptAuthList * @param area diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/WaterServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/WaterServiceImpl.java index a27d3fa..76f664a 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/WaterServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/WaterServiceImpl.java @@ -100,41 +100,42 @@ public class WaterServiceImpl implements IWaterService { */ @Override public void loadWaterPumpReal(String param) { - // 有效设备 - List valid = this.getValidDeviceList(); - if(CollectionUtil.isEmpty(valid)){ + // 水利站点 + List stations = stationService.list(Wrappers.lambdaQuery() + .eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE) + .in(StationEntity::getType,HomePageConstant.waterList) + ); + if(CollectionUtil.isEmpty(stations)){ + return; + } + // 泵站设备 + List devices = this.pumpDevices(stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList())); + if(CollectionUtil.isEmpty(devices)){ return; } // 实时数据 Map map = this.getRealMap(); - List list = new ArrayList<>(); - valid.forEach(device->{ - WaterPumpRealVo waterPumpRealVo = new WaterPumpRealVo(); - waterPumpRealVo.setDeptId(device.getCreateDept()); - waterPumpRealVo.setDeviceCode(device.getEmCode()); - waterPumpRealVo.setDeptName(device.getName()); + List list = devices.stream().map(device->{ + WaterPumpRealVo real = new WaterPumpRealVo(); + real.setDeptId(device.getCreateDept()); + real.setDeviceCode(device.getEmCode()); + real.setDeptName(device.getName()); // 装机容量 - waterPumpRealVo.setInstalledCapacity(device.getInstalledCapacity()); + real.setInstalledCapacity(device.getInstalledCapacity()); // 开机状态 - int state = this.getPumpState(device,map); - waterPumpRealVo.setState(state); + real.setState(this.getPumpState(device,map)); // 功率因数 - double powerFactor = this.getPowerFactor(device,map); - waterPumpRealVo.setPowerFactor(powerFactor); + real.setPowerFactor(this.getPowerFactor(device,map)); // 有功功率 - float activePower = this.getActivePower(device,map); - waterPumpRealVo.setActivePower(activePower); + real.setActivePower(this.getActivePower(device,map)); // 无功功率 - float reactivePower = this.getReactivePower(device,map); - waterPumpRealVo.setReactivePower(reactivePower); + real.setReactivePower(this.getReactivePower(device,map)); // 电压 - double voltage = this.getVoltage(device,map); - waterPumpRealVo.setVoltage(voltage); + real.setVoltage(this.getVoltage(device,map)); // 电流 - double current = this.getCurrent(device,map); - waterPumpRealVo.setCurrent(current); - list.add(waterPumpRealVo); - }); + real.setCurrent(this.getCurrent(device,map)); + return real; + }).collect(Collectors.toList()); redisTemplate.opsForValue().set(loadwaterpump_real_key,list); } @@ -144,50 +145,47 @@ public class WaterServiceImpl implements IWaterService { */ @Override public void loadWaterPumpTarget(String param) { - List valid = this.getValidDeviceList(); - List list = new ArrayList<>(); - if(CollectionUtil.isNotEmpty(valid)){ - valid.forEach(device->{ - WaterPumpTargetVo waterPumpTargetVo = new WaterPumpTargetVo(); - waterPumpTargetVo.setDeptId(device.getCreateDept()); - waterPumpTargetVo.setDeviceCode(device.getEmCode()); - waterPumpTargetVo.setDeptName(device.getName()); + // 水利站点 + List stations = stationService.list(Wrappers.lambdaQuery() + .eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE) + .in(StationEntity::getType,HomePageConstant.waterList) + ); + if(CollectionUtil.isEmpty(stations)){ + return; + } + // 泵站设备 + List devices = this.pumpDevices(stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList())); + // 补充站点填报发电量 + List list = this.useFill(stations); + // 站点设备数据统计 + if(CollectionUtil.isNotEmpty(devices)){ + list.addAll(devices.stream().map(device->{ + WaterPumpTargetVo target = new WaterPumpTargetVo(); + target.setDeptId(device.getCreateDept()); + target.setDeviceCode(device.getEmCode()); + target.setDeptName(device.getName()); // 当年用电量 - float usrPowerYear = this.getUsrPowerYear(device); - waterPumpTargetVo.setUsrPowerYear(usrPowerYear); + target.setUsrPowerYear(this.getUsrPowerYear(device)); // 当月用电量 - float usrPowerMon = this.getUsrPowerMon(device); - waterPumpTargetVo.setUsrPowerMon(usrPowerMon); + target.setUsrPowerMon(this.getUsrPowerMon(device)); // 当日用电量 - float usrPowerDay = this.getUsrPowerDay(device); - waterPumpTargetVo.setUsrPowerDay(usrPowerDay); + target.setUsrPowerDay(this.getUsrPowerDay(device)); + // 当日机组有功功率 + target.setActivePowerVoList(this.getActivePowerVoList(device)); + // 近30天用电量 + target.setUsrPowerVoList(this.getUsrPowerVoList(device)); + // 近3年用电量 + target.setUsrYearMap(this.getUsrYearMap(device)); // 月运行次数、时长 WaterRunVo runMon = this.getRunData(device,1); - waterPumpTargetVo.setRunCountMon(runMon.getCount()); - waterPumpTargetVo.setRunDurationMon(runMon.getHour()); + target.setRunCountMon(runMon.getCount()); + target.setRunDurationMon(runMon.getHour()); // 年运行次数、时长 WaterRunVo runYear = this.getRunData(device,0); - waterPumpTargetVo.setRunCountYear(runYear.getCount()); - waterPumpTargetVo.setRunDurationYear(runYear.getHour()); - // 当日机组有功功率 - List activePowerVoList = this.getActivePowerVoList(device); - waterPumpTargetVo.setActivePowerVoList(activePowerVoList); - // 近30天用电量 - List usrPowerVoList = this.getUsrPowerVoList(device); - waterPumpTargetVo.setUsrPowerVoList(usrPowerVoList); - // 近3年用电量 - Map usrYearMap = this.getUsrYearMap(device); - waterPumpTargetVo.setUsrYearMap(usrYearMap); - list.add(waterPumpTargetVo); - }); - } - // 补充站点填报发电量 - List stations = stationService.list(Wrappers.lambdaQuery() - .in(StationEntity::getType, HomePageConstant.waterList) - .eq(StationEntity::getServeType, HomePageConstant.HYDROPOWER_SERVETYPE) - ); - if(CollectionUtil.isNotEmpty(stations)){ - list.addAll(this.useFill(stations)); + target.setRunCountYear(runYear.getCount()); + target.setRunDurationYear(runYear.getHour()); + return target; + }).collect(Collectors.toList())); } redisTemplate.opsForValue().set(loadwaterpump_target_key,list); } @@ -234,22 +232,19 @@ public class WaterServiceImpl implements IWaterService { } /** - * 获取监测点位是否配置 - * @param instanceCode + * 泵站设备 + * @param stations * @return */ - private boolean getSetting(String instanceCode) { - // 获取设备监测点位:未配置监测点位不进行统计设备 - List list = new ArrayList<>(); - MultiAnalyzeCodePO po = new MultiAnalyzeCodePO(); - po.setDeviceCode(instanceCode); - po.setSignages(Collections.singletonList(HomePageConstant.FRONT_WATER_LEVEL)); - list.add(po); - R> result = analyseDataSearchClient.getAnalyzeCodeBySignages(list); - if(!result.isSuccess() || CollectionUtil.isEmpty(result.getData())){ - return true; + private List pumpDevices(List stations){ + if(CollectionUtil.isEmpty(stations)){ + return new ArrayList<>(); } - return false; + List devices = maintenanceTaskService.getEmInfoList(); + if(CollectionUtil.isEmpty(devices)){ + return new ArrayList<>(); + } + return devices.stream().filter(device->stations.contains(device.getCreateDept())).collect(Collectors.toList()); } /** @@ -264,7 +259,7 @@ public class WaterServiceImpl implements IWaterService { List signages = Collections.singletonList(signage); realData.setSignages(signages); // 调用fegin接口查询实时数据 - R> R = null; + R> R; try { R = analyseDataSearchClient.getRealDataByAnalyzeCode(realData); } catch (Exception e) { @@ -333,29 +328,6 @@ public class WaterServiceImpl implements IWaterService { } /** - * 获取有效设备 - * @return - */ - private List getValidDeviceList() { - // 水利站点(All) - List stationList = stationService.getStationType(HomePageConstant.HYDROPOWER_SERVETYPE, HomePageConstant.waterList, null); - if(CollectionUtil.isEmpty(stationList)){ - return null; - } - // 获取所有设备 - List deviceList = maintenanceTaskService.getEmInfoList(); - if(CollectionUtil.isEmpty(deviceList)){ - return null; - } - // 有效泵租设备 - List deptIdList = stationList.stream().map(StationEntity::getRefDept).collect(Collectors.toList()); - if(CollectionUtil.isEmpty(deptIdList)){ - return null; - } - return deviceList.stream().filter(o->deptIdList.contains(o.getCreateDept())).collect(Collectors.toList()); - } - - /** * 获取有效站点模型 * @return */ @@ -793,7 +765,7 @@ public class WaterServiceImpl implements IWaterService { PowerMonthVo generate = new PowerMonthVo(); Date time = DateUtil.parse(record.getTs(), "yyyy-MM-dd HH:mm:ss.s"); generate.setStrMonth(DateUtil.format(time, DateUtil.PATTERN_DATE)); - generate.setPower(Float.valueOf(Optional.ofNullable(record.getVal()).orElse("0")) * device.getRideCount()); + generate.setPower(Float.parseFloat(Optional.ofNullable(record.getVal()).orElse("0")) * device.getRideCount()); return generate; }).collect(Collectors.toMap(PowerMonthVo::getStrMonth,PowerMonthVo::getPower)); } @@ -809,8 +781,6 @@ public class WaterServiceImpl implements IWaterService { String day = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE); String mon = DateUtil.format(calendar.getTime(),"yyyy-MM"); String year = String.valueOf(calendar.get(Calendar.YEAR)); - //calendar.add(Calendar.DAY_OF_MONTH,-1); - //String yesterday = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE); return stations.stream().map(station ->{ WaterPumpTargetVo target = new WaterPumpTargetVo(); target.setDeptId(station.getRefDept()); @@ -929,7 +899,7 @@ public class WaterServiceImpl implements IWaterService { return null; } // 获取站点编码集合 - List codes = map.entrySet().stream().map(o-> o.getValue().get(0).getCode()).collect(Collectors.toList()); + List codes = map.values().stream().map(stationEntities -> stationEntities.get(0).getCode()).collect(Collectors.toList()); // 获取实时天气 Map nowWeather = this.weatherService.getNowWeather(codes); // 获取七天天气 @@ -1018,7 +988,7 @@ public class WaterServiceImpl implements IWaterService { * @return */ private List getStationList(Map> map) { - return map.values().stream().collect(Collectors.toList()).get(0); + return new ArrayList<>(map.values()).get(0); } /** @@ -1102,7 +1072,7 @@ public class WaterServiceImpl implements IWaterService { if(CollectionUtil.isEmpty(stationList)){ return null; } - List codeList = stationList.stream().filter(o->StringUtil.isNotBlank(o.getCode())).map(StationEntity::getCode).collect(Collectors.toList()); + List codeList = stationList.stream().map(StationEntity::getCode).filter(StringUtil::isNotBlank).collect(Collectors.toList()); if(CollectionUtil.isEmpty(codeList)){ return null; } @@ -1331,12 +1301,12 @@ public class WaterServiceImpl implements IWaterService { response.setUsePowerMon((float) kwhMon); // 月运行时长 Optional waterPumpTargetVoOptional = validTaget.stream().max(Comparator.comparing(WaterPumpTargetVo::getRunDurationMon)); - double monRunTime = waterPumpTargetVoOptional.isPresent() ? waterPumpTargetVoOptional.map(WaterPumpTargetVo::getRunDurationMon).orElse(0.0) : 0.0; + double monRunTime = waterPumpTargetVoOptional.map(WaterPumpTargetVo::getRunDurationMon).orElse(0.0); //double monRunTime = validTaget.stream().max(Comparator.comparing(WaterPumpTargetVo::getRunDurationMon)).get().getRunDurationMon(); response.setRunDurationMon(monRunTime); // 年运行时长 Optional optionalWaterPumpTargetVo = validTaget.stream().max(Comparator.comparing(WaterPumpTargetVo::getRunDurationYear)); - double yearRunTime = optionalWaterPumpTargetVo.isPresent() ? optionalWaterPumpTargetVo.map(WaterPumpTargetVo::getRunDurationYear).orElse(0.0) : 0.0; + double yearRunTime = optionalWaterPumpTargetVo.map(WaterPumpTargetVo::getRunDurationYear).orElse(0.0); //double yearRunTime = validTaget.stream().max(Comparator.comparing(WaterPumpTargetVo::getRunDurationYear)).get().getRunDurationYear(); response.setRunDurationYear(yearRunTime); // 水位曲线/年用电量