Browse Source

补充楼栋导入

feature/user_house_import
zhangyuan 3 years ago
parent
commit
b01022449f
  1. 6
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java
  2. 59
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java
  3. 1
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml
  4. 1
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml

6
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java

@ -24,8 +24,6 @@ import com.elink.esua.epdc.dto.house.SysPopulationSimpleDictDTO;
import com.elink.esua.epdc.dto.house.form.SysPopulationSimpleDictFormDTO;
import com.elink.esua.epdc.dto.house.result.EpdcPopulationErrorResultDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotBuildingResultDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicUnitInfoResultDTO;
import com.elink.esua.epdc.vaccine.constant.ImageConstant;
import com.elink.esua.epdc.vaccine.epidemic.dao.EpidemicUserInfoDao;
import com.elink.esua.epdc.vaccine.epidemic.dto.*;
@ -41,8 +39,6 @@ import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInfoService;
import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInoutRecordService;
import com.elink.esua.epdc.vaccine.feign.VimAdminFeignClient;
import com.elink.esua.epdc.vaccine.house.excel.BaseResidentInformationUpdateExcel;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicUnitOwnerEntity;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicBuildingUnitService;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicPlotBuildingService;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicUnitOwnerService;
@ -731,7 +727,7 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl<EpidemicUserInf
// } else if (numSheet == 1) {
// 检验和新增居住人信息
excelData = ExcelImportUtil.importExcel(f, BaseResidentInformationUpdateExcel.class, importParams);
excelData.forEach(item->item.setSelfIdentityNo(item.getSelfIdentityNo().toUpperCase()));
excelData.forEach(item -> item.setSelfIdentityNo(item.getSelfIdentityNo().toUpperCase()));
excelDataError = ExcelImportUtil.importExcel(f, BaseResidentInformationUpdateExcel.class, importParams);
// 校验数据
errorData = this.checkResidentsExcel(excelData, excelDataError, sysPopulationSimpleDictDTOS, addList, addErrorList);

59
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java

@ -31,8 +31,6 @@ import com.elink.esua.epdc.commons.tools.utils.IdentityNoUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.utils.StreamUtils;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.house.SysPopulationSimpleDictDTO;
import com.elink.esua.epdc.dto.house.result.EpdcPopulationErrorResultDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO;
@ -231,9 +229,9 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
@Override
@Transactional(rollbackFor = Exception.class)
public Result importEpidemicHouse(MultipartFile file, String gridId) {
ParentAndAllDeptDTO parentAndAllDeptDTO = null;
CompleteDeptDTO parentAndAllDeptDTO = null;
if (StringUtils.isNotBlank(gridId)) {
Result<ParentAndAllDeptDTO> parentAndAllDept = adminVimFeignClient.getParentAndAllDept(gridId);
Result<CompleteDeptDTO> parentAndAllDept = adminVimFeignClient.getCompleteDept(parentAndAllDeptDTO.getGridId().toString());
if (!parentAndAllDept.success() || parentAndAllDept.getData() == null) {
return new Result().error("获取归属部门信息失败");
}
@ -260,12 +258,15 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
// 检验和新增居住人信息
excelData = ExcelImportUtil.importExcel(f, BaseResidentInformationUpdateExcel.class, importParams);
excelErrorData = ExcelImportUtil.importExcel(f, BaseResidentInformationUpdateExcel.class, importParams);
List<EpidemicPlotBuildingResultDTO> buildingList = epidemicPlotBuildingService.listAllBuildingInfo();
// 校验数据
errorInfo = this.checkResidentsExcel(excelData, excelErrorData, null, addList, addErrorList);
errorInfo = this.checkResidentsExcel(excelData, excelErrorData, buildingList, addList, addErrorList, gridId);
// 保存居住人信息
if (addList.size() > 0) {
saveResidentList(addList, parentAndAllDeptDTO, populationIdNoAndIdMap);
saveResidentList(addList, buildingList, parentAndAllDeptDTO);
}
// 批量插入错误数据
List<EpidemicUserErrorEntity> insertErrorList = ConvertUtils.sourceToTarget(addErrorList, EpidemicUserErrorEntity.class);
@ -315,9 +316,9 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
**/
private List<EpdcPopulationErrorResultDTO> checkResidentsExcel(List<BaseResidentInformationUpdateExcel> excelData,
List<BaseResidentInformationUpdateExcel> excelErrorData,
List<SysPopulationSimpleDictDTO> sysPopulationSimpleDictDTOS,
List<EpidemicPlotBuildingResultDTO> buildingList,
List<BaseResidentInformationUpdateExcel> addList,
List<BaseResidentInformationUpdateExcel> addErrorList) {
List<BaseResidentInformationUpdateExcel> addErrorList, String gridId) {
// 不匹配信息
List<EpdcPopulationErrorResultDTO> errorLineInfoList = new ArrayList<>();
EpdcPopulationErrorResultDTO errorLineInfoDto;
@ -347,6 +348,11 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
}
if (StringUtils.isBlank(plot) || StringUtils.isBlank(buildingNo) || StringUtils.isBlank(unit) || StringUtils.isBlank(roomNo)) {
errorInfo += "房屋信息不完整";
} else {
Optional<EpidemicPlotBuildingResultDTO> buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(plot) && build.getBuildingName().equals(buildingNo) && build.getGridId().equals(gridId)).findFirst();
if (!buildingOptional.isPresent()) {
errorInfo += "网格内无楼栋信息;";
}
}
//如果有错误信息
@ -375,12 +381,10 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
* @Date 2020/8/31
* @Param [baseResidentInformationExcels]
**/
private void saveResidentList(List<BaseResidentInformationUpdateExcel> excelData, ParentAndAllDeptDTO parentAndAllDeptDTO, Map<String, String> populationIdNoAndIdMap) {
private void saveResidentList(List<BaseResidentInformationUpdateExcel> excelData, List<EpidemicPlotBuildingResultDTO> buildingList, CompleteDeptDTO parentAndAllDeptDTO) {
List<EpidemicUserInfoEntity> addList = new ArrayList<>();
List<EpidemicUserInfoEntity> updateList = new ArrayList<>();
Result<CompleteDeptDTO> allDeptInfo = adminVimFeignClient.getCompleteDept(parentAndAllDeptDTO.getGridId().toString());
CompleteDeptDTO completeDept = allDeptInfo.getData();
List<EpidemicUserInfoEntity> checkList = epidemicUserInfoService.listByIdCards(excelData.stream().map(BaseResidentInformationUpdateExcel::getSelfIdentityNo).collect(Collectors.toList()));
@ -413,14 +417,13 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
}
// 补充人房关系
List<EpidemicPlotBuildingResultDTO> buildingList = epidemicPlotBuildingService.listAllBuildingInfo();
int roomCode = getMaxCode();
List<EpidemicUnitInfoResultDTO> unitList = listAllUnitInfo();
List<EpidemicUnitOwnerEntity> addOwner = new ArrayList<>();
for (EpidemicUserInfoEntity item : addList) {
// 只有信息完整的才进行匹配
if (StringUtils.isNotBlank(item.getPlot()) && StringUtils.isNotBlank(item.getBuildingNo()) && StringUtils.isNotBlank(item.getUnit())) {
Optional<EpidemicUnitInfoResultDTO> unitOptional = unitList.stream().filter(unit -> unit.getPlotName().equals(item.getPlot()) && unit.getBuildingName().equals(item.getBuildingNo()) && unit.getUnit().equals(item.getUnit())).findFirst();
Optional<EpidemicUnitInfoResultDTO> unitOptional = unitList.stream().filter(unit -> unit.getPlotName().equals(item.getPlot()) && unit.getBuildingName().equals(item.getBuildingNo()) && unit.getUnit().equals(item.getUnit()) && unit.getRoomNo().equals(item.getRoomNo()) && unit.getGridId().equals(parentAndAllDeptDTO.getGrid())).findFirst();
if (unitOptional.isPresent()) {
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard());
@ -429,7 +432,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
entity.setMobile(item.getMobile());
addOwner.add(entity);
} else {
Optional<EpidemicPlotBuildingResultDTO> buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(item.getPlot()) && build.getBuildingName().equals(item.getBuildingNo())).findFirst();
Optional<EpidemicPlotBuildingResultDTO> buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(item.getPlot()) && build.getBuildingName().equals(item.getBuildingNo()) && build.getGridId().equals(parentAndAllDeptDTO.getGrid())).findFirst();
if (buildingOptional.isPresent()) {
EpidemicBuildingUnitEntity unitEntity = new EpidemicBuildingUnitEntity();
unitEntity.setBuildingId(buildingOptional.get().getId());
@ -442,12 +445,12 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
roomCode = roomCode + 1;
unitEntity.setRoomMaCode(roomCode);
unitEntity.setRoomCode(getRoomCode(buildingOptional.get().getBuildingMaCode(), roomCode));
unitEntity.setGridId(completeDept.getGridId().toString());
unitEntity.setGridName(completeDept.getGrid());
unitEntity.setCommunityId(completeDept.getCommunityId().toString());
unitEntity.setCommunityName(completeDept.getCommunity());
unitEntity.setStreetId(completeDept.getStreetId().toString());
unitEntity.setStreetName(completeDept.getStreet());
unitEntity.setGridId(parentAndAllDeptDTO.getGridId().toString());
unitEntity.setGridName(parentAndAllDeptDTO.getGrid());
unitEntity.setCommunityId(parentAndAllDeptDTO.getCommunityId().toString());
unitEntity.setCommunityName(parentAndAllDeptDTO.getCommunity());
unitEntity.setStreetId(parentAndAllDeptDTO.getStreetId().toString());
unitEntity.setStreetName(parentAndAllDeptDTO.getStreet());
insert(unitEntity);
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard());
@ -463,7 +466,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
for (EpidemicUserInfoEntity item : updateList) {
// 只有信息完整的才进行匹配
if (StringUtils.isNotBlank(item.getPlot()) && StringUtils.isNotBlank(item.getBuildingNo()) && StringUtils.isNotBlank(item.getUnit())) {
Optional<EpidemicUnitInfoResultDTO> unitOptional = unitList.stream().filter(unit -> unit.getPlotName().equals(item.getPlot()) && unit.getBuildingName().equals(item.getBuildingNo()) && unit.getUnit().equals(item.getUnit())&& unit.getRoomNo().equals(item.getRoomNo())).findFirst();
Optional<EpidemicUnitInfoResultDTO> unitOptional = unitList.stream().filter(unit -> unit.getPlotName().equals(item.getPlot()) && unit.getBuildingName().equals(item.getBuildingNo()) && unit.getUnit().equals(item.getUnit()) && unit.getRoomNo().equals(item.getRoomNo()) && unit.getGridId().equals(parentAndAllDeptDTO.getGrid())).findFirst();
if (unitOptional.isPresent()) {
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard());
@ -473,7 +476,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
epidemicUnitOwnerService.deleteByIdCard(item.getIdCard());
addOwner.add(entity);
} else {
Optional<EpidemicPlotBuildingResultDTO> buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(item.getPlot()) && build.getBuildingName().equals(item.getBuildingNo())).findFirst();
Optional<EpidemicPlotBuildingResultDTO> buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(item.getPlot()) && build.getBuildingName().equals(item.getBuildingNo()) && build.getGridId().equals(parentAndAllDeptDTO.getGrid())).findFirst();
if (buildingOptional.isPresent()) {
EpidemicBuildingUnitEntity unitEntity = new EpidemicBuildingUnitEntity();
unitEntity.setBuildingId(buildingOptional.get().getId());
@ -486,12 +489,12 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
roomCode = roomCode + 1;
unitEntity.setRoomMaCode(roomCode);
unitEntity.setRoomCode(getRoomCode(buildingOptional.get().getBuildingMaCode(), roomCode));
unitEntity.setGridId(completeDept.getGridId().toString());
unitEntity.setGridName(completeDept.getGrid());
unitEntity.setCommunityId(completeDept.getCommunityId().toString());
unitEntity.setCommunityName(completeDept.getCommunity());
unitEntity.setStreetId(completeDept.getStreetId().toString());
unitEntity.setStreetName(completeDept.getStreet());
unitEntity.setGridId(parentAndAllDeptDTO.getGridId().toString());
unitEntity.setGridName(parentAndAllDeptDTO.getGrid());
unitEntity.setCommunityId(parentAndAllDeptDTO.getCommunityId().toString());
unitEntity.setCommunityName(parentAndAllDeptDTO.getCommunity());
unitEntity.setStreetId(parentAndAllDeptDTO.getStreetId().toString());
unitEntity.setStreetName(parentAndAllDeptDTO.getStreet());
insert(unitEntity);
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard());

1
epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml

@ -133,6 +133,7 @@
b.id AS buildingId,
b.BUILDING_NAME,
p.id AS plotId,
u.GRID_ID,
p.PLOT_NAME
FROM
epidemic_building_unit u

1
epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml

@ -177,6 +177,7 @@
b.id,
b.BUILDING_NAME,
p.id AS plotId,
b.GRID_ID,
b.BUILDING_MA_CODE,
p.PLOT_NAME
FROM

Loading…
Cancel
Save