feat(每月作价):优化住宅售价计算

1. 成交案例下载和清洗
2. 挂牌案例下载、上传、清洗
3. 编写单元测试
4. 批量导入性能优化
This commit is contained in:
purple
2020-06-19 11:34:17 +08:00
parent 0d14af53ac
commit d7cd4e0b6d
35 changed files with 4378 additions and 820 deletions

View File

@ -0,0 +1,71 @@
package com.uvaluation;
import com.ruoyi.project.data.price.domain.ComputeResidenceSaleBasePrice;
import org.junit.Test;
import java.math.BigDecimal;
import java.util.Date;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class GenerateTableTests {
@Test
public void getELTableColumn() {
Class<?> targetClass = ComputeResidenceSaleBasePrice.class;
Stream.of(targetClass.getDeclaredFields()).forEach(x -> {
if (x.isAnnotationPresent(com.ruoyi.framework.aspectj.lang.annotation.Excel.class)) {
com.ruoyi.framework.aspectj.lang.annotation.Excel excel =
x.getAnnotation(com.ruoyi.framework.aspectj.lang.annotation.Excel.class);
System.out.println(String.format("<el-table-column label=\"%s\" align=\"center\" " +
"prop=\"%s\" />", excel.name(), x.getName()));
}
});
}
@Test
public void generateUserTableType() {
Class<?> targetClass = ComputeResidenceSaleBasePrice.class;
Stream.of(targetClass.getDeclaredFields()).forEach(x -> {
if (x.isAnnotationPresent(com.ruoyi.framework.aspectj.lang.annotation.Excel.class)) {
if ("java.lang.String".equals(x.getType().getName()))
System.out.println(String.format("sourceDataTable.addColumnMetadata(\"%s\", java.sql.Types" +
".NVARCHAR);", x.getName()));
else if ("java.lang.Integer".equals(x.getType().getName()))
System.out.println(String.format("sourceDataTable.addColumnMetadata(\"%s\", java.sql.Types" +
".INT);", x.getName()));
else if ("java.math.BigDecimal".equals(x.getType().getName()))
System.out.println(String.format("sourceDataTable.addColumnMetadata(\"%s\", java.sql.Types" +
".DECIMAL);", x.getName()));
else if ("java.util.Date".equals(x.getType().getName()))
System.out.println(String.format("sourceDataTable.addColumnMetadata(\"%s\", java.sql.Types" +
".DATE);", x.getName()));
}
});
}
@Test
public void generateUserTableScript() {
Class<?> targetClass = ComputeResidenceSaleBasePrice.class;
Stream.of(targetClass.getDeclaredFields()).forEach(x -> {
if (x.isAnnotationPresent(com.ruoyi.framework.aspectj.lang.annotation.Excel.class)) {
System.out.println(x.getName() + ",");
// System.out.println(x.getName() + " nvarchar(200) null ,");
// if ("java.lang.String".equals(x.getType().getName()))
// System.out.println(String.format("sourceDataTable.addColumnMetadata(\"%s\", java.sql.Types" +
// ".NVARCHAR);", x.getName()));
// else if ("java.lang.Integer".equals(x.getType().getName()))
// System.out.println(String.format("sourceDataTable.addColumnMetadata(\"%s\", java.sql.Types" +
// ".INT);", x.getName()));
// else if ("java.math.BigDecimal".equals(x.getType().getName()))
// System.out.println(String.format("sourceDataTable.addColumnMetadata(\"%s\", java.sql.Types" +
// ".DECIMAL);", x.getName()));
// else if ("java.util.Date".equals(x.getType().getName()))
// System.out.println(String.format("sourceDataTable.addColumnMetadata(\"%s\", java.sql.Types" +
// ".DATE);", x.getName()));
}
});
}
}

View File

@ -3,11 +3,18 @@ package com.uvaluation.compute;
import com.ruoyi.RuoYiApplication;
import com.ruoyi.project.data.cases.service.IOriginalResidenceSaleClosingCaseService;
import com.ruoyi.project.data.cases.service.IOriginalResidenceSaleOpeningCaseService;
import com.ruoyi.project.data.price.domain.ComputeResidenceSaleBasePrice;
import com.ruoyi.project.data.price.service.IArtificialResidenceSalePriceService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.LinkedList;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = RuoYiApplication.class)
@ -16,6 +23,8 @@ public class ResidenceSaleBasePriceTests {
@Autowired
private IOriginalResidenceSaleOpeningCaseService originalResidenceOpeningCaseService;
@Autowired
private IArtificialResidenceSalePriceService artificialResidenceSalePriceService;
@Autowired
private IOriginalResidenceSaleClosingCaseService originalResidenceClosingCaseService;
@Test
@ -28,5 +37,14 @@ public class ResidenceSaleBasePriceTests {
originalResidenceClosingCaseService.pullData();
}
@Test
public void testBatchImport() {
List<ComputeResidenceSaleBasePrice> list = new LinkedList<>();
ComputeResidenceSaleBasePrice computeResidenceSaleBasePrice = new ComputeResidenceSaleBasePrice();
computeResidenceSaleBasePrice.setCommunityId("10101");
computeResidenceSaleBasePrice.setBasePriceDraft(new BigDecimal(12222));
list.add(computeResidenceSaleBasePrice);
artificialResidenceSalePriceService.batchImport(202007, list);
}
}