From d689bfe3c6eb74384ea8cf3b5db3e924f05d5677 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sat, 11 May 2024 12:00:34 +0800
Subject: [PATCH] 场所信息导入修改

---
 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java |  123 ++++++++++++++++++++++++++--------------
 1 files changed, 79 insertions(+), 44 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 b38339a..c43c12a 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
@@ -32,6 +32,7 @@
 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.BeanUtil;
 import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.modules.category.entity.CategoryEntity;
 import org.springblade.modules.category.service.ICategoryService;
@@ -353,6 +354,18 @@
 				placeVO.setIsScene(2);
 			}
 		}
+	}
+
+	/**
+	 * 房屋绑定处理
+	 * @param placeEntity
+	 */
+	public void houseCodeBindHandle(PlaceEntity placeEntity) {
+		PlaceVO placeVO = new PlaceVO();
+		placeVO.setId(placeEntity.getId());
+		placeVO.setHouseCodeBinds(placeEntity.getHouseCodeBinds());
+		// 绑定
+		houseCodeBindHandle(placeVO);
 	}
 
 	/**
@@ -998,37 +1011,25 @@
 	@Override
 	public void importPlace(List<PlaceExcel> data, Boolean isCovered) {
 		for (PlaceExcel placeExcel : data) {
+			PlaceEntity placeEntity = Objects.requireNonNull(BeanUtil.copy(placeExcel, PlaceEntity.class));
 			// 判断是否存在,不存在则插入,否则不操作
 			QueryWrapper<PlaceEntity> wrapper = new QueryWrapper<>();
 			wrapper.eq("is_deleted", 0)
 				.eq("house_code", placeExcel.getHouseCode());
 			PlaceEntity one = getOne(wrapper);
+			Long userId = updateUser(placeExcel);
 			if (null == one) {
-				Long userId = updateUser(placeExcel);
 				// 插入场所
-				PlaceVO placeEntity = new PlaceVO();
 				String[] split = placeExcel.getHouseCode().split(",");
 				placeEntity.setHouseCode(split[0]);
 				placeEntity.setHouseCodeBinds(placeExcel.getHouseCode());
 				placeEntity.setPrincipalUserId(userId);
-				placeEntity.setPrincipal(placeExcel.getName());
-				placeEntity.setPrincipalPhone(placeExcel.getPhoneNumber());
-				placeEntity.setCreateTime(new Date());
-				placeEntity.setCreateUser(AuthUtil.getUserId());
-				placeEntity.setUpdateTime(new Date());
-				placeEntity.setUpdateUser(AuthUtil.getUserId());
 				// 默认为未完善
 				placeEntity.setStatus(1);
 				// 是否现场采集  1:是  2:否
 				placeEntity.setIsScene(1);
-				// 来源 1:地址总表  2:国控采集 3:商超
-				if (!Strings.isBlank(placeExcel.getHouseCode())) {
-					placeEntity.setSource(1);
-				} else {
-					placeEntity.setSource(2);
-					// 并生成36位的houseCode
-					placeEntity.setHouseCode(IdUtils.getIdBy36());
-				}
+				// houseCode 关联处理 来源 1:地址总表  2:国控采集 3:商超
+				houseCodeHandle(placeExcel, placeEntity);
 				// 九小场所类型处理
 				if (!Strings.isBlank(placeExcel.getNineType())) {
 					placeEntity.setIsNine(1);
@@ -1039,7 +1040,7 @@
 				// 新增
 				save(placeEntity);
 				// 保存详情
-				savePlaceExtAndTaskInfo(placeEntity);
+				savePlaceExt(placeEntity,placeExcel);
 				// 场所标签信息处理
 				if (!Strings.isBlank(placeExcel.getLabelCode())) {
 					PlaceVO placeVO = new PlaceVO();
@@ -1051,39 +1052,29 @@
 				// 房屋编号绑定处理
 				houseCodeBindHandle(placeEntity);
 			} else {
-				// 更新
-				Long userId = updateUser(placeExcel);
-				// 插入场所
-				PlaceVO placeEntity = new PlaceVO();
-				placeEntity.setId(one.getId());
-				placeEntity.setHouseCode(placeExcel.getHouseCode());
-				placeEntity.setHouseCodeBinds(placeExcel.getHouseCode());
-				placeEntity.setPrincipalUserId(userId);
-				placeEntity.setPrincipal(placeExcel.getName());
-				placeEntity.setPrincipalPhone(placeExcel.getPhoneNumber());
-				placeEntity.setCreateTime(new Date());
-				placeEntity.setCreateUser(AuthUtil.getUserId());
-				placeEntity.setUpdateTime(new Date());
-				placeEntity.setUpdateUser(AuthUtil.getUserId());
+				// 更新场所
+				one.setPrincipalUserId(userId);
+				one.setPrincipal(placeExcel.getPrincipal());
+				one.setPrincipalPhone(placeExcel.getPrincipalPhone());
 				// 默认为未完善
-				placeEntity.setStatus(1);
+				one.setStatus(1);
 				// 是否现场采集  1:是  2:否
-				placeEntity.setIsScene(1);
+				one.setIsScene(1);
 				// 来源 1:地址总表  2:国控采集 3:商超
-				placeEntity.setSource(1);
+				one.setSource(1);
 				// 九小场所类型处理
 				if (!Strings.isBlank(placeExcel.getNineType())) {
-					placeEntity.setIsNine(1);
-					placeEntity.setNineType(Integer.parseInt(placeExcel.getNineType()));
+					one.setIsNine(1);
+					one.setNineType(Integer.parseInt(placeExcel.getNineType()));
 				}
 				// 网格绑定处理
-				importGridHandle(placeExcel, placeEntity);
+				importGridHandle(placeExcel, one);
 				// 更新
-				updateById(placeEntity);
+				updateById(one);
 				// 场所标签信息处理
 				if (!Strings.isBlank(placeExcel.getLabelCode())) {
 					PlaceVO placeVO = new PlaceVO();
-					placeVO.setId(placeEntity.getId());
+					placeVO.setId(one.getId());
 					placeVO.setLabel(placeExcel.getLabelCode());
 					// 处理
 					placeLabelBind(placeVO);
@@ -1093,12 +1084,56 @@
 	}
 
 	/**
+	 * 保存场所详情信息
+	 * @param placeEntity
+	 * @param placeExcel
+	 */
+	@Transactional(rollbackFor = Exception.class)
+	public void savePlaceExt(PlaceEntity placeEntity,PlaceExcel placeExcel) {
+		PlaceVO placeVO = new PlaceVO();
+		placeVO.setId(placeEntity.getId());
+		PlaceExtEntity placeExtEntity = new PlaceExtEntity();
+		placeExtEntity.setLegalPerson(placeExcel.getLegalPerson());
+		placeExtEntity.setLegalTel(placeExcel.getLegalTel());
+		placeExtEntity.setLegalIdCard(placeExcel.getLegalIdCard());
+		// 设置详情
+		placeVO.setPlaceExtEntity(placeExtEntity);
+		// 保存详情
+		savePlaceExtAndTaskInfo(placeVO);
+	}
+
+	/**
+	 *
+	 * @param placeExcel
+	 * @param placeEntity
+	 */
+	public void houseCodeHandle(PlaceExcel placeExcel, PlaceEntity placeEntity) {
+		if (!Strings.isBlank(placeExcel.getHouseCode())) {
+			placeEntity.setSource(1);
+			// 设置经纬度及地址
+			DoorplateAddressEntity doorplateAddressEntity
+				= doorplateAddressService.getOne(Wrappers.<DoorplateAddressEntity>lambdaQuery().eq(DoorplateAddressEntity::getAddressCode, placeExcel.getHouseCode()));
+			if (null!=doorplateAddressEntity){
+				placeEntity.setLng(doorplateAddressEntity.getX());
+				placeEntity.setLat(doorplateAddressEntity.getY());
+				placeEntity.setLocation(doorplateAddressEntity.getAddressName());
+				placeEntity.setBuildingCode(doorplateAddressEntity.getBuildingCode());
+				placeEntity.setAoiCode(doorplateAddressEntity.getAoiCode());
+			}
+		} else {
+			placeEntity.setSource(2);
+			// 并生成36位的houseCode
+			placeEntity.setHouseCode(IdUtils.getIdBy36());
+		}
+	}
+
+	/**
 	 * 导入是网格数据绑定处理
 	 *
 	 * @param placeExcel
 	 * @param placeEntity
 	 */
-	private void importGridHandle(PlaceExcel placeExcel, PlaceVO placeEntity) {
+	private void importGridHandle(PlaceExcel placeExcel, PlaceEntity placeEntity) {
 		if (!Strings.isBlank(placeExcel.getCommunityName()) &&
 			!Strings.isBlank(placeExcel.getGridName())) {
 			// 查询对应的网格信息
@@ -1126,11 +1161,11 @@
 	 * @return
 	 */
 	public Long updateUser(PlaceExcel placeExcel) {
-		if (!Strings.isBlank(placeExcel.getPhoneNumber()) &&
-			!Strings.isBlank(placeExcel.getName())) {
+		if (!Strings.isBlank(placeExcel.getPrincipal()) &&
+			!Strings.isBlank(placeExcel.getPrincipalPhone())) {
 			PlaceVO placeVO = new PlaceVO();
-			placeVO.setPrincipal(placeExcel.getPhoneNumber());
-			placeVO.setPrincipalPhone(placeExcel.getName());
+			placeVO.setPrincipal(placeExcel.getPrincipal());
+			placeVO.setPrincipalPhone(placeExcel.getPrincipalPhone());
 			// 更新场所负责人
 			User user = bindUserHandle(placeVO);
 			// 返回

--
Gitblit v1.9.3