From 944a01d60ffd53ca3a3b87ccfcaedc096219aba2 Mon Sep 17 00:00:00 2001
From: whywhyo <1511349576@qq.com>
Date: 星期日, 17 九月 2023 23:42:47 +0800
Subject: [PATCH] 77777

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/EsSearchController.java |   45 ++
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java       |  129 +++++-
 ruoyi-admin/src/test/java/com/ruoyi/esTest.java                                  |    4 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java   |  106 +++++
 zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java   |  107 +++++
 zhang-content/src/main/java/com/ruoyi/service/impl/EsServiceImpl.java            |  124 ++++++
 /dev/null                                                                        |   71 ---
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java     |   86 ++++
 zhang-content/src/main/java/com/ruoyi/service/EsService.java                     |   23 +
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfCollectionServiceImpl.java  |  108 +++++
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java      |    9 
 ruoyi-admin/src/main/resources/application-druid.yml                             |    4 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfContactServiceImpl.java     |   99 +++++
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java      |  114 +++++
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfCleanServiceImpl.java       |  105 +++++
 15 files changed, 988 insertions(+), 146 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/EsSearchController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/EsSearchController.java
new file mode 100644
index 0000000..1a57cd7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/EsSearchController.java
@@ -0,0 +1,45 @@
+package com.ruoyi.web.controller.zhang;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
+import com.ruoyi.service.EsService;
+import org.springframework.data.elasticsearch.core.SearchHits;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Author Jinquan_Ou
+ * @Description
+ * @Date 2023-09-17 16:39
+ * @Version 1.0.0
+ **/
+@RestController
+@RequestMapping("/search")
+public class EsSearchController {
+
+    @Resource
+    EsService esService;
+
+    @GetMapping()
+    public AjaxResult search(String keyword){
+        List<EsModel> byCondition = esService.findByCondition(keyword);
+        return AjaxResult.success(byCondition);
+    }
+
+    @DeleteMapping
+    public AjaxResult deleteAllData(){
+        esService.deleteAllData();
+        return AjaxResult.success();
+    }
+
+    @GetMapping("/all")
+    public AjaxResult getAll(){
+        List<EsModel> modelList = esService.getAll();
+        return AjaxResult.success(modelList);
+    }
+}
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index ab100dc..b2e66b2 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -6,8 +6,8 @@
         druid:
             # 涓诲簱鏁版嵁婧�
             master:
-                #url: jdbc:mysql://47.93.189.255:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-                url: jdbc:mysql://localhost:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://47.93.189.255:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+#                url: jdbc:mysql://localhost:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
                 password: ZhangApp123!
 #                password: 123456
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/esTest.java b/ruoyi-admin/src/test/java/com/ruoyi/esTest.java
index 45355cf..597105a 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/esTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/esTest.java
@@ -9,7 +9,7 @@
 import com.ruoyi.domain.ZfEvent;
 import com.ruoyi.mapper.EsRepository;
 import com.ruoyi.service.ZfEventService;
-import com.ruoyi.service.esService;
+import com.ruoyi.service.EsService;
 import org.elasticsearch.client.IndicesClient;
 
 import org.junit.jupiter.api.Test;
@@ -22,7 +22,7 @@
 @SpringBootTest
 public class esTest {
     @Autowired
-    private esService ess;
+    private EsService ess;
 
     @Autowired
     private EsRepository resp;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java
index fdd5763..d13f7e5 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java
@@ -66,4 +66,13 @@
     @Field(type = FieldType.Text,analyzer = "ik_max_word")
     private String by5;
 
+    /** 澶囩敤6 */
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
+    private String by6;
+
+    /** 澶囩敤6 */
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
+    private String by7;
+
+
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/EsService.java b/zhang-content/src/main/java/com/ruoyi/service/EsService.java
new file mode 100644
index 0000000..09c31a0
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/EsService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.service;
+
+import com.ruoyi.common.core.domain.entity.EsModel;
+import org.springframework.data.elasticsearch.core.SearchHits;
+
+import java.util.List;
+
+public interface EsService {
+    //  鎻掑叆绱㈠紩
+    public int insertTable(EsModel esModel);
+
+    //
+    public List<EsModel> findByCondition(String con);
+
+    public EsModel findByCtId(Integer ctId,String ctTableName);
+
+    public void deleteById(String id);
+
+    void deleteAllData();
+
+    List<EsModel> getAll();
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/esService.java b/zhang-content/src/main/java/com/ruoyi/service/esService.java
deleted file mode 100644
index f41663e..0000000
--- a/zhang-content/src/main/java/com/ruoyi/service/esService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.ruoyi.service;
-
-import com.ruoyi.common.core.domain.entity.EsModel;
-
-import java.util.List;
-
-public interface esService {
-    //  鎻掑叆绱㈠紩
-    public int insertTable(EsModel esModel);
-
-    //
-    public List<EsModel> findByCondition(String con);
-}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/EsServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/EsServiceImpl.java
new file mode 100644
index 0000000..a2ffacc
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/EsServiceImpl.java
@@ -0,0 +1,124 @@
+package com.ruoyi.service.impl;
+
+import com.ruoyi.common.core.domain.entity.EsModel;
+import com.ruoyi.mapper.EsRepository;
+import com.ruoyi.service.EsService;
+
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.MultiMatchQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
+import org.springframework.data.elasticsearch.core.SearchHit;
+import org.springframework.data.elasticsearch.core.SearchHits;
+import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
+import org.springframework.data.elasticsearch.core.query.Query;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class EsServiceImpl implements EsService {
+    @Resource
+    private EsRepository esRepository;
+    @Resource
+    private ElasticsearchRestTemplate elasticsearchRestTemplate;
+    @Override
+    public int insertTable(EsModel esModel) {
+        try {
+            esRepository.save(esModel);
+           // esRepository.searchSimilar()
+        } catch (Exception e) {
+            System.out.println(e);
+            // throw new Exception("ES鏁版嵁鍚屾澶辫触锛岃鑱旂郴绠$悊鍛樺鐞嗭紒");
+        }
+        return 0;
+    }
+
+    //  鍏ㄦ枃妫�绱�
+    @Override
+    public List<EsModel> findByCondition(String con) {
+        List<EsModel> esm = new ArrayList<>();
+       // MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("title", title);
+        //澶氬瓧娈佃繘琛屽尮閰�
+//        MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(con, "ctName", "ctContent","remark",
+//                "by1","by2","by3","by4");
+        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
+        boolQueryBuilder.should(QueryBuilders.matchQuery("ctName",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("ctContent",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("remark",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by1",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by2",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by3",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by4",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by6",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by7",con));
+
+        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder()
+                .withQuery(boolQueryBuilder);
+        NativeSearchQuery nativeSearchQuery = nativeSearchQueryBuilder.build();
+
+        // 鎵ц鏌ヨ
+        SearchHits<EsModel> searchHits = elasticsearchRestTemplate.search(nativeSearchQuery,EsModel.class);
+        searchHits.getSearchHits().forEach(personSearchHit -> {
+            EsModel content = personSearchHit.getContent();
+            esm.add(content);
+        //    System.out.println(content);
+        });
+       // articleList.forEach(a-> System.out.println(a))
+
+        return esm;
+
+    }
+
+    //鏍规嵁mysql涓殑id鏌ユ壘淇℃伅
+    @Override
+    public EsModel findByCtId(Integer ctId, String ctTableName) {
+//        NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
+//                .withQuery(QueryBuilders.matchQuery("ctId", ctId)) // 鑷畾涔夋煡璇㈡潯浠�
+//                .withQuery(QueryBuilders.matchQuery("ctTableName", ctTableName)) // 鑷畾涔夋煡璇㈡潯浠�
+//                .build();
+        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
+        boolQueryBuilder.must(QueryBuilders.matchQuery("ctId", ctId));
+        boolQueryBuilder.must(QueryBuilders.matchQuery("ctTableName", ctTableName));
+
+        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder()
+                .withQuery(boolQueryBuilder);
+        NativeSearchQuery nativeSearchQuery = nativeSearchQueryBuilder.build();
+
+        return Objects.requireNonNull(elasticsearchRestTemplate.searchOne(nativeSearchQuery, EsModel.class)).getContent();
+
+    }
+
+    @Override
+    public void deleteById(String id) {
+        esRepository.deleteById(id);
+    }
+
+    @Override
+    public void deleteAllData() {
+        esRepository.deleteAll();
+    }
+
+    @Override
+    public List<EsModel> getAll() {
+
+        ArrayList<EsModel> esModels = new ArrayList<>();
+
+        // 鏋勫缓鏌ヨ璇锋眰
+        SearchHits<EsModel> searchHits = elasticsearchRestTemplate.search(Query.findAll(), EsModel.class,IndexCoordinates.of("allsearchdata"));
+
+        Iterator<SearchHit<EsModel>> iterator = searchHits.stream().iterator();
+        while (iterator.hasNext()){
+            esModels.add(iterator.next().getContent());
+        }
+        // 杩斿洖鏌ヨ缁撴灉
+        return esModels;
+    }
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java
index c9bbfa2..9a06fa0 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.MapUtils;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -13,17 +14,19 @@
 import com.ruoyi.constant.MenuAuthority;
 import com.ruoyi.domain.*;
 import com.ruoyi.mapper.ZfPropertyMapper;
-import com.ruoyi.service.IZfPropertyService;
-import com.ruoyi.service.ZAuthorityService;
-import com.ruoyi.service.ZInfoUserService;
-import com.ruoyi.service.ZfLogService;
+import com.ruoyi.service.*;
 import com.ruoyi.util.ArraysUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
@@ -53,6 +56,12 @@
 
     @Resource
     ZfPropertyMapper zfPropertyMapper;
+    
+    @Resource
+    EsService esService;
+    
+    @Resource
+    RestHighLevelClient restHighLevelClient;
 
 
 //    private LambdaQueryWrapper<ZfProperty> buildCondition(ZfProperty zfProperty) {
@@ -378,6 +387,23 @@
         }
 
         if (save(zfProperty)) {
+
+            EsModel esModel = new EsModel();
+            Integer inte = zfProperty.getId().intValue();
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            esModel.setId(uuid);
+            esModel.setCtId(Long.valueOf(inte));
+            esModel.setCtTableName("瀹跺涵璧勪骇");
+            esModel.setBy1(zfProperty.getType());
+            esModel.setBy2(zfProperty.getTitle());
+            esModel.setBy3(zfProperty.getLocation());
+            esModel.setBy4(zfProperty.getHolder());
+            esModel.setBy5("/family/zfProperty");
+            esModel.setBy6(zfProperty.getAddress());
+            esModel.setRemark(zfProperty.getRemark());
+            //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+            esService.insertTable(esModel);
+            
             return AjaxResult.success();
         } else {
             return AjaxResult.error();
@@ -411,6 +437,66 @@
         zfLogService.save(zfLog);
 
         if(updateById(zfProperty)){
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            ZfProperty dataById = getById(zfProperty.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esService.findByCtId(dataById.getId().intValue(), "瀹跺涵璧勪骇");
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+            if(zfProperty.getType()!=null){
+                newModel.setBy1(zfProperty.getType());
+            }else {
+                newModel.setBy1(dataById.getType());
+            }
+
+            if(zfProperty.getTitle()!=null){
+                newModel.setBy2(zfProperty.getTitle());
+            }else {
+                newModel.setBy2(dataById.getTitle());
+            }
+
+            if(zfProperty.getLocation()!=null){
+                newModel.setBy3(zfProperty.getLocation());
+            }else {
+                newModel.setBy3(dataById.getLocation());
+            }
+
+            if(zfProperty.getHolder()!=null){
+                newModel.setBy4(zfProperty.getHolder());
+            }else {
+                newModel.setBy4(dataById.getHolder());
+            }
+
+            if(zfProperty.getAddress()!=null){
+                newModel.setBy6(zfProperty.getAddress());
+            }else {
+                newModel.setBy6(dataById.getAddress());
+            }
+            
+            if(zfProperty.getRemark()!=null){
+                newModel.setRemark(zfProperty.getRemark());
+            }else {
+                newModel.setRemark(dataById.getRemark());
+            }
+
+
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by1",newModel.getBy1(),
+                    "by2",newModel.getBy2(),
+                    "by3",newModel.getBy3(),
+                    "by4",newModel.getBy4(),
+                    "by6",newModel.getBy6(),
+                    "remark",newModel.getRemark()
+            );
+
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
@@ -436,7 +522,20 @@
             }
         }
 
+        List<ZfProperty> zfPropertys = listByIds(Arrays.asList(ids));
+
         if (zfPropertyService.removeByIds(Arrays.asList(ids))) {
+
+            //鍒犻櫎es涓殑鏁版嵁
+            zfPropertys.stream().forEach(zfProperty -> {
+                EsModel esModel = esService.findByCtId(zfProperty.getId().intValue(), "瀹跺涵璧勪骇");
+                DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+                try {
+                    restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            });
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCleanServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCleanServiceImpl.java
index 4b73ee4..a09327c 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCleanServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCleanServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.MapUtils;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -14,23 +15,22 @@
 
 import com.ruoyi.domain.ZfClean;
 import com.ruoyi.mapper.ZfCleanMapper;
-import com.ruoyi.service.ZAuthorityService;
-import com.ruoyi.service.ZInfoUserService;
-import com.ruoyi.service.ZfCleanService;
+import com.ruoyi.service.*;
 
-import com.ruoyi.service.ZfLogService;
 import com.ruoyi.util.ArraysUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.ruoyi.constant.MenuAuthority.*;
@@ -58,6 +58,12 @@
 
     @Resource
     ZfLogService zfLogService;
+    
+    @Resource
+    EsService esService;
+    
+    @Resource
+    RestHighLevelClient restHighLevelClient;
 
     private LambdaQueryWrapper<ZfClean> buildCondition(ZfClean zfClean,List<Long> familyIdList) {
         LambdaQueryWrapper<ZfClean> lqw = new LambdaQueryWrapper<>();
@@ -373,6 +379,22 @@
         }
 
         if (save(zfClean)) {
+            EsModel esModel = new EsModel();
+            Integer inte = zfClean.getId().intValue();
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            esModel.setId(uuid);
+            esModel.setCtId(Long.valueOf(inte));
+            esModel.setCtTableName("淇濇磥涓庢敹绾�");
+            esModel.setBy1(zfClean.getType());
+            esModel.setBy2(zfClean.getMethod());
+            esModel.setBy3(zfClean.getPlace());
+            esModel.setBy4(zfClean.getSuitable());
+            esModel.setBy5("/family/zfClean");
+            esModel.setRemark(zfClean.getRemark());
+            //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+            esService.insertTable(esModel);
+            
+            
             return AjaxResult.success();
         } else {
             return AjaxResult.error();
@@ -464,6 +486,60 @@
 
 
         if(updateById(zfClean)){
+
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            ZfClean dataById = getById(zfClean.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esService.findByCtId(dataById.getId().intValue(), "淇濇磥涓庢敹绾�");
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+            if(zfClean.getType()!=null){
+                newModel.setBy1(zfClean.getType());
+            }else {
+                newModel.setBy1(dataById.getType());
+            }
+
+            if(zfClean.getMethod()!=null){
+                newModel.setBy2(zfClean.getMethod());
+            }else {
+                newModel.setBy2(dataById.getMethod());
+            }
+
+            if(zfClean.getPlace()!=null){
+                newModel.setBy3(zfClean.getPlace());
+            }else {
+                newModel.setBy3(dataById.getPlace());
+            }
+
+            if(zfClean.getSuitable()!=null){
+                newModel.setBy4(zfClean.getSuitable());
+            }else {
+                newModel.setBy4(dataById.getSuitable());
+            }
+
+            if(zfClean.getRemark()!=null){
+                newModel.setRemark(zfClean.getRemark());
+            }else {
+                newModel.setRemark(dataById.getRemark());
+            }
+
+
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by1",newModel.getBy1(),
+                    "by2",newModel.getBy2(),
+                    "by3",newModel.getBy3(),
+                    "by4",newModel.getBy4(),
+                    "remark",newModel.getRemark()
+            );
+
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
@@ -489,7 +565,20 @@
             }
         }
 
+        List<ZfClean> zfCleans = listByIds(Arrays.asList(ids));
+
         if (zfCleanService.removeByIds(Arrays.asList(ids))) {
+
+            //鍒犻櫎es涓殑鏁版嵁
+            zfCleans.stream().forEach(zfClean -> {
+                EsModel esModel = esService.findByCtId(zfClean.getId().intValue(), "淇濇磥涓庢敹绾�");
+                DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+                try {
+                    restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            });
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCollectionServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCollectionServiceImpl.java
index 415f1c4..95c6744 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCollectionServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCollectionServiceImpl.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.core.JsonParser;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.MapUtils;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -16,17 +17,19 @@
 import com.ruoyi.domain.ZfCollection;
 import com.ruoyi.domain.ZfCollection;
 import com.ruoyi.mapper.ZfCollectionMapper;
-import com.ruoyi.service.ZAuthorityService;
-import com.ruoyi.service.ZInfoUserService;
-import com.ruoyi.service.ZfCollectionService;
-import com.ruoyi.service.ZfLogService;
+import com.ruoyi.service.*;
 import com.ruoyi.util.ArraysUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -59,6 +62,12 @@
 
     @Resource
     ZfLogService zfLogService;
+
+    @Resource
+    EsService esService;
+
+    @Resource
+    RestHighLevelClient restHighLevelClient;
 
     private LambdaQueryWrapper<ZfCollection> buildCondition(ZfCollection zfCollection,List<Long> familyIdList) {
         LambdaQueryWrapper<ZfCollection> lqw = new LambdaQueryWrapper<>();
@@ -383,6 +392,23 @@
         }
 
         if (save(zfCollection)) {
+
+            EsModel esModel = new EsModel();
+            Integer inte = zfCollection.getId().intValue();
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            esModel.setId(uuid);
+            esModel.setCtId(Long.valueOf(inte));
+            esModel.setCtTableName("鏀惰棌鍜岃崳瑾�");
+            esModel.setBy1(zfCollection.getType());
+            esModel.setBy2(zfCollection.getName());
+            esModel.setBy3(zfCollection.getSource());
+            esModel.setBy4(zfCollection.getOwner());
+            esModel.setBy5("/family/zfCollection");
+            esModel.setBy6(zfCollection.getLocation());
+            esModel.setRemark(zfCollection.getRemark());
+            //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+            esService.insertTable(esModel);
+
             return AjaxResult.success();
         } else {
             return AjaxResult.error();
@@ -437,6 +463,67 @@
 
         if(updateById(zfCollection)){
 
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            ZfCollection dataById = getById(zfCollection.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esService.findByCtId(dataById.getId().intValue(), "鏀惰棌鍜岃崳瑾�");
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+            if(zfCollection.getType()!=null){
+                newModel.setBy1(zfCollection.getType());
+            }else {
+                newModel.setBy1(dataById.getType());
+            }
+
+            if(zfCollection.getName()!=null){
+                newModel.setBy2(zfCollection.getName());
+            }else {
+                newModel.setBy2(dataById.getName());
+            }
+
+            if(zfCollection.getSource()!=null){
+                newModel.setBy3(zfCollection.getSource());
+            }else {
+                newModel.setBy3(dataById.getSource());
+            }
+
+            if(zfCollection.getOwner()!=null){
+                newModel.setBy4(zfCollection.getOwner());
+            }else {
+                newModel.setBy4(dataById.getOwner());
+            }
+
+            if(zfCollection.getLocation()!=null){
+                newModel.setBy6(zfCollection.getLocation());
+            }else {
+                newModel.setBy6(dataById.getLocation());
+            }
+
+            if(zfCollection.getRemark()!=null){
+                newModel.setRemark(zfCollection.getRemark());
+            }else {
+                newModel.setRemark(dataById.getRemark());
+            }
+
+
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by1",newModel.getBy1(),
+                    "by2",newModel.getBy2(),
+                    "by3",newModel.getBy3(),
+                    "by4",newModel.getBy4(),
+                    "by6",newModel.getBy6(),
+                    "remark",newModel.getRemark()
+            );
+
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
@@ -460,7 +547,20 @@
             }
         }
 
+        List<ZfCollection> zfCollections = listByIds(Arrays.asList(ids));
+
         if (zfCollectionService.removeByIds(Arrays.asList(ids))) {
+
+            //鍒犻櫎es涓殑鏁版嵁
+            zfCollections.stream().forEach(zfCollection -> {
+                EsModel esModel = esService.findByCtId(zfCollection.getId().intValue(), "鏀惰棌鍜岃崳瑾�");
+                DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+                try {
+                    restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            });
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfContactServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfContactServiceImpl.java
index 171b379..ddfe5d6 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfContactServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfContactServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.MapUtils;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -18,16 +19,18 @@
 import com.ruoyi.service.ZfContactService;
 import com.ruoyi.util.ArraysUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.ruoyi.constant.MenuAuthority.*;
@@ -51,6 +54,12 @@
     
     @Resource
     ZAuthorityService zAuthorityService;
+
+    @Resource
+    EsService esService;
+
+    @Resource
+    RestHighLevelClient restHighLevelClient;
 
 
     private LambdaQueryWrapper<ZfContact> buildCondition(ZfContact zfContact,List<Long> familyIdList) {
@@ -353,6 +362,21 @@
         }
 
         if (save(zfContact)) {
+
+            EsModel esModel = new EsModel();
+            Integer inte = zfContact.getId().intValue();
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            esModel.setId(uuid);
+            esModel.setCtId(Long.valueOf(inte));
+            esModel.setCtTableName("閫氳褰�");
+            esModel.setBy1(zfContact.getMyName());
+            esModel.setBy2(zfContact.getNickName());
+            esModel.setBy3(zfContact.getName());
+            esModel.setBy4(zfContact.getWork());
+            esModel.setBy5("/family/zfContact");
+            esModel.setRemark(zfContact.getRemark());
+            //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+            esService.insertTable(esModel);
             return AjaxResult.success();
         } else {
             return AjaxResult.error();
@@ -458,6 +482,60 @@
         zfLogService.save(zfLog);
 
         if(updateById(zfContact)){
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            ZfContact dataById = getById(zfContact.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esService.findByCtId(dataById.getId().intValue(), "閫氳褰�");
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+            if(zfContact.getMyName()!=null){
+                newModel.setBy1(zfContact.getMyName());
+            }else {
+                newModel.setBy1(dataById.getMyName());
+            }
+
+            if(zfContact.getNickName()!=null){
+                newModel.setBy2(zfContact.getNickName());
+            }else {
+                newModel.setBy2(dataById.getNickName());
+            }
+
+            if(zfContact.getName()!=null){
+                newModel.setBy3(zfContact.getName());
+            }else {
+                newModel.setBy3(dataById.getName());
+            }
+
+            if(zfContact.getWork()!=null){
+                newModel.setBy4(zfContact.getWork());
+            }else {
+                newModel.setBy4(dataById.getWork());
+            }
+
+            if(zfContact.getRemark()!=null){
+                newModel.setRemark(zfContact.getRemark());
+            }else {
+                newModel.setRemark(dataById.getRemark());
+            }
+
+
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by1",newModel.getBy1(),
+                    "by2",newModel.getBy2(),
+                    "by3",newModel.getBy3(),
+                    "by4",newModel.getBy4(),
+                    "remark",newModel.getRemark()
+            );
+
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+            
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
@@ -481,7 +559,20 @@
             }
         }
 
+        List<ZfContact> zfContacts = listByIds(Arrays.asList(ids));
+
         if (zfContactService.removeByIds(Arrays.asList(ids))) {
+
+            //鍒犻櫎es涓殑鏁版嵁
+            zfContacts.stream().forEach(zfContact -> {
+                EsModel esModel = esService.findByCtId(zfContact.getId().intValue(), "閫氳褰�");
+                DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+                try {
+                    restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            });
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java
index fc73747..a89c0df 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
 import com.ruoyi.common.utils.MapUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -13,15 +14,18 @@
 import com.ruoyi.service.*;
 import com.ruoyi.service.ZfDoctorService;
 import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.ruoyi.constant.MenuAuthority.*;
@@ -49,6 +53,12 @@
 
     @Resource
     ZfDoctorMapper zfDoctorMapper;
+
+    @Resource
+    EsService esService;
+
+    @Resource
+    private RestHighLevelClient restHighLevelClient;
 
     @Override
     public AjaxResult selectDoctorList(ZfDoctor zfDoctor, Integer pageNum, Integer pageSize) {
@@ -180,6 +190,22 @@
         }
 
         if (save(zfDoctor)) {
+            EsModel esModel = new EsModel();
+            Integer inte = zfDoctor.getId().intValue();
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            esModel.setId(uuid);
+            esModel.setCtId(Long.valueOf(inte));
+            esModel.setCtTableName("瀹跺涵灏忓尰鐢�");
+            esModel.setBy1(zfDoctor.getType());
+            esModel.setBy2(zfDoctor.getSymptom());
+            esModel.setBy3(zfDoctor.getEffect());
+            esModel.setBy4(zfDoctor.getSuitable());
+            esModel.setBy5("/family/zfDoctor");
+            esModel.setBy6(zfDoctor.getCmedical());
+            esModel.setBy7(zfDoctor.getWmedical());
+            esModel.setRemark(zfDoctor.getRemark());
+            //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+            esService.insertTable(esModel);
             return AjaxResult.success();
         } else {
             return AjaxResult.error();
@@ -213,6 +239,74 @@
         zfLogService.save(zfLog);
 
         if(updateById(zfDoctor)){
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            ZfDoctor dataById = getById(zfDoctor.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esService.findByCtId(dataById.getId().intValue(), "瀹跺涵灏忓尰鐢�");
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+            if(zfDoctor.getType()!=null){
+                newModel.setBy1(zfDoctor.getType());
+            }else {
+                newModel.setBy1(dataById.getType());
+            }
+
+            if(zfDoctor.getSymptom()!=null){
+                newModel.setBy2(zfDoctor.getSymptom());
+            }else {
+                newModel.setBy2(dataById.getSymptom());
+            }
+
+            if(zfDoctor.getEffect()!=null){
+                newModel.setBy3(zfDoctor.getEffect());
+            }else {
+                newModel.setBy3(dataById.getEffect());
+            }
+
+            if(zfDoctor.getSuitable()!=null){
+                newModel.setBy4(zfDoctor.getSuitable());
+            }else {
+                newModel.setBy4(dataById.getSuitable());
+            }
+
+            if(zfDoctor.getCmedical()!=null){
+                newModel.setBy6(zfDoctor.getCmedical());
+            }else {
+                newModel.setBy6(dataById.getCmedical());
+            }
+
+            if(zfDoctor.getWmedical()!=null){
+                newModel.setBy7(zfDoctor.getWmedical());
+            }else {
+                newModel.setBy7(dataById.getWmedical());
+            }
+
+            if(zfDoctor.getRemark()!=null){
+                newModel.setRemark(zfDoctor.getRemark());
+            }else {
+                newModel.setRemark(dataById.getRemark());
+            }
+
+
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by1",newModel.getBy1(),
+                    "by2",newModel.getBy2(),
+                    "by3",newModel.getBy3(),
+                    "by4",newModel.getBy4(),
+                    "by6",newModel.getBy6(),
+                    "by7",newModel.getBy7(),
+                    "remark",newModel.getRemark()
+            );
+
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+            
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
@@ -235,8 +329,20 @@
                 throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
             }
         }
+        List<ZfDoctor> zfDoctors = listByIds(Arrays.asList(ids));
 
         if (zfDoctorService.removeByIds(Arrays.asList(ids))) {
+
+            //鍒犻櫎es涓殑鏁版嵁
+            zfDoctors.stream().forEach(zfDoctor -> {
+                EsModel esModel = esService.findByCtId(zfDoctor.getId().intValue(), "瀹跺涵灏忓尰鐢�");
+                DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+                try {
+                    restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            });
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java
index 7fe58d2..4e2b11d 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.MapUtils;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -14,22 +15,21 @@
 import com.ruoyi.domain.ZfEconomy;
 import com.ruoyi.domain.ZfEconomy;
 import com.ruoyi.mapper.ZfEconomyMapper;
-import com.ruoyi.service.ZAuthorityService;
-import com.ruoyi.service.ZInfoUserService;
-import com.ruoyi.service.ZfEconomyService;
-import com.ruoyi.service.ZfLogService;
+import com.ruoyi.service.*;
 import com.ruoyi.util.ArraysUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.ruoyi.constant.MenuAuthority.*;
@@ -56,6 +56,12 @@
 
     @Resource
     ZfEconomyMapper zfEconomyMapper;
+
+    @Resource
+    EsService esService;
+
+    @Resource
+    RestHighLevelClient restHighLevelClient;
 
     private LambdaQueryWrapper<ZfEconomy> buildCondition(ZfEconomy zfEconomy,List<Long> familyIdList) {
         LambdaQueryWrapper<ZfEconomy> lqw = new LambdaQueryWrapper<>();
@@ -401,6 +407,18 @@
         }
 
         if (save(zfEconomy)) {
+            EsModel esModel = new EsModel();
+            Integer inte = zfEconomy.getId().intValue();
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            esModel.setId(uuid);
+            esModel.setCtId(Long.valueOf(inte));
+            esModel.setCtTableName("瀹跺涵鏀舵敮鍙拌处");
+            esModel.setBy1(zfEconomy.getUseFor());
+            esModel.setBy2(zfEconomy.getUsePeople());
+            esModel.setBy5("/family/zfEconomy");
+            esModel.setRemark(zfEconomy.getRemark());
+            //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+            esService.insertTable(esModel);
             return AjaxResult.success();
         } else {
             return AjaxResult.error();
@@ -434,6 +452,46 @@
         zfLogService.save(zfLog);
 
         if(updateById(zfEconomy)){
+
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            ZfEconomy dataById = getById(zfEconomy.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esService.findByCtId(dataById.getId().intValue(), "瀹跺涵鏀舵敮鍙拌处");
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+            if(zfEconomy.getUseFor()!=null){
+                newModel.setBy1(zfEconomy.getUseFor());
+            }else {
+                newModel.setBy1(dataById.getUseFor());
+            }
+
+            if(zfEconomy.getUsePeople()!=null){
+                newModel.setBy2(zfEconomy.getUsePeople());
+            }else {
+                newModel.setBy2(dataById.getUsePeople());
+            }
+
+            if(zfEconomy.getRemark()!=null){
+                newModel.setRemark(zfEconomy.getRemark());
+            }else {
+                newModel.setRemark(dataById.getRemark());
+            }
+
+
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by1",newModel.getBy1(),
+                    "by2",newModel.getBy2(),
+                    "remark",newModel.getRemark()
+            );
+
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
@@ -456,8 +514,20 @@
                 throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
             }
         }
+        List<ZfEconomy> zfEconomys = listByIds(Arrays.asList(ids));
 
         if (zfEconomyService.removeByIds(Arrays.asList(ids))) {
+
+            //鍒犻櫎es涓殑鏁版嵁
+            zfEconomys.stream().forEach(zfEconomy -> {
+                EsModel esModel = esService.findByCtId(zfEconomy.getId().intValue(), "瀹跺涵鏀舵敮鍙拌处");
+                DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+                try {
+                    restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            });
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java
index 5ba7087..fbdc87b 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.MapUtils;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -13,22 +14,21 @@
 import com.ruoyi.domain.*;
 import com.ruoyi.domain.ZfEquipment;
 import com.ruoyi.mapper.ZfEquipmentMapper;
-import com.ruoyi.service.ZAuthorityService;
-import com.ruoyi.service.ZInfoUserService;
-import com.ruoyi.service.ZfEquipmentService;
-import com.ruoyi.service.ZfLogService;
+import com.ruoyi.service.*;
 import com.ruoyi.util.ArraysUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.ruoyi.constant.MenuAuthority.*;
@@ -52,6 +52,12 @@
 
     @Resource
     ZAuthorityService zAuthorityService;
+
+    @Resource
+    EsService esService;
+
+    @Resource
+    private RestHighLevelClient restHighLevelClient;
 
     private LambdaQueryWrapper<ZfEquipment> buildCondition(ZfEquipment zfEquipment,List<Long> familyIdList) {
         LambdaQueryWrapper<ZfEquipment> lqw = new LambdaQueryWrapper<>();
@@ -337,6 +343,22 @@
         }
 
         if (save(zfEquipment)) {
+
+            EsModel esModel = new EsModel();
+            Integer inte = zfEquipment.getId().intValue();
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            esModel.setId(uuid);
+            esModel.setCtId(Long.valueOf(inte));
+            esModel.setCtTableName("瀹跺涵璁惧");
+            esModel.setBy1(zfEquipment.getName());
+            esModel.setBy2(zfEquipment.getBuyer());
+            esModel.setBy3(zfEquipment.getContent());
+            esModel.setBy4(zfEquipment.getLocation());
+            esModel.setBy5("/family/zfEquipment");
+            esModel.setRemark(zfEquipment.getRemark());
+            //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+            esService.insertTable(esModel);
+            
             return AjaxResult.success();
         } else {
             return AjaxResult.error();
@@ -409,8 +431,6 @@
 //    }
 
 
-
-
     @Override
     @Transactional
     public AjaxResult importExcel(MultipartFile file) {
@@ -459,6 +479,59 @@
         zfLogService.save(zfLog);
 
         if(updateById(zfEquipment)){
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            ZfEquipment dataById = getById(zfEquipment.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esService.findByCtId(dataById.getId().intValue(), "瀹跺涵璁惧");
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+            if(zfEquipment.getName()!=null){
+                newModel.setBy1(zfEquipment.getName());
+            }else {
+                newModel.setBy1(dataById.getName());
+            }
+
+            if(zfEquipment.getBuyer()!=null){
+                newModel.setBy2(zfEquipment.getBuyer());
+            }else {
+                newModel.setBy2(dataById.getBuyer());
+            }
+
+            if(zfEquipment.getContent()!=null){
+                newModel.setBy3(zfEquipment.getContent());
+            }else {
+                newModel.setBy3(dataById.getContent());
+            }
+
+            if(zfEquipment.getLocation()!=null){
+                newModel.setBy4(zfEquipment.getLocation());
+            }else {
+                newModel.setBy4(dataById.getLocation());
+            }
+
+            if(zfEquipment.getRemark()!=null){
+                newModel.setRemark(zfEquipment.getRemark());
+            }else {
+                newModel.setRemark(dataById.getRemark());
+            }
+
+
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by1",newModel.getBy1(),
+                    "by2",newModel.getBy2(),
+                    "by3",newModel.getBy3(),
+                    "by4",newModel.getBy4(),
+                    "remark",newModel.getRemark()
+            );
+
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
@@ -484,7 +557,20 @@
             }
         }
 
+        List<ZfEquipment> zfEquipments = listByIds(Arrays.asList(ids));
+
         if (zfEquipmentService.removeByIds(Arrays.asList(ids))) {
+
+            //鍒犻櫎es涓殑鏁版嵁
+            zfEquipments.stream().forEach(zfEquipment -> {
+                EsModel esModel = esService.findByCtId(zfEquipment.getId().intValue(), "瀹跺涵璁惧");
+                DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+                try {
+                    restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            });
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java
index e3688dd..d6f18db 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.service.impl;
 
 
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -18,11 +19,18 @@
 import com.ruoyi.service.*;
 import com.ruoyi.util.ArraysUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
+import org.springframework.security.core.parameters.P;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -51,7 +59,10 @@
     ZAuthorityService zAuthorityService;
     //鍔犲叆鍒癳s涓�
     @Resource
-    private esService esSer;
+    private EsService esSer;
+
+    @Resource
+    private RestHighLevelClient restHighLevelClient;
     private LambdaQueryWrapper<ZfEvent> buildCondition(ZfEvent zfEvent,List<Long> familyIdList) {
         LambdaQueryWrapper<ZfEvent> lqw = new LambdaQueryWrapper<>();
         lqw.orderByDesc(ZfEvent::getCreateTime);
@@ -313,26 +324,26 @@
 
     @Override
     public AjaxResult addData(ZfEvent zfEvent) {
-//        ZInfoUser myself = zInfoUserService.getMyself();
-//        Long familyId = myself.getFamilyId();
-//
-//        if(familyId == null){
-//            throw new RuntimeException("鎮ㄨ繕鏈姞鍏ヤ换浣曞搴�");
-//        }
-//
-//        List<ZAuthority> authority = zAuthorityService.getAuthority();
-//        List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST_ADD)).map(ZAuthority::getFid).collect(Collectors.toList());
-//        familyIdList.add(familyId);
-//
-//        if (zfEvent.getFamilyId()!=null && !familyIdList.contains(zfEvent.getFamilyId())) {
-//            throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
-//        }
-//
-//
-//        if(zfEvent.getFamilyId() == null){
-//            //榛樿娣诲姞鑷繁瀹跺涵鐨勬暟鎹�
-//            zfEvent.setFamilyId(familyId);
-//        }
+        ZInfoUser myself = zInfoUserService.getMyself();
+        Long familyId = myself.getFamilyId();
+
+        if(familyId == null){
+            throw new RuntimeException("鎮ㄨ繕鏈姞鍏ヤ换浣曞搴�");
+        }
+
+        List<ZAuthority> authority = zAuthorityService.getAuthority();
+        List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST_ADD)).map(ZAuthority::getFid).collect(Collectors.toList());
+        familyIdList.add(familyId);
+
+        if (zfEvent.getFamilyId()!=null && !familyIdList.contains(zfEvent.getFamilyId())) {
+            throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
+        }
+
+
+        if(zfEvent.getFamilyId() == null){
+            //榛樿娣诲姞鑷繁瀹跺涵鐨勬暟鎹�
+            zfEvent.setFamilyId(familyId);
+        }
 
         //鍒ゆ柇鏄惁鏈夐噸澶嶆暟鎹�
         LambdaQueryWrapper<ZfEvent> lqw = uniqueCondition(zfEvent);
@@ -343,20 +354,18 @@
         }
 
         if (save(zfEvent)) {
-            //  椋�  鍔犲叆
             EsModel esModel = new EsModel();
             Integer inte = zfEvent.getId();
             String uuid = UUID.randomUUID().toString().replace("-","");
             esModel.setId(uuid);
             esModel.setCtId(Long.valueOf(inte));
-            esModel.setCtName(zfEvent.getTitle());
-            esModel.setCtContent(zfEvent.getAddress());
-            esModel.setBy1(zfEvent.getRemark());
+            esModel.setCtTableName("瀹跺ぇ浜嬭");
+            esModel.setBy1(zfEvent.getAddress());
+            esModel.setBy2(zfEvent.getPeople());
+            esModel.setBy3(zfEvent.getTitle());
+            esModel.setRemark(zfEvent.getRemark());
             //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
             esModel.setBy5("/family/zfEvent");
-            // esModel.setCtTableName("tb_ajk");
-            //   esModel.setCtName("澶у");
-            //  esModel.setCtContent("澶у濂斤紝鎵嶆槸鐪熺殑濂�");//澶勪簨鐢�
             esSer.insertTable(esModel);
 
             return AjaxResult.success();
@@ -425,6 +434,7 @@
     ZfLogService zfLogService;
 
     @Override
+    @Transactional
     public AjaxResult updateData(ZfEvent zfEvent) {
         ZInfoUser myself = zInfoUserService.getMyself();
         Long familyId = myself.getFamilyId();
@@ -447,7 +457,54 @@
         zfLog.setUpdater(zInfoUserService.getMyself().getNickName());
         zfLogService.save(zfLog);
 
-        if(updateById(zfEvent)){
+        if(zfEventService.updateById(zfEvent)){
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            ZfEvent dataById = getById(zfEvent.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esSer.findByCtId(dataById.getId(), "瀹跺ぇ浜嬭");
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+            if(zfEvent.getAddress()!=null){
+                newModel.setBy1(zfEvent.getAddress());
+            }else {
+                newModel.setBy1(dataById.getAddress());
+            }
+
+            if(zfEvent.getPeople()!=null){
+                newModel.setBy2(zfEvent.getPeople());
+            }else {
+                newModel.setBy2(dataById.getPeople());
+            }
+
+            if(zfEvent.getTitle()!=null){
+                newModel.setBy3(zfEvent.getTitle());
+            }else {
+                newModel.setBy3(dataById.getTitle());
+            }
+
+            if(zfEvent.getRemark()!=null){
+                newModel.setRemark(zfEvent.getRemark());
+            }else {
+                newModel.setRemark(dataById.getRemark());
+            }
+
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by1",newModel.getBy1(),
+                    "by2",newModel.getBy2(),
+                    "by3",newModel.getBy3(),
+                    "by4",newModel.getBy4(),
+                    "remark",newModel.getRemark()
+            );
+
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
@@ -472,7 +529,21 @@
             }
         }
 
+        List<ZfEvent> zfEvents = listByIds(Arrays.asList(ids));
+
         if (zfEventService.removeByIds(Arrays.asList(ids))) {
+
+            //鍒犻櫎es涓殑鏁版嵁
+            zfEvents.stream().forEach(zfEvent -> {
+                EsModel esModel = esSer.findByCtId(zfEvent.getId(), "瀹跺ぇ浜嬭");
+                DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+                try {
+                    restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            });
+
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/esServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/esServiceImpl.java
deleted file mode 100644
index e043f0b..0000000
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/esServiceImpl.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.ruoyi.service.impl;
-
-import com.ruoyi.common.core.domain.entity.EsModel;
-import com.ruoyi.mapper.EsRepository;
-import com.ruoyi.service.esService;
-
-import org.elasticsearch.index.query.BoolQueryBuilder;
-import org.elasticsearch.index.query.MultiMatchQueryBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
-import org.springframework.data.elasticsearch.core.SearchHits;
-import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
-import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
-
-@Service
-public class esServiceImpl implements esService {
-    @Resource
-    private EsRepository esRepository;
-    @Resource
-    private ElasticsearchRestTemplate elasticsearchRestTemplate;
-    @Override
-    public int insertTable(EsModel esModel) {
-        try {
-            esRepository.save(esModel);
-           // esRepository.searchSimilar()
-        } catch (Exception e) {
-            System.out.println(e);
-            // throw new Exception("ES鏁版嵁鍚屾澶辫触锛岃鑱旂郴绠$悊鍛樺鐞嗭紒");
-        }
-        return 0;
-    }
-    //  鍏ㄦ枃妫�绱�
-    @Override
-    public List<EsModel> findByCondition(String con) {
-        List<EsModel> esm = new ArrayList<>();
-       // MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("title", title);
-        //澶氬瓧娈佃繘琛屽尮閰�
-//        MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(con, "ctName", "ctContent","remark",
-//                "by1","by2","by3","by4");
-        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
-        boolQueryBuilder.should(QueryBuilders.matchQuery("ctName",con));
-        boolQueryBuilder.should(QueryBuilders.matchQuery("ctContent",con));
-        boolQueryBuilder.should(QueryBuilders.matchQuery("remark",con));
-        boolQueryBuilder.should(QueryBuilders.matchQuery("by1",con));
-        boolQueryBuilder.should(QueryBuilders.matchQuery("by2",con));
-        boolQueryBuilder.should(QueryBuilders.matchQuery("by3",con));
-        boolQueryBuilder.should(QueryBuilders.matchQuery("by4",con));
-
-        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder()
-                .withQuery(boolQueryBuilder);
-        NativeSearchQuery nativeSearchQuery = nativeSearchQueryBuilder.build();
-
-        // 鎵ц鏌ヨ
-        SearchHits<EsModel> searchHits = elasticsearchRestTemplate.search(nativeSearchQuery,EsModel.class);
-        searchHits.getSearchHits().forEach(personSearchHit -> {
-            EsModel content = personSearchHit.getContent();
-            esm.add(content);
-        //    System.out.println(content);
-        });
-       // articleList.forEach(a-> System.out.println(a))
-
-        return esm;
-
-    }
-}

--
Gitblit v1.9.1