From 47712cc6cd4d52fcd1dde44e2a400ccbb9c6ae7a Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 12 Apr 2024 15:20:49 +0800
Subject: [PATCH] 民警网格区域查询合并,网格员区域树查询修改,解决不显示网格问题

---
 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java |  112 ++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 85 insertions(+), 27 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 13cae12..82510d0 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
@@ -46,7 +46,9 @@
 import org.springblade.modules.house.entity.HouseholdEntity;
 import org.springblade.modules.house.entity.UserHouseLabelEntity;
 import org.springblade.modules.house.service.IHouseholdService;
+import org.springblade.modules.house.vo.HouseholdVO;
 import org.springblade.modules.label.entity.LabelEntity;
+import org.springblade.modules.partyOrganization.vo.PartyOrganizationVO;
 import org.springblade.modules.place.entity.*;
 import org.springblade.modules.place.excel.NinePlaceExcel;
 import org.springblade.modules.place.excel.PlaceAndRelExcel;
@@ -227,11 +229,49 @@
 	private void savePlacePractitioner(PlaceVO placeVO) {
 		if (placeVO.getPlacePractitioner() != null) {
 			IPlacePractitionerService practitionerService = SpringUtil.getBean(IPlacePractitionerService.class);
-			List<PlacePractitionerEntity> placePractitioner = placeVO.getPlacePractitioner();
-			for (PlacePractitionerEntity placePractitionerEntity : placePractitioner) {
+			// 查询对应已存在的租户
+			QueryWrapper<PlacePractitionerEntity> wrapper = new QueryWrapper<>();
+			wrapper.eq("place_id", placeVO.getId()).eq("is_deleted",0);
+			List<PlacePractitionerEntity> oldList = practitionerService.list(wrapper);
+			// 取出从业人员信息
+			List<PlacePractitionerEntity> placePractitionerList = placeVO.getPlacePractitioner();
+			for (PlacePractitionerEntity placePractitionerEntity : placePractitionerList) {
 				placePractitionerEntity.setPlaceId(placeVO.getId());
 			}
-			practitionerService.saveOrUpdateBatch(placeVO.getPlacePractitioner());
+			// 申明新增,修改,删除集合
+			List<PlacePractitionerEntity> newList = new ArrayList<>();
+			List<PlacePractitionerEntity> addList = new ArrayList<>();
+			List<PlacePractitionerEntity> updateList = new ArrayList<>();
+			List<PlacePractitionerEntity> removeList = new ArrayList<>();
+			// 遍历设置数据
+			for (PlacePractitionerEntity placePractitionerEntity : placePractitionerList) {
+				if (null == placePractitionerEntity.getId()) {
+					// 新增
+					addList.add(placePractitionerEntity);
+				} else {
+					newList.add(placePractitionerEntity);
+				}
+			}
+			// 遍历去差集,判断是新增还是删除还是更新
+			// 取旧数据和新提交数据差集--删除
+			removeList = oldList.stream().filter(vo -> !newList.stream().map(e ->
+				e.getId()).collect(Collectors.toList()).contains(vo.getId())).collect(Collectors.toList());
+			// 取旧数据和新提交数据交集--更新
+			updateList = newList.stream().filter(vo -> oldList.stream().map(e ->
+				e.getId()).collect(Collectors.toList()).contains(vo.getId())).collect(Collectors.toList());
+
+			// 批量新增
+			if (addList.size() > 0) {
+				practitionerService.saveBatch(addList);
+			}
+			// 批量修改
+			if (updateList.size() > 0) {
+				practitionerService.updateBatchById(updateList);
+			}
+			// 批量删除
+			if (removeList.size() > 0) {
+				practitionerService.removeBatchByIds(removeList);
+			}
 		}
 	}
 
@@ -261,6 +301,7 @@
 	 *
 	 * @param placeVO
 	 */
+	@Override
 	public void jwGridCodeBind(PlaceVO placeVO) {
 		if (!Strings.isBlank(placeVO.getLng())) {
 			String point = "'POINT(" + placeVO.getLng() + " " + placeVO.getLat() + ")'";
@@ -494,7 +535,8 @@
 	 *
 	 * @param placeVO
 	 */
-	private void policePositionHandle(PlaceVO placeVO) {
+	@Override
+	public void policePositionHandle(PlaceVO placeVO) {
 		// 是民警且位置信息存在
 		if (!Strings.isBlank(placeVO.getLng())) {
 			//点坐标解析
@@ -875,6 +917,11 @@
 				QueryWrapper<PlaceExtEntity> queryWrapper = new QueryWrapper<>();
 				queryWrapper.eq("is_deleted", 0).eq("place_id", placeVO.getId());
 				placeVO.setPlaceExtEntity(placeExtService.getOne(queryWrapper));
+				// 查询从业人员
+				IPlacePractitionerService placePractitionerService = SpringUtils.getBean(IPlacePractitionerService.class);
+				List<PlacePractitionerEntity> entityList = placePractitionerService.list(Wrappers.<PlacePractitionerEntity>lambdaQuery()
+					.eq(PlacePractitionerEntity::getPlaceId, placeVO.getId()));
+				placeVO.setPlacePractitioner(entityList);
 				// 查询绑定的房屋
 				placeVO.setHouseBindList(baseMapper.getHouseBindMap(placeVO.getHouseCodeBinds()));
 			}
@@ -1392,28 +1439,7 @@
 
 	@Override
 	public List<NinePlaceExcel> export(PlaceVO place) {
-		String roleName = SpringUtils.getRequestParam("roleName");
-		String communityCode = SpringUtils.getRequestParam("communityCode");
-		if (!Strings.isBlank(communityCode)) {
-			// 校验社区编号是否合规
-			if (null != SpringUtils.getBean(IRegionService.class).getById(communityCode)) {
-				place.setCommunityCode(communityCode);
-			}
-		}
-		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
-		Integer isAdministrator = AuthUtil.isAdministrator() == true ? 1 : 2;
-		// 网格编号集合
-		List<String> gridCodeList = new ArrayList<>();
-		// 民警角色
-		if (!Strings.isBlank(roleName)) {
-			place.setRoleName(roleName);
-			if (roleName.equals("mj")) {
-				regionChildCodesList = SpringUtil.getBean(IPoliceAffairsGridService.class).getCommunityCodeListByUserId(AuthUtil.getUserId());
-			}
-			if (roleName.equals("wgy")) {
-				gridCodeList = SpringUtil.getBean(IGridService.class).getGridListByUserId(AuthUtil.getUserId());
-			}
-		}
+		CommonParamSet commonParamSet = new CommonParamSet<>().invoke(PlaceVO.class, place);
 		List<String> strings = new ArrayList<>();
 		if (null != place.getNineType()) {
 			QueryWrapper<DictBiz> queryWrapper = new QueryWrapper<>();
@@ -1428,7 +1454,11 @@
 				strings = list.stream().map(DictBiz::getDictKey).collect(Collectors.toList());
 			}
 		}
-		List<NinePlaceExcel> aa = baseMapper.export(place, gridCodeList, regionChildCodesList, isAdministrator, strings);
+		List<NinePlaceExcel> aa = baseMapper.export(place,
+			commonParamSet.getGridCodeList(),
+			commonParamSet.getRegionChildCodesList(),
+			commonParamSet.getIsAdministrator(),
+			strings);
 		IDictBizService bean = SpringUtils.getBean(IDictBizService.class);
 		List<DictBiz> nineType = bean.list(Wrappers.<DictBiz>lambdaQuery().eq(DictBiz::getCode, "nineType").eq(DictBiz::getIsDeleted, 0));
 		for (NinePlaceExcel ninePlaceExcel : aa) {
@@ -1544,4 +1574,32 @@
 		// 返回
 		return page.setRecords(placeVOS);
 	}
+
+	/**
+	 * 查询所有场所数据
+	 * @return
+	 */
+	@Override
+	public List<PlaceVO> getAllList(int i,int size) {
+		return baseMapper.getAllList(i,size);
+	}
+
+	/**
+	 * 查询所有场所数据总数
+	 * @return
+	 */
+	@Override
+	public int getAllListTotal() {
+		return baseMapper.getAllListTotal();
+	}
+
+	/**
+	 * 查询对应的社区编号
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public String getCommunityCode(Long id) {
+		return baseMapper.getCommunityCode(id);
+	}
 }

--
Gitblit v1.9.3