From 97b423c06dccceee56b820912171257bef4d2b0a Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Sat, 11 May 2024 17:34:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java |  123 +++++++++++++++++++-----------
 src/main/resources/application-dev.yml                                         |   44 ++++-------
 src/main/java/org/springblade/modules/place/excel/PlaceExcel.java              |   42 +++++++++-
 src/main/resources/application-test.yml                                        |   13 +-
 4 files changed, 137 insertions(+), 85 deletions(-)

diff --git a/src/main/java/org/springblade/modules/place/excel/PlaceExcel.java b/src/main/java/org/springblade/modules/place/excel/PlaceExcel.java
index 0215ef1..518cf6e 100644
--- a/src/main/java/org/springblade/modules/place/excel/PlaceExcel.java
+++ b/src/main/java/org/springblade/modules/place/excel/PlaceExcel.java
@@ -39,21 +39,51 @@
 	@ExcelProperty( "网格名称")
 	private String gridName;
 
-	/** 经营者 */
+	/** 场所负责人 */
 	@ColumnWidth(15)
-	@ExcelProperty( "经营者")
-	private String name;
+	@ExcelProperty( "场所负责人")
+	private String principal;
 
-	/** 联系电话 */
+	/** 场所负责人联系电话 */
 	@ColumnWidth(15)
-	@ExcelProperty( "联系电话")
-	private String phoneNumber;
+	@ExcelProperty( "场所负责人联系电话")
+	private String principalPhone;
+
+	/** 企业法定代表 */
+	@ColumnWidth(15)
+	@ExcelProperty( "企业法定代表")
+	private String legalPerson;
+
+	/** 法定代表联系电话 */
+	@ColumnWidth(15)
+	@ExcelProperty( "法定代表联系电话")
+	private String legalTel;
+
+	/** 企业法定代表身份证号码 */
+	@ColumnWidth(15)
+	@ExcelProperty( "企业法定代表身份证号码")
+	private String legalIdCard;
 
 	/** 企业(店铺)名称 */
 	@ColumnWidth(25)
 	@ExcelProperty( "企业(店铺)名称")
 	private String placeName;
 
+	/** 地址 */
+	@ColumnWidth(25)
+	@ExcelProperty( "地址")
+	private String location;
+
+	/** 经度 */
+	@ColumnWidth(25)
+	@ExcelProperty( "经度")
+	private String lng;
+
+	/** 纬度 */
+	@ColumnWidth(25)
+	@ExcelProperty( "纬度")
+	private String lat;
+
 	/** 九小场所类型 */
 	@ExcelProperty( value = "九小场所类型",converter = ExcelDictConverter.class)
 	@ExcelDictItemLabel(type = "nineType")
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);
 			// 返回
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index fa413bc..4ee41b7 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -2,6 +2,8 @@
 spring:
   redis:
     ##redis 单机环境配置
+    ##将docker脚本部署的redis服务映射为宿主机ip
+    ##生产环境推荐使用阿里云高可用redis服务并设置密码
     host: 127.0.0.1
     port: 6379
     password:
@@ -12,26 +14,9 @@
     #  nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003
     #  commandTimeout: 5000
   datasource:
-    # MySql
-    url: jdbc:mysql://220.176.210.217:3307/jczz_dev?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+    url: jdbc:mysql://127.0.0.1:3308/jczz_test?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
     username: root
-    password: 1qaz@WSX3edc
-    # PostgreSQL
-    #url: jdbc:postgresql://127.0.0.1:5432/bladex_boot
-    #username: postgres
-    #password: 123456
-    # Oracle
-    #url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
-    #username: BLADEX_BOOT
-    #password: BLADEX_BOOT
-    # SqlServer
-    #url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex_boot
-    #username: bladex_boot
-    #password: bladex_boot
-    # DaMeng
-    #url: jdbc:dm://127.0.0.1:5236/BLADEX_BOOT?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
-    #username: BLADEX_BOOT
-    #password: BLADEX_BOOT
+    password: root
 
 #第三方登陆
 social:
@@ -44,8 +29,10 @@
   lock:
     ##是否启用分布式锁
     enabled: false
-    ##redis服务地址
+    ##将docker脚本部署的redis服务映射为宿主机ip
+    ##生产环境推荐使用阿里云高可用redis服务并设置密码
     address: redis://127.0.0.1:6379
+    password: 123456
   #本地文件上传
   file:
     remote-mode: true
@@ -69,13 +56,14 @@
 
 # binlog listener
 binlog:
-  datasource: # 订阅binlog数据库连接信息,ip,端口,用户密码(用户必须要有权限)
+  # 源数据库
+  datasource:
     host: 127.0.0.1
-    port: 3306
+    port: 3308
     username: root
-    password: 1qaz@WSX3edc
-  db: jczz # 监听数据库
-  table: jczz_house,jczz_household,jczz_place
+    password: root
+  db: jczz_test
+  table: jczz_house,jczz_household,jczz_place,jczz_place_ext,blade_attach_data
   enabled: false
   # 目标数据库
   from:
@@ -87,6 +75,6 @@
 #es
 elasticsearch:
   enabled: false
-  host: localhost
-  sync: true
-  indexName: jczz
+  host: 127.0.0.1
+  sync: false
+  indexName: test
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index 39a5c96..35a7d54 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -14,9 +14,9 @@
     #  nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003
     #  commandTimeout: 5000
   datasource:
-    url: jdbc:mysql://127.0.0.1:3308/jczz_test?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+    url: jdbc:mysql://172.16.50.240:3306/jczz_test?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
     username: root
-    password: root
+    password: 1qaz@WSX3edc
 
 #第三方登陆
 social:
@@ -58,10 +58,10 @@
 binlog:
   # 源数据库
   datasource:
-    host: 127.0.0.1
-    port: 3308
+    host: 172.16.50.240
+    port: 3306
     username: root
-    password: root
+    password: 1qaz@WSX3edc
   db: jczz_test
   table: jczz_house,jczz_household,jczz_place,jczz_place_ext,blade_attach_data
   enabled: false
@@ -71,10 +71,9 @@
       url: jdbc:mysql://106.225.193.35:3306/srjw?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
       username: root
       password: HCyj@2022
-
 #es
 elasticsearch:
   enabled: false
   host: 127.0.0.1
-  sync: true
+  sync: false
   indexName: test

--
Gitblit v1.9.3