|  | @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
	
		
			
				|  |  |  import com.google.common.collect.Lists;
 | 
	
		
			
				|  |  | +import com.mysql.cj.x.protobuf.MysqlxDatatypes;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.utils.bean.BeanUtils;
 | 
	
		
			
				|  |  |  import com.usky.common.core.bean.CommonPage;
 | 
	
		
			
				|  |  |  import com.usky.common.core.exception.BusinessException;
 | 
	
	
		
			
				|  | @@ -15,10 +16,7 @@ import com.usky.common.core.util.Arith;
 | 
	
		
			
				|  |  |  import com.usky.common.core.util.DateUtils;
 | 
	
		
			
				|  |  |  import com.usky.common.mybatis.core.AbstractCrudService;
 | 
	
		
			
				|  |  |  import com.usky.common.security.utils.SecurityUtils;
 | 
	
		
			
				|  |  | -import com.usky.fire.domain.DemFileLabel;
 | 
	
		
			
				|  |  | -import com.usky.fire.domain.DemFireLabelAttribute;
 | 
	
		
			
				|  |  | -import com.usky.fire.domain.DemFireStatistics;
 | 
	
		
			
				|  |  | -import com.usky.fire.domain.DemFireStatisticsAttach;
 | 
	
		
			
				|  |  | +import com.usky.fire.domain.*;
 | 
	
		
			
				|  |  |  import com.usky.fire.mapper.DemFireStatisticsMapper;
 | 
	
		
			
				|  |  |  import com.usky.fire.service.DemFileLabelService;
 | 
	
		
			
				|  |  |  import com.usky.fire.service.DemFireLabelAttributeService;
 | 
	
	
		
			
				|  | @@ -810,6 +808,97 @@ public class DemFireStatisticsServiceImpl extends AbstractCrudService<DemFireSta
 | 
	
		
			
				|  |  |          return new CommonPage<>(list, page.getTotal(), page.getSize(), page.getCurrent());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public List<DemFireStatisticsScattorVO> fireStatisticScattor(String street, String lossType, String startTime, String endTime){
 | 
	
		
			
				|  |  | +        List<DemFireStatisticsScattorVO> list = new ArrayList<>();
 | 
	
		
			
				|  |  | +//        LambdaQueryWrapper<DemFireStatistics> queryWrapper = Wrappers.lambdaQuery();
 | 
	
		
			
				|  |  | +//        List<DemFireStatistics> dataList = this.list(queryWrapper);
 | 
	
		
			
				|  |  | +//        if(CollectionUtils.isNotEmpty(dataList)){
 | 
	
		
			
				|  |  | +//            for (int i = 0; i < dataList.size(); i++) {
 | 
	
		
			
				|  |  | +//                if(StringUtils.isBlank(dataList.get(i).getStreet()) || (dataList.get(i).getStreet()).length() == 0){
 | 
	
		
			
				|  |  | +//                    List<LocateInfo> infoList = OnlineMethod.getLonLat(dataList.get(i).getFireAddress());
 | 
	
		
			
				|  |  | +//                    if(infoList.size() > 0){
 | 
	
		
			
				|  |  | +//                        dataList.get(i).setLatitude(infoList.get(0).getLatitude().toString());
 | 
	
		
			
				|  |  | +//                        dataList.get(i).setLongitude(infoList.get(0).getLongitude().toString());
 | 
	
		
			
				|  |  | +//                        dataList.get(i).setDistrict(infoList.get(0).getDistrict());
 | 
	
		
			
				|  |  | +//                        this.updateById(dataList.get(i));
 | 
	
		
			
				|  |  | +//                    }
 | 
	
		
			
				|  |  | +//                }
 | 
	
		
			
				|  |  | +//            }
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//        LambdaQueryWrapper<DemFireStatistics> queryWrapper11 = Wrappers.lambdaQuery();
 | 
	
		
			
				|  |  | +//        List<DemFireStatistics> dataList11 = this.list(queryWrapper11);
 | 
	
		
			
				|  |  | +//        if(CollectionUtils.isNotEmpty(dataList11)){
 | 
	
		
			
				|  |  | +//            for (int i = 0; i < dataList11.size(); i++) {
 | 
	
		
			
				|  |  | +//                if(StringUtils.isBlank(dataList11.get(i).getStreet()) || (dataList11.get(i).getStreet()).length() == 0){
 | 
	
		
			
				|  |  | +//                    String location = dataList11.get(i).getLongitude() + "," + dataList11.get(i).getLatitude();
 | 
	
		
			
				|  |  | +//                    String streetTown = OnlineMethod.getStreetTown(location);
 | 
	
		
			
				|  |  | +//                    System.out.println(streetTown);
 | 
	
		
			
				|  |  | +//                    if (StringUtils.isNotBlank(streetTown)) {
 | 
	
		
			
				|  |  | +//                        dataList11.get(i).setStreet(streetTown);
 | 
	
		
			
				|  |  | +//                        this.updateById(dataList11.get(i));
 | 
	
		
			
				|  |  | +//                    }
 | 
	
		
			
				|  |  | +//                }
 | 
	
		
			
				|  |  | +//            }
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        LambdaQueryWrapper<DemFireStatistics> queryWrapper1 = Wrappers.lambdaQuery();
 | 
	
		
			
				|  |  | +        queryWrapper1.eq(StringUtils.isNotBlank(street),DemFireStatistics::getStreet,street)
 | 
	
		
			
				|  |  | +                .between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime),DemFireStatistics::getFireTime,startTime,endTime);
 | 
	
		
			
				|  |  | +        if(StringUtils.isNotBlank(lossType)){
 | 
	
		
			
				|  |  | +            if(lossType.equals("亡人火灾")){
 | 
	
		
			
				|  |  | +                queryWrapper1.gt(DemFireStatistics::getDeathToll,0);
 | 
	
		
			
				|  |  | +            }else if(lossType.equals("伤人火灾")){
 | 
	
		
			
				|  |  | +                queryWrapper1.gt(DemFireStatistics::getInjuredNumber,0);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        List<DemFireStatistics> dataList1 = this.list(queryWrapper1);
 | 
	
		
			
				|  |  | +        if(CollectionUtils.isNotEmpty(dataList1)){
 | 
	
		
			
				|  |  | +            for (int i = 0; i < dataList1.size(); i++) {
 | 
	
		
			
				|  |  | +                DemFireStatisticsScattorVO scattorVO = new DemFireStatisticsScattorVO();
 | 
	
		
			
				|  |  | +                scattorVO.setFireNumber(dataList1.get(i).getFireNumber());
 | 
	
		
			
				|  |  | +                scattorVO.setFireTime(dataList1.get(i).getFireTime());
 | 
	
		
			
				|  |  | +                scattorVO.setFireAddress(dataList1.get(i).getFireAddress());
 | 
	
		
			
				|  |  | +                scattorVO.setFireProcess(dataList1.get(i).getFireProcess());
 | 
	
		
			
				|  |  | +                scattorVO.setDirectPropertyLoss(dataList1.get(i).getDirectPropertyLoss());
 | 
	
		
			
				|  |  | +                scattorVO.setBurnedArea(dataList1.get(i).getBurnedArea());
 | 
	
		
			
				|  |  | +                scattorVO.setAffectedHouse(dataList1.get(i).getAffectedHouse());
 | 
	
		
			
				|  |  | +                scattorVO.setVictimNumber(dataList1.get(i).getVictimNumber());
 | 
	
		
			
				|  |  | +                scattorVO.setDeathToll(dataList1.get(i).getDeathToll());
 | 
	
		
			
				|  |  | +                scattorVO.setInjuredNumber(dataList1.get(i).getInjuredNumber());
 | 
	
		
			
				|  |  | +                scattorVO.setLongitude(dataList1.get(i).getLongitude());
 | 
	
		
			
				|  |  | +                scattorVO.setLatitude(dataList1.get(i).getLatitude());
 | 
	
		
			
				|  |  | +                scattorVO.setDistrict(dataList1.get(i).getDistrict());
 | 
	
		
			
				|  |  | +                scattorVO.setStreet(dataList1.get(i).getStreet());
 | 
	
		
			
				|  |  | +                list.add(scattorVO);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return list;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public List<DemFireStatisticsCountScattorVO> fireStatisticCollect(String street, String startTime, String endTime){
 | 
	
		
			
				|  |  | +        List<DemFireStatisticsCountScattorVO> list = new ArrayList<>();
 | 
	
		
			
				|  |  | +        QueryWrapper<DemFireStatistics> queryWrapper = Wrappers.query();
 | 
	
		
			
				|  |  | +        queryWrapper.select("ROUND(SUM(direct_property_loss)/10000,2) as directPropertyLossTotal","COUNT(*) as fireCount","ROUND(SUM(burned_area),2) as burnedAreaTotal","SUM(death_toll) as deathTollTotal","SUM(injured_number) as injuredNumberTotal")
 | 
	
		
			
				|  |  | +                .eq(StringUtils.isNotBlank(street),"street",street)
 | 
	
		
			
				|  |  | +                .between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime),"fire_time",startTime,endTime);
 | 
	
		
			
				|  |  | +        List<Map<String,Object>> maps = this.listMaps(queryWrapper);
 | 
	
		
			
				|  |  | +        if(maps.size() > 0){
 | 
	
		
			
				|  |  | +            DemFireStatisticsCountScattorVO scattorVO = new DemFireStatisticsCountScattorVO();
 | 
	
		
			
				|  |  | +            scattorVO.setDirectPropertyLossTotal(Double.parseDouble(maps.get(0).get("directPropertyLossTotal").toString()));
 | 
	
		
			
				|  |  | +            scattorVO.setFireCount(Integer.parseInt(maps.get(0).get("fireCount").toString()));
 | 
	
		
			
				|  |  | +            scattorVO.setBurnedAreaTotal(Double.parseDouble(maps.get(0).get("burnedAreaTotal").toString()));
 | 
	
		
			
				|  |  | +            scattorVO.setDeathTollTotal((int)Math.round(Double.parseDouble(maps.get(0).get("deathTollTotal").toString())));
 | 
	
		
			
				|  |  | +            scattorVO.setInjuredNumberTotal((int)Math.round(Double.parseDouble(maps.get(0).get("injuredNumberTotal").toString())));
 | 
	
		
			
				|  |  | +            list.add(scattorVO);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return list;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public List<FireBubbleVO> getAvgAndSum(String startTime, String endTime, String fireType, String unitId) {
 | 
	
		
			
				|  |  |          List<FireBubbleVO> fireBubbleVOS = new ArrayList<>();
 |