zhongrj
2024-03-16 f94c803da6bb1c32bae637246b8c070cea2f031f
新增房屋标签统计
5 files modified
139 ■■■■■ changed files
src/main/java/org/springblade/modules/house/controller/HouseController.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/mapper/HouseMapper.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml 91 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/service/IHouseService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/controller/HouseController.java
@@ -278,4 +278,15 @@
        return R.data(houseService.houseJwGridHandle());
    }
    /**
     * 房屋画像统计-按房屋标签统计
     * @return
     */
    @GetMapping("/getHouseLabelStatistic")
    @ApiOperation(value = "房屋画像统计")
    public R getHouseLabelStatistic(HouseVO house) {
        return R.data(houseService.getHouseLabelStatistic(house));
    }
}
src/main/java/org/springblade/modules/house/mapper/HouseMapper.java
@@ -110,4 +110,17 @@
     * @return
     */
    List<HouseEntity> getNotBindGridOrJwGridList(@Param("type") Integer type);
    /**
     * 按房屋标签统计
     * @param house
     * @param isAdministrator
     * @param regionChildCodesList
     * @param gridCodeList
     * @return
     */
    List<Map<String, Object>> getHouseLabelStatistic(@Param("house") HouseVO house,
                                                     @Param("isAdministrator") Integer isAdministrator,
                                                     @Param("regionChildCodesList")List<String> regionChildCodesList,
                                                     @Param("gridCodeList")List<String> gridCodeList);
}
src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
@@ -222,7 +222,12 @@
                                )
                            </when>
                            <otherwise>
                                and
                                (
                                jg.grid_code in ('')
                                or
                                jpag.community_code in ('')
                                )
                            </otherwise>
                        </choose>
                    </otherwise>
@@ -800,5 +805,89 @@
        </if>
    </select>
    <!--按房屋标签统计-->
    <select id="getHouseLabelStatistic" resultType="java.util.Map">
        select a.label_name as labelName,ifnull(b.numbers,0) numbers from
        (
        select label_name from jczz_label where parent_id = 1001 and is_deleted = 0
        union all
        select '未知' as label_name
        ) a
        left join (
            select
            ifnull(juhl.label_name,'未知') labelName,
            count(*) as numbers
            from jczz_doorplate_address jda
            LEFT JOIN jczz_house jh on jda.address_code = jh.house_code and jh.is_deleted = 0
            LEFT JOIN jczz_grid jg on jg.grid_code = jh.grid_code and jg.is_deleted = 0
            LEFT JOIN blade_region br on br.code = jg.community_code
            LEFT JOIN jczz_police_affairs_grid jpag on jh.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
            LEFT JOIN jczz_user_house_label juhl ON juhl.house_code = jh.house_code and juhl.lable_type = 2
            where jda.doorplate_type = '户室牌'
            <if test="house.communityCode != null  and house.communityCode != ''">
                and jg.community_code = #{house.communityCode}
            </if>
            <if test="isAdministrator==2">
                <choose>
                    <when test="house.roleName != null and house.roleName != ''">
                        <if test="house.roleName=='wgy'">
                            <choose>
                                <when test="gridCodeList !=null and gridCodeList.size()>0">
                                    <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
                                        #{code}
                                    </foreach>
                                </when>
                                <otherwise>
                                    and jh.grid_code in ('')
                                </otherwise>
                            </choose>
                        </if>
                        <if test="house.roleName=='mj'">
                            <choose>
                                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
                                    and jpag.community_code in
                                    <foreach collection="regionChildCodesList" item="code" open="(" close=")"
                                             separator=",">
                                        #{code}
                                    </foreach>
                                </when>
                                <otherwise>
                                    and jpag.community_code in ('')
                                </otherwise>
                            </choose>
                        </if>
                    </when>
                    <otherwise>
                        <choose>
                            <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
                                and
                                (
                                jg.grid_code in
                                <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                                    #{code}
                                </foreach>
                                or
                                jpag.community_code in
                                <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                                    #{code}
                                </foreach>
                                )
                            </when>
                            <otherwise>
                                and
                                (
                                jg.grid_code in ('')
                                or
                                jpag.community_code in ('')
                                )
                            </otherwise>
                        </choose>
                    </otherwise>
                </choose>
            </if>
            group by juhl.label_name
        ) b on a.label_name =b.labelName
    </select>
</mapper>
src/main/java/org/springblade/modules/house/service/IHouseService.java
@@ -102,4 +102,11 @@
     * @return
     */
    Object houseJwGridHandle();
    /**
     * 房屋画像统计-按房屋标签统计
     * @param house
     * @return
     */
    List<Map<String,Object>> getHouseLabelStatistic(HouseVO house);
}
src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
@@ -758,4 +758,21 @@
        }
        return null;
    }
    /**
     * 房屋画像统计-按房屋标签统计
     * @param house
     * @return
     */
    @Override
    public List<Map<String,Object>> getHouseLabelStatistic(HouseVO house) {
        CommonParamSet commonParamSet = new CommonParamSet<>().invoke(HouseVO.class, house);
        // 按房屋标签统计
        List<Map<String,Object>> list = baseMapper.getHouseLabelStatistic(house,
            commonParamSet.getIsAdministrator(),
            commonParamSet.getRegionChildCodesList(),
            commonParamSet.getGridCodeList());
        // 返回
        return list;
    }
}