소스 검색

单位信息修改完善

yq 3 년 전
부모
커밋
f238157adb

+ 4 - 2
mhfire-mapping/src/main/java/com/bizmatics/mhfire/persistence/mapper/UnitMapper.java

@@ -2,11 +2,10 @@ package com.bizmatics.mhfire.persistence.mapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
 import com.bizmatics.mhfire.persistence.mapper.po.UnitPO;
-import feign.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -22,4 +21,7 @@ public interface UnitMapper {
 
 
     Page<Map<String,Object>> page(IPage<Map<String,Object>> page);
+
+
+    int updateList(List<UnitPO> list);
 }

+ 2 - 1
mhfire-mapping/src/main/java/com/bizmatics/mhfire/persistence/mapper/po/UnitPO.java

@@ -1,5 +1,6 @@
 package com.bizmatics.mhfire.persistence.mapper.po;
 
+import com.bizmatics.mhfire.persistence.mapper.vo.LocateInfo;
 import lombok.Data;
 
 /**
@@ -8,7 +9,7 @@ import lombok.Data;
  *  单位信息表
  */
 @Data
-public class UnitPO {
+public class UnitPO extends LocateInfo {
 
     /**
      * 单位ID

+ 8 - 0
mhfire-mapping/src/main/resources/mapper/mysql/UnitMapper.xml

@@ -20,4 +20,12 @@
     <select id="page" resultType="java.util.Map">
         select * from `jbzb-dwxx-all`
     </select>
+
+    <update id="updateList" parameterType="java.util.List">
+        <foreach collection="list" item="item" index="index" separator=";">
+            UPDATE `jbzb-dwxx-all`
+            SET longitude = #{item.longitude},latitude = #{item.latitude},district = #{item.district},street = #{item.street}
+            WHERE `ID` = #{item.id}
+        </foreach>
+    </update>
 </mapper>

+ 3 - 3
mhfire-service/src/main/java/com/bizmatics/mhfire/service/impl/FireStatisticsServiceImpl.java

@@ -76,7 +76,7 @@ public class FireStatisticsServiceImpl implements FireStatisticsService {
                 .stream()
                 .map(this::enhanceFireStatisticsPo).collect(Collectors.toList());
         //筛选出精度和维度是空的数据
-        List<FireStatisticsPO> isNullData = list.stream().filter(fireStatisticsPo -> null == fireStatisticsPo.getLatitude()).collect(Collectors.toList());
+        List<FireStatisticsPO> isNullData = list.stream().filter(fireStatisticsPo -> 0.00 == 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("|"));
@@ -216,8 +216,8 @@ 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.setLongitude(Double.valueOf(Optional.ofNullable(map.get("longitude")).filter(StringUtils::isNotBlank).orElse("0.00")));
+        fireStatisticsPo.setLatitude(Double.valueOf(Optional.ofNullable(map.get("latitude")).filter(StringUtils::isNotBlank).orElse("0.00")));
         fireStatisticsPo.setDistrict(map.get("district"));
         fireStatisticsPo.setStreet(map.get("street"));
         return fireStatisticsPo;

+ 30 - 5
mhfire-service/src/main/java/com/bizmatics/mhfire/service/impl/UnitServiceImpl.java

@@ -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;