|
@@ -5,7 +5,6 @@ import com.leeroa.base.attachment.utils.AttachmentHolder;
|
|
|
import com.leeroa.base.attachment.vo.AttachmentVo;
|
|
|
import com.leeroa.base.log.LogHelper;
|
|
|
import com.leeroa.base.parameter.service.ParameterContainer;
|
|
|
-import com.leeroa.dydb.base.domain.Location;
|
|
|
import com.leeroa.dydb.datasource.HouseCache;
|
|
|
import com.leeroa.dydb.datasource.lianjia.bo.DataLianjiaBo;
|
|
|
import com.leeroa.dydb.datasource.lianjia.bo.LianjiaParams;
|
|
@@ -13,10 +12,7 @@ import com.leeroa.dydb.datasource.lianjia.cache.LianjiaCache;
|
|
|
import com.leeroa.dydb.datasource.lianjia.dao.DataLianjiaCodeDao;
|
|
|
import com.leeroa.dydb.datasource.lianjia.dao.DataLianjiaDao;
|
|
|
import com.leeroa.dydb.datasource.lianjia.domain.DataLianjia;
|
|
|
-import com.leeroa.dydb.datasource.lianjia.domain.DataLianjiaCode;
|
|
|
-import com.leeroa.dydb.datasource.lianjia.domain.DataLianjiaUp;
|
|
|
-import com.leeroa.dydb.datasource.lianjia.dto.DataLianjiaDTO;
|
|
|
-import com.leeroa.dydb.datasource.lianjia.service.DataLianjiaCodeService;
|
|
|
+import com.leeroa.dydb.datasource.lianjia.dto.DataLianjiaImportDTO;
|
|
|
import com.leeroa.dydb.datasource.lianjia.service.DataLianjiaService;
|
|
|
import com.leeroa.dydb.datasource.lianjia.vo.DataLianjiaVo;
|
|
|
import com.leeroa.dydb.datasource.paimai.utils.LianjiaResponse;
|
|
@@ -63,7 +59,6 @@ import javax.annotation.Resource;
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author Michael
|
|
@@ -152,7 +147,7 @@ public class DataLianjiaServiceImpl implements DataLianjiaService, BeanWrapCallb
|
|
|
logger.info("初始化导入引擎....");
|
|
|
|
|
|
// 初始化引擎
|
|
|
- Configuration configuration = new AnnotationCfgAdapter(DataLianjiaDTO.class).parse();
|
|
|
+ Configuration configuration = new AnnotationCfgAdapter(DataLianjiaImportDTO.class).parse();
|
|
|
configuration.setStartRow(1);
|
|
|
|
|
|
for (String id : attachmentIds) {
|
|
@@ -168,16 +163,27 @@ public class DataLianjiaServiceImpl implements DataLianjiaService, BeanWrapCallb
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
configuration.setPath(newFilePath);
|
|
|
- configuration.setHandler(new Handler<DataLianjiaDTO>() {
|
|
|
+ configuration.setHandler(new Handler<DataLianjiaImportDTO>() {
|
|
|
@Override
|
|
|
- public void execute(DataLianjiaDTO dto) {
|
|
|
+ public void execute(DataLianjiaImportDTO dto) {
|
|
|
Context context = RuntimeContext.get();
|
|
|
DataLianjia dataLianjia = new DataLianjia();
|
|
|
BeanUtils.copyProperties(dto, dataLianjia);
|
|
|
if (BeanCopyUtils.isEmpty(dataLianjia)) {
|
|
|
return;
|
|
|
}
|
|
|
- session.save(dataLianjia);
|
|
|
+ // 根据小区/楼盘名称、成交日期与成交总价查询记录,用于判断是否有已存在的数据
|
|
|
+ Criteria criteria = session.createCriteria(DataLianjia.class)
|
|
|
+ .add(Restrictions.eq("houses", dataLianjia.getHouses()))
|
|
|
+ .add(Restrictions.eq("dealDate", dataLianjia.getDealDate()))
|
|
|
+ .add(Restrictions.eq("dealMoney", dataLianjia.getDealMoney()));
|
|
|
+ // 判断是否存在重复数据
|
|
|
+ boolean exists = criteria.uniqueResult() != null;
|
|
|
+ if (!exists) { // 未重复新增
|
|
|
+ session.save(dataLianjia);
|
|
|
+ } else { // 已重复数据跳过不新增
|
|
|
+ logger.info(String.format("重复的成交数据!小区/楼盘名称:%s-成交日期:%s-成交总价:%f万,该条数据已跳过!",dataLianjia.getHouses(),dataLianjia.getDealDate(),dataLianjia.getDealMoney()));
|
|
|
+ }
|
|
|
if (context.getRowIndex() % 10 == 0) {
|
|
|
session.flush();
|
|
|
session.clear();
|