|
|
@ -46,11 +46,13 @@ import com.elink.esua.epdc.vaccine.house.excel.BaseResidentInformationUpdateExce |
|
|
|
import com.elink.esua.epdc.vaccine.personroom.dao.EpidemicBuildingUnitDao; |
|
|
|
import com.elink.esua.epdc.vaccine.personroom.dao.EpidemicUnitOwnerDao; |
|
|
|
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity; |
|
|
|
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotBuildingEntity; |
|
|
|
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicUnitOwnerEntity; |
|
|
|
import com.elink.esua.epdc.vaccine.personroom.redis.EpidemicBuildingUnitRedis; |
|
|
|
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; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
@ -67,6 +69,7 @@ import java.util.stream.Collectors; |
|
|
|
* @author zhy qu@elink-cn.com |
|
|
|
* @since v1.0.0 2022-02-15 |
|
|
|
*/ |
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBuildingUnitDao, EpidemicBuildingUnitEntity, EpidemicBuildingUnitDTO> implements EpidemicBuildingUnitService { |
|
|
|
|
|
|
@ -112,6 +115,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui |
|
|
|
String type = (String) params.get("roomType"); |
|
|
|
String owner = (String) params.get("ownerName"); |
|
|
|
String mobile = (String) params.get("mobile"); |
|
|
|
String roomMaCode = (String) params.get("roomMaCode"); |
|
|
|
|
|
|
|
QueryWrapper<EpidemicBuildingUnitEntity> wrapper = new QueryWrapper<>(); |
|
|
|
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); |
|
|
@ -119,6 +123,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui |
|
|
|
wrapper.eq(StringUtils.isNotBlank(type), "ROOM_TYPE", type); |
|
|
|
wrapper.eq(StringUtils.isNotBlank(owner), "OWNER_NAME", owner); |
|
|
|
wrapper.eq(StringUtils.isNotBlank(mobile), "MOBILE", mobile); |
|
|
|
wrapper.eq(StringUtils.isNotBlank(roomMaCode), "ROOM_MA_CODE", roomMaCode); |
|
|
|
|
|
|
|
return wrapper; |
|
|
|
} |
|
|
@ -193,8 +198,8 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<EpidemicUnitInfoResultDTO> listAllUnitInfo() { |
|
|
|
return baseDao.listAllUnitInfo(); |
|
|
|
public List<EpidemicUnitInfoResultDTO> listAllUnitInfo(String gridId) { |
|
|
|
return baseDao.listAllUnitInfo(gridId); |
|
|
|
} |
|
|
|
|
|
|
|
private void checkData(EpidemicBuildingUnitDTO dto) { |
|
|
@ -235,7 +240,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui |
|
|
|
public Result importEpidemicHouse(MultipartFile file, String gridId) { |
|
|
|
CompleteDeptDTO parentAndAllDeptDTO = null; |
|
|
|
if (StringUtils.isNotBlank(gridId)) { |
|
|
|
Result<CompleteDeptDTO> parentAndAllDept = adminVimFeignClient.getCompleteDept(parentAndAllDeptDTO.getGridId().toString()); |
|
|
|
Result<CompleteDeptDTO> parentAndAllDept = adminVimFeignClient.getCompleteDept(gridId); |
|
|
|
if (!parentAndAllDept.success() || parentAndAllDept.getData() == null) { |
|
|
|
return new Result().error("获取归属部门信息失败"); |
|
|
|
} |
|
|
@ -245,8 +250,6 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui |
|
|
|
File f = StreamUtils.conversionFile(file); |
|
|
|
ImportParams importParams = new ImportParams(); |
|
|
|
try { |
|
|
|
//户主身份证和插入的ID,便于保存居住人信息时匹配户主信息
|
|
|
|
Map<String, String> populationIdNoAndIdMap = new HashMap<>(); |
|
|
|
//居民导入数据
|
|
|
|
List<BaseResidentInformationUpdateExcel> excelData; |
|
|
|
// 处理错误数据使用
|
|
|
@ -263,10 +266,10 @@ 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(); |
|
|
|
List<EpidemicPlotBuildingResultDTO> buildingList = epidemicPlotBuildingService.listAllBuildingInfo(gridId); |
|
|
|
|
|
|
|
// 校验数据
|
|
|
|
errorInfo = this.checkResidentsExcel(excelData, excelErrorData, buildingList, addList, addErrorList, gridId); |
|
|
|
errorInfo = this.checkResidentsExcel(excelData, excelErrorData, buildingList, addList, addErrorList); |
|
|
|
|
|
|
|
// 保存居住人信息
|
|
|
|
if (addList.size() > 0) { |
|
|
@ -301,6 +304,19 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui |
|
|
|
return maxCode; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateMaCode() { |
|
|
|
Map<String, Object> params = new HashMap<>(4); |
|
|
|
params.put("roomMaCode", "0"); |
|
|
|
List<EpidemicBuildingUnitEntity> list = baseDao.selectList(getWrapper(params)); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
for (int i = 0; i < list.size(); i++) { |
|
|
|
list.get(i).setRoomMaCode(i + 1); |
|
|
|
} |
|
|
|
updateBatchById(list); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void saveOrUpdateOwners(List<EpidemicUnitOwnerDTO> owners, Long unitId) { |
|
|
|
List<EpidemicUnitOwnerDTO> dtoList = owners.stream().filter(item -> StringUtils.isNotBlank(item.getIdCard())).collect(Collectors.toList()); |
|
|
|
List<EpidemicUnitOwnerEntity> list = ConvertUtils.sourceToTarget(dtoList, EpidemicUnitOwnerEntity.class); |
|
|
@ -322,7 +338,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui |
|
|
|
List<BaseResidentInformationUpdateExcel> excelErrorData, |
|
|
|
List<EpidemicPlotBuildingResultDTO> buildingList, |
|
|
|
List<BaseResidentInformationUpdateExcel> addList, |
|
|
|
List<BaseResidentInformationUpdateExcel> addErrorList, String gridId) { |
|
|
|
List<BaseResidentInformationUpdateExcel> addErrorList) { |
|
|
|
// 不匹配信息
|
|
|
|
List<EpdcPopulationErrorResultDTO> errorLineInfoList = new ArrayList<>(); |
|
|
|
EpdcPopulationErrorResultDTO errorLineInfoDto; |
|
|
@ -353,7 +369,7 @@ 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(); |
|
|
|
Optional<EpidemicPlotBuildingResultDTO> buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(plot) && build.getBuildingName().equals(buildingNo)).findFirst(); |
|
|
|
if (!buildingOptional.isPresent()) { |
|
|
|
errorInfo += "网格内无楼栋信息;"; |
|
|
|
} |
|
|
@ -419,50 +435,54 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui |
|
|
|
if (!updateList.isEmpty()) { |
|
|
|
epidemicUserInfoService.updateBatchById(updateList); |
|
|
|
} |
|
|
|
|
|
|
|
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>A"); |
|
|
|
// 补充人房关系
|
|
|
|
int roomCode = getMaxCode(); |
|
|
|
List<EpidemicUnitInfoResultDTO> unitList = listAllUnitInfo(); |
|
|
|
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>B" + roomCode); |
|
|
|
List<EpidemicUnitInfoResultDTO> unitList = listAllUnitInfo(parentAndAllDeptDTO.getGrid()); |
|
|
|
List<EpidemicUnitOwnerEntity> addOwner = new ArrayList<>(); |
|
|
|
for (EpidemicUserInfoEntity item : addList) { |
|
|
|
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>C"); |
|
|
|
// 只有信息完整的才进行匹配
|
|
|
|
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()) && unit.getGridId().equals(parentAndAllDeptDTO.getGrid())).findFirst(); |
|
|
|
if (unitOptional.isPresent()) { |
|
|
|
|
|
|
|
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(); |
|
|
|
if (unitOptional.isPresent()) { |
|
|
|
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>D"); |
|
|
|
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity(); |
|
|
|
entity.setIdCard(item.getIdCard()); |
|
|
|
entity.setUnitId(unitOptional.get().getUnitId()); |
|
|
|
entity.setOwnerName(item.getUserName()); |
|
|
|
entity.setMobile(item.getMobile()); |
|
|
|
addOwner.add(entity); |
|
|
|
} else { |
|
|
|
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>E" + buildingList.toString()); |
|
|
|
Optional<EpidemicPlotBuildingResultDTO> buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(item.getPlot()) && build.getBuildingName().equals(item.getBuildingNo())).findFirst(); |
|
|
|
if (buildingOptional.isPresent()) { |
|
|
|
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>F" + buildingOptional.get()); |
|
|
|
EpidemicBuildingUnitEntity unitEntity = new EpidemicBuildingUnitEntity(); |
|
|
|
unitEntity.setBuildingId(buildingOptional.get().getId()); |
|
|
|
unitEntity.setUnit(item.getUnit().trim().toUpperCase()); |
|
|
|
unitEntity.setRoomNo(item.getRoomNo().trim().toUpperCase()); |
|
|
|
unitEntity.setIdCard(item.getIdCard()); |
|
|
|
unitEntity.setOwnerName(item.getUserName()); |
|
|
|
unitEntity.setMobile(item.getMobile()); |
|
|
|
unitEntity.setRoomType(NumConstant.ONE_STR); |
|
|
|
roomCode = roomCode + 1; |
|
|
|
unitEntity.setRoomMaCode(roomCode); |
|
|
|
unitEntity.setRoomCode(getRoomCode(buildingOptional.get().getBuildingMaCode(), roomCode)); |
|
|
|
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()); |
|
|
|
entity.setUnitId(unitOptional.get().getUnitId()); |
|
|
|
entity.setUnitId(unitEntity.getId()); |
|
|
|
entity.setOwnerName(item.getUserName()); |
|
|
|
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()) && build.getGridId().equals(parentAndAllDeptDTO.getGrid())).findFirst(); |
|
|
|
if (buildingOptional.isPresent()) { |
|
|
|
EpidemicBuildingUnitEntity unitEntity = new EpidemicBuildingUnitEntity(); |
|
|
|
unitEntity.setBuildingId(buildingOptional.get().getId()); |
|
|
|
unitEntity.setUnit(item.getUnit()); |
|
|
|
unitEntity.setRoomNo(item.getRoomNo()); |
|
|
|
unitEntity.setIdCard(item.getIdCard()); |
|
|
|
unitEntity.setOwnerName(item.getUserName()); |
|
|
|
unitEntity.setMobile(item.getMobile()); |
|
|
|
unitEntity.setRoomType(NumConstant.ONE_STR); |
|
|
|
roomCode = roomCode + 1; |
|
|
|
unitEntity.setRoomMaCode(roomCode); |
|
|
|
unitEntity.setRoomCode(getRoomCode(buildingOptional.get().getBuildingMaCode(), roomCode)); |
|
|
|
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()); |
|
|
|
entity.setUnitId(unitEntity.getId()); |
|
|
|
entity.setOwnerName(item.getUserName()); |
|
|
|
entity.setMobile(item.getMobile()); |
|
|
|
addOwner.add(entity); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -470,7 +490,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()) && unit.getGridId().equals(parentAndAllDeptDTO.getGrid())).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())).findFirst(); |
|
|
|
if (unitOptional.isPresent()) { |
|
|
|
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity(); |
|
|
|
entity.setIdCard(item.getIdCard()); |
|
|
@ -480,7 +500,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()) && build.getGridId().equals(parentAndAllDeptDTO.getGrid())).findFirst(); |
|
|
|
Optional<EpidemicPlotBuildingResultDTO> buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(item.getPlot()) && build.getBuildingName().equals(item.getBuildingNo())).findFirst(); |
|
|
|
if (buildingOptional.isPresent()) { |
|
|
|
EpidemicBuildingUnitEntity unitEntity = new EpidemicBuildingUnitEntity(); |
|
|
|
unitEntity.setBuildingId(buildingOptional.get().getId()); |
|
|
|