From 66a759807038f34b37e63ab98a3143a0ff0e55e7 Mon Sep 17 00:00:00 2001 From: zhangyuan Date: Thu, 16 Jun 2022 14:45:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=88=BF=E5=B1=8B=E7=BC=96?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PlotCoordinateController.java | 10 ++++ .../dao/EpidemicPlotBuildingDao.java | 2 +- .../dao/EpidemicPlotCoordinateDao.java | 3 ++ .../entity/EpidemicPlotCoordinateEntity.java | 5 ++ .../service/EpidemicPlotBuildingService.java | 2 +- .../EpidemicPlotCoordinateService.java | 20 ++++++++ .../impl/EpidemicPlotBuildingServiceImpl.java | 47 +++++++++++++++---- .../EpidemicPlotCoordinateServiceImpl.java | 31 ++++++++++-- .../personroom/EpidemicPlotBuildingDao.xml | 2 + .../personroom/EpidemicPlotCoordinateDao.xml | 6 +++ 10 files changed, 115 insertions(+), 13 deletions(-) diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotCoordinateController.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotCoordinateController.java index 88610ae..5b6db27 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotCoordinateController.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotCoordinateController.java @@ -171,5 +171,15 @@ public class PlotCoordinateController { return epidemicPlotCoordinateService.importExcel(file); } + /** + * 更新房屋自增序号 + * + * @return + */ + @PostMapping("updateMaCode") + public Result updateMaCode() { + epidemicPlotCoordinateService.updateMaCode(); + return new Result(); + } } 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 7e7ca6c..e11df4a 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 @@ -142,6 +142,6 @@ public interface EpidemicPlotBuildingDao extends BaseDao listAllBuildingInfo(@Param("gridId") String gridId); - Integer getMaxCode(); + Integer getMaxCode(@Param("plotId") Long plotId); } diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotCoordinateDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotCoordinateDao.java index 3ce4a4b..22a36f0 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotCoordinateDao.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotCoordinateDao.java @@ -100,4 +100,7 @@ public interface EpidemicPlotCoordinateDao extends BaseDao */ List getListByGridId(@Param("gridId") String gridId); + + Integer getMaxCode(); + } diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotCoordinateEntity.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotCoordinateEntity.java index e5698f6..7154d29 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotCoordinateEntity.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotCoordinateEntity.java @@ -102,4 +102,9 @@ public class EpidemicPlotCoordinateEntity extends BasePingyinEntity { */ private String introduce; + /** + * 自增编码 + */ + private Integer plotMaCode; + } diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicPlotBuildingService.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicPlotBuildingService.java index 5649ed5..2c7e8cb 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicPlotBuildingService.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicPlotBuildingService.java @@ -92,7 +92,7 @@ public interface EpidemicPlotBuildingService extends CrudService page(Map params) { IPage page = getPage(params); @@ -105,12 +110,14 @@ 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(plotId != null, "PLOT_ID", plotId); wrapper.eq(StringUtils.isNotBlank(buildingMaCode), "BUILDING_MA_CODE", buildingMaCode); return wrapper; @@ -139,8 +146,11 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl list = baseDao.selectList(getWrapper(params)); if (!list.isEmpty()) { - for (int i = 0; i < list.size(); i++) { - list.get(i).setBuildingMaCode(i + 1); + for (EpidemicPlotBuildingEntity entity : list) { + // 没有绑定楼栋的没有这个码 + if (entity.getPlotId() != null) { + updateBuildingMaCode(entity); + } } updateBatchById(list); } } + private void updateBuildingMaCode(EpidemicPlotBuildingEntity entity) { + String key = RedisKeys.getMaBuildingCodeKey(entity.getPlotId().toString()); + Object obj = redisUtils.get(key); + if (null != obj) { + int maCodeCache = (int) obj; + maCodeCache = maCodeCache + 1; + entity.setBuildingMaCode(maCodeCache); + redisUtils.set(key, maCodeCache, RedisUtils.HOUR_ONE_EXPIRE); + return; + } + int maCode = getMaxCode(entity.getPlotId()); + maCode = maCode + 1; + entity.setBuildingMaCode(maCode); + redisUtils.set(key, maCode, RedisUtils.HOUR_ONE_EXPIRE); + } + /** * @return void * @describe: 创建数据库里不存在的小区 diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotCoordinateServiceImpl.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotCoordinateServiceImpl.java index c3aced5..661e875 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotCoordinateServiceImpl.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotCoordinateServiceImpl.java @@ -45,6 +45,7 @@ import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotCoordinateResultDTO import com.elink.esua.epdc.vaccine.feign.VimAdminFeignClient; import com.elink.esua.epdc.vaccine.personroom.dao.EpidemicPlotBuildingDao; import com.elink.esua.epdc.vaccine.personroom.dao.EpidemicPlotCoordinateDao; +import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity; import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotCoordinateEntity; import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotCoordinateErrorEntity; import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotGridEntity; @@ -97,7 +98,7 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl page(Map params) { IPage page = getPage(params); List list = baseDao.getPlotPage(params); - list.forEach(item->{ + list.forEach(item -> { }); return new PageData<>(list, page.getTotal()); @@ -120,6 +121,7 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); wrapper.like(StringUtils.isNotBlank(streetName), "STREET_NAME", streetName); @@ -129,6 +131,7 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl params = new HashMap<>(2); params.put("plotId", id); List relation = epidemicPlotGridService.list(params); - if(relation != null && relation.size() > 0){ + if (relation != null && relation.size() > 0) { dto.setGridIds(relation.stream().map(EpidemicPlotGridDTO::getGridId).collect(Collectors.toList())); } return dto; @@ -163,10 +166,11 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl lists = epidemicPlotCoordinateDao.selectList(wrapper); if (lists.isEmpty()) { + int maCode = getMaxCode(); + dto.setPlotMaCode(maCode); EpidemicPlotCoordinateEntity entity = ConvertUtils.sourceToTarget(dto, EpidemicPlotCoordinateEntity.class); insert(entity); saveOrUpdateRelation(entity.getId(), dto.getGridIds()); -// epidemicUserInoutRecordService.updatePositionInfo(entity); return new Result(); } else { return new Result().error("该小区已存在"); @@ -341,6 +345,27 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl params = new HashMap<>(4); + params.put("plotMaCode", "0"); + List list = baseDao.selectList(getWrapper(params)); + if (!list.isEmpty()) { + for (int i = 0; i < list.size(); i++) { + list.get(i).setPlotMaCode(i + 1); + } + updateBatchById(list); + } + } /** * 更新小区网格关系 diff --git a/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml b/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml index ebb14fa..270b86a 100644 --- a/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml +++ b/epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml @@ -195,5 +195,7 @@ MAX( BUILDING_MA_CODE ) FROM epidemic_plot_building + WHERE + PLOT_ID = #{plotId} 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 5837a81..d1bb786 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 @@ -164,5 +164,11 @@ and GRID_ID = #{gridId} +