diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java index 2fc0396..ac0143b 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java @@ -121,6 +121,12 @@ public class BuildingUnitController { return epidemicBuildingUnitService.importEpidemicHouse(file, gridId); } + @PostMapping("updateMaCode") + public Result updateMaCode() { + epidemicBuildingUnitService.updateMaCode(); + return new Result(); + } + /** * @return void * @describe: 下载房屋编码 diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotBuildingController.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotBuildingController.java index e1ff45d..b8f95cf 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotBuildingController.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotBuildingController.java @@ -120,4 +120,10 @@ public class PlotBuildingController { public Result importBuilding(@RequestParam("file") MultipartFile file) { return epidemicPlotBuildingService.importBuilding(file); } + + @PostMapping("updateMaCode") + public Result updateMaCode() { + epidemicPlotBuildingService.updateMaCode(); + return new Result(); + } } diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java index d3f0314..c8fda15 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java @@ -89,7 +89,7 @@ public interface EpidemicBuildingUnitDao extends BaseDao listAllUnitInfo(); + List listAllUnitInfo(@Param("gridId") String gridId); Integer getMaxCode(); diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java index 79fdb18..7e7ca6c 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java @@ -140,7 +140,7 @@ public interface EpidemicPlotBuildingDao extends BaseDao listAllBuildingInfo(); + List listAllBuildingInfo(@Param("gridId") String gridId); Integer getMaxCode(); diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java index 2f53b16..7cb5b86 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java @@ -97,7 +97,7 @@ public interface EpidemicBuildingUnitService extends CrudService listAllUnitInfo(); + List listAllUnitInfo(String gridId); /** * 导入房屋 @@ -110,8 +110,25 @@ public interface EpidemicBuildingUnitService extends CrudService listAllBuildingInfo(); + List listAllBuildingInfo(String gridId); + /** + * 获取最大编码 + * + * @param + * @return int + * @author zhy + * @date 2022/6/9 17:24 + */ int getMaxCode(); + + /** + * 更新编码 + * + * @param + * @return void + * @author zhy + * @date 2022/6/9 17:24 + */ + void updateMaCode(); } diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java index 458fb34..caca4c0 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java @@ -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 implements EpidemicBuildingUnitService { @@ -112,6 +115,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); @@ -119,6 +123,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl listAllUnitInfo() { - return baseDao.listAllUnitInfo(); + public List listAllUnitInfo(String gridId) { + return baseDao.listAllUnitInfo(gridId); } private void checkData(EpidemicBuildingUnitDTO dto) { @@ -235,7 +240,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl parentAndAllDept = adminVimFeignClient.getCompleteDept(parentAndAllDeptDTO.getGridId().toString()); + Result parentAndAllDept = adminVimFeignClient.getCompleteDept(gridId); if (!parentAndAllDept.success() || parentAndAllDept.getData() == null) { return new Result().error("获取归属部门信息失败"); } @@ -245,8 +250,6 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl populationIdNoAndIdMap = new HashMap<>(); //居民导入数据 List excelData; // 处理错误数据使用 @@ -263,10 +266,10 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl buildingList = epidemicPlotBuildingService.listAllBuildingInfo(); + List 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 params = new HashMap<>(4); + params.put("roomMaCode", "0"); + List 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 owners, Long unitId) { List dtoList = owners.stream().filter(item -> StringUtils.isNotBlank(item.getIdCard())).collect(Collectors.toList()); List list = ConvertUtils.sourceToTarget(dtoList, EpidemicUnitOwnerEntity.class); @@ -322,7 +338,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl excelErrorData, List buildingList, List addList, - List addErrorList, String gridId) { + List addErrorList) { // 不匹配信息 List errorLineInfoList = new ArrayList<>(); EpdcPopulationErrorResultDTO errorLineInfoDto; @@ -353,7 +369,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(plot) && build.getBuildingName().equals(buildingNo) && build.getGridId().equals(gridId)).findFirst(); + Optional 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>>>>>>>>>>>>>>>>>>>>>>>>>>A"); // 补充人房关系 int roomCode = getMaxCode(); - List unitList = listAllUnitInfo(); + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>B" + roomCode); + List unitList = listAllUnitInfo(parentAndAllDeptDTO.getGrid()); List addOwner = new ArrayList<>(); for (EpidemicUserInfoEntity item : addList) { + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>C"); // 只有信息完整的才进行匹配 - if (StringUtils.isNotBlank(item.getPlot()) && StringUtils.isNotBlank(item.getBuildingNo()) && StringUtils.isNotBlank(item.getUnit())) { - Optional 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 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 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 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 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 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 buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(item.getPlot()) && build.getBuildingName().equals(item.getBuildingNo()) && build.getGridId().equals(parentAndAllDeptDTO.getGrid())).findFirst(); + Optional 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()); diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotBuildingServiceImpl.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotBuildingServiceImpl.java index 26f0c36..cc508b8 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotBuildingServiceImpl.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotBuildingServiceImpl.java @@ -105,11 +105,13 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); wrapper.eq(StringUtils.isNotBlank(name), "BUILDING_NAME", name); wrapper.eq(StringUtils.isNotBlank(type), "BUILDING_TYPE", type); + wrapper.eq(StringUtils.isNotBlank(buildingMaCode), "BUILDING_MA_CODE", buildingMaCode); return wrapper; } @@ -137,6 +139,8 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl listAllBuildingInfo() { - return baseDao.listAllBuildingInfo(); + public List listAllBuildingInfo(String gridId) { + return baseDao.listAllBuildingInfo(gridId); } @Override @@ -416,6 +422,19 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl params = new HashMap<>(4); + params.put("buildingMaCode", "0"); + List list = baseDao.selectList(getWrapper(params)); + if (!list.isEmpty()) { + for (int i = 0; i < list.size(); i++) { + list.get(i).setBuildingMaCode(i + 1); + } + updateBatchById(list); + } + } + /** * @return void * @describe: 创建数据库里不存在的小区 diff --git a/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml b/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml index 0a66ef8..6cf3af6 100644 --- a/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml +++ b/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml @@ -143,6 +143,9 @@ u.DEL_FLAG = '0' AND b.DEL_FLAG = '0' AND p.DEL_FLAG = '0' + + AND u.GRID_ID = #{gridId} +