格式化区划数据
This commit is contained in:
parent
3912ec2bd1
commit
02c5e71c79
@ -1,14 +1,18 @@
|
||||
package com.xkrs.controller;
|
||||
|
||||
import com.xkrs.common.encapsulation.PromptMessageEnum;
|
||||
import com.xkrs.dao.DistrictDao;
|
||||
import com.xkrs.dao.FirePointOrdinaryDao;
|
||||
import com.xkrs.dao.StreetDao;
|
||||
import com.xkrs.dao.SysUserDao;
|
||||
import com.xkrs.fireseason.FireSeasonConfigService;
|
||||
import com.xkrs.model.bean.AddressBean;
|
||||
import com.xkrs.model.entity.DistrictEntity;
|
||||
import com.xkrs.model.qo.AllFirePointQo;
|
||||
import com.xkrs.model.qo.UpdateFirePointQo;
|
||||
import com.xkrs.service.DispatchFirePointService;
|
||||
import com.xkrs.service.impl.FirePointServiceImpl;
|
||||
import com.xkrs.utilsnew.FirePointAddressUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.i18n.LocaleContextHolder;
|
||||
@ -18,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static com.xkrs.common.encapsulation.OutputEncapsulation.outputEncapsulationObject;
|
||||
@ -36,45 +41,130 @@ public class DispatchFirePointController {
|
||||
private FirePointOrdinaryDao firePointOrdinaryDao;
|
||||
@Resource
|
||||
private StreetDao streetDao;
|
||||
@Resource
|
||||
private DistrictDao districtDao;
|
||||
private final Locale locale = LocaleContextHolder.getLocale();
|
||||
|
||||
@GetMapping("/debug")
|
||||
public String debug() {
|
||||
public String debug() throws Exception {
|
||||
int count = 0;
|
||||
List<DistrictEntity> districtList = districtDao.findAll();
|
||||
for (DistrictEntity districtItem : districtList) {
|
||||
try {
|
||||
String[] split = districtItem.getCenter().split(",");
|
||||
double longitude = Double.parseDouble(split[0]);
|
||||
double latitude = Double.parseDouble(split[1]);
|
||||
AddressBean addressBean = FirePointAddressUtils.analysisWithNetwork(longitude, latitude);
|
||||
if (!addressBean.isSuccess()) {
|
||||
continue;
|
||||
}
|
||||
if (!addressBean.getTownCode().startsWith(districtItem.getStreetCode())) {
|
||||
continue;
|
||||
}
|
||||
districtDao.updateStreetCode(districtItem.getId(), addressBean.getTownCode());
|
||||
count++;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
// System.out.println("开始更新用户VIP时间范围");
|
||||
|
||||
// int count = 0;
|
||||
// String result = HttpClientUtils.sendHttpsGet("https://restapi.amap.com/v3/config/district?key=89d34909932a58c094da0ea390058a12&subdistrict=4");
|
||||
// DistrictBean districtBean = JSONUtil.toBean(result, DistrictBean.class);
|
||||
// List<DistrictBean.DistrictsDTO> list111 = districtBean.getDistricts().get(0).getDistricts();
|
||||
// list111.sort(Comparator.comparing(DistrictBean.DistrictsDTO::getAdcode));
|
||||
// for (DistrictBean.DistrictsDTO proItem : list111) {
|
||||
// if (proItem != null && proItem.getDistricts() != null && proItem.getDistricts().size() > 0) {
|
||||
// List<DistrictBean.DistrictsDTO> list222 = proItem.getDistricts();
|
||||
// list222.sort(Comparator.comparing(DistrictBean.DistrictsDTO::getAdcode));
|
||||
// for (DistrictBean.DistrictsDTO cityItem : list222) {
|
||||
// if (cityItem != null && cityItem.getDistricts() != null && cityItem.getDistricts().size() > 0) {
|
||||
// List<DistrictBean.DistrictsDTO> list333 = cityItem.getDistricts();
|
||||
// list333.sort(Comparator.comparing(DistrictBean.DistrictsDTO::getAdcode));
|
||||
// for (DistrictBean.DistrictsDTO countyItem : list333) {
|
||||
// if (countyItem != null && countyItem.getDistricts() != null && countyItem.getDistricts().size() > 0) {
|
||||
// List<DistrictBean.DistrictsDTO> list444 = countyItem.getDistricts();
|
||||
// list444.sort(Comparator.comparing(DistrictBean.DistrictsDTO::getAdcode));
|
||||
// for (DistrictBean.DistrictsDTO streetItem : list444) {
|
||||
// DistrictEntity districtEntity = new DistrictEntity();
|
||||
// districtEntity.setProName(proItem.getName());
|
||||
// districtEntity.setProCode(proItem.getAdcode());
|
||||
// districtEntity.setCityName(cityItem.getName());
|
||||
// districtEntity.setCityCode(cityItem.getAdcode());
|
||||
// districtEntity.setCountyName(countyItem.getName());
|
||||
// districtEntity.setCountyCode(countyItem.getAdcode());
|
||||
// districtEntity.setStreetName(streetItem.getName());
|
||||
// districtEntity.setStreetCode(streetItem.getAdcode());
|
||||
// districtEntity.setCenter(streetItem.getCenter());
|
||||
// districtEntity.setLevel(streetItem.getLevel());
|
||||
// districtDao.saveAndFlush(districtEntity);
|
||||
// count++;
|
||||
// if (count % 100 == 0) {
|
||||
// System.out.println("已完成" + count + "条记录");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// List<SysUserEntity> sysUserEntityList = sysUserDao.findAll();
|
||||
// for (SysUserEntity sysUserEntity : sysUserEntityList) {
|
||||
// String addTime = sysUserEntity.getAddTime();
|
||||
// String vipTimeRangeJson = sysUserEntity.getVipTimeRangeJson();
|
||||
// if (!DateTimeUtil.isValidDateTime(addTime)) {
|
||||
// return sysUserEntity.getUserName();
|
||||
// }
|
||||
// if (!DateTimeUtil.isValidDateTime(vipTimeRangeJson)) {
|
||||
// return sysUserEntity.getUserName();
|
||||
// }
|
||||
// VipTimeRangeBean.VipTimeRangeItemBean vipTimeRangeItemBean = new VipTimeRangeBean.VipTimeRangeItemBean();
|
||||
// vipTimeRangeItemBean.setStartTime(addTime);
|
||||
// vipTimeRangeItemBean.setEndTime(vipTimeRangeJson);
|
||||
// List<VipTimeRangeBean.VipTimeRangeItemBean> list = new ArrayList<>();
|
||||
// list.add(vipTimeRangeItemBean);
|
||||
// VipTimeRangeBean vipTimeRangeBean = new VipTimeRangeBean();
|
||||
// vipTimeRangeBean.setList(list);
|
||||
// String serialize = JsonUtils.<VipTimeRangeBean>serialize(vipTimeRangeBean);
|
||||
// System.out.println("serialize = " + serialize);
|
||||
// sysUserEntity.setVipTimeRangeJson(serialize);
|
||||
// sysUserDao.save(sysUserEntity);
|
||||
// }
|
||||
//
|
||||
//// System.out.println("开始更新用户VIP时间范围");
|
||||
////
|
||||
//// List<SysUserEntity> sysUserEntityList = sysUserDao.findAll();
|
||||
//// for (SysUserEntity sysUserEntity : sysUserEntityList) {
|
||||
//// String addTime = sysUserEntity.getAddTime();
|
||||
//// String vipTimeRangeJson = sysUserEntity.getVipTimeRangeJson();
|
||||
//// if (!DateTimeUtil.isValidDateTime(addTime)) {
|
||||
//// return sysUserEntity.getUserName();
|
||||
//// }
|
||||
//// if (!DateTimeUtil.isValidDateTime(vipTimeRangeJson)) {
|
||||
//// return sysUserEntity.getUserName();
|
||||
//// }
|
||||
//// VipTimeRangeBean.VipTimeRangeItemBean vipTimeRangeItemBean = new VipTimeRangeBean.VipTimeRangeItemBean();
|
||||
//// vipTimeRangeItemBean.setStartTime(addTime);
|
||||
//// vipTimeRangeItemBean.setEndTime(vipTimeRangeJson);
|
||||
//// List<VipTimeRangeBean.VipTimeRangeItemBean> list = new ArrayList<>();
|
||||
//// list.add(vipTimeRangeItemBean);
|
||||
//// VipTimeRangeBean vipTimeRangeBean = new VipTimeRangeBean();
|
||||
//// vipTimeRangeBean.setList(list);
|
||||
//// String serialize = JsonUtils.<VipTimeRangeBean>serialize(vipTimeRangeBean);
|
||||
//// System.out.println("serialize = " + serialize);
|
||||
//// sysUserEntity.setVipTimeRangeJson(serialize);
|
||||
//// sysUserDao.save(sysUserEntity);
|
||||
//// }
|
||||
//
|
||||
//// for (int i = 0; i < 10000; i++) {
|
||||
//// firePointOrdinaryDao.updateProCityCode(i * 310L, (i + 1) * 310L);
|
||||
//// firePointOrdinaryDao.updateProCityName(i * 310L, (i + 1) * 310L);
|
||||
//// System.out.println(i + "/" + 10000);
|
||||
//// }
|
||||
|
||||
// for (int i = 0; i < 10000; i++) {
|
||||
// firePointOrdinaryDao.updateProCityCode(i * 310L, (i + 1) * 310L);
|
||||
// firePointOrdinaryDao.updateProCityName(i * 310L, (i + 1) * 310L);
|
||||
// System.out.println(i + "/" + 10000);
|
||||
// }
|
||||
|
||||
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, "OKKKK", locale);
|
||||
return outputEncapsulationObject(PromptMessageEnum.SUCCESS, "(" + count + "/" + districtList.size() + ")", locale);
|
||||
}
|
||||
|
||||
// private void handleDistrict(List<DistrictBean.DistrictsDTO> districtList) {
|
||||
// if (districtList != null || districtList.size() > 0) {
|
||||
// for (DistrictBean.DistrictsDTO districtItem : districtList) {
|
||||
// DistrictEntity districtEntity = new DistrictEntity();
|
||||
// districtEntity.setProName();
|
||||
// districtEntity.setProCode();
|
||||
// districtEntity.setCityName();
|
||||
// districtEntity.setCityCode();
|
||||
// districtEntity.setCountyName();
|
||||
// districtEntity.setCountyCode();
|
||||
// districtEntity.setStreetName();
|
||||
// districtEntity.setStreetCode();
|
||||
// districtEntity.setCenter();
|
||||
// districtEntity.setLevel();
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
@GetMapping("/autoSync")
|
||||
public String autoSync() {
|
||||
return fireSeasonConfigService.updateFireSeasonConfig();
|
||||
|
18
src/main/java/com/xkrs/dao/DistrictDao.java
Normal file
18
src/main/java/com/xkrs/dao/DistrictDao.java
Normal file
@ -0,0 +1,18 @@
|
||||
package com.xkrs.dao;
|
||||
|
||||
import com.xkrs.model.entity.DistrictEntity;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Component
|
||||
public interface DistrictDao extends JpaRepository<DistrictEntity, Integer>, JpaSpecificationExecutor<DistrictEntity> {
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Modifying(clearAutomatically = true)
|
||||
@Query(value = "UPDATE district SET street_code = ?2 WHERE id = ?1", nativeQuery = true)
|
||||
void updateStreetCode(Integer id, String townCode);
|
||||
}
|
102
src/main/java/com/xkrs/model/bean/DistrictBean.java
Normal file
102
src/main/java/com/xkrs/model/bean/DistrictBean.java
Normal file
@ -0,0 +1,102 @@
|
||||
package com.xkrs.model.bean;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DistrictBean {
|
||||
|
||||
@JsonProperty("status")
|
||||
private String status;
|
||||
@JsonProperty("info")
|
||||
private String info;
|
||||
@JsonProperty("infocode")
|
||||
private String infocode;
|
||||
@JsonProperty("districts")
|
||||
private List<DistrictsDTO> districts;
|
||||
|
||||
public static class DistrictsDTO {
|
||||
@JsonProperty("adcode")
|
||||
private String adcode;
|
||||
@JsonProperty("name")
|
||||
private String name;
|
||||
@JsonProperty("center")
|
||||
private String center;
|
||||
@JsonProperty("level")
|
||||
private String level;
|
||||
@JsonProperty("districts")
|
||||
private List<DistrictsDTO> districts;
|
||||
|
||||
public String getAdcode() {
|
||||
return adcode;
|
||||
}
|
||||
|
||||
public void setAdcode(String adcode) {
|
||||
this.adcode = adcode;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getCenter() {
|
||||
return center;
|
||||
}
|
||||
|
||||
public void setCenter(String center) {
|
||||
this.center = center;
|
||||
}
|
||||
|
||||
public String getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public void setLevel(String level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public List<DistrictsDTO> getDistricts() {
|
||||
return districts;
|
||||
}
|
||||
|
||||
public void setDistricts(List<DistrictsDTO> districts) {
|
||||
this.districts = districts;
|
||||
}
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getInfo() {
|
||||
return info;
|
||||
}
|
||||
|
||||
public void setInfo(String info) {
|
||||
this.info = info;
|
||||
}
|
||||
|
||||
public String getInfocode() {
|
||||
return infocode;
|
||||
}
|
||||
|
||||
public void setInfocode(String infocode) {
|
||||
this.infocode = infocode;
|
||||
}
|
||||
|
||||
public List<DistrictsDTO> getDistricts() {
|
||||
return districts;
|
||||
}
|
||||
|
||||
public void setDistricts(List<DistrictsDTO> districts) {
|
||||
this.districts = districts;
|
||||
}
|
||||
}
|
168
src/main/java/com/xkrs/model/entity/DistrictEntity.java
Normal file
168
src/main/java/com/xkrs/model/entity/DistrictEntity.java
Normal file
@ -0,0 +1,168 @@
|
||||
package com.xkrs.model.entity;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Entity
|
||||
@Table(name = "district")
|
||||
public class DistrictEntity implements Serializable {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "district_seq_gen")
|
||||
@SequenceGenerator(name = "district_seq_gen", sequenceName = "district_id_seq", allocationSize = 1)
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 省名称
|
||||
*/
|
||||
@Column(length = 65, columnDefinition = "varchar(65)")
|
||||
private String proName;
|
||||
|
||||
/**
|
||||
* 省编码
|
||||
*/
|
||||
@Column(length = 65, columnDefinition = "varchar(65)")
|
||||
private String proCode;
|
||||
|
||||
/**
|
||||
* 市名称
|
||||
*/
|
||||
@Column(length = 65, columnDefinition = "varchar(65)")
|
||||
private String cityName;
|
||||
|
||||
/**
|
||||
* 市编码
|
||||
*/
|
||||
@Column(length = 65, columnDefinition = "varchar(65)")
|
||||
private String cityCode;
|
||||
|
||||
/**
|
||||
* 区县名称
|
||||
*/
|
||||
@Column(length = 65, columnDefinition = "varchar(65)")
|
||||
private String countyName;
|
||||
|
||||
/**
|
||||
* 区县编码
|
||||
*/
|
||||
@Column(length = 65, columnDefinition = "varchar(65)")
|
||||
private String countyCode;
|
||||
|
||||
/**
|
||||
* 街道名称
|
||||
*/
|
||||
@Column(length = 65, columnDefinition = "varchar(65)")
|
||||
private String streetName;
|
||||
|
||||
/**
|
||||
* 街道编码
|
||||
*/
|
||||
@Column(length = 65, columnDefinition = "varchar(65)")
|
||||
private String streetCode;
|
||||
|
||||
/**
|
||||
* 中心点
|
||||
*/
|
||||
@Column(length = 65, columnDefinition = "varchar(65)")
|
||||
private String center;
|
||||
|
||||
/**
|
||||
* 等级
|
||||
*/
|
||||
@Column(length = 65, columnDefinition = "varchar(65)")
|
||||
private String level;
|
||||
|
||||
public DistrictEntity() {
|
||||
}
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getProName() {
|
||||
return proName;
|
||||
}
|
||||
|
||||
public void setProName(String proName) {
|
||||
this.proName = proName;
|
||||
}
|
||||
|
||||
public String getProCode() {
|
||||
return proCode;
|
||||
}
|
||||
|
||||
public void setProCode(String proCode) {
|
||||
this.proCode = proCode;
|
||||
}
|
||||
|
||||
public String getCityName() {
|
||||
return cityName;
|
||||
}
|
||||
|
||||
public void setCityName(String cityName) {
|
||||
this.cityName = cityName;
|
||||
}
|
||||
|
||||
public String getCityCode() {
|
||||
return cityCode;
|
||||
}
|
||||
|
||||
public void setCityCode(String cityCode) {
|
||||
this.cityCode = cityCode;
|
||||
}
|
||||
|
||||
public String getCountyName() {
|
||||
return countyName;
|
||||
}
|
||||
|
||||
public void setCountyName(String countyName) {
|
||||
this.countyName = countyName;
|
||||
}
|
||||
|
||||
public String getCountyCode() {
|
||||
return countyCode;
|
||||
}
|
||||
|
||||
public void setCountyCode(String countyCode) {
|
||||
this.countyCode = countyCode;
|
||||
}
|
||||
|
||||
public String getStreetName() {
|
||||
return streetName;
|
||||
}
|
||||
|
||||
public void setStreetName(String streetName) {
|
||||
this.streetName = streetName;
|
||||
}
|
||||
|
||||
public String getStreetCode() {
|
||||
return streetCode;
|
||||
}
|
||||
|
||||
public void setStreetCode(String streetCode) {
|
||||
this.streetCode = streetCode;
|
||||
}
|
||||
|
||||
public String getCenter() {
|
||||
return center;
|
||||
}
|
||||
|
||||
public void setCenter(String center) {
|
||||
this.center = center;
|
||||
}
|
||||
|
||||
public String getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public void setLevel(String level) {
|
||||
this.level = level;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user