|
@@ -5,23 +5,20 @@ import com.bizmatics.common.core.bean.CommonPage;
|
|
|
import com.bizmatics.common.core.util.DateUtils;
|
|
|
import com.bizmatics.common.core.util.StringUtils;
|
|
|
import com.bizmatics.mhfire.persistence.mapper.FireStatisticsMapper;
|
|
|
-
|
|
|
import com.bizmatics.mhfire.persistence.mapper.po.FireStatisticsPO;
|
|
|
import com.bizmatics.mhfire.persistence.mapper.po.UnitPO;
|
|
|
+import com.bizmatics.mhfire.persistence.mapper.vo.LocateInfo;
|
|
|
import com.bizmatics.mhfire.service.FireStatisticsService;
|
|
|
import com.bizmatics.mhfire.service.UnitService;
|
|
|
-
|
|
|
import com.bizmatics.mhfire.service.util.Arith;
|
|
|
+import com.bizmatics.mhfire.service.util.GouldUtil;
|
|
|
import com.bizmatics.mhfire.service.vo.FireBubbleVO;
|
|
|
import com.bizmatics.mhfire.service.vo.FireLevelRatioVO;
|
|
|
import com.bizmatics.mhfire.service.vo.FireUnitPoliceVO;
|
|
|
-import net.sf.jsqlparser.statement.alter.Alter;
|
|
|
-import org.checkerframework.checker.nullness.Opt;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.text.DecimalFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -75,8 +72,24 @@ public class FireStatisticsServiceImpl implements FireStatisticsService {
|
|
|
public CommonPage<FireStatisticsPO> page(Integer current, Integer size, Date startTime, Date endTime, String address) {
|
|
|
Page<Map<String, String>> page = new Page<>(current, size);
|
|
|
page = fireStatisticsMapper.page(page, startTime, endTime, address);
|
|
|
- List<FireStatisticsPO> list = new ArrayList<>();
|
|
|
- page.getRecords().forEach(stringObjectMap -> list.add(enhanceFireStatisticsPo(stringObjectMap)));
|
|
|
+ List<FireStatisticsPO> list = page.getRecords()
|
|
|
+ .stream()
|
|
|
+ .map(this::enhanceFireStatisticsPo).collect(Collectors.toList());
|
|
|
+ //筛选出精度和维度是空的数据
|
|
|
+ List<FireStatisticsPO> isNullData = list.stream().filter(fireStatisticsPo -> null == fireStatisticsPo.getLatitude()).collect(Collectors.toList());
|
|
|
+ List<List<FireStatisticsPO>> subSets = Lists.partition(isNullData, 10);
|
|
|
+ for (List<FireStatisticsPO> listLimit:subSets) {
|
|
|
+ String addressList = listLimit.stream().map(FireStatisticsPO::getAddress).collect(Collectors.joining("|"));
|
|
|
+ List<LocateInfo> lonLat = GouldUtil.getLonLat(addressList);
|
|
|
+ for (FireStatisticsPO fireStatisticsPo:listLimit) {
|
|
|
+ fireStatisticsPo.setLatitude(lonLat.get(listLimit.indexOf(fireStatisticsPo)).getLatitude());
|
|
|
+ fireStatisticsPo.setLongitude(lonLat.get(listLimit.indexOf(fireStatisticsPo)).getLongitude());
|
|
|
+ fireStatisticsPo.setDistrict(lonLat.get(listLimit.indexOf(fireStatisticsPo)).getDistrict());
|
|
|
+ fireStatisticsPo.setStreet(lonLat.get(listLimit.indexOf(fireStatisticsPo)).getStreet());
|
|
|
+
|
|
|
+ }
|
|
|
+ fireStatisticsMapper.updateList(listLimit);
|
|
|
+ }
|
|
|
return new CommonPage<>(list, page.getTotal(), page.getSize(), page.getCurrent());
|
|
|
}
|
|
|
|
|
@@ -203,6 +216,10 @@ public class FireStatisticsServiceImpl implements FireStatisticsService {
|
|
|
fireStatisticsPo.setDisasterHome(Optional.ofNullable(map.get("受灾户数")).filter(s -> !"null".equals(s)).orElse(""));
|
|
|
fireStatisticsPo.setFireCause(Optional.ofNullable(map.get("火灾原因分类(一级)")).filter(s -> !"null".equals(s)).orElse(""));
|
|
|
fireStatisticsPo.setFireLevel(Optional.ofNullable(map.get("火灾等级")).filter(s -> !"null".equals(s)).orElse(""));
|
|
|
+ fireStatisticsPo.setLongitude(Double.valueOf(Optional.ofNullable(map.get("longitude")).orElse("0.00")));
|
|
|
+ fireStatisticsPo.setLatitude(Double.valueOf(Optional.ofNullable(map.get("latitude")).orElse("0.00")));
|
|
|
+ fireStatisticsPo.setDistrict(map.get("district"));
|
|
|
+ fireStatisticsPo.setStreet(map.get("street"));
|
|
|
return fireStatisticsPo;
|
|
|
}
|
|
|
}
|