From e79f50dd7667bd653ca4a128147d5edeca64cbad Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 29 Jan 2024 18:13:19 +0800
Subject: [PATCH] 场所新增九小类型,是否阵地及阵地类型字段

---
 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java |   90 +++++++++++++++++++++++++++++++++------------
 1 files changed, 66 insertions(+), 24 deletions(-)

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 29be09c..52fc4df 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
@@ -107,7 +107,14 @@
 	public IPage<PlaceVO> selectPlacePage(IPage<PlaceVO> page, PlaceVO place) {
 		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
 		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
-		List<PlaceVO> placeVOS = baseMapper.selectPlacePage(page, place,regionChildCodesList,isAdministrator);
+		List<String> list = new ArrayList<>();
+		if (null!=place.getRoleName() && !place.getRoleName().equals("")){
+			if (place.getRoleName().equals("网格员")){
+				// 查询对应的房屋地址code
+				list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
+			}
+		}
+		List<PlaceVO> placeVOS = baseMapper.selectPlacePage(page, place,list,regionChildCodesList,isAdministrator);
 		// 返回
 		return page.setRecords(placeVOS);
 	}
@@ -171,8 +178,43 @@
 		gridBind(placeVO);
 		// 网格编号绑定场所-新
 		gridCodeBind(placeVO);
+		// 房屋编号绑定
+//		houseCodeBind(placeVO);
 		// 返回结果
 		return flag;
+	}
+
+	/**
+	 * 房屋绑定
+	 * @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) {
+				// 先查询对应的场所id
+				QueryWrapper<PlaceEntity> wrapper = new QueryWrapper<>();
+				wrapper.eq("house_code",code).eq("is_deleted",0);
+				PlaceEntity one = getOne(wrapper);
+				if (null!=one){
+					longs.add(one.getId());
+					// 删除对应的单个编号的场所
+					removeById(one.getId());
+				}
+			}
+			if (longs.size()>0) {
+				// 删除对应的详情
+				removePlaceExt(longs);
+				// 删除对应的标签绑定信息
+				removePlaceLabel(longs);
+			}
+		}else {
+			// 一对一,暂时不处理,后续考虑需加绑定关系表
+		}
 	}
 
 	/**
@@ -592,36 +634,36 @@
 		// 查询场所信息
 		PlaceVO placeVO = baseMapper.getDetail(place);
 		// 门牌信息
-		if (null!= place.getAddressType() && place.getAddressType()==4){
-			if (null != placeVO) {
+		if (null != placeVO) {
+			if (null != place.getAddressType() && place.getAddressType() == 4) {
 				// 查询地址编码信息(社区派出所相关信息)
 				DoorplateAddressEntity addressEntity = placeRelService.getDoorplateAddressEntity(placeVO);
 				placeVO.setDoorplateAddressEntity(addressEntity);
 				// 查询网格信息--商超
 				placeVO.setGrid(gridService.getGridDetailByParam(placeVO));
-			}
-		}else {
-			// 管理后台查询赋值颜色
-			if (placeVO.getPlacePoiLabelVOList().size()>0){
-				PlacePoiLabelVO placePoiLabelVO = placeVO.getPlacePoiLabelVOList().get(0);
-				if (!Strings.isBlank(placePoiLabelVO.getColor())){
-					placeVO.setColor(placePoiLabelVO.getColor());
+			} else {
+				// 管理后台查询赋值颜色
+				if (placeVO.getPlacePoiLabelVOList().size() > 0) {
+					PlacePoiLabelVO placePoiLabelVO = placeVO.getPlacePoiLabelVOList().get(0);
+					if (!Strings.isBlank(placePoiLabelVO.getColor())) {
+						placeVO.setColor(placePoiLabelVO.getColor());
+					}
 				}
+				// 查询地址门牌信息
+				QueryWrapper<DoorplateAddressEntity> wrapper = new QueryWrapper<>();
+				wrapper.eq("address_code", placeVO.getHouseCode());
+				List<DoorplateAddressEntity> list = doorplateAddressService.list(wrapper);
+				if (list.size() > 0) {
+					placeVO.setDoorplateAddressEntity(list.get(0));
+					placeVO.setNeiCode(list.get(0).getNeiCode());
+				}
+				// 查询场所对应的网格数据
+				placeVO.setGrid(gridService.getPlaceGridDetailByHouseCode(placeVO.getHouseCode()));
+				// 设置详情信息
+				QueryWrapper<PlaceExtEntity> queryWrapper = new QueryWrapper<>();
+				queryWrapper.eq("is_deleted", 0).eq("place_id", placeVO.getId());
+				placeVO.setPlaceExtEntity(placeExtService.getOne(queryWrapper));
 			}
-			// 查询地址门牌信息
-			QueryWrapper<DoorplateAddressEntity> wrapper = new QueryWrapper<>();
-			wrapper.eq("address_code", placeVO.getHouseCode());
-			List<DoorplateAddressEntity> list = doorplateAddressService.list(wrapper);
-			if (list.size() > 0) {
-				placeVO.setDoorplateAddressEntity(list.get(0));
-				placeVO.setNeiCode(list.get(0).getNeiCode());
-			}
-			// 查询场所对应的网格数据
-			placeVO.setGrid(gridService.getPlaceGridDetailByHouseCode(placeVO.getHouseCode()));
-			// 设置详情信息
-			QueryWrapper<PlaceExtEntity> queryWrapper = new QueryWrapper<>();
-			queryWrapper.eq("is_deleted",0).eq("place_id",placeVO.getId());
-			placeVO.setPlaceExtEntity(placeExtService.getOne(queryWrapper));
 		}
 		// 返回
 		return placeVO;

--
Gitblit v1.9.3