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.form.SysPopulationSimpleDictFormDTO;
import com.elink.esua.epdc.dto.house.result.EpdcPopulationErrorResultDTO; import com.elink.esua.epdc.dto.house.result.EpdcPopulationErrorResultDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO; 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.constant.ImageConstant;
import com.elink.esua.epdc.vaccine.epidemic.dao.EpidemicUserInfoDao; import com.elink.esua.epdc.vaccine.epidemic.dao.EpidemicUserInfoDao;
import com.elink.esua.epdc.vaccine.epidemic.dto.*; 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.epidemic.service.EpidemicUserInoutRecordService;
import com.elink.esua.epdc.vaccine.feign.VimAdminFeignClient; import com.elink.esua.epdc.vaccine.feign.VimAdminFeignClient;
import com.elink.esua.epdc.vaccine.house.excel.BaseResidentInformationUpdateExcel; 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.EpidemicBuildingUnitService;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicPlotBuildingService; import com.elink.esua.epdc.vaccine.personroom.service.EpidemicPlotBuildingService;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicUnitOwnerService; import com.elink.esua.epdc.vaccine.personroom.service.EpidemicUnitOwnerService;
@ -731,7 +727,7 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl<EpidemicUserInf
// } else if (numSheet == 1) { // } else if (numSheet == 1) {
// 检验和新增居住人信息 // 检验和新增居住人信息
excelData = ExcelImportUtil.importExcel(f, BaseResidentInformationUpdateExcel.class, importParams); 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); excelDataError = ExcelImportUtil.importExcel(f, BaseResidentInformationUpdateExcel.class, importParams);
// 校验数据 // 校验数据
errorData = this.checkResidentsExcel(excelData, excelDataError, sysPopulationSimpleDictDTOS, addList, addErrorList); 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.Result;
import com.elink.esua.epdc.commons.tools.utils.StreamUtils; import com.elink.esua.epdc.commons.tools.utils.StreamUtils;
import com.elink.esua.epdc.dto.CompleteDeptDTO; 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.house.result.EpdcPopulationErrorResultDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO; import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO; import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO;
@ -231,9 +229,9 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result importEpidemicHouse(MultipartFile file, String gridId) { public Result importEpidemicHouse(MultipartFile file, String gridId) {
ParentAndAllDeptDTO parentAndAllDeptDTO = null; CompleteDeptDTO parentAndAllDeptDTO = null;
if (StringUtils.isNotBlank(gridId)) { if (StringUtils.isNotBlank(gridId)) {
Result<ParentAndAllDeptDTO> parentAndAllDept = adminVimFeignClient.getParentAndAllDept(gridId); Result<CompleteDeptDTO> parentAndAllDept = adminVimFeignClient.getCompleteDept(parentAndAllDeptDTO.getGridId().toString());
if (!parentAndAllDept.success() || parentAndAllDept.getData() == null) { if (!parentAndAllDept.success() || parentAndAllDept.getData() == null) {
return new Result().error("获取归属部门信息失败"); return new Result().error("获取归属部门信息失败");
} }
@ -260,12 +258,15 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
// 检验和新增居住人信息 // 检验和新增居住人信息
excelData = ExcelImportUtil.importExcel(f, BaseResidentInformationUpdateExcel.class, importParams); excelData = ExcelImportUtil.importExcel(f, BaseResidentInformationUpdateExcel.class, importParams);
excelErrorData = 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) { if (addList.size() > 0) {
saveResidentList(addList, parentAndAllDeptDTO, populationIdNoAndIdMap); saveResidentList(addList, buildingList, parentAndAllDeptDTO);
} }
// 批量插入错误数据 // 批量插入错误数据
List<EpidemicUserErrorEntity> insertErrorList = ConvertUtils.sourceToTarget(addErrorList, EpidemicUserErrorEntity.class); 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, private List<EpdcPopulationErrorResultDTO> checkResidentsExcel(List<BaseResidentInformationUpdateExcel> excelData,
List<BaseResidentInformationUpdateExcel> excelErrorData, List<BaseResidentInformationUpdateExcel> excelErrorData,
List<SysPopulationSimpleDictDTO> sysPopulationSimpleDictDTOS, List<EpidemicPlotBuildingResultDTO> buildingList,
List<BaseResidentInformationUpdateExcel> addList, List<BaseResidentInformationUpdateExcel> addList,
List<BaseResidentInformationUpdateExcel> addErrorList) { List<BaseResidentInformationUpdateExcel> addErrorList, String gridId) {
// 不匹配信息 // 不匹配信息
List<EpdcPopulationErrorResultDTO> errorLineInfoList = new ArrayList<>(); List<EpdcPopulationErrorResultDTO> errorLineInfoList = new ArrayList<>();
EpdcPopulationErrorResultDTO errorLineInfoDto; 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)) { if (StringUtils.isBlank(plot) || StringUtils.isBlank(buildingNo) || StringUtils.isBlank(unit) || StringUtils.isBlank(roomNo)) {
errorInfo += "房屋信息不完整"; 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 * @Date 2020/8/31
* @Param [baseResidentInformationExcels] * @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> addList = new ArrayList<>();
List<EpidemicUserInfoEntity> updateList = 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())); 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(); int roomCode = getMaxCode();
List<EpidemicUnitInfoResultDTO> unitList = listAllUnitInfo(); List<EpidemicUnitInfoResultDTO> unitList = listAllUnitInfo();
List<EpidemicUnitOwnerEntity> addOwner = new ArrayList<>(); List<EpidemicUnitOwnerEntity> addOwner = new ArrayList<>();
for (EpidemicUserInfoEntity item : addList) { for (EpidemicUserInfoEntity item : addList) {
// 只有信息完整的才进行匹配 // 只有信息完整的才进行匹配
if (StringUtils.isNotBlank(item.getPlot()) && StringUtils.isNotBlank(item.getBuildingNo()) && StringUtils.isNotBlank(item.getUnit())) { 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()) { if (unitOptional.isPresent()) {
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity(); EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard()); entity.setIdCard(item.getIdCard());
@ -429,7 +432,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
entity.setMobile(item.getMobile()); entity.setMobile(item.getMobile());
addOwner.add(entity); addOwner.add(entity);
} else { } 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()) { if (buildingOptional.isPresent()) {
EpidemicBuildingUnitEntity unitEntity = new EpidemicBuildingUnitEntity(); EpidemicBuildingUnitEntity unitEntity = new EpidemicBuildingUnitEntity();
unitEntity.setBuildingId(buildingOptional.get().getId()); unitEntity.setBuildingId(buildingOptional.get().getId());
@ -442,12 +445,12 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
roomCode = roomCode + 1; roomCode = roomCode + 1;
unitEntity.setRoomMaCode(roomCode); unitEntity.setRoomMaCode(roomCode);
unitEntity.setRoomCode(getRoomCode(buildingOptional.get().getBuildingMaCode(), roomCode)); unitEntity.setRoomCode(getRoomCode(buildingOptional.get().getBuildingMaCode(), roomCode));
unitEntity.setGridId(completeDept.getGridId().toString()); unitEntity.setGridId(parentAndAllDeptDTO.getGridId().toString());
unitEntity.setGridName(completeDept.getGrid()); unitEntity.setGridName(parentAndAllDeptDTO.getGrid());
unitEntity.setCommunityId(completeDept.getCommunityId().toString()); unitEntity.setCommunityId(parentAndAllDeptDTO.getCommunityId().toString());
unitEntity.setCommunityName(completeDept.getCommunity()); unitEntity.setCommunityName(parentAndAllDeptDTO.getCommunity());
unitEntity.setStreetId(completeDept.getStreetId().toString()); unitEntity.setStreetId(parentAndAllDeptDTO.getStreetId().toString());
unitEntity.setStreetName(completeDept.getStreet()); unitEntity.setStreetName(parentAndAllDeptDTO.getStreet());
insert(unitEntity); insert(unitEntity);
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity(); EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard()); entity.setIdCard(item.getIdCard());
@ -463,7 +466,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
for (EpidemicUserInfoEntity item : updateList) { for (EpidemicUserInfoEntity item : updateList) {
// 只有信息完整的才进行匹配 // 只有信息完整的才进行匹配
if (StringUtils.isNotBlank(item.getPlot()) && StringUtils.isNotBlank(item.getBuildingNo()) && StringUtils.isNotBlank(item.getUnit())) { 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()) { if (unitOptional.isPresent()) {
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity(); EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard()); entity.setIdCard(item.getIdCard());
@ -473,7 +476,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
epidemicUnitOwnerService.deleteByIdCard(item.getIdCard()); epidemicUnitOwnerService.deleteByIdCard(item.getIdCard());
addOwner.add(entity); addOwner.add(entity);
} else { } 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()) { if (buildingOptional.isPresent()) {
EpidemicBuildingUnitEntity unitEntity = new EpidemicBuildingUnitEntity(); EpidemicBuildingUnitEntity unitEntity = new EpidemicBuildingUnitEntity();
unitEntity.setBuildingId(buildingOptional.get().getId()); unitEntity.setBuildingId(buildingOptional.get().getId());
@ -486,12 +489,12 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
roomCode = roomCode + 1; roomCode = roomCode + 1;
unitEntity.setRoomMaCode(roomCode); unitEntity.setRoomMaCode(roomCode);
unitEntity.setRoomCode(getRoomCode(buildingOptional.get().getBuildingMaCode(), roomCode)); unitEntity.setRoomCode(getRoomCode(buildingOptional.get().getBuildingMaCode(), roomCode));
unitEntity.setGridId(completeDept.getGridId().toString()); unitEntity.setGridId(parentAndAllDeptDTO.getGridId().toString());
unitEntity.setGridName(completeDept.getGrid()); unitEntity.setGridName(parentAndAllDeptDTO.getGrid());
unitEntity.setCommunityId(completeDept.getCommunityId().toString()); unitEntity.setCommunityId(parentAndAllDeptDTO.getCommunityId().toString());
unitEntity.setCommunityName(completeDept.getCommunity()); unitEntity.setCommunityName(parentAndAllDeptDTO.getCommunity());
unitEntity.setStreetId(completeDept.getStreetId().toString()); unitEntity.setStreetId(parentAndAllDeptDTO.getStreetId().toString());
unitEntity.setStreetName(completeDept.getStreet()); unitEntity.setStreetName(parentAndAllDeptDTO.getStreet());
insert(unitEntity); insert(unitEntity);
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity(); EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard()); 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.id AS buildingId,
b.BUILDING_NAME, b.BUILDING_NAME,
p.id AS plotId, p.id AS plotId,
u.GRID_ID,
p.PLOT_NAME p.PLOT_NAME
FROM FROM
epidemic_building_unit u epidemic_building_unit u

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

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

Loading…
Cancel
Save