zhongrj
2023-11-11 82e222ae8a60afd3d0237b4f987f8c850834dad5
行政区,楼盘数据过滤,报事报修添加任务房屋地址编码
7 files modified
165 ■■■■ changed files
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java 32 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml 71 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java 40 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml 7 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/service/impl/HouseRentalServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/vo/HouseParam.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java 5 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -26,6 +26,7 @@
import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree;
import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO;
import org.springblade.modules.doorplateAddress.vo.FuncNode;
import org.springblade.modules.house.vo.HouseParam;
import java.util.List;
@@ -49,32 +50,36 @@
    /**
     * 查询区域数据
     * 查询街道数据
     * @return
     */
    List<TreeNode> getRegionListByGroupTwon();
    List<TreeNode> getRegionListByGroupTwon(@Param("houseParam") HouseParam houseParam,
                                            @Param("list") List<String> list);
    /**
     * 查询区域数据
     * 查询社区数据
     * @return
     */
    List<TreeNode> getRegionListByGroupNei();
    List<TreeNode> getRegionListByGroupNei(@Param("houseParam") HouseParam houseParam,
                                           @Param("list") List<String> list);
    /**
     * 根据社区名称查询小区集合
     * @param name
     * @param code
     * @param houseParam
     * @param list
     * @return
     */
    List<TreeNode> getDistrictList(@Param("name") String name,@Param("code") String code);
    List<TreeNode> getDistrictList(@Param("houseParam") HouseParam houseParam,
                                   @Param("list") List<String> list);
    /**
     * 根据社区名称查询楼栋集合
     * @param name
     * @param code
     * @param houseParam
     * @param list
     * @return
     */
    List<TreeNode> getBuildingList(@Param("name") String name,@Param("code") String code);
    List<TreeNode> getBuildingList(@Param("houseParam") HouseParam houseParam,
                                   @Param("list") List<String> list);
    /**
     *  查询户室及住户相关信息,单元中包含住户
@@ -104,11 +109,12 @@
    /**
     * 查询街路巷
     * @param name
     * @param code
     * @param houseParam
     * @param list
     * @return
     */
    List<TreeNode> getStreetRuList(@Param("name") String name,@Param("code") String code);
    List<TreeNode> getStreetRuList(@Param("houseParam") HouseParam houseParam,
                                   @Param("list") List<String> list);
    /**
     * 根据街路巷编号查询街路巷门牌名称集合
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -2,6 +2,25 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.doorplateAddress.mapper.DoorplateAddressMapper">
    <!--过滤网格数据-->
    <sql id="filterHouseGrid">
        <if test="houseParam.roleName!=null and houseParam.roleName!=''">
            <if test="houseParam.roleName=='网格员'">
                <choose>
                    <when test="list != null and list.size()>0">
                        and address_code in
                        <foreach collection="list" item="houseCode" separator ="," open="("  close=")">
                            #{houseCode}
                        </foreach>
                    </when>
                    <otherwise>
                        and address_code in ('')
                    </otherwise>
                </choose>
            </if>
        </if>
    </sql>
    <!--门牌地址详情查询-->
    <resultMap id="doorplateAddressDetailMap" type="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO"
               autoMapping="true">
@@ -22,12 +41,18 @@
    <!--查询区域数据-街道-->
    <select id="getRegionListByGroupTwon" resultType="org.springblade.common.node.TreeNode" >
        select town_street_code as id,town_street_name as name from jczz_doorplate_address group by town_street_code,town_street_name
        select town_street_code as id,town_street_name as name from jczz_doorplate_address
        where 1=1
        <include refid="filterHouseGrid"/>
        group by town_street_code,town_street_name
    </select>
    <!--查询区域数据-社区-->
    <select id="getRegionListByGroupNei" resultType="org.springblade.common.node.TreeNode" >
        select nei_code as id,nei_name as name,town_street_code as parentId from jczz_doorplate_address group by nei_code,nei_name,town_street_code
        select nei_code as id,nei_name as name,town_street_code as parentId from jczz_doorplate_address
        where 1=1
        <include refid="filterHouseGrid"/>
        group by nei_code,nei_name,town_street_code
    </select>
    <!--根据社区名称查询小区集合-->
@@ -36,12 +61,13 @@
        where 1=1
        and aoi_name !=''
        and aoi_code !=''
        <if test="name != null and name!=''">
            and nei_name = #{name}
        <if test="houseParam.name != null and houseParam.name!=''">
            and nei_name = #{houseParam.name}
        </if>
        <if test="code != null and code!=''">
            and nei_code = #{code}
        <if test="houseParam.code != null and houseParam.code!=''">
            and nei_code = #{houseParam.code}
        </if>
        <include refid="filterHouseGrid"/>
        group by aoi_code,aoi_name
        union all
        (
@@ -49,12 +75,13 @@
        where 1=1
        and aoi_code !=''
        and sub_aoi != ''
        <if test="name != null and name!=''">
            and nei_name = #{name}
        <if test="houseParam.name != null and houseParam.name!=''">
            and nei_name = #{houseParam.name}
        </if>
        <if test="code != null and code!=''">
            and nei_code = #{code}
        <if test="houseParam.code != null and houseParam.code!=''">
            and nei_code = #{houseParam.code}
        </if>
        <include refid="filterHouseGrid"/>
        group by aoi_code,sub_aoi
        )
        union all
@@ -62,12 +89,13 @@
        select nei_code as id,'自建房/商铺' as name,2 as addressType from jczz_doorplate_address
        where 1=1
        and aoi_code is null
        <if test="name != null and name!=''">
            and nei_name = #{name}
        <if test="houseParam.name != null and houseParam.name!=''">
            and nei_name = #{houseParam.name}
        </if>
        <if test="code != null and code!=''">
            and nei_code = #{code}
        <if test="houseParam.code != null and houseParam.code!=''">
            and nei_code = #{houseParam.code}
        </if>
        <include refid="filterHouseGrid"/>
        group by nei_code
        )
    </select>
@@ -77,9 +105,10 @@
        (
            select building_code as id,ifnull(building_name,'1栋') as name,1 as addressType from jczz_doorplate_address
            where 1=1
            and aoi_code = #{code}
            and aoi_code = #{houseParam.code}
            and building_code !=''
            and doorplate_type = '户室牌'
            <include refid="filterHouseGrid"/>
            group by building_code,building_name
            order by building_name
        )
@@ -87,9 +116,10 @@
        (
            select address_code as id,doorplate_name as name,2 as addressType from jczz_doorplate_address
            where 1=1
            and aoi_code = #{code}
            and aoi_code = #{houseParam.code}
            and building_name is null
            and (doorplate_type = '小门牌' or (doorplate_type = '中门牌' and address_level = 1))
            <include refid="filterHouseGrid"/>
        )
    </select>
@@ -170,12 +200,13 @@
        select street_ru_code as id,street_ru_name as name,3 as addressType from jczz_doorplate_address
        where 1=1
        and aoi_code is null
        <if test="name != null and name!=''">
            and nei_name = #{name}
        <if test="houseParam.name != null and houseParam.name!=''">
            and nei_name = #{houseParam.name}
        </if>
        <if test="code != null and code!=''">
            and nei_code = #{code}
        <if test="houseParam.code != null and houseParam.code!=''">
            and nei_code = #{houseParam.code}
        </if>
        <include refid="filterHouseGrid"/>
        group by street_ru_code,street_ru_name
    </select>
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -29,6 +29,7 @@
import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO;
import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree;
import org.springblade.modules.doorplateAddress.vo.FuncNode;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.house.service.IHouseRentalService;
import org.springblade.modules.house.service.IHouseholdService;
import org.springblade.modules.house.vo.HouseParam;
@@ -59,6 +60,9 @@
    @Autowired
    private IHouseRentalService houseRentalService;
    @Autowired
    private IGridService gridService;
    @Override
    public IPage<DoorplateAddressVO> selectDoorplateAddressPage(IPage<DoorplateAddressVO> page, DoorplateAddressVO doorplateAddress) {
@@ -73,14 +77,23 @@
     */
    @Override
    public Object getFuncList(Integer type,String roleName) {
        HouseParam houseParam = new HouseParam();
        List<String> stringList = new ArrayList<>();
        if (null!=roleName && !roleName.equals("")){
            houseParam.setRoleName(roleName);
            if (roleName.equals("网格员")){
                // 查询对应的房屋地址code
                stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
            }
        }
        List<TreeNode> list = new ArrayList<>();
        if (null!=type) {
            // 如果是网格管理员,系统管理员
            if (type==1){
                // 查询街道
                List<TreeNode> townList = baseMapper.getRegionListByGroupTwon();
                List<TreeNode> townList = baseMapper.getRegionListByGroupTwon(houseParam,stringList);
                // 查询社区
                List<TreeNode> neiList = baseMapper.getRegionListByGroupNei();
                List<TreeNode> neiList = baseMapper.getRegionListByGroupNei(houseParam,stringList);
                // 遍历
                for (TreeNode treeNode : townList) {
                    // 遍历
@@ -91,7 +104,7 @@
                        }
                    }
                }
                // 查询区域数据,当前只有西市街道数据
                // 查询区域数据
                return townList;
            }
            // 如果是居民
@@ -170,10 +183,17 @@
    public Object getHousesList(HouseParam houseParam) {
        List<TreeNode> list = new ArrayList<>();
        Map<String, Object> map = new HashMap<>(2);
        List<String> stringList = new ArrayList<>();
        if (null!=houseParam.getRoleName() && !houseParam.getRoleName().equals("")){
            if (houseParam.getRoleName().equals("网格员")){
                // 查询对应的房屋地址code
                stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
            }
        }
        // 查小区,场所
        if (houseParam.getType()==1){
            // 根据社区名称查询小区集合
            list  = baseMapper.getDistrictList(houseParam.getName(),houseParam.getCode());
            list  = baseMapper.getDistrictList(houseParam,stringList);
        }
        // 查楼栋,街路巷
        if (houseParam.getType()==2){
@@ -231,12 +251,20 @@
     * @return
     */
    private Object getBuildLevelData(HouseParam houseParam,Map<String, Object> map) {
        List<String> stringList = new ArrayList<>();
        if (null!=houseParam.getRoleName() && !houseParam.getRoleName().equals("")){
            if (houseParam.getRoleName().equals("网格员")){
                // 查询对应的房屋地址code
                stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
            }
        }
        // 判断 code 长度,如果 code 长度大于 12 则为小区查楼栋/商铺,否则则按社区查街路巷
        if (houseParam.getCode().length()>12){
            List<TreeNode> aoiList = new ArrayList<>();
            List<TreeNode> shopList = new ArrayList<>();
            // 根据社区名称查询楼栋或者商铺的集合
            List<TreeNode> list = baseMapper.getBuildingList(houseParam.getName(),houseParam.getCode());
            List<TreeNode> list = baseMapper.getBuildingList(houseParam,stringList);
            // 排序  StringUtils.getDigits(X.getName()) 取出数字排序
            List<TreeNode> sortList = list.stream().sorted(Comparator.comparing(X -> StringUtils.getDigits(X.getName()))).collect(Collectors.toList());
            if (list.size()>0){
@@ -255,7 +283,7 @@
            return map;
        }else {
            // 查询街路巷
            List<TreeNode> list  = baseMapper.getStreetRuList(houseParam.getName(),houseParam.getCode());
            List<TreeNode> list  = baseMapper.getStreetRuList(houseParam,stringList);
            map.put("aoiList",new ArrayList<>());
            map.put("shopList",list);
            // 返回
src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
@@ -50,8 +50,11 @@
        ) b ON b.housing_rental_id = jhr.id
        WHERE jhr.is_deleted = 0
        <if test="vo.auditStatus != null and vo.auditStatus != ''">
            <if test="vo.auditStatus ==0 || vo.auditStatus ==1">
                AND jhr.audit_status  = #{vo.auditStatus}
            <if test="vo.auditStatus ==1">
                AND jhr.audit_status  = 1
            </if>
            <if test="vo.auditStatus ==2">
                AND jhr.audit_status  = 0
            </if>
            <if test="vo.auditStatus ==10">
                AND date_format(jhr.due_time,'%Y-%m-%d')&gt;= date_format(now(),'%Y-%m-%d')
src/main/java/org/springblade/modules/house/service/impl/HouseRentalServiceImpl.java
@@ -70,6 +70,11 @@
                list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
            }
        }
        if (null!=houseRental.getAuditStatus()){
            if (houseRental.getAuditStatus()==0){
                houseRental.setAuditStatus(2);
            }
        }
        return page.setRecords(baseMapper.selectHouseRentalPage(page, houseRental,list));
    }
src/main/java/org/springblade/modules/house/vo/HouseParam.java
@@ -26,4 +26,9 @@
     * 地址类型 1:小区  2:非小区
     */
    private Integer addressType;
    /**
     * 角色名称
     */
    private String roleName;
}
src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java
@@ -88,10 +88,13 @@
        boolean flag = false;
        // 任务新增
        TaskEntity taskEntity = new TaskEntity();
        taskEntity.setName("报事报修"+ System.currentTimeMillis());
        taskEntity.setName(taskReportForRepairs.getRealName() + "报修");
        taskEntity.setStatus(1);
        taskEntity.setType(1);
        taskEntity.setFrequency(3);
        if (null!=taskReportForRepairs.getAddressCode() && !taskReportForRepairs.getAddressCode().equals("")){
            taskEntity.setHouseCode(taskReportForRepairs.getAddressCode());
        }
        // 新增
        boolean save = taskService.save(taskEntity);
        if (save){