|
@@ -3,21 +3,28 @@ package com.bizmatics.mhfire.service.impl;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.bizmatics.common.core.bean.CommonPage;
|
|
|
import com.bizmatics.common.core.util.BeanMapperUtils;
|
|
|
+import com.bizmatics.common.core.util.StringUtils;
|
|
|
import com.bizmatics.mhfire.persistence.mapper.BsSupervisionAllMapper;
|
|
|
import com.bizmatics.mhfire.persistence.mapper.FireStatisticsMapper;
|
|
|
import com.bizmatics.mhfire.persistence.mapper.UnitMapper;
|
|
|
import com.bizmatics.mhfire.persistence.mapper.po.BsSupervisionAllPO;
|
|
|
import com.bizmatics.mhfire.persistence.mapper.po.UnitPO;
|
|
|
+import com.bizmatics.mhfire.persistence.mapper.vo.LocateInfo;
|
|
|
import com.bizmatics.mhfire.service.BsSupervisionAllService;
|
|
|
import com.bizmatics.mhfire.service.UnitService;
|
|
|
-
|
|
|
import com.bizmatics.mhfire.service.enums.BsSaOneCode;
|
|
|
import com.bizmatics.mhfire.service.enums.BsSaTwoCode;
|
|
|
+import com.bizmatics.mhfire.service.util.GouldUtil;
|
|
|
import com.bizmatics.mhfire.service.vo.UnitAlCheckVO;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.*;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Optional;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author yq
|
|
@@ -46,9 +53,23 @@ public class UnitServiceImpl implements UnitService {
|
|
|
public CommonPage<UnitPO> page(Integer current, Integer size) {
|
|
|
Page<Map<String, Object>> page = new Page<>(current, size);
|
|
|
page = unitMapper.page(page);
|
|
|
- List<UnitPO> unitPoList = new ArrayList<>();
|
|
|
- page.getRecords().forEach(stringObjectMap -> unitPoList.add(enhanceUnitPo(stringObjectMap)));
|
|
|
- return new CommonPage<>(unitPoList, page.getTotal(), page.getSize(), page.getCurrent());
|
|
|
+ List<UnitPO> list = page.getRecords().stream().map(this::enhanceUnitPo).collect(Collectors.toList());
|
|
|
+ //筛选出精度和维度是空的数据
|
|
|
+ List<UnitPO> isNullData = list.stream().filter(unitPo -> 0.00 == unitPo.getLatitude()).collect(Collectors.toList());
|
|
|
+ List<List<UnitPO>> subSets = Lists.partition(isNullData, 10);
|
|
|
+ for (List<UnitPO> listLimit:subSets) {
|
|
|
+ String addressList = listLimit.stream().map(UnitPO::getAddress).collect(Collectors.joining("|"));
|
|
|
+ List<LocateInfo> lonLat = GouldUtil.getLonLat(addressList);
|
|
|
+ for (UnitPO unitPo:listLimit) {
|
|
|
+ unitPo.setLatitude(lonLat.get(listLimit.indexOf(unitPo)).getLatitude());
|
|
|
+ unitPo.setLongitude(lonLat.get(listLimit.indexOf(unitPo)).getLongitude());
|
|
|
+ unitPo.setDistrict(lonLat.get(listLimit.indexOf(unitPo)).getDistrict());
|
|
|
+ unitPo.setStreet(lonLat.get(listLimit.indexOf(unitPo)).getStreet());
|
|
|
+
|
|
|
+ }
|
|
|
+ unitMapper.updateList(listLimit);
|
|
|
+ }
|
|
|
+ return new CommonPage<>(list, page.getTotal(), page.getSize(), page.getCurrent());
|
|
|
|
|
|
}
|
|
|
|
|
@@ -89,6 +110,10 @@ public class UnitServiceImpl implements UnitService {
|
|
|
unitPo.setAddress(unit.get("单位地址").toString());
|
|
|
unitPo.setPrincipal(unit.get("法人代表或主要负责人").toString());
|
|
|
unitPo.setPhone(unit.get("单位电话").toString());
|
|
|
+ unitPo.setLongitude(Optional.ofNullable(unit.get("longitude").toString()).filter(StringUtils::isNotBlank).map(Double::parseDouble).orElse(0.00));
|
|
|
+ unitPo.setLatitude(Optional.ofNullable(unit.get("latitude").toString()).filter(StringUtils::isNotBlank).map(Double::parseDouble).orElse(0.00));
|
|
|
+ unitPo.setDistrict(unit.get("district").toString());
|
|
|
+ unitPo.setDistrict(unit.get("street").toString());
|
|
|
}
|
|
|
);
|
|
|
return unitPo;
|