Merge branch 'master' of gitee.com:purplelihe/RuoYi-Vue

 Conflicts:
	ruoyi/src/test/java/com/ruoyi/GenerateTableTests.java
This commit is contained in:
purple
2020-08-04 21:11:46 +08:00
59 changed files with 89109 additions and 160 deletions

View File

@ -0,0 +1,56 @@
package com.ruoyi;
import com.ruoyi.common.utils.LoadUtil;
import com.ruoyi.project.tool.address.CleanUtil;
import com.ruoyi.project.tool.address.model.CleanAddress;
import org.junit.Assert;
import org.junit.Test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.List;
public class CleanUtilTests {
@Test
public void testSortDistrict() {
List<String> textList = LoadUtil.loadList("temp.dict");
textList.sort((x, y) -> y.length() - x.length());
textList.forEach(item -> {
System.out.println(item);
});
}
@Test
public void testClear() {
List<String> textList = LoadUtil.loadList("icbc.dict");
textList.forEach(item -> {
CleanAddress cleanAddress = CleanUtil.clear(item);
System.out.println(cleanAddress);
});
// Assert.assertEquals(cleanAddress.getDistrict(), "");
// Assert.assertEquals(cleanAddress.getDistrict(), "");
// Assert.assertEquals(cleanAddress.getDistrict(), "");
// Assert.assertEquals(cleanAddress.getDistrict(), "");
// Assert.assertEquals(cleanAddress.getDistrict(), "");
// Assert.assertEquals(cleanAddress.getDistrict(), "");
}
@Test
public void testBase64() throws IOException {
Base64.Decoder decoder = Base64.getDecoder();
byte[] buffer = decoder.decode(
"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");
FileOutputStream out = new FileOutputStream("C:\\Work\\uv\\fonts2.woff");
out.write(buffer);
out.close();
}
}

View File

@ -14,6 +14,14 @@ import java.util.stream.Stream;
public class GenerateTableTests {
@Test
public void testLastYearMonth() {
Integer lastYearMonth = DateUtils.getLastYearMonth();
Assert.assertTrue(202007 == lastYearMonth);
}
@Test
public void getELTableColumn() {
Class<?> targetClass = ComputeResidenceSaleBasePrice.class;
@ -226,4 +234,68 @@ public class GenerateTableTests {
}
/**
*
*/
@Test
public void testPrintLoop() {
/**
* 成交案例总数
* 成交套数
* 成交价格
*/
List<String> list = new LinkedList<>();
list.add("425280");
list.add("428770");
list.add("427490");
list.add("428790");
list.add("427780");
list.add("430050");
list.add("425028");
list.add("429710");
list.add("425700");
for (int j = 0; j < list.size(); j++) {
System.out.println("select " + list.get(j) + " as community_id , sum(count) as count,sum(total_price) as " +
"total_price," +
"avg" +
"(avg_price) as avg_price ,sum(total_area) as total_area,avg(avg_area) as avg_area from (");
for (int i = 201901; i <= 201906; i++) {
System.out.println("select COUNT(1) " +
"as count" +
" ,sum" +
"(PriceTotal) as total_price ,avg" +
"(PriceTotal) as avg_price," +
"sum(Area) as total_area ,avg" +
"(Area) as avg_area from " +
"ODS_HOUSINGCASE_DEAL_" + i + " where ProjectID=" + list.get(j));
if (i != 201906)
System.out.println("union");
}
System.out.println(") as t;\n");
}
}
@Test
public void printUUID() {
System.out.println(UUID.randomUUID().toString().replace("-", ""));
}
@Test
public void appendDouHao() {
List<String> list = LoadUtil.loadList("temp.dict");
list.forEach(x -> {
int index = x.indexOf("大道");
if(-1 != index) {
System.out.println(x.substring(0,index+2));
}
});
}
}

View File

@ -27,9 +27,9 @@ public class DownloadOriginalResidenceSaleClosingCaseServiceImplTests {
@Test
public void testLoopDownload() {
// , 201912
Arrays.asList(201901, 201902, 201903, 201904, 201905, 201906, 201907, 201908, 201909, 201910).parallelStream().forEach(i -> {
downloadOriginalResidenceSaleClosingCaseService.download(i + 2, i);
});
// Arrays.asList(201901, 201902, 201903, 201904, 201905, 201906, 201907, 201908, 201909, 201910).parallelStream().forEach(i -> {
// downloadOriginalResidenceSaleClosingCaseService.download(i + 2, i);
// });
// downloadOriginalResidenceSaleClosingCaseService.download(202001, 201911);
// downloadOriginalResidenceSaleClosingCaseService.download(202002, 201912);
// downloadOriginalResidenceSaleClosingCaseService.download(202003, 202001);

View File

@ -12,7 +12,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = RuoYiApplication.class)
@ActiveProfiles("uat")
@ActiveProfiles("dev")
public class ResidenceRentBasePriceTests {
@Autowired

View File

@ -2,10 +2,15 @@ package com.ruoyi.routine;
import com.alibaba.fastjson.JSON;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.microsoft.sqlserver.jdbc.Geometry;
import com.microsoft.sqlserver.jdbc.SQLServerException;
import com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure;
import com.microsoft.sqlserver.jdbc.spatialdatatypes.Point;
import com.ruoyi.RuoYiApplication;
import com.ruoyi.project.data.basis.domain.GDConvertCordinateResult;
import com.ruoyi.project.data.basis.domain.UvCommunityGeo;
import com.ruoyi.project.data.basis.domain.*;
import com.ruoyi.project.data.basis.mapper.UvCommunityGeoMapper;
import com.sun.org.apache.regexp.internal.RE;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
@ -24,8 +29,10 @@ import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = RuoYiApplication.class)
@ -80,4 +87,137 @@ public class GeoTests {
});
}
private String convertGaoDe2BaiDu(List<Figure> figureList, List<Point> pointList) {
OkHttpClient client = new OkHttpClient();
String baseUrl = "http://api.map.baidu.com/geoconv/v1/?ak=GNPGIGijImWZHguFphH6GcsPmAYrEfMX&from=3&to" +
"=5&coords=";
StringBuilder baiDuGeoSb = new StringBuilder("POLYGON (");
List<String> polygonPointList = new LinkedList<>();
for (int i = 0; i < figureList.size(); i++) {
List<Point> partialPointList = null;
List<BaiDuPoint> allBaiDuPointList = new LinkedList<>();
if (i == figureList.size() - 1) {
partialPointList = pointList.stream()
.skip(figureList.get(i).getPointOffset())
.collect(Collectors.toList());
} else {
partialPointList = pointList.stream()
.skip(figureList.get(i).getPointOffset())
.limit(figureList.get(i + 1).getPointOffset() - figureList.get(i).getPointOffset())
.collect(Collectors.toList());
}
int groupCount = partialPointList.size() / 100;
if (0 != partialPointList.size() % 100) {
groupCount += 1;
}
for (int j = 0; j < groupCount; j++) {
StringBuilder sb = new StringBuilder(baseUrl);
sb.append(String.join(";",
partialPointList.stream().skip(j * 100).limit(100).map(p -> p.getX() + "," + p.getY()).collect(Collectors.toList())));
Request request = new Request.Builder()
.url(sb.toString())
.build();
System.out.println(request.url().toString());
try (Response response = client.newCall(request).execute()) {
String content = response.body().string();
BaiDuMapResponse priceApiResult = JSON.parseObject(content,
BaiDuMapResponse.class);
if (Objects.equals(0, priceApiResult.getStatus())) {
List<BaiDuPoint> baiDuPointList = priceApiResult.getResult();
allBaiDuPointList.addAll(baiDuPointList);
}
} catch (IOException e) {
e.printStackTrace();
}
}
String partialWKT = String.join(", ",
allBaiDuPointList.stream().map(BaiDuPoint::toString).collect(Collectors.toList()));
System.out.println(partialWKT);
polygonPointList.add(partialWKT);
}
baiDuGeoSb.append(String.join(", ",
polygonPointList.stream().map(s -> "(" + s + ")").collect(Collectors.toList())));
baiDuGeoSb.append(")");
return baiDuGeoSb.toString();
}
/**
* 高德坐标转百度
*/
@Test
@DS("teemlink")
public void convertGeoGD2Baidu() {
String tableName = "上海基准地价2010办公";
List<UvGeo> uvGeoList = uvCommunityGeoMapper.getSomeGeo(tableName);
//
uvGeoList.parallelStream().forEach(gaoDeGeo -> {
try {
Geometry geometry = Geometry.parse(gaoDeGeo.getGeoText());
List<Figure> figureList = geometry.getFigureList();
List<Point> pointList = geometry.getPointList();
String baiDuGeoWKT = convertGaoDe2BaiDu(figureList, pointList);
uvCommunityGeoMapper.updateSomeGeo(tableName, baiDuGeoWKT, gaoDeGeo.getId());
} catch (SQLServerException e) {
e.printStackTrace();
}
// StringBuilder baiDuGeoText = new StringBuilder("POLYGON ((");
// String geoText = gaoDeGeo.getGeoText().replace("POLYGON ((", "").replace("))", "");
// String[] segmentList = geoText.split(",");
//
//
// List<String> polygonPointList = new LinkedList<>();
// for (String item : segmentList) {
// String[] point = item.trim().split(" ");
// polygonPointList.add(String.format("%s,%s", point[0], point[1]));
// }
//
// // 每100个点一组
// int groupCount = polygonPointList.size() / 100;
// if (0 != polygonPointList.size() % 100) {
// groupCount += 1;
// }
// for (int i = 0; i < groupCount; i++) {
// StringBuilder sb = new StringBuilder(baseUrl);
// sb.append(String.join(";",
// polygonPointList.stream().skip(i * 100).limit(100).collect(Collectors.toList())));
// Request request = new Request.Builder()
// .url(sb.toString())
// .build();
// try (Response response = client.newCall(request).execute()) {
// String content = response.body().string();
// BaiDuMapResponse priceApiResult = JSON.parseObject(content,
// BaiDuMapResponse.class);
// if (Objects.equals(0, priceApiResult.getStatus())) {
// List<BaiDuPoint> baiDuPointList = priceApiResult.getResult();
// allBaiDuPointList.addAll(baiDuPointList);
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
//
// try {
// String rawBaiDuPointText = String.join(",",
// allBaiDuPointList.stream().map(BaiDuPoint::toString).collect(Collectors.toList()));
//
// baiDuGeoText.append(rawBaiDuPointText);
// baiDuGeoText.append("))");
// uvCommunityGeoMapper.updateSomeGeo(tableName, baiDuGeoText.toString(), gaoDeGeo.getId());
// } catch (Exception e) {
// e.printStackTrace();
// }
});
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,70 @@
宝山
宝山区
长宁
长宁区
崇明
崇明区
奉贤
奉贤区
虹口
虹口区
黄浦
黄浦区
嘉定
嘉定区
金山
金山区
静安
静安区
卢湾
闵行
闵行区
普陀
普陀区
浦东
浦东南汇
浦东新区
青浦
青浦区
上海市宝山
上海市宝山区
上海市长宁
上海市长宁区
上海市崇明
上海市崇明区
上海市奉贤
上海市奉贤区
上海市虹口
上海市虹口区
上海市黄浦
上海市黄浦区
上海市嘉定
上海市嘉定区
上海市金山
上海市金山区
上海市静安
上海市静安区
上海市卢湾区
上海市闵行
上海市闵行区
上海市南汇区
上海市普陀
上海市普陀区
上海市浦东
上海市浦东新区
上海市青浦
上海市青浦区
上海市松江
上海市松江区
上海市徐汇
上海市徐汇区
上海市杨浦
上海市杨浦区
上海市闸北区
松江
松江区
徐汇
徐汇区
杨浦
杨浦区
闸北