huanghongfa
2021-10-18 11a5d3328b2784af4afcaa5d92fdcece094be8b5
实有房屋数据修复任务
1个文件已添加
6个文件已修改
127 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseUserDOMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}