Commit dbcbfadd authored by tangwei's avatar tangwei

增加发电计划完成趋势

parent efcf7bdf
...@@ -3,6 +3,10 @@ package com.yeejoin.amos.boot.module.jxiop.api.mapper; ...@@ -3,6 +3,10 @@ package com.yeejoin.amos.boot.module.jxiop.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jxiop.api.entity.PersonAccount; import com.yeejoin.amos.boot.module.jxiop.api.entity.PersonAccount;
import com.yeejoin.amos.boot.module.jxiop.api.entity.StationPlan; import com.yeejoin.amos.boot.module.jxiop.api.entity.StationPlan;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/** /**
* @description: * @description:
...@@ -12,5 +16,13 @@ import com.yeejoin.amos.boot.module.jxiop.api.entity.StationPlan; ...@@ -12,5 +16,13 @@ import com.yeejoin.amos.boot.module.jxiop.api.entity.StationPlan;
public interface StationPlanMapper extends BaseMapper<StationPlan> { public interface StationPlanMapper extends BaseMapper<StationPlan> {
// //获取当年全国没有 完成计划
// @Select("SELECT monthly ,sum(value) value from station_plan where year= #{year} GROUP BY monthly ")
// List<StationPlan> getStationPlanby(@Param("year") String year);
//
// //获取当年全国没有 完成计划
//
// @Select("SELECT monthly ,sum(value) value from station_plan where year= #{year} GROUP BY monthly ")
// List<StationPlan> getStationPlanbyids(@Param("year") String year);
} }
...@@ -504,12 +504,320 @@ public class LargeScreenImpl { ...@@ -504,12 +504,320 @@ public class LargeScreenImpl {
//全国月发电量趋势
@Scheduled(cron = "0/10 * * * * ?")
public List<Double> gettimedateyfd( ){
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy");
String monthy= myFmt2.format(new Date());
List<Double> listdate= new ArrayList<>();
List<String> value=new ArrayList<>();
value.add(YFD);
Map<String,List<String>> map=new HashMap<>();
map.put("equipmentIndexName.keyword",value);
List<String> value1=new ArrayList<>();
value1.add(monthy);
map.put("year.keyword",value1);
List<? extends Terms.Bucket> lidate= commonServiceImpl.getgroupsum(map,"value" ,"day.keyword", ESMoonPowerGeneration.class);
Map<String,Double> mapdta=new HashMap<>();
DecimalFormat format2 = new DecimalFormat("#.0000");
for (Terms.Bucket bucket : lidate) {
Aggregations aggregation= bucket.getAggregations();
List<Aggregation> listdata= Objects.nonNull(aggregation)?aggregation.asList():null;
for (Aggregation agg : listdata) {
ParsedSum parsedSum =(ParsedSum)agg;
mapdta.put(bucket.getKeyAsString(), Double.valueOf(format2.format(parsedSum.getValue())));
}
}
//组装数据
List<String> list= yueReport();
for (String s : list) {
if(mapdta!=null&&mapdta.containsKey(s)){
listdate.add(mapdta.get(s));
}else{
listdate.add(0d);
}
}
Map<String,Object> mapjn=new HashMap<>();
mapjn.put("seriesData",listdate);
mapjn.put("axisData",list);
try {
System.out.println(JSON.toJSONString(mapjn));
emqKeeper.getMqttClient().publish("topic_yfd", JSON.toJSONString(mapjn).getBytes(),0,false);
} catch (MqttException e) {
e.printStackTrace();
}
return listdate;
}
//区域月发电量趋势
//获取区域月日发电量
@Scheduled(cron = "0/10 * * * * ?")
private void sendQYFDLMqttyfd(){
List<StationCacheInfoDto> listStationCacheInfoDto = commonServiceImpl.getListStationCacheInfoDto();
Map<String, List<StationCacheInfoDto>> belongAreaList = listStationCacheInfoDto.stream().collect(Collectors.groupingBy(StationCacheInfoDto::getBelongArea));
for (String s : belongAreaList.keySet()) {
List<String> ids = belongAreaList.get(s).stream().map(StationCacheInfoDto::getFanGatewayId).collect(Collectors.toList());
gettimedateqyyfd(new Date(),ids,s);
}
}
public List<Double> gettimedateqyyfd( Date date,List<String> gatewayId,String areaCode){
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy");
String monthy= myFmt2.format(date);
List<Double> listdate= new ArrayList<>();
List<String> value=new ArrayList<>();
value.add(YFD);
Map<String,List<String>> map=new HashMap<>();
map.put("equipmentIndexName.keyword",value);
map.put("gatewayId.keyword", gatewayId);
List<String> value1=new ArrayList<>();
value1.add(monthy);
map.put("year.keyword",value1);
List<? extends Terms.Bucket> lidate= commonServiceImpl.getgroupsum(map,"value" ,"day.keyword",ESMoonPowerGeneration.class);
Map<String,Double> mapdta=new HashMap<>();
DecimalFormat format2 = new DecimalFormat("#.0000");
for (Terms.Bucket bucket : lidate) {
Aggregations aggregation= bucket.getAggregations();
List<Aggregation> listdata= Objects.nonNull(aggregation)?aggregation.asList():null;
for (Aggregation agg : listdata) {
ParsedSum parsedSum =(ParsedSum)agg;
mapdta.put(bucket.getKeyAsString(), Double.valueOf(format2.format(parsedSum.getValue())));
}
}
//组装数据
List<String> list= yueReport();
for (String s : list) {
if(mapdta!=null&&mapdta.containsKey(s)){
listdate.add(mapdta.get(s));
}else{
listdate.add(0d);
}
}
Map<String,Object> mapjn=new HashMap<>();
mapjn.put("seriesData",listdate);
mapjn.put("axisData",list);
try {
System.out.println(JSON.toJSONString(mapjn));
emqKeeper.getMqttClient().publish("qyyfd/fdqs/"+areaCode, JSON.toJSONString(mapjn).getBytes(),0,false);
} catch (MqttException e) {
e.printStackTrace();
}
return listdate;
}
//全国发电完成趋势
@Scheduled(cron = "0/10 * * * * ?")
public List<Double> gettimedateyfdqs( ){
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy");
String monthy= myFmt2.format(new Date());
List<Double> listdate= new ArrayList<>();
List<String> value=new ArrayList<>();
value.add(YFD);
Map<String,List<String>> map=new HashMap<>();
map.put("equipmentIndexName.keyword",value);
List<String> value1=new ArrayList<>();
value1.add(monthy);
map.put("year.keyword",value1);
List<? extends Terms.Bucket> lidate= commonServiceImpl.getgroupsum(map,"value" ,"day.keyword", ESMoonPowerGeneration.class);
Map<String,Double> mapdta=new HashMap<>();
DecimalFormat format2 = new DecimalFormat("#.0000");
for (Terms.Bucket bucket : lidate) {
Aggregations aggregation= bucket.getAggregations();
List<Aggregation> listdata= Objects.nonNull(aggregation)?aggregation.asList():null;
for (Aggregation agg : listdata) {
ParsedSum parsedSum =(ParsedSum)agg;
mapdta.put(bucket.getKeyAsString(), Double.valueOf(format2.format(parsedSum.getValue())));
}
}
//计划完成量
Map<String,Double> mapwc=new HashMap<>();
QueryWrapper<StationPlan> wrapper = new QueryWrapper<>();
wrapper.select(" monthly ,sum(value) value ");
wrapper.eq("year", monthy);
wrapper.groupBy("monthly");
List<Map<String, Object>> list1 = StationPlanMapper.selectMaps(wrapper);
for (Map<String, Object> stringObjectMap : list1) {
mapwc.put(stringObjectMap.get("monthly").toString(),Double.valueOf(stringObjectMap.get("value").toString()));
}
//组装数据
List<String> list= yueReport();
for (String s : list) {
if(mapdta!=null&&mapdta.containsKey(s)){
if (mapwc!=null&&mapwc.containsKey(s)){
listdate.add(Double.valueOf(format2.format(mapdta.get(s)/mapwc.get(s)*100)));
}else{
listdate.add(0d);
}
}else{
listdate.add(0d);
}
}
Map<String,Object> mapjn=new HashMap<>();
mapjn.put("seriesData",listdate);
mapjn.put("axisData",list);
try {
System.out.println(JSON.toJSONString(mapjn));
emqKeeper.getMqttClient().publish("topic_yfdqs", JSON.toJSONString(mapjn).getBytes(),0,false);
} catch (MqttException e) {
e.printStackTrace();
}
return listdate;
}
//区域发电完成趋势
@Scheduled(cron = "0/10 * * * * ?")
private void sendQYFDLMqttyfdqs(){
List<StationCacheInfoDto> listStationCacheInfoDto = commonServiceImpl.getListStationCacheInfoDto();
Map<String, List<StationCacheInfoDto>> belongAreaList = listStationCacheInfoDto.stream().collect(Collectors.groupingBy(StationCacheInfoDto::getBelongArea));
for (String s : belongAreaList.keySet()) {
List<String> ids = belongAreaList.get(s).stream().map(StationCacheInfoDto::getFanGatewayId).collect(Collectors.toList());
List<String> idsStationId = belongAreaList.get(s).stream().map(StationCacheInfoDto::getStationId).collect(Collectors.toList());
gettimedateqyyfdqs(new Date(),ids,s,idsStationId);
}
}
public List<Double> gettimedateqyyfdqs( Date date,List<String> gatewayId,String areaCode,List<String> idsStationId){
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy");
String monthy= myFmt2.format(date);
List<Double> listdate= new ArrayList<>();
List<String> value=new ArrayList<>();
value.add(YFD);
Map<String,List<String>> map=new HashMap<>();
map.put("equipmentIndexName.keyword",value);
map.put("gatewayId.keyword", gatewayId);
List<String> value1=new ArrayList<>();
value1.add(monthy);
map.put("year.keyword",value1);
List<? extends Terms.Bucket> lidate= commonServiceImpl.getgroupsum(map,"value" ,"day.keyword",ESMoonPowerGeneration.class);
Map<String,Double> mapdta=new HashMap<>();
DecimalFormat format2 = new DecimalFormat("#.0000");
for (Terms.Bucket bucket : lidate) {
Aggregations aggregation= bucket.getAggregations();
List<Aggregation> listdata= Objects.nonNull(aggregation)?aggregation.asList():null;
for (Aggregation agg : listdata) {
ParsedSum parsedSum =(ParsedSum)agg;
mapdta.put(bucket.getKeyAsString(), Double.valueOf(format2.format(parsedSum.getValue())));
}
}
//计划完成量
Map<String,Double> mapwc=new HashMap<>();
QueryWrapper<StationPlan> wrapper = new QueryWrapper<>();
wrapper.select(" monthly ,sum(value) value ");
wrapper.eq("year", monthy);
wrapper.in("station_basic_id",idsStationId);
wrapper.groupBy("monthly");
List<Map<String, Object>> list1 = StationPlanMapper.selectMaps(wrapper);
for (Map<String, Object> stringObjectMap : list1) {
mapwc.put(stringObjectMap.get("monthly").toString(),Double.valueOf(stringObjectMap.get("value").toString()));
}
//组装数据
List<String> list= yueReport();
for (String s : list) {
if(mapdta!=null&&mapdta.containsKey(s)){
if (mapwc!=null&&mapwc.containsKey(s)){
listdate.add(Double.valueOf(format2.format(mapdta.get(s)/mapwc.get(s)*100)));
}else{
listdate.add(0d);
}
}else{
listdate.add(0d);
}
}
Map<String,Object> mapjn=new HashMap<>();
mapjn.put("seriesData",listdate);
mapjn.put("axisData",list);
try {
System.out.println(JSON.toJSONString(mapjn));
emqKeeper.getMqttClient().publish("qyyfdqs/fdqs/"+areaCode, JSON.toJSONString(mapjn).getBytes(),0,false);
} catch (MqttException e) {
e.printStackTrace();
}
return listdate;
}
public List<String> yueReport() {
List<String> list=new ArrayList<>();
for (int i = 1; i < 13; i++ ) {
list.add(String.valueOf(i));
}
return list;
}
public List<String> dayReport(Date month) { public List<String> dayReport(Date month) {
List<String> list=new ArrayList<>(); List<String> list=new ArrayList<>();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment