zhongrj
2024-02-28 bb23575b30f92471f5e92fc65cf1250fdb9d2560
地址绑定修改
8 files modified
219 ■■■■ changed files
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java 5 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml 62 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java 14 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/vo/DoorplateAddressVO.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/entity/PlaceDoorEntity.java 27 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/entity/PlaceEntity.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java 100 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -207,7 +207,10 @@
     * @return
     */
    List<DoorplateAddressEntity> getPlaceList(@Param("doorplateAddress") DoorplateAddressVO doorplateAddressVO,
                                              @Param("size")  Integer size);
                                              @Param("size")  Integer size,
                                              @Param("gridCodeList") List<String> gridCodeList,
                                              @Param("regionChildCodesList") List<String> regionChildCodesList,
                                              @Param("isAdministrator") Integer isAdministrator);
    /**
     * 查询详情
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -566,14 +566,72 @@
    <select id="getPlaceList" resultType="org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity">
        select jda.*
        from jczz_doorplate_address jda
        left join jczz_grid_range jgr on jda.address_code = jgr.house_code
        where 1=1
        and (doorplate_type = '小门牌' or (doorplate_type = '中门牌' and address_level = 1))
        <if test="doorplateAddress.addressName!=null and doorplateAddress.addressName!=''">
            and address_name like concat('%',#{doorplateAddress.addressName},'%')
            and jda.address_name like concat('%',#{doorplateAddress.addressName},'%')
        </if>
        <if test="doorplateAddress.poi!=null and doorplateAddress.poi!=''">
            and poi like concat('%',#{doorplateAddress.poi},'%')
            and jda.poi like concat('%',#{doorplateAddress.poi},'%')
        </if>
        <if test="isAdministrator==2">
            <choose>
                <when test="doorplateAddress.roleName != null and doorplateAddress.roleName != ''">
                    <if test="doorplateAddress.roleName=='wgy'">
                        <choose>
                            <when test="gridCodeList !=null and gridCodeList.size()>0">
                                and jgr.grid_code in
                                <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
                                    #{code}
                                </foreach>
                            </when>
                            <otherwise>
                                and jgr.grid_code in ('')
                            </otherwise>
                        </choose>
                    </if>
                    <if test="doorplateAddress.roleName=='mj'">
                        <choose>
                            <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
                                and jda.nei_code in
                                <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                                    #{code}
                                </foreach>
                            </when>
                            <otherwise>
                                and jda.nei_code in ('')
                            </otherwise>
                        </choose>
                    </if>
                </when>
                <otherwise>
                    <choose>
                        <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
                            and
                            (
                            jgr.grid_code in
                            <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                                #{code}
                            </foreach>
                            or
                            jda.nei_code in
                            <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                                #{code}
                            </foreach>
                            )
                        </when>
                        <otherwise>
                            and
                            (
                            jgr.grid_code in ('') or jda.nei_code in ('')
                            )
                        </otherwise>
                    </choose>
                </otherwise>
            </choose>
        </if>
        limit 0,#{size}
    </select>
    <!--查询地址表详情-->
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
@@ -125,6 +125,7 @@
    /**
     * 查询场所标准地址数据
     * @param doorplateAddressVO
     * @param size
     * 查询场所标准地址数据
     * @return
     */
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -23,6 +23,7 @@
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.constant.DictConstant;
import org.springblade.common.node.TreeStringNode;
import org.springblade.common.param.CommonParamSet;
import org.springblade.common.utils.ComplexNumberStringComparator;
import org.springblade.common.utils.NodeTreeUtil;
import org.springblade.core.secure.utils.AuthUtil;
@@ -940,12 +941,19 @@
    /**
     * 查询场所标准地址数据
     * @param doorplateAddressVO
     * @param doorplateAddress
     * @param size
     * @return
     */
    @Override
    public Object getPlaceList(DoorplateAddressVO doorplateAddressVO, Integer size) {
        return baseMapper.getPlaceList(doorplateAddressVO,size);
    public Object getPlaceList(DoorplateAddressVO doorplateAddress, Integer size) {
        // 公共参数设置
        CommonParamSet commonParamSet = new CommonParamSet().invoke(DoorplateAddressVO.class,doorplateAddress);
        return baseMapper.getPlaceList(doorplateAddress,
            null==size?10:size,
            commonParamSet.getGridCodeList(),
            commonParamSet.getRegionChildCodesList(),
            commonParamSet.getIsAdministrator()
            );
    }
}
src/main/java/org/springblade/modules/doorplateAddress/vo/DoorplateAddressVO.java
@@ -41,5 +41,10 @@
     */
    private Integer isJur;
    /**
     * 社区编号
     */
    private String communityCode;
}
src/main/java/org/springblade/modules/place/entity/PlaceDoorEntity.java
@@ -16,9 +16,8 @@
 */
package org.springblade.modules.place.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
@@ -26,8 +25,10 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * 场所门牌关联表 实体类
@@ -58,6 +59,24 @@
     * 门牌地址编号
     */
    @ApiModelProperty(value = "门牌地址编号")
    private Long houseCode;
    private String houseCode;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}
src/main/java/org/springblade/modules/place/entity/PlaceEntity.java
@@ -56,6 +56,11 @@
     */
    @ApiModelProperty(value = "门牌地址编码")
    private String houseCode;
    /**
     * 门牌地址编码绑定
     */
    @ApiModelProperty(value = "门牌地址编码绑定")
    private String houseCodeBinds;
    /**
     * 楼栋编码
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -20,6 +20,7 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import liquibase.pro.packaged.W;
import liquibase.repackaged.org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.cache.SysCache;
@@ -27,6 +28,7 @@
import org.springblade.common.param.CommonParamSet;
import org.springblade.common.utils.IdUtils;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.SpringUtil;
@@ -46,14 +48,11 @@
import org.springblade.modules.place.excel.NinePlaceExcel;
import org.springblade.modules.place.excel.PlaceAndRelExcel;
import org.springblade.modules.place.excel.PlaceExcel;
import org.springblade.modules.place.service.IPlaceExtService;
import org.springblade.modules.place.service.IPlacePoiLabelService;
import org.springblade.modules.place.service.IPlaceRelService;
import org.springblade.modules.place.service.*;
import org.springblade.modules.place.vo.PlaceCheckVO;
import org.springblade.modules.place.vo.PlacePoiLabelVO;
import org.springblade.modules.place.vo.PlaceVO;
import org.springblade.modules.place.mapper.PlaceMapper;
import org.springblade.modules.place.service.IPlaceService;
import org.springblade.modules.police.entity.PoliceAffairsGridEntity;
import org.springblade.modules.police.service.IPoliceAffairsGridService;
import org.springblade.modules.system.entity.Dept;
@@ -90,6 +89,9 @@
    @Autowired
    private IPlaceRelService placeRelService;
    @Autowired
    private IPlaceDoorService placeDoorService;
    @Autowired
    private IDoorplateAddressService doorplateAddressService;
@@ -174,6 +176,8 @@
            bindUserHandle(placeVO);
            // 设置完善状态
            setPlaceStatus(placeVO);
            // 房屋编号绑定处理
//            houseCodeBindHandle(placeVO);
            // 更新场所信息
            flag = updateById(placeVO);
        } else {
@@ -203,8 +207,6 @@
        gridCodeBind(placeVO);
        // 警务网格绑定
        jwGridCodeBind(placeVO);
        // 房屋编号绑定
//        houseCodeBind(placeVO);
        // 返回结果
        return flag;
    }
@@ -282,18 +284,54 @@
    }
    /**
     * 房屋绑定
     * 房屋绑定处理
     *
     * @param placeVO
     */
    public void houseCodeBind(PlaceVO placeVO) {
        String houseCode = placeVO.getHouseCode();
        List<String> list = Arrays.asList(houseCode.split(","));
        if (list.size() > 1) {
            // 处理对应的绑定房屋数据
            List<Long> longs = new ArrayList<>();
            // 把其他单个的场所数据删除
            for (String code : list) {
    public void houseCodeBindHandle(PlaceVO placeVO) {
        List<String> list = Arrays.asList(placeVO.getHouseCodeBinds().split(","));
        // 先删除原有的绑定
        QueryWrapper<PlaceDoorEntity> removeQw = new QueryWrapper<>();
        removeQw.eq("place_id",placeVO.getId());
        // 删除
        placeDoorService.remove(removeQw);
        // 遍历更新
        for (String houseCode : list) {
            // 查询是否已存在关联关系
            QueryWrapper<PlaceDoorEntity> wrapper = new QueryWrapper<>();
            wrapper.eq("house_code",houseCode);
            // 查询
            List<PlaceDoorEntity> placeDoorEntityList = placeDoorService.list(wrapper);
            if (placeDoorEntityList.size()>0){
                // 该houseCode 已被绑定
//                errorList.add(houseCode);
                for (PlaceDoorEntity placeDoorEntity : placeDoorEntityList) {
                    placeDoorEntity.setPlaceId(placeVO.getId());
                    // 更新
                    placeDoorService.updateById(placeDoorEntity);
                }
            }else {
                PlaceDoorEntity placeDoorEntity = new PlaceDoorEntity();
                placeDoorEntity.setHouseCode(houseCode);
                placeDoorEntity.setPlaceId(placeVO.getId());
                // 对应插入到关联关系表中
                placeDoorService.save(placeDoorEntity);
            }
        }
        // 处理原场所表houseCode 绑定数据
        handlePlaceOne(list,placeVO);
    }
    /**
     * 处理对应的绑定房屋数据
     * @param list
     */
    public void handlePlaceOne(List<String> list,PlaceVO place) {
        // 处理对应的绑定房屋数据
        List<Long> longs = new ArrayList<>();
        // 把其他单个的场所数据删除
        for (String code : list) {
            if (!code.equals(place.getHouseCode())) {
                // 先查询对应的场所id
                QueryWrapper<PlaceEntity> wrapper = new QueryWrapper<>();
                wrapper.eq("house_code", code).eq("is_deleted", 0);
@@ -304,15 +342,14 @@
                    removeById(one.getId());
                }
            }
            if (longs.size() > 0) {
                // 删除对应的详情
                removePlaceExt(longs);
                // 删除对应的标签绑定信息
                removePlaceLabel(longs);
            }
        } else {
            // 一对一,暂时不处理,后续考虑需加绑定关系表
        }
        if (longs.size() > 0) {
            // 删除对应的详情
            removePlaceExt(longs);
            // 删除对应的标签绑定信息
            removePlaceLabel(longs);
            // 删除对应的场所门牌绑定关系信息
            removePlaceDoor(longs);
        }
    }
@@ -1131,6 +1168,8 @@
        removePlaceExt(longs);
        // 删除对应的标签绑定信息
        removePlaceLabel(longs);
        // 删除对应的门牌绑定信息
        removePlaceDoor(longs);
        // 返回
        return removeByIds;
    }
@@ -1211,6 +1250,19 @@
    }
    /**
     * 删除对应的门牌绑定信息
     *
     * @param longs
     */
    public void removePlaceDoor(List<Long> longs) {
        for (Long id : longs) {
            QueryWrapper<PlaceDoorEntity> wrapper = new QueryWrapper<>();
            wrapper.eq("place_id", id);
            placeDoorService.remove(wrapper);
        }
    }
    /**
     * 九小场所档案
     *
     * @param page