From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送

---
 src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java |  111 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 80 insertions(+), 31 deletions(-)

diff --git a/src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java b/src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java
index 97c24f7..7fcfe2d 100644
--- a/src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java
+++ b/src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java
@@ -1,6 +1,7 @@
 package org.springblade.es.service;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.logging.log4j.util.Strings;
 import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
@@ -17,7 +18,10 @@
 import org.elasticsearch.client.indices.GetIndexRequest;
 import org.elasticsearch.index.query.BoolQueryBuilder;
 import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.*;
+import org.elasticsearch.index.reindex.BulkByScrollResponse;
+import org.elasticsearch.index.reindex.DeleteByQueryRequest;
+import org.elasticsearch.index.reindex.UpdateByQueryRequest;
+import org.elasticsearch.script.Script;
 import org.elasticsearch.script.ScriptType;
 import org.elasticsearch.search.SearchHit;
 import org.elasticsearch.search.SearchHits;
@@ -29,6 +33,8 @@
 import org.springblade.es.vo.EsParam;
 import org.springblade.modules.article.entity.Article;
 import org.springblade.modules.article.service.ArticleService;
+import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity;
+import org.springblade.modules.doorplateAddress.service.IDoorplateAddressService;
 import org.springblade.modules.grid.service.IGridRangeService;
 import org.springblade.modules.house.entity.HouseEntity;
 import org.springblade.modules.house.entity.HouseholdEntity;
@@ -43,7 +49,6 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
-import org.elasticsearch.script.Script;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -71,6 +76,9 @@
 
 	@Autowired
 	private IGridRangeService gridRangeService;
+
+	@Autowired
+	private IDoorplateAddressService doorplateAddressService;
 
 	@Value("${elasticsearch.sync}")
 	private boolean elasticsearchSync;
@@ -102,14 +110,24 @@
 	 * @return
 	 */
 	public boolean init(EsParam esParam) {
-		// 场所
-		initPlace(esParam);
-		// 通知文章
-		initArticle(esParam);
-		// 房屋
-		initHouse(esParam);
-		// 住户
-		initHousehold(esParam);
+		if (!Strings.isBlank(esParam.getTableName())) {
+			if (esParam.getTableName().equals("jczz_place")) {
+				// 场所
+				initPlace(esParam);
+			}
+			if (esParam.getTableName().equals("jczz_article")) {
+				// 通知文章
+				initArticle(esParam);
+			}
+			if (esParam.getTableName().equals("jczz_house")) {
+				// 房屋
+				initHouse(esParam);
+			}
+			if (esParam.getTableName().equals("jczz_household")) {
+				// 住户
+				initHousehold(esParam);
+			}
+		}
 		// 返回
 		return true;
 	}
@@ -157,9 +175,9 @@
 					// 刷新索引,确保文档可搜索
 					client.indices().refresh(new RefreshRequest(esParam.getIndexName()), RequestOptions.DEFAULT);
 				} catch (IOException e) {
-					e.printStackTrace();
+//					e.printStackTrace();
 				}
-				System.out.println("批量插入结果: " + !bulkResponse.hasFailures());
+//				System.out.println("批量插入结果: " + !bulkResponse.hasFailures());
 			}
 		}
 		// 返回
@@ -210,9 +228,9 @@
 					// 刷新索引,确保文档可搜索
 					client.indices().refresh(new RefreshRequest(esParam.getIndexName()), RequestOptions.DEFAULT);
 				} catch (IOException e) {
-					e.printStackTrace();
+//					e.printStackTrace();
 				}
-				System.out.println("批量插入结果: " + !bulkResponse.hasFailures());
+//				System.out.println("批量插入结果: " + !bulkResponse.hasFailures());
 			}
 		}
 		// 返回
@@ -245,6 +263,7 @@
 						"tableId", household.getId().toString(),
 						"tableName", "jczz_household",
 						"title", household.getName(),
+						"relationship", household.getRelationship(),
 						"name", household.getName(),
 						"phone", household.getPhoneNumber(),
 						"idCard", household.getIdCard(),
@@ -261,9 +280,9 @@
 					// 刷新索引,确保文档可搜索
 					client.indices().refresh(new RefreshRequest(esParam.getIndexName()), RequestOptions.DEFAULT);
 				} catch (IOException e) {
-					e.printStackTrace();
+//					e.printStackTrace();
 				}
-				System.out.println("批量插入结果: " + !bulkResponse.hasFailures());
+//				System.out.println("批量插入结果: " + !bulkResponse.hasFailures());
 			}
 		}
 		// 返回
@@ -312,9 +331,9 @@
 					// 刷新索引,确保文档可搜索
 					client.indices().refresh(new RefreshRequest(esParam.getIndexName()), RequestOptions.DEFAULT);
 				} catch (IOException e) {
-					e.printStackTrace();
+//					e.printStackTrace();
 				}
-				System.out.println("批量插入结果: " + !bulkResponse.hasFailures());
+//				System.out.println("批量插入结果: " + !bulkResponse.hasFailures());
 			}
 		}
 		// 返回
@@ -346,7 +365,7 @@
 					"articleType", article.getArticleType()
 				);
 			} catch (IOException e) {
-				e.printStackTrace();
+//				e.printStackTrace();
 			}
 		}
 	}
@@ -372,7 +391,7 @@
 					"communityCode", placeService.getCommunityCode(place.getId())
 				);
 			} catch (IOException e) {
-				e.printStackTrace();
+//				e.printStackTrace();
 			}
 		}
 	}
@@ -398,7 +417,7 @@
 					"communityCode", houseService.getCommunityCode(house.getId())
 				);
 			} catch (IOException e) {
-				e.printStackTrace();
+//				e.printStackTrace();
 			}
 		}
 	}
@@ -412,6 +431,10 @@
 	@Async
 	public void addHousehold(EsParam esParam, HouseholdEntity household) {
 		if (elasticsearchSync) {
+			// 如果关系为空,则默认为19
+			if (household.getRelationship() == null) {
+				household.setRelationship(19);
+			}
 			try {
 				indexDocument(esParam.getIndexName(),
 					"tableId", household.getId().toString(),
@@ -420,13 +443,38 @@
 					"name", household.getName(),
 					"phone", household.getPhoneNumber(),
 					"idCard", household.getIdCard(),
-					"content", household.getCurrentAddress(),
+					"relationship", household.getRelationship().toString(),
+					"content", getAddress(household),
 					"communityCode", householdService.getCommunityCode(household.getId())
 				);
 			} catch (IOException e) {
-				e.printStackTrace();
+//				e.printStackTrace();
 			}
 		}
+	}
+
+	/**
+	 * 获取房屋地址
+	 * @param household
+	 * @return
+	 */
+	public String getAddress(HouseholdEntity household) {
+		if (!Strings.isBlank(household.getHouseCode())){
+			// 查询对应的房屋地址
+			QueryWrapper<DoorplateAddressEntity> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("address_code",household.getHouseCode());
+			List<DoorplateAddressEntity> list = doorplateAddressService.list(queryWrapper);
+			if (list.size()>0){
+				return list.get(0).getAddressName();
+			}
+			// 房屋查不到的情况
+			if (!Strings.isBlank(household.getCurrentAddress())){
+				return household.getCurrentAddress();
+			}
+		}else {
+			return household.getCurrentAddress();
+		}
+		return null;
 	}
 
 	/**
@@ -577,9 +625,9 @@
 
 					// 输出操作结果
 					boolean acknowledged = deleteResponse.isAcknowledged();
-					System.out.println("索引删除成功: " + acknowledged);
+//					System.out.println("索引删除成功: " + acknowledged);
 				} catch (IOException e) {
-					e.printStackTrace();
+//					e.printStackTrace();
 				}
 			}
 		}
@@ -597,7 +645,7 @@
 		try {
 			indexDocument(esParam.getIndexName(), str);
 		} catch (IOException e) {
-			e.printStackTrace();
+//			e.printStackTrace();
 		}
 		return true;
 	}
@@ -632,7 +680,7 @@
 				setHouseMap((HouseEntity) item, data);
 			}
 			if (esParam.getTableName().equals("jczz_household")) {
-				setHousehouldMap((HouseholdEntity) item, data);
+				setHouseholdMap((HouseholdEntity) item, data);
 			}
 			Map<String, Object> param = new HashMap<String, Object>();
 			param.put("data", data);
@@ -647,7 +695,7 @@
 				// 刷新索引,确保文档可搜索
 				client.indices().refresh(new RefreshRequest(esParam.getIndexName()), RequestOptions.DEFAULT);
 			} catch (IOException e) {
-				e.printStackTrace();
+//				e.printStackTrace();
 			}
 		}
 	}
@@ -699,14 +747,15 @@
 	 * @param item
 	 * @param data
 	 */
-	private void setHousehouldMap(HouseholdEntity item, Map<String, Object> data) {
+	private void setHouseholdMap(HouseholdEntity item, Map<String, Object> data) {
 		data.put("communityCode",householdService.getCommunityCode(item.getId()));
 		data.put("tableId",item.getId());
 		data.put("title",item.getName());
+		data.put("relationship",item.getRelationship());
 		data.put("name",item.getName());
 		data.put("phone",item.getPhoneNumber());
 		data.put("idCard",item.getIdCard());
-		data.put("content",item.getCurrentAddress());
+		data.put("content",getAddress(item));
 	}
 
 	/**
@@ -730,7 +779,7 @@
 				BulkByScrollResponse bulkResponse =
 					client.deleteByQuery(deleteByQueryRequest, RequestOptions.DEFAULT);
 			} catch (IOException e) {
-				e.printStackTrace();
+//				e.printStackTrace();
 			}
 		}
 		return true;

--
Gitblit v1.9.3