springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -6978,4 +6978,7 @@ */ @PostMapping("/comActWarehouseDonates/donates/apply") R applyDonates(@RequestBody ComActWarehouseApplyDTO comActWarehouseApplyDTO); @GetMapping("/population/house/status/task") R timedTaskHouseJobHandler(); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java
@@ -162,4 +162,9 @@ return comExServicemanService.getPageExServiceman(comExServicemanDTO); } @GetMapping("/house/status/task") public R timedTaskHouseJobHandler() { return comMngPopulationHouseService.timedTaskHouseJobHandler(); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java
@@ -67,4 +67,11 @@ + " left join com_mng_population_house as cmph on cmph.id = cmphu.house_id " + " where cmphu.id = #{id}") ComMngHouseVo detail(Long id); /** * 查询指定人员是否存在租住的数量 * @param ids 指定实有人口 * @return 存在租住的数量 */ Integer getHouseUserIsRent(@Param("ids") List<Long> ids); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java
@@ -131,4 +131,6 @@ * @return 编辑结果 */ R insertHouse(ComMngPopulationHouseInsertAdminDTO houseEditAdminDTO); R timedTaskHouseJobHandler(); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java
@@ -9,6 +9,7 @@ import javax.annotation.Resource; import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseInsertAdminDTO; import com.panzhihua.service_community.service.ComMngPopulationHouseUserService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,6 +67,10 @@ private ComActVillageDAO comActVillageDAO; @Resource private ComMngPopulationHouseDAO comMngPopulationHouseDAO; @Resource private ComMngPopulationHouseService comMngPopulationHouseService; @Resource private ComMngPopulationHouseUserService comMngPopulationHouseUserService; private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) { Map<Object, Boolean> seen = new ConcurrentHashMap<>(); @@ -477,6 +482,7 @@ return R.ok(subordinateList); } @Override public R populationRelationHouse(ComMngPopulationRelationHouseDTO relationHouseDTO) { if (relationHouseDTO.getPopulationId().isEmpty()) { @@ -538,4 +544,69 @@ } } @Override @Transactional public R timedTaskHouseJobHandler(){ //需要修改的房屋信息 List<ComMngPopulationHouseDO> updateHouseList = new ArrayList<>(); //需要修改的房屋人员关系信息 List<ComMngPopulationHouseUserDO> updateHouseUserList = new ArrayList<>(); ComMngPopulationDO population = new ComMngPopulationDO(); //查询所有房屋列表信息 List<ComMngPopulationHouseDO> houseList = comMngPopulationHouseDAO.selectList(null); //遍历房屋信息 for (ComMngPopulationHouseDO house : houseList) { List<ComMngPopulationHouseUserDO> houseUserList = comMngPopulationHouseUserDAO.selectList(new QueryWrapper<ComMngPopulationHouseUserDO>() .lambda().eq(ComMngPopulationHouseUserDO::getHouseId,house.getId())); if(houseUserList.isEmpty()){ house.setStatus(ComMngPopulationHouseDO.status.kongzhi); }else{ house.setStatus(ComMngPopulationHouseDO.status.zizhu); //查询该房屋下人员是否是租住状态 List<Long> populationIds = houseUserList.stream().map(ComMngPopulationHouseUserDO::getPopulId).collect(Collectors.toList()); Integer count = comMngPopulationHouseUserDAO.getHouseUserIsRent(populationIds); if(count > 0){ house.setStatus(ComMngPopulationHouseDO.status.zuzhu); } //查询该房屋下人员的关联信息的关系 for (ComMngPopulationHouseUserDO houseUser : houseUserList) { population = comMngPopulationDAO.selectById(houseUser.getPopulId()); if(population.getIsRent().equals(ComMngPopulationDO.isOk.yes)){ houseUser.setRelationId(ComMngPopulationHouseUserDO.relationId.zuhu); }else { houseUser.setRelationId(ComMngPopulationHouseUserDO.relationId.zuzhu); } updateHouseUserList.add(houseUser); } } //查看房子的楼层排序 if(house.getFloorNum() == null){ boolean result = house.getHouseNo().matches("[0-9]+"); if (result) {// 该字段为纯数字 if (house.getHouseNo().length() == 4) { house.setFloorNum(Integer.parseInt(house.getHouseNo().substring(0, 2).replaceAll("^(0+)", ""))); } else if (house.getHouseNo().length() == 3) { house.setFloorNum(Integer.parseInt(house.getHouseNo().substring(0, 1).replaceAll("^(0+)", ""))); } } } updateHouseList.add(house); } if(!updateHouseList.isEmpty()){ comMngPopulationHouseService.updateBatchById(updateHouseList); } if(!updateHouseUserList.isEmpty()){ comMngPopulationHouseUserService.updateBatchById(updateHouseUserList); } return R.ok(); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseUserDOMapper.xml
New file @@ -0,0 +1,31 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.service_community.dao.ComMngPopulationHouseUserDAO"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO"> <id column="id" property="id" /> <result column="popul_id" property="populId" /> <result column="house_id" property="houseId" /> <result column="relation_id" property="relationId" /> <result column="relation" property="relation" /> <result column="residence" property="residence" /> <result column="start_at" property="startAt" /> <result column="end_at" property="endAt" /> <result column="create_at" property="createAt" /> <result column="update_at" property="updateAt" /> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, popul_id, house_id, relation_id, relation, residence, start_at, end_at, create_at, update_at </sql> <select id="getHouseUserIsRent" resultType="integer"> select count(id) from com_mng_population where is_rent = 1 and id in <foreach collection="ids" item="id" open="(" separator="," close=")" > #{id} </foreach> </select> </mapper> springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java
@@ -267,4 +267,12 @@ log.info("执行结果【{}】", r.toString()); return ReturnT.SUCCESS; } @XxlJob("timedTaskHouseJobHandler") public ReturnT<String> timedTaskHouseJobHandler(String param) { log.info("实有房屋定时任务修复数据"); R r = communityService.timedTaskHouseJobHandler(); log.info("执行结果【{}】", r.toString()); return ReturnT.SUCCESS; } }