|
|
@ -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()); |
|
|
|