From bb23575b30f92471f5e92fc65cf1250fdb9d2560 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 28 Feb 2024 11:12:32 +0800
Subject: [PATCH] 地址绑定修改
---
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml | 62 +++++++++++++++
src/main/java/org/springblade/modules/place/entity/PlaceEntity.java | 5 +
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java | 5 +
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java | 1
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java | 100 +++++++++++++++++++------
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java | 14 ++
src/main/java/org/springblade/modules/doorplateAddress/vo/DoorplateAddressVO.java | 5 +
src/main/java/org/springblade/modules/place/entity/PlaceDoorEntity.java | 27 +++++-
8 files changed, 185 insertions(+), 34 deletions(-)
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
index 172f7f8..a3715fc 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
+++ b/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);
/**
* 查询详情
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
index 4208aa7..8674027 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
+++ b/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>
<!--查询地址表详情-->
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java b/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
index 2edec81..96b2c30 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
@@ -125,6 +125,7 @@
/**
* 查询场所标准地址数据
* @param doorplateAddressVO
+ * @param size
* 查询场所标准地址数据
* @return
*/
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java b/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
index ab71455..f8ef660 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
+++ b/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()
+ );
}
}
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/vo/DoorplateAddressVO.java b/src/main/java/org/springblade/modules/doorplateAddress/vo/DoorplateAddressVO.java
index 1430d3e..50574a1 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/vo/DoorplateAddressVO.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/vo/DoorplateAddressVO.java
@@ -41,5 +41,10 @@
*/
private Integer isJur;
+ /**
+ * 社区编号
+ */
+ private String communityCode;
+
}
diff --git a/src/main/java/org/springblade/modules/place/entity/PlaceDoorEntity.java b/src/main/java/org/springblade/modules/place/entity/PlaceDoorEntity.java
index 078115b..71bdc18 100644
--- a/src/main/java/org/springblade/modules/place/entity/PlaceDoorEntity.java
+++ b/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;
}
diff --git a/src/main/java/org/springblade/modules/place/entity/PlaceEntity.java b/src/main/java/org/springblade/modules/place/entity/PlaceEntity.java
index a8970c8..f24e4ec 100644
--- a/src/main/java/org/springblade/modules/place/entity/PlaceEntity.java
+++ b/src/main/java/org/springblade/modules/place/entity/PlaceEntity.java
@@ -56,6 +56,11 @@
*/
@ApiModelProperty(value = "门牌地址编码")
private String houseCode;
+ /**
+ * 门牌地址编码绑定
+ */
+ @ApiModelProperty(value = "门牌地址编码绑定")
+ private String houseCodeBinds;
/**
* 楼栋编码
diff --git a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
index 910effd..af67476 100644
--- a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
+++ b/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
--
Gitblit v1.9.3