yang_shj
1 year ago
20 changed files with 602 additions and 12 deletions
@ -0,0 +1,43 @@
|
||||
package com.hnac.hzims.operational.ecology.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.SqlCondition; |
||||
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.mp.support.QueryField; |
||||
import org.springblade.core.tenant.mp.TenantEntity; |
||||
|
||||
import java.math.BigDecimal; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Data |
||||
@TableName("ecology_flow_data") |
||||
@EqualsAndHashCode(callSuper = true) |
||||
@ApiModel(value = "生态流量数据表", description = "生态流量数据表") |
||||
public class EcologyFlowDataEntity extends TenantEntity { |
||||
|
||||
@ApiModelProperty(value = "站点编号") |
||||
private Long stationId; |
||||
|
||||
@ApiModelProperty(value = "月份") |
||||
private String mon; |
||||
|
||||
@ApiModelProperty(value = "站点名称") |
||||
private String stationName; |
||||
|
||||
@ApiModelProperty(value = "在线率") |
||||
private BigDecimal onLine; |
||||
|
||||
@ApiModelProperty(value = "达标率") |
||||
private BigDecimal demonstrate; |
||||
|
||||
@ApiModelProperty(value = "及时率") |
||||
private BigDecimal timely; |
||||
|
||||
@ApiModelProperty(value = "完整率") |
||||
private BigDecimal complete; |
||||
} |
@ -0,0 +1,29 @@
|
||||
package com.hnac.hzims.operational.ecology.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import io.swagger.annotations.ApiModel; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
import org.springblade.core.tenant.mp.TenantEntity; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Data |
||||
@TableName("ecology_flow_station") |
||||
@EqualsAndHashCode(callSuper = true) |
||||
@ApiModel(value = "生态流量站点表", description = "生态流量站点表") |
||||
public class EcologyFlowStationEntity extends TenantEntity { |
||||
|
||||
private Long stationId; |
||||
|
||||
private String stationName; |
||||
|
||||
private Long isOnLine; |
||||
|
||||
private Long isDemonstrate; |
||||
|
||||
private Long isTimely; |
||||
|
||||
private Long isComplete; |
||||
} |
@ -0,0 +1,23 @@
|
||||
package com.hnac.hzims.operational.ecology.vo; |
||||
|
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.math.BigDecimal; |
||||
|
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Data |
||||
public class DemonstrateTopVo { |
||||
|
||||
@ApiModelProperty(value = "站点编号") |
||||
private Long stationId; |
||||
|
||||
@ApiModelProperty(value = "站点名称") |
||||
private String stationName; |
||||
|
||||
@ApiModelProperty(value = "达标率") |
||||
private BigDecimal demonstrate; |
||||
} |
@ -0,0 +1,32 @@
|
||||
package com.hnac.hzims.operational.ecology.vo; |
||||
|
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Data |
||||
public class EcologFlowStationVo { |
||||
|
||||
@ApiModelProperty("达标率") |
||||
private Double demonstrate; |
||||
|
||||
@ApiModelProperty("及时率") |
||||
private Double timely; |
||||
|
||||
@ApiModelProperty("完整率") |
||||
private Double complete; |
||||
|
||||
@ApiModelProperty("在线率") |
||||
private Double onLine; |
||||
|
||||
@ApiModelProperty("接入站点数量") |
||||
private Integer count; |
||||
|
||||
@ApiModelProperty("达标率排行榜") |
||||
List<DemonstrateTopVo> tops; |
||||
} |
@ -0,0 +1,29 @@
|
||||
package com.hnac.hzims.operational.ecology.vo; |
||||
|
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Data |
||||
public class TrendChartVo { |
||||
|
||||
@ApiModelProperty("时间") |
||||
private Integer ts; |
||||
|
||||
@ApiModelProperty("及时率") |
||||
private Double timely; |
||||
|
||||
@ApiModelProperty("完整率") |
||||
private Double complete; |
||||
|
||||
@ApiModelProperty("在线率") |
||||
private Double onLine; |
||||
|
||||
@ApiModelProperty("达标率") |
||||
private Double demonstrate; |
||||
} |
@ -0,0 +1,185 @@
|
||||
package com.hnac.hzims.operational.ecology.controller; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
||||
import com.hnac.hzims.operational.ecology.entity.EcologyFlowDataEntity; |
||||
import com.hnac.hzims.operational.ecology.entity.EcologyFlowStationEntity; |
||||
import com.hnac.hzims.operational.ecology.service.EcologyFlowDataService; |
||||
import com.hnac.hzims.operational.ecology.service.EcologyFlowStationService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import io.swagger.annotations.ApiParam; |
||||
import lombok.AllArgsConstructor; |
||||
import org.springblade.core.boot.ctrl.BladeController; |
||||
import org.springblade.core.log.annotation.ApiLog; |
||||
import org.springblade.core.mp.support.Condition; |
||||
import org.springblade.core.mp.support.Query; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springblade.core.tool.utils.Func; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Api(tags = {"生态流量监测中心"}) |
||||
@RestController |
||||
@AllArgsConstructor |
||||
@RequestMapping("/ecology") |
||||
public class EcologyController extends BladeController { |
||||
|
||||
private final EcologyFlowStationService stationService; |
||||
|
||||
private final EcologyFlowDataService dataService; |
||||
|
||||
|
||||
/** |
||||
* 数据初始化 |
||||
* @return |
||||
*/ |
||||
@PostMapping("/generate") |
||||
@ApiOperationSupport(order = 1) |
||||
@ApiOperation(value = "数据生成", notes = "数据生成") |
||||
public R generate(@RequestParam Long mon,@RequestParam String year) { |
||||
return R.status(stationService.generate(mon,year)); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 站点数据排行 |
||||
* @return |
||||
*/ |
||||
@PostMapping("/station_top") |
||||
@ApiOperationSupport(order = 1) |
||||
@ApiOperation(value = "站点数据及达标率排行", notes = "站点数据及达标率排行") |
||||
public R station_top() { |
||||
return R.data(stationService.station_top()); |
||||
} |
||||
|
||||
/** |
||||
* 站点数据排行 |
||||
* @return |
||||
*/ |
||||
@PostMapping("/trend_chart") |
||||
@ApiOperationSupport(order = 1) |
||||
@ApiOperation(value = "指标趋势图", notes = "指标趋势图") |
||||
public R trend_chart(@RequestParam String type) { |
||||
return R.data(stationService.trend_chart(type)); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 生态流量站点新增或修改 |
||||
* @param entity |
||||
* @return |
||||
*/ |
||||
@PostMapping("/station/submit") |
||||
@ApiOperationSupport(order = 1) |
||||
@ApiOperation(value = "新增或修改", notes = "EcologyFlowStationEntity") |
||||
public R station_submit(@Valid @RequestBody EcologyFlowStationEntity entity) { |
||||
return R.status(stationService.saveOrUpdate(entity)); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 生态流量站点删除 |
||||
* @param ids |
||||
* @return |
||||
*/ |
||||
@PostMapping("/station/remove") |
||||
@ApiOperationSupport(order = 2) |
||||
@ApiOperation(value = "逻辑删除", notes = "传入ids") |
||||
public R station_remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { |
||||
return R.status(stationService.deleteLogic(Func.toLongList(ids))); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 生态流量站点列表查询 |
||||
* @param entity |
||||
* @param query |
||||
* @return |
||||
*/ |
||||
@ApiLog |
||||
@GetMapping("/station/list") |
||||
@ApiOperationSupport(order = 3) |
||||
@ApiOperation(value = "分页", notes = "EcologyFlowStationEntity") |
||||
public R<IPage<EcologyFlowStationEntity>> station_list(EcologyFlowStationEntity entity, Query query) { |
||||
IPage<EcologyFlowStationEntity> pages = stationService.page(Condition.getPage(query), Condition.getQueryWrapper(entity)); |
||||
return R.data(pages); |
||||
} |
||||
|
||||
/** |
||||
* 生态流量站点详情 |
||||
* @param entity |
||||
* @return |
||||
*/ |
||||
@ApiLog |
||||
@RequestMapping(value = "/station/detail", method = {RequestMethod.GET, RequestMethod.POST}) |
||||
@ApiOperationSupport(order = 4) |
||||
@ApiOperation(value = "详情", notes = "EcologyFlowStationEntity") |
||||
public R<EcologyFlowStationEntity> station_detail(EcologyFlowStationEntity entity) { |
||||
EcologyFlowStationEntity detail = stationService.getOne(Condition.getQueryWrapper(entity)); |
||||
return R.data(detail); |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
/** |
||||
* 生态流量站点新增或修改 |
||||
* @param entity |
||||
* @return |
||||
*/ |
||||
@PostMapping("/data/submit") |
||||
@ApiOperationSupport(order = 1) |
||||
@ApiOperation(value = "新增或修改", notes = "EcologyFlowDataEntity") |
||||
public R data_submit(@Valid @RequestBody EcologyFlowDataEntity entity) { |
||||
return R.status(dataService.saveOrUpdate(entity)); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 生态流量站点删除 |
||||
* @param ids |
||||
* @return |
||||
*/ |
||||
@PostMapping("/data/remove") |
||||
@ApiOperationSupport(order = 2) |
||||
@ApiOperation(value = "逻辑删除", notes = "传入ids") |
||||
public R data_remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { |
||||
return R.status(dataService.deleteLogic(Func.toLongList(ids))); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 生态流量站点列表查询 |
||||
* @param entity |
||||
* @param query |
||||
* @return |
||||
*/ |
||||
@ApiLog |
||||
@GetMapping("/data/list") |
||||
@ApiOperationSupport(order = 3) |
||||
@ApiOperation(value = "分页", notes = "EcologyFlowdataEntity") |
||||
public R<IPage<EcologyFlowDataEntity>> data_list(EcologyFlowDataEntity entity, Query query) { |
||||
IPage<EcologyFlowDataEntity> pages = dataService.page(Condition.getPage(query), Condition.getQueryWrapper(entity)); |
||||
return R.data(pages); |
||||
} |
||||
|
||||
/** |
||||
* 生态流量站点详情 |
||||
* @param entity |
||||
* @return |
||||
*/ |
||||
@ApiLog |
||||
@RequestMapping(value = "/data/detail", method = {RequestMethod.GET, RequestMethod.POST}) |
||||
@ApiOperationSupport(order = 4) |
||||
@ApiOperation(value = "详情", notes = "EcologyFlowdataEntity") |
||||
public R<EcologyFlowDataEntity> data_detail(EcologyFlowDataEntity entity) { |
||||
EcologyFlowDataEntity detail = dataService.getOne(Condition.getQueryWrapper(entity)); |
||||
return R.data(detail); |
||||
} |
||||
} |
@ -0,0 +1,11 @@
|
||||
package com.hnac.hzims.operational.ecology.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.hnac.hzims.operational.ecology.entity.EcologyFlowDataEntity; |
||||
|
||||
/** |
||||
* @author YSJ |
||||
*/ |
||||
public interface EcologyFlowDataMapper extends BaseMapper<EcologyFlowDataEntity> { |
||||
|
||||
} |
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.hnac.hzims.operational.ecology.mapper.EcologyFlowDataMapper"> |
||||
|
||||
</mapper> |
@ -0,0 +1,11 @@
|
||||
package com.hnac.hzims.operational.ecology.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.hnac.hzims.operational.ecology.entity.EcologyFlowStationEntity; |
||||
|
||||
/** |
||||
* @author YSJ |
||||
*/ |
||||
public interface EcologyFlowStationMapper extends BaseMapper<EcologyFlowStationEntity> { |
||||
|
||||
} |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.hnac.hzims.operational.ecology.mapper.EcologyFlowStationMapper"> |
||||
</mapper> |
@ -0,0 +1,14 @@
|
||||
package com.hnac.hzims.operational.ecology.service; |
||||
|
||||
import com.hnac.hzims.operational.ecology.entity.EcologyFlowDataEntity; |
||||
import com.hnac.hzims.operational.ecology.vo.TrendChartVo; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 告警处理接口 |
||||
* @author ysj |
||||
*/ |
||||
public interface EcologyFlowDataService extends BaseService<EcologyFlowDataEntity> { |
||||
} |
@ -0,0 +1,22 @@
|
||||
package com.hnac.hzims.operational.ecology.service; |
||||
|
||||
import com.hnac.hzims.operational.ecology.entity.EcologyFlowStationEntity; |
||||
import com.hnac.hzims.operational.ecology.vo.EcologFlowStationVo; |
||||
import com.hnac.hzims.operational.ecology.vo.TrendChartVo; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 告警处理接口 |
||||
* @author ysj |
||||
*/ |
||||
public interface EcologyFlowStationService extends BaseService<EcologyFlowStationEntity> { |
||||
|
||||
EcologFlowStationVo station_top(); |
||||
|
||||
|
||||
Boolean generate(Long mon,String year); |
||||
|
||||
List<TrendChartVo> trend_chart(String type); |
||||
} |
@ -0,0 +1,30 @@
|
||||
package com.hnac.hzims.operational.ecology.service.impl; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.hnac.hzims.operational.ecology.entity.EcologyFlowDataEntity; |
||||
import com.hnac.hzims.operational.ecology.entity.EcologyFlowStationEntity; |
||||
import com.hnac.hzims.operational.ecology.mapper.EcologyFlowDataMapper; |
||||
import com.hnac.hzims.operational.ecology.service.EcologyFlowDataService; |
||||
import com.hnac.hzims.operational.ecology.service.EcologyFlowStationService; |
||||
import com.hnac.hzims.operational.ecology.vo.TrendChartVo; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.math.BigDecimal; |
||||
import java.util.*; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* 历史告警实现类 |
||||
* @author ysj |
||||
*/ |
||||
@Slf4j |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
public class EcologyFlowDataServiceImpl extends BaseServiceImpl<EcologyFlowDataMapper, EcologyFlowDataEntity> implements EcologyFlowDataService { |
||||
|
||||
} |
@ -0,0 +1,145 @@
|
||||
package com.hnac.hzims.operational.ecology.service.impl; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
import com.hnac.hzims.operational.ecology.entity.EcologyFlowDataEntity; |
||||
import com.hnac.hzims.operational.ecology.entity.EcologyFlowStationEntity; |
||||
import com.hnac.hzims.operational.ecology.mapper.EcologyFlowStationMapper; |
||||
import com.hnac.hzims.operational.ecology.service.EcologyFlowDataService; |
||||
import com.hnac.hzims.operational.ecology.service.EcologyFlowStationService; |
||||
import com.hnac.hzims.operational.ecology.vo.DemonstrateTopVo; |
||||
import com.hnac.hzims.operational.ecology.vo.EcologFlowStationVo; |
||||
import com.hnac.hzims.operational.ecology.vo.TrendChartVo; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.math.BigDecimal; |
||||
import java.util.*; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* 历史告警实现类 |
||||
* @author ysj |
||||
*/ |
||||
@Slf4j |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
public class EcologyFlowStationServiceImpl extends BaseServiceImpl<EcologyFlowStationMapper, EcologyFlowStationEntity> implements EcologyFlowStationService { |
||||
|
||||
private final EcologyFlowDataService dataService; |
||||
|
||||
/** |
||||
* 数据初始化 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public Boolean generate(Long mon,String year) { |
||||
// 步骤1.查询站点列表
|
||||
List<EcologyFlowStationEntity> ecologys = this.list(); |
||||
if(CollectionUtil.isEmpty(ecologys)){ |
||||
return false; |
||||
} |
||||
Random random=new Random(); |
||||
List<EcologyFlowDataEntity> datas = new ArrayList<>(); |
||||
for(EcologyFlowStationEntity ecology : ecologys){ |
||||
int iter = Math.toIntExact(mon); |
||||
while (Math.abs(iter) > 0){ |
||||
EcologyFlowDataEntity entity = new EcologyFlowDataEntity(); |
||||
entity.setMon(year + "-" + ((iter > 10) ? iter : "0" + iter)); |
||||
entity.setStationId(ecology.getStationId()); |
||||
entity.setStationName(ecology.getStationName()); |
||||
entity.setOnLine(BigDecimal.valueOf(random.nextDouble() * 100)); |
||||
entity.setComplete(BigDecimal.valueOf(random.nextDouble() * 100)); |
||||
entity.setTimely(BigDecimal.valueOf(random.nextDouble() * 100)); |
||||
entity.setDemonstrate(BigDecimal.valueOf(random.nextDouble() * 100)); |
||||
datas.add(entity); |
||||
iter--; |
||||
} |
||||
} |
||||
return this.dataService.saveBatch(datas); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 站点数据,达标率排行榜 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public EcologFlowStationVo station_top() { |
||||
List<EcologyFlowStationEntity> stations = this.list(); |
||||
if(CollectionUtil.isEmpty(stations)){ |
||||
return new EcologFlowStationVo(); |
||||
} |
||||
EcologFlowStationVo station = new EcologFlowStationVo(); |
||||
station.setComplete(BigDecimal.valueOf((int) stations.stream().filter(o -> o.getIsComplete().equals(1L)).count() / (double) stations.size() * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); |
||||
station.setOnLine(BigDecimal.valueOf((int) stations.stream().filter(o -> o.getIsOnLine().equals(1L)).count() / (double) stations.size() * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); |
||||
station.setDemonstrate(BigDecimal.valueOf((int) stations.stream().filter(o -> o.getIsDemonstrate().equals(1L)).count() / (double) stations.size() * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); |
||||
station.setTimely(BigDecimal.valueOf((int) stations.stream().filter(o -> o.getIsTimely().equals(1L)).count() / (double) stations.size() * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); |
||||
station.setCount(stations.size()); |
||||
|
||||
List<EcologyFlowDataEntity> datas = dataService.list(Wrappers.<EcologyFlowDataEntity>lambdaQuery(). |
||||
like(EcologyFlowDataEntity::getMon, DateUtil.format(new Date(),"yyyy-MM"))); |
||||
if(CollectionUtil.isEmpty(datas)){ |
||||
return station; |
||||
} |
||||
station.setTops(datas.stream().map(data->{ |
||||
DemonstrateTopVo top = new DemonstrateTopVo(); |
||||
top.setStationId(data.getStationId()); |
||||
top.setStationName(data.getStationName()); |
||||
top.setDemonstrate(data.getDemonstrate()); |
||||
return top; |
||||
}).sorted(Comparator.comparing(DemonstrateTopVo::getDemonstrate).reversed()).collect(Collectors.toList())); |
||||
return station; |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 指标趋势图 |
||||
* @param type |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public List<TrendChartVo> trend_chart(String type) { |
||||
LambdaQueryWrapper<EcologyFlowDataEntity> wrapper = new LambdaQueryWrapper<>(); |
||||
if("0".equals(type)){ |
||||
wrapper.like(EcologyFlowDataEntity::getMon, DateUtil.format(new Date(),"yyyy")); |
||||
} |
||||
List<EcologyFlowDataEntity> datas = this.dataService.list(wrapper); |
||||
if(CollectionUtil.isEmpty(datas)){ |
||||
return new ArrayList<>(); |
||||
} |
||||
List<TrendChartVo> charts; |
||||
if("0".equals(type)){ |
||||
Map<String,List<EcologyFlowDataEntity>> map = datas.stream().collect(Collectors.groupingBy(EcologyFlowDataEntity::getMon)); |
||||
charts = map.entrySet().stream().map(entry->{ |
||||
TrendChartVo chart = new TrendChartVo(); |
||||
Date date = DateUtil.parse(entry.getKey() + "-01 00:00:00",DateUtil.PATTERN_DATETIME); |
||||
chart.setTs(date.getMonth() + 1); |
||||
chart.setTimely(entry.getValue().stream().mapToDouble(o->o.getTimely().doubleValue()).average().getAsDouble()); |
||||
chart.setDemonstrate(entry.getValue().stream().mapToDouble(o->o.getDemonstrate().doubleValue()).average().getAsDouble()); |
||||
chart.setOnLine(entry.getValue().stream().mapToDouble(o->o.getOnLine().doubleValue()).average().getAsDouble()); |
||||
chart.setComplete(entry.getValue().stream().mapToDouble(o->o.getComplete().doubleValue()).average().getAsDouble()); |
||||
return chart; |
||||
}).collect(Collectors.toList()); |
||||
}else{ |
||||
Map<String,List<EcologyFlowDataEntity>> map = datas.stream().peek(o->{ |
||||
Date date = DateUtil.parse(o.getMon() + "-01 00:00:00",DateUtil.PATTERN_DATETIME); |
||||
o.setMon(DateUtil.format(date,"yyyy")); |
||||
}).collect(Collectors.groupingBy(EcologyFlowDataEntity::getMon)); |
||||
charts = map.entrySet().stream().map(entry->{ |
||||
TrendChartVo chart = new TrendChartVo(); |
||||
chart.setTs(Integer.valueOf(entry.getKey())); |
||||
chart.setTimely(entry.getValue().stream().mapToDouble(o->o.getTimely().doubleValue()).average().getAsDouble()); |
||||
chart.setDemonstrate(entry.getValue().stream().mapToDouble(o->o.getDemonstrate().doubleValue()).average().getAsDouble()); |
||||
chart.setOnLine(entry.getValue().stream().mapToDouble(o->o.getOnLine().doubleValue()).average().getAsDouble()); |
||||
chart.setComplete(entry.getValue().stream().mapToDouble(o->o.getComplete().doubleValue()).average().getAsDouble()); |
||||
return chart; |
||||
}).collect(Collectors.toList()); |
||||
} |
||||
return charts.stream().sorted(Comparator.comparing(TrendChartVo::getTs)).collect(Collectors.toList()); |
||||
} |
||||
} |
Loading…
Reference in new issue