|
|
@ -2,6 +2,9 @@ package com.epmet.service.impl; |
|
|
|
|
|
|
|
import cn.afterturn.easypoi.excel.entity.TemplateExportParams; |
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import com.alibaba.excel.EasyExcel; |
|
|
|
import com.alibaba.excel.ExcelReader; |
|
|
|
import com.alibaba.excel.read.metadata.ReadSheet; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.epmet.commons.tools.constant.NumConstant; |
|
|
@ -14,6 +17,7 @@ import com.epmet.commons.tools.exception.RenException; |
|
|
|
import com.epmet.commons.tools.feign.ResultDataResolver; |
|
|
|
import com.epmet.commons.tools.redis.common.CustomerStaffRedis; |
|
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
|
import com.epmet.commons.tools.utils.Result; |
|
|
|
import com.epmet.dao.IcBuildingDao; |
|
|
|
import com.epmet.dao.IcBuildingUnitDao; |
|
|
|
import com.epmet.dao.IcHouseDao; |
|
|
@ -23,15 +27,20 @@ import com.epmet.dto.IcBuildingDTO; |
|
|
|
import com.epmet.dto.IcBuildingUnitDTO; |
|
|
|
import com.epmet.dto.IcHouseDTO; |
|
|
|
import com.epmet.dto.form.IcHouseFormDTO; |
|
|
|
import com.epmet.dto.form.ImportInfoFormDTO; |
|
|
|
import com.epmet.dto.form.ListIcNeighborHoodFormDTO; |
|
|
|
import com.epmet.dto.result.HouseInfoDTO; |
|
|
|
import com.epmet.dto.result.IcNeighborHoodResultDTO; |
|
|
|
import com.epmet.dto.result.ImportTaskCommonResultDTO; |
|
|
|
import com.epmet.entity.IcHouseEntity; |
|
|
|
import com.epmet.enums.HousePurposeEnums; |
|
|
|
import com.epmet.enums.HouseRentFlagEnums; |
|
|
|
import com.epmet.enums.HouseTypeEnums; |
|
|
|
import com.epmet.excel.IcHouseExcel; |
|
|
|
import com.epmet.feign.EpmetCommonServiceOpenFeignClient; |
|
|
|
import com.epmet.feign.GovOrgOpenFeignClient; |
|
|
|
import com.epmet.model.HouseInfoModel; |
|
|
|
import com.epmet.model.ImportHouseInfoListener; |
|
|
|
import com.epmet.redis.IcHouseRedis; |
|
|
|
import com.epmet.service.HouseService; |
|
|
|
import com.epmet.service.IcBuildingService; |
|
|
@ -42,17 +51,23 @@ import com.epmet.util.ExcelPoiUtils; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.scheduling.annotation.Async; |
|
|
|
import org.springframework.scheduling.annotation.EnableAsync; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
@EnableAsync |
|
|
|
public class HouseServiceImpl implements HouseService, ResultDataResolver { |
|
|
|
|
|
|
|
|
|
|
@ -77,6 +92,11 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { |
|
|
|
private IcHouseRedis icHouseRedis; |
|
|
|
@Autowired |
|
|
|
private AgencyService agencyservice; |
|
|
|
@Autowired |
|
|
|
private IcNeighborHoodService neighborHoodService; |
|
|
|
@Autowired |
|
|
|
private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@ -329,4 +349,29 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { |
|
|
|
}); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
@Async |
|
|
|
@Override |
|
|
|
public Result dispose(MultipartFile file, ImportInfoFormDTO formDTO, Result<ImportTaskCommonResultDTO> importTask) { |
|
|
|
ExcelReader excelReader = null; |
|
|
|
try { |
|
|
|
InputStream inputStream = null; |
|
|
|
try { |
|
|
|
inputStream = file.getInputStream(); |
|
|
|
} catch (IOException e) { |
|
|
|
return new Result<String>().error("读取文件失败"); |
|
|
|
} |
|
|
|
excelReader = EasyExcel.read(inputStream).build(); |
|
|
|
// 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener
|
|
|
|
ReadSheet readSheet = EasyExcel.readSheet(0).head(HouseInfoModel.class) |
|
|
|
.registerReadListener(new ImportHouseInfoListener(formDTO,icBuildingDao,icHouseRedis,neighborHoodService,icHouseService,epmetCommonServiceOpenFeignClient,importTask.getData().getTaskId())) |
|
|
|
.build(); |
|
|
|
excelReader.read(readSheet); |
|
|
|
} finally { |
|
|
|
if (excelReader != null) { |
|
|
|
excelReader.finish(); |
|
|
|
} |
|
|
|
} |
|
|
|
return new Result(); |
|
|
|
} |
|
|
|
} |
|
|
|