zhongrj
2023-12-06 54cfc5505931c5e7d8892222d2095a45b8eac8ed
房屋数据处理修改,场所新增,修改调整,详情查询修改
11 files modified
1 files added
210 ■■■■ changed files
src/main/java/org/springblade/common/utils/IdUtils.java 21 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/category/controller/CategoryLabelController.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java 6 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml 12 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/entity/HouseEntity.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/controller/PlaceController.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/IPlaceService.java 11 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java 107 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/utils/IdUtils.java
New file
@@ -0,0 +1,21 @@
package org.springblade.common.utils;
import java.util.UUID;
public class IdUtils {
    /**
     * 随机生成36位id
     * @return
     */
    public static String getIdBy36(){
        //生成uuid
        String randomId = UUID.randomUUID().toString();
        String trim = randomId.replaceAll("-", "");
        //再拼接4位
        long l = System.currentTimeMillis();
        String time = String.valueOf(l);
        String subTime = time.substring(time.length() - 4);
        return trim + subTime;
    }
}
src/main/java/org/springblade/modules/category/controller/CategoryLabelController.java
@@ -122,5 +122,13 @@
        return R.status(categoryLabelService.removeByIds(Func.toLongList(ids)));
    }
    /**
     * 场所标签临时表 分页
     */
    @GetMapping("/getAllList")
    public R getAllList(CategoryLabelVO categoryLabel) {
        return R.data(categoryLabelService.list());
    }
}
src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
@@ -200,12 +200,12 @@
    }
    /**
     * 数据处理
     * 房屋数据处理
     * @return
     */
    @GetMapping("/dataHandle")
    @GetMapping("/houseDataHandle")
    public R dataHandle(){
        return R.data(doorplateAddressService.dataHandle());
        return R.data(doorplateAddressService.houseDataHandle());
    }
    /**
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -346,11 +346,11 @@
    <!--查询所有户室数据-->
    <select id="getHouseList" resultType="org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity">
        select * from jczz_doorplate_address
        where 1=1 and doorplate_type = '户室牌'
        and address_code not in (
            select house_code from jczz_house
        )
        select jda.* from jczz_doorplate_address jda
        left join jczz_house jh on jh.house_code = jda.address_code
        where 1=1
        and jh.house_code is null
        and doorplate_type = '户室牌'
    </select>
    <!--查询商超-->
@@ -427,7 +427,7 @@
        where 1=1
        and jp.house_code is null
        and (doorplate_type = '小门牌' or (doorplate_type = '中门牌' and address_level = 1))
        union all
        union
        (
        select jda.* from jczz_doorplate_address jda
        left join jczz_place jp on jp.house_code = jda.address_code and jp.is_deleted =0
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
@@ -94,10 +94,10 @@
    List<DoorplateAddressVOTree> getHouseTree(HouseParam houseParam);
    /**
     * 数据处理
     * 房屋数据处理
     * @return
     */
    Object dataHandle();
    Object houseDataHandle();
    /**
     * 小区数据处理
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -586,12 +586,12 @@
    }
    /**
     * 数据处理
     * 房屋数据处理
     * @return
     */
    @Override
    public Object dataHandle() {
        // 处理户室数据
    public Object houseDataHandle() {
        // 处理房屋数据
        handleHouseData();
        return null;
@@ -601,7 +601,7 @@
     * 处理房屋数据
     */
    private void handleHouseData() {
        // 查询所有户室数据
        // 查询所有户室数据(未入库的)
        List<DoorplateAddressEntity> list = baseMapper.getHouseList();
        // 需要新增的房屋 list
        List<HouseEntity> houseList = new ArrayList<>();
@@ -627,6 +627,8 @@
                houseEntity.setCreateTime(new Date());
                houseEntity.setUpdateUser(AuthUtil.getUserId().toString());
                houseEntity.setUpdateTime(new Date());
                // 设置来源 1:地址总表  2:国控采集
                houseEntity.setSource(1);
                // 加入集合
                houseList.add(houseEntity);
            }
src/main/java/org/springblade/modules/house/entity/HouseEntity.java
@@ -132,6 +132,12 @@
    private Integer gridId;
    /**
     * 来源 1:地址总表  2:国控采集
     */
    @ApiModelProperty(value = "来源 1:地址总表  2:国控采集")
    private Integer source;
    /**
     * 创建人
     */
    @JsonSerialize(using = ToStringSerializer.class)
src/main/java/org/springblade/modules/place/controller/PlaceController.java
@@ -100,9 +100,14 @@
        return R.status(placeService.save(place));
    }
    /**
     * 自定义新增/修改
     * @param placeVO
     * @return
     */
    @PostMapping("/add")
    public R add(@RequestBody PlaceVO placeVO){
        return R.status(placeService.addVO(placeVO));
        return R.status(placeService.addOrUpdate(placeVO));
    }
    /**
@@ -115,6 +120,17 @@
        return R.status(placeService.updateById(place));
    }
    /**
     * 自定义修改
     * @param placeVO
     * @return
     */
    @PostMapping("/updatePlace")
    public R updatePlace(@RequestBody PlaceVO placeVO){
        return R.status(placeService.updatePlace(placeVO));
    }
    /**
     * 场所表 新增或修改
     */
src/main/java/org/springblade/modules/place/mapper/PlaceExtMapper.xml
@@ -43,6 +43,7 @@
                </otherwise>
            </choose>
        </if>
        order by jpe.create_time desc,jpe.id desc
    </select>
    <!--自定义详情查询-->
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
@@ -49,6 +49,12 @@
        <if test="place.placeName!=null and place.placeName!=''">
            and jp.place_name like concat('%',#{place.placeName},'%')
        </if>
        <if test="place.principal!=null and place.principal!=''">
            and jp.principal like concat('%',#{place.principal},'%')
        </if>
        <if test="place.principalPhone!=null and place.principalPhone!=''">
            and jp.principal_phone like concat('%',#{place.principalPhone},'%')
        </if>
        <if test="place.isPerfect==1">
            and
            (
src/main/java/org/springblade/modules/place/service/IPlaceService.java
@@ -51,11 +51,11 @@
    List<TreeStringNode> selectPlaceNodeList(Long userId);
    /**
     * 场所信息自定义新增
     * 场所信息自定义新增/修改
     * @param placeVO
     * @return
     */
    Boolean addVO(PlaceVO placeVO);
    Boolean addOrUpdate(PlaceVO placeVO);
    /**
     * 历史场所挂接处理-临时
@@ -96,4 +96,11 @@
     * 场所数据处理-用户信息(场所负责人信息写入到场所表)
     */
    Object placeUserHandle();
    /**
     * 自定义修改
     * @param placeVO
     * @return
     */
    boolean updatePlace(PlaceVO placeVO);
}
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -17,18 +17,17 @@
package org.springblade.modules.place.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.node.TreeStringNode;
import org.springblade.common.utils.IdUtils;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity;
import org.springblade.modules.doorplateAddress.service.IDoorplateAddressService;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.place.entity.PlaceEntity;
import org.springblade.modules.place.entity.PlaceExtEntity;
import org.springblade.modules.place.entity.PlacePoiLabel;
import org.springblade.modules.place.entity.PlaceRelEntity;
import org.springblade.modules.place.entity.*;
import org.springblade.modules.place.excel.PlaceAndRelExcel;
import org.springblade.modules.place.excel.PlaceExcel;
import org.springblade.modules.place.service.IPlaceExtService;
@@ -44,10 +43,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
 * 场所表 服务实现类
@@ -105,28 +101,51 @@
    }
    /**
     * 场所信息自定义新增
     * 场所信息自定义新增/修改
     * @param placeVO
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean addVO(PlaceVO placeVO) {
        // 设置基础数据
        placeVO.setCreateUser(AuthUtil.getUserId());
        placeVO.setCreateTime(new Date());
    public Boolean addOrUpdate(PlaceVO placeVO) {
        boolean flag = false;
        placeVO.setUpdateUser(AuthUtil.getUserId());
        placeVO.setUpdateTime(new Date());
        // 绑定用户信息
        bindUserHandle(placeVO);
        // 新增场所信息
        boolean save = save(placeVO);
        // 保存场所详情及任务信息
        savePlaceExtAndTaskInfo(placeVO);
        // 场所标签信息绑定
        placeLabelBind(placeVO);
        // 查看是否包含houseCode,如果有,则更新
        if (!Strings.isBlank(placeVO.getHouseCode())){
            // 更新,先查询场所信息
            QueryWrapper<PlaceEntity> wrapper = new QueryWrapper<>();
            wrapper.eq("is_deleted",0).eq("house_code",placeVO.getHouseCode());
            PlaceEntity one = getOne(wrapper);
            placeVO.setId(one.getId());
            // 绑定用户信息
            bindUserHandle(placeVO);
            // 更新场所信息
            flag = updateById(placeVO);
            // 保存场所详情及任务信息
            savePlaceExtAndTaskInfo(placeVO);
            // 场所标签信息绑定(更新,调整)
            placeLabelBind(placeVO);
        }else {
            // 设置基础数据
            placeVO.setCreateUser(AuthUtil.getUserId());
            placeVO.setCreateTime(new Date());
            // 设置来源( 1:地址总表  2:国控采集)
            placeVO.setSource(2);
            // 并生成36位的houseCode
            placeVO.setHouseCode(IdUtils.getIdBy36());
            // 绑定用户信息
            bindUserHandle(placeVO);
            // 新增场所信息
            flag = save(placeVO);
            // 保存场所详情及任务信息
            savePlaceExtAndTaskInfo(placeVO);
            // 场所标签信息绑定
            placeLabelBind(placeVO);
        }
        // 位置绑定,通过定位去匹配所在网格
        // 返回结果
        return save;
        return flag;
    }
    /**
@@ -135,9 +154,34 @@
     */
    @Transactional(rollbackFor = Exception.class)
    public void placeLabelBind(PlaceVO placeVO) {
        // 先查询对于的场所是否已有标签信息
        // 查询对应已存在的从业人员
        QueryWrapper<PlacePoiLabel> wrapper = new QueryWrapper<>();
        wrapper.eq("place_id",placeVO.getId());
        List<PlacePoiLabel> oldList = placePoiLabelService.list(wrapper);
        if (oldList.size()>0){
            // 先将老的全部删除,然后批量插入
            QueryWrapper<PlacePoiLabel> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("place_id",placeVO.getId());
            boolean remove = placePoiLabelService.remove(queryWrapper);
            if (remove){
                // 批量新增
                savePlaceLabel(placeVO);
            }
        }else {
            savePlaceLabel(placeVO);
        }
    }
    /**
     * 插入场所标签信息
     * @param placeVO
     */
    public void savePlaceLabel(PlaceVO placeVO) {
        // 批量新增
        List<String> labelList = Arrays.asList(placeVO.getLabel().split(","));
        // 遍历
        labelList.forEach(labelId->{
        labelList.forEach(labelId -> {
            PlacePoiLabel placePoiLabel = new PlacePoiLabel();
            placePoiLabel.setPlaceId(placeVO.getId());
            placePoiLabel.setPoiCode(Integer.parseInt(labelId));
@@ -473,4 +517,21 @@
        }
        return null;
    }
    /**
     * 自定义修改
     * @param placeVO
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updatePlace(PlaceVO placeVO) {
        boolean flag = false;
        // 修改场所信息
        flag = updateById(placeVO);
        // 修改标签绑定信息
        // 返回
        return flag;
    }
}