diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/controller/HousingInformationController.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/controller/HousingInformationController.java index 3ecd08e..6f628c7 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/controller/HousingInformationController.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/controller/HousingInformationController.java @@ -225,7 +225,6 @@ public class HousingInformationController { // 将属性的首字母大写 String methodName = field.getName().replaceFirst(field.getName().substring(0, 1), field.getName().substring(0, 1).toUpperCase()); - System.out.println(methodName); try { Method methodGet = clazz.getMethod("get" + methodName); // 调用getter方法获取属性值 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 40468b0..579e487 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 @@ -121,18 +121,18 @@ public class PlotBuildingController { */ @GetMapping("getBuildingOptionApp") public Result> getBuildingOptionApp(@RequestBody EpidemicPlotBuildingDTO formDTO) { - log.info("################楼栋############plotId:"+formDTO.getPlotId()); + log.info("################楼栋############plotId:" + formDTO.getPlotId()); List list = epidemicPlotBuildingService.getBuildingOption(formDTO); return new Result>().ok(list); } /** - * @describe: 导入房屋信息 - * @author wangtong - * @date 2022/4/25 17:01 - * @params [file] - * @return io.pingyin.common.utils.Result - */ + * @return io.pingyin.common.utils.Result + * @describe: 导入房屋信息 + * @author wangtong + * @date 2022/4/25 17:01 + * @params [file] + */ @PostMapping("importBuilding") public Result importBuilding(@RequestParam("file") MultipartFile file) { return epidemicPlotBuildingService.importBuilding(file); 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 3b2661f..2cce1be 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 @@ -111,7 +111,11 @@ public interface EpidemicBuildingUnitDao extends BaseDao listAllUnitInfo(@Param("gridId") String gridId); - Integer getMaxCode(); + Integer getRoomMaxCode(@Param("buildingId") Long buildingId, @Param("unit") String unit); + + Integer getUnitMaxCode(@Param("buildingId") Long buildingId); + + Integer getUnitCode(@Param("buildingId") Long buildingId, @Param("unit") String unit); List getErrorRoom(); diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java index 85b0219..3796b9c 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java @@ -181,6 +181,11 @@ public class EpidemicBuildingUnitEntity extends BasePingyinEntity { */ private Integer roomMaCode; + /** + * 房屋码(5位数字自增) + */ + private Integer unitMaCode; + /** * 二维码 */ 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 80e9073..760ea57 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 @@ -28,7 +28,6 @@ import com.elink.esua.epdc.dto.personroom.form.HouseQrcodeZipFormDTO; import com.elink.esua.epdc.dto.personroom.result.EpidemicBuildingUnitDetailResultDTO; import com.elink.esua.epdc.dto.personroom.result.EpidemicUnitInfoResultDTO; import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; @@ -121,7 +120,17 @@ public interface EpidemicBuildingUnitService extends CrudService page(Map params) { IPage page = getPage(params); @@ -179,6 +184,13 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl list = baseDao.getErrorRoom(); @@ -363,13 +389,59 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl list = baseDao.selectList(getWrapper(params)); if (!list.isEmpty()) { - for (int i = 0; i < list.size(); i++) { - list.get(i).setRoomMaCode(i + 1); + for (EpidemicBuildingUnitEntity epidemicBuildingUnitEntity : list) { + if (epidemicBuildingUnitEntity.getBuildingId() != null && StringUtils.isNotBlank(epidemicBuildingUnitEntity.getUnit())) { + updateUnitMaCode(epidemicBuildingUnitEntity); + if (StringUtils.isNotBlank(epidemicBuildingUnitEntity.getRoomNo())) { + updateRoomMaCode(epidemicBuildingUnitEntity); + } + } } updateBatchById(list); } } + private void updateUnitMaCode(EpidemicBuildingUnitEntity entity) { + String key = RedisKeys.getMaUnitCodeKey(entity.getBuildingId().toString(), entity.getUnit()); + String nextKey = RedisKeys.getMaUnitNextCodeKey(entity.getBuildingId().toString()); + Object obj = redisUtils.get(key); + Object nextObj = redisUtils.get(nextKey); + if (null != obj) { + int maCodeCache = (int) obj; + entity.setUnitMaCode(maCodeCache); + redisUtils.set(key, maCodeCache, RedisUtils.HOUR_ONE_EXPIRE); + return; + } + if (null != nextObj) { + int maCodeCache = (int) nextObj; + entity.setUnitMaCode(maCodeCache); + redisUtils.set(key, maCodeCache, RedisUtils.HOUR_ONE_EXPIRE); + redisUtils.set(nextKey, maCodeCache + 1, RedisUtils.HOUR_ONE_EXPIRE); + return; + } + + int maCode = getUnitNewCode(entity.getBuildingId(), entity.getUnit()); + entity.setUnitMaCode(maCode); + redisUtils.set(key, maCode, RedisUtils.HOUR_ONE_EXPIRE); + redisUtils.set(nextKey, maCode + 1, RedisUtils.HOUR_ONE_EXPIRE); + } + + private void updateRoomMaCode(EpidemicBuildingUnitEntity entity) { + String key = RedisKeys.getMaRoomCodeKey(entity.getBuildingId().toString(), entity.getUnit()); + Object obj = redisUtils.get(key); + if (null != obj) { + int maCodeCache = (int) obj; + maCodeCache = maCodeCache + 1; + entity.setRoomMaCode(maCodeCache); + redisUtils.set(key, maCodeCache, RedisUtils.HOUR_ONE_EXPIRE); + return; + } + int maCode = getRoomMaxCode(entity.getBuildingId(), entity.getUnit()); + maCode = maCode + 1; + entity.setRoomMaCode(maCode); + redisUtils.set(key, maCode, RedisUtils.HOUR_ONE_EXPIRE); + } + @Override public Result createBatchHouseCodeAndUrl() { epidemicPlotBuildingService.updateMaCode(); @@ -609,7 +681,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl unitList = listAllUnitInfo(parentAndAllDeptDTO.getGrid()); List addOwner = new ArrayList<>(); for (EpidemicUserInfoEntity item : addList) { @@ -633,6 +705,9 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl - SELECT MAX( ROOM_MA_CODE ) FROM epidemic_building_unit + WHERE + DEL_FLAG = '0' + + AND BUILDING_ID = #{buildingId} + + + AND UNIT = #{unit} + + + + + + diff --git a/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotCoordinateDao.xml b/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotCoordinateDao.xml index d1bb786..8fd927e 100644 --- a/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotCoordinateDao.xml +++ b/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotCoordinateDao.xml @@ -169,6 +169,8 @@ MAX( ROOM_MA_CODE ) FROM epidemic_plot_coordinate + WHERE + DEL_FLAG = '0'