Commit 8eac96bd authored by suhuiguang's avatar suhuiguang

refact(综合搜索):数据同步调整

1.设备同步改成批量查询 2.检验巡检依赖
parent 81426848
...@@ -25,7 +25,7 @@ import java.util.List; ...@@ -25,7 +25,7 @@ import java.util.List;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@Slf4j @Slf4j
@Document(indexName = "idx_biz_equipment_info", shards = 3, replicas = 2) @Document(indexName = "idx_biz_equipment_info", shards = 3, replicas = 2, createIndex = false)
public class ESEquipmentInfo { public class ESEquipmentInfo {
@Id @Id
......
...@@ -15,7 +15,7 @@ import java.util.List; ...@@ -15,7 +15,7 @@ import java.util.List;
* 企业 * 企业
*/ */
@Data @Data
@Document(indexName = "idx_biz_enterprise_info", shards = 3, replicas = 2) @Document(indexName = "idx_biz_enterprise_info", shards = 3, replicas = 2, createIndex = false)
public class EsBaseEnterpriseInfo { public class EsBaseEnterpriseInfo {
@Id @Id
private String sequenceNbr; private String sequenceNbr;
......
package com.yeejoin.amos.boot.module.common.api.entity;
import lombok.Getter;
import lombok.Setter;
/**
*
* @author LiuLin
* @date 2023年10月11日 09:31
*/
@Setter
@Getter
public final class EsEntity<T> {
private String id;
private T data;
public EsEntity() {
}
public EsEntity(String id, T data) {
this.data = data;
this.id = id;
}
}
\ No newline at end of file
...@@ -15,7 +15,7 @@ import java.util.List; ...@@ -15,7 +15,7 @@ import java.util.List;
* 人员 * 人员
*/ */
@Data @Data
@Document(indexName = "idx_biz_user_info", shards = 3, replicas = 2) @Document(indexName = "idx_biz_user_info", shards = 3, replicas = 2, createIndex = false)
public class EsUserInfo { public class EsUserInfo {
@Id @Id
private String sequenceNbr; private String sequenceNbr;
......
...@@ -250,7 +250,7 @@ public class DataHandlerController extends BaseController { ...@@ -250,7 +250,7 @@ public class DataHandlerController extends BaseController {
@ApiOperation(httpMethod = "PUT", value = "初始化综合搜索数据-设备", notes = "初始化综合搜索数据-设备") @ApiOperation(httpMethod = "PUT", value = "初始化综合搜索数据-设备", notes = "初始化综合搜索数据-设备")
@PutMapping(value = "/equip/initStatistData2Es") @PutMapping(value = "/equip/initStatistData2Es")
public ResponseModel<Integer> initEquipStatistData2Es() { public ResponseModel<Integer> initEquipStatistData2Es() {
return ResponseHelper.buildResponse(dataHandlerService.initEquipStatistData2Es()); return ResponseHelper.buildResponse(dataHandlerService.initEquipStatistData2EsBatch());
} }
......
package com.yeejoin.amos.boot.module.jg.biz.service; package com.yeejoin.amos.boot.module.jg.biz.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo;
import java.util.List; import java.util.List;
...@@ -9,7 +10,7 @@ import java.util.List; ...@@ -9,7 +10,7 @@ import java.util.List;
* @author system_generator * @author system_generator
* @date 2023-08-17 * @date 2023-08-17
*/ */
public interface IIdxBizJgInspectionDetectionInfoService { public interface IIdxBizJgInspectionDetectionInfoService extends IService<IdxBizJgInspectionDetectionInfo> {
boolean saveOrUpdateData(IdxBizJgInspectionDetectionInfo inspectionDetectionInfo); boolean saveOrUpdateData(IdxBizJgInspectionDetectionInfo inspectionDetectionInfo);
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.boot.module.common.api.entity.EsEntity;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.support.WriteRequest;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@RequiredArgsConstructor
@Slf4j
public class EsBulkService {
private final RestHighLevelClient restHighLevelClient;
public <T> void bulkUpsert(String index, List<EsEntity<T>> list) {
BulkRequest request = new BulkRequest();
list.forEach(item -> {
request.add(new UpdateRequest(index, item.getId())
.doc(JSON.toJSONString(item.getData()), XContentType.JSON)
.upsert(JSON.toJSONString(item.getData()), XContentType.JSON));
});
try {
// request.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE);
restHighLevelClient.bulk(request, RequestOptions.DEFAULT);
} catch (Exception e) {
log.error("批量写入数据失败:{}", e.getMessage(), e);
throw new RuntimeException(e);
}
}
}
...@@ -148,6 +148,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -148,6 +148,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
@Autowired @Autowired
RestHighLevelClient restHighLevelClient; RestHighLevelClient restHighLevelClient;
@Autowired @Autowired
@Lazy
private JyjcInspectionResultServiceImpl inspectionResultService; private JyjcInspectionResultServiceImpl inspectionResultService;
@Autowired @Autowired
private JyjcInspectionApplicationEquipServiceImpl applicationEquipService; private JyjcInspectionApplicationEquipServiceImpl applicationEquipService;
......
...@@ -53,6 +53,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -53,6 +53,7 @@ import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -135,6 +136,7 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR ...@@ -135,6 +136,7 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
private ESEquipmentCategory esEquipmentCategory; private ESEquipmentCategory esEquipmentCategory;
@Autowired @Autowired
@Lazy
JyjcInspectionApplicationServiceImpl inspectionApplicationService; JyjcInspectionApplicationServiceImpl inspectionApplicationService;
@Autowired @Autowired
......
package com.yeejoin.amos.boot.module.ymt.api.mapper; package com.yeejoin.amos.boot.module.ymt.api.mapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -15,4 +15,7 @@ import java.util.List; ...@@ -15,4 +15,7 @@ import java.util.List;
public interface IdxBizJgInspectionDetectionInfoMapper extends BaseMapper<IdxBizJgInspectionDetectionInfo> { public interface IdxBizJgInspectionDetectionInfoMapper extends BaseMapper<IdxBizJgInspectionDetectionInfo> {
List<IdxBizJgInspectionDetectionInfo> selectLastedGroupByInspectType(@Param("record") String record); List<IdxBizJgInspectionDetectionInfo> selectLastedGroupByInspectType(@Param("record") String record);
List<IdxBizJgInspectionDetectionInfo> selectLastedGroupByInspectTypeBatch(@Param("records") List<String> records);
} }
...@@ -2,6 +2,9 @@ package com.yeejoin.amos.boot.module.ymt.api.mapper; ...@@ -2,6 +2,9 @@ package com.yeejoin.amos.boot.module.ymt.api.mapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgMaintenanceRecordInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgMaintenanceRecordInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 安全追溯-维保备案信息表 Mapper 接口 * 安全追溯-维保备案信息表 Mapper 接口
...@@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface IdxBizJgMaintenanceRecordInfoMapper extends BaseMapper<IdxBizJgMaintenanceRecordInfo> { public interface IdxBizJgMaintenanceRecordInfoMapper extends BaseMapper<IdxBizJgMaintenanceRecordInfo> {
List<IdxBizJgMaintenanceRecordInfo> selectLastedMainInfoBatch(@Param("records") List<String> records);
} }
...@@ -31,4 +31,6 @@ public interface IdxBizJgUseInfoMapper extends BaseMapper<IdxBizJgUseInfo> { ...@@ -31,4 +31,6 @@ public interface IdxBizJgUseInfoMapper extends BaseMapper<IdxBizJgUseInfo> {
void updateVersionBatch(@Param("records") List<String> records, @Param("version") int version); void updateVersionBatch(@Param("records") List<String> records, @Param("version") int version);
Map<String,Object> queryDetail(@Param("record") String record); Map<String,Object> queryDetail(@Param("record") String record);
List<Map<String,Object>> queryDetailBatch(@Param("records") List<String> records);
} }
...@@ -12,4 +12,17 @@ ...@@ -12,4 +12,17 @@
"RECORD" = #{record} "RECORD" = #{record}
ORDER BY "INSPECT_TYPE", "INSPECT_DATE" DESC, "SEQUENCE_NBR" DESC ORDER BY "INSPECT_TYPE", "INSPECT_DATE" DESC, "SEQUENCE_NBR" DESC
</select> </select>
<select id="selectLastedGroupByInspectTypeBatch"
resultType="com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo">
SELECT
DISTINCT ON ("RECORD", "INSPECT_TYPE") *
FROM
idx_biz_jg_inspection_detection_info
WHERE
"RECORD" in
<foreach collection="records" item="record" open="(" close=")" separator=",">
#{record}
</foreach>
ORDER BY "RECORD", "INSPECT_TYPE", "INSPECT_DATE" DESC, "SEQUENCE_NBR" DESC
</select>
</mapper> </mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgMaintenanceRecordInfoMapper">
<select id="selectLastedMainInfoBatch"
resultType="com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgMaintenanceRecordInfo">
SELECT
DISTINCT ON ("RECORD") *
FROM
idx_biz_jg_maintenance_record_info
WHERE
"RECORD" IN
<foreach collection="records" item="record" open="(" close=")" separator=",">
#{record}
</foreach>
ORDER BY "RECORD", "REC_DATE" DESC
</select>
</mapper>
...@@ -65,68 +65,7 @@ ...@@ -65,68 +65,7 @@
FROM "idx_biz_jg_use_info" FROM "idx_biz_jg_use_info"
</select> </select>
<select id="queryDetail" resultType="java.util.Map"> <select id="queryDetail" resultType="java.util.Map">
SELECT <include refid="equip-detail-es"/>
ibjui."RECORD" AS "SEQUENCE_NBR",
ibjui."PROJECT_CONTRAPTION",
ibjui."PROJECT_CONTRAPTION_ID",
ibjsi."ORG_BRANCH_NAME",
ibjsi."ORG_BRANCH_CODE",
ibjui."REC_DATE",
ibjui."USE_UNIT_NAME",
ibjui."USE_UNIT_CREDIT_CODE",
ibjui."USC_UNIT_NAME",
ibjui."USC_UNIT_CREDIT_CODE",
ibjri."EQU_LIST" AS "EQU_LIST_CODE",
ibjri."EQU_DEFINE" AS "EQU_DEFINE_CODE",
ibjri."PRODUCT_NAME",
ibjri."BRAND_NAME",
ibjri."EQU_TYPE",
ibjri."EQU_CATEGORY" AS "EQU_CATEGORY_CODE",
tec2.NAME AS "EQU_DEFINE",
tec1.NAME AS "EQU_LIST",
tec.NAME AS "EQU_CATEGORY",
ibjri."USE_ORG_CODE",
ibjui."USE_INNER_CODE",
ibjui."DATA_SOURCE",
ibjoi."CODE96333",
ibjri."EQU_CODE",
ibjoi."SUPERVISORY_CODE",
ibjri."WHETHER_VEHICLE_CYLINDER",
ibjri."WHETHER_SKID_MOUNTED_PRESSURE_VESSEL",
ibjri."CYLINDER_CATEGORY",
ibjri."WHETHER_SPHERICAL_TANK",
ibjri."CAR_NUMBER",
ibjri."EQU_PRICE",
concat_ws ( '/', ibjui."PROVINCE_NAME", ibjui."CITY_NAME", ibjui."COUNTY_NAME", ibjui."STREET_NAME" ) AS "USE_PLACE",
concat_ws ( '#', ibjui."PROVINCE", ibjui."CITY", ibjui."COUNTY", ibjui."FACTORY_USE_SITE_STREET" ) AS "USE_PLACE_CODE",
ibjui."ADDRESS",
ibjui."EQU_STATE",
ibjui."IS_INTO_MANAGEMENT",
ibjoi."CLAIM_STATUS" AS "STATUS",
ibjfi."FACTORY_NUM",
ibjfi."PRODUCE_UNIT_NAME",
ibjfi."PRODUCE_UNIT_CREDIT_CODE",
ibjfi."PRODUCE_DATE",
ibjui."CREATE_DATE" ,
ibjui."SAFETY_MANAGER" ,
ibjui."PHONE",
ibjui."USE_DATE",
ibjui."USE_PLACE" as USE_SITE_CODE,
ibjui."DATA_QUALITY_SCORE",
ibjoi."INFORMATION_SITUATION",
di."DESIGN_UNIT_CREDIT_CODE",
di."DESIGN_UNIT_NAME",
di."DESIGN_DATE"
FROM
amos_tzs_biz.idx_biz_jg_use_info ibjui
LEFT JOIN amos_tzs_biz.idx_biz_jg_supervision_info ibjsi ON ibjui."RECORD" = ibjsi."RECORD"
LEFT JOIN amos_tzs_biz.idx_biz_jg_register_info ibjri ON ibjui."RECORD" = ibjri."RECORD"
LEFT JOIN amos_tzs_biz.idx_biz_jg_other_info ibjoi ON ibjui."RECORD" = ibjoi."RECORD"
LEFT JOIN amos_tzs_biz.idx_biz_jg_factory_info ibjfi ON ibjui."RECORD" = ibjfi."RECORD"
LEFT JOIN amos_tzs_biz.idx_biz_jg_design_info di ON di."RECORD" = ibjui."RECORD"
LEFT JOIN amos_tzs_biz.tz_equipment_category tec ON ibjri."EQU_CATEGORY" = tec.code
LEFT JOIN amos_tzs_biz.tz_equipment_category tec1 ON ibjri."EQU_LIST" = tec1.code
LEFT JOIN amos_tzs_biz.tz_equipment_category tec2 ON ibjri."EQU_DEFINE" = tec2.code
WHERE WHERE
ibjui."RECORD" = #{record} ibjui."RECORD" = #{record}
</select> </select>
...@@ -135,4 +74,79 @@ ...@@ -135,4 +74,79 @@
UPDATE idx_biz_jg_use_info SET "VERSION"=#{version} WHERE record = #{record} UPDATE idx_biz_jg_use_info SET "VERSION"=#{version} WHERE record = #{record}
</foreach> </foreach>
</update> </update>
<sql id="equip-detail-es">
SELECT
ibjui."RECORD" AS "SEQUENCE_NBR",
ibjui."PROJECT_CONTRAPTION",
ibjui."PROJECT_CONTRAPTION_ID",
ibjsi."ORG_BRANCH_NAME",
ibjsi."ORG_BRANCH_CODE",
ibjui."REC_DATE",
ibjui."USE_UNIT_NAME",
ibjui."USE_UNIT_CREDIT_CODE",
ibjui."USC_UNIT_NAME",
ibjui."USC_UNIT_CREDIT_CODE",
ibjri."EQU_LIST" AS "EQU_LIST_CODE",
ibjri."EQU_DEFINE" AS "EQU_DEFINE_CODE",
ibjri."PRODUCT_NAME",
ibjri."BRAND_NAME",
ibjri."EQU_TYPE",
ibjri."EQU_CATEGORY" AS "EQU_CATEGORY_CODE",
tec2.NAME AS "EQU_DEFINE",
tec1.NAME AS "EQU_LIST",
tec.NAME AS "EQU_CATEGORY",
ibjri."USE_ORG_CODE",
ibjui."USE_INNER_CODE",
ibjui."DATA_SOURCE",
ibjoi."CODE96333",
ibjri."EQU_CODE",
ibjoi."SUPERVISORY_CODE",
ibjri."WHETHER_VEHICLE_CYLINDER",
ibjri."WHETHER_SKID_MOUNTED_PRESSURE_VESSEL",
ibjri."CYLINDER_CATEGORY",
ibjri."WHETHER_SPHERICAL_TANK",
ibjri."CAR_NUMBER",
ibjri."EQU_PRICE",
concat_ws ( '/', ibjui."PROVINCE_NAME", ibjui."CITY_NAME", ibjui."COUNTY_NAME", ibjui."STREET_NAME" ) AS "USE_PLACE",
concat_ws ( '#', ibjui."PROVINCE", ibjui."CITY", ibjui."COUNTY", ibjui."FACTORY_USE_SITE_STREET" ) AS "USE_PLACE_CODE",
ibjui."ADDRESS",
ibjui."EQU_STATE",
ibjui."IS_INTO_MANAGEMENT",
ibjoi."CLAIM_STATUS" AS "STATUS",
ibjfi."FACTORY_NUM",
ibjfi."PRODUCE_UNIT_NAME",
ibjfi."PRODUCE_UNIT_CREDIT_CODE",
ibjfi."PRODUCE_DATE",
ibjui."CREATE_DATE" ,
ibjui."SAFETY_MANAGER" ,
ibjui."PHONE",
ibjui."USE_DATE",
ibjui."USE_PLACE" as USE_SITE_CODE,
ibjui."DATA_QUALITY_SCORE",
ibjoi."INFORMATION_SITUATION",
di."DESIGN_UNIT_CREDIT_CODE",
di."DESIGN_UNIT_NAME",
di."DESIGN_DATE"
FROM
idx_biz_jg_use_info ibjui
LEFT JOIN amos_tzs_biz.idx_biz_jg_supervision_info ibjsi ON ibjui."RECORD" = ibjsi."RECORD"
LEFT JOIN amos_tzs_biz.idx_biz_jg_register_info ibjri ON ibjui."RECORD" = ibjri."RECORD"
LEFT JOIN amos_tzs_biz.idx_biz_jg_other_info ibjoi ON ibjui."RECORD" = ibjoi."RECORD"
LEFT JOIN amos_tzs_biz.idx_biz_jg_factory_info ibjfi ON ibjui."RECORD" = ibjfi."RECORD"
LEFT JOIN amos_tzs_biz.idx_biz_jg_design_info di ON di."RECORD" = ibjui."RECORD"
LEFT JOIN amos_tzs_biz.tz_equipment_category tec ON ibjri."EQU_CATEGORY" = tec.code
LEFT JOIN amos_tzs_biz.tz_equipment_category tec1 ON ibjri."EQU_LIST" = tec1.code
LEFT JOIN amos_tzs_biz.tz_equipment_category tec2 ON ibjri."EQU_DEFINE" = tec2.code
</sql>
<select id="queryDetailBatch" resultType="java.util.Map">
<include refid="equip-detail-es"/>
WHERE
ibjui."RECORD" in
<foreach item="record" collection="records" open="(" separator="," close=")">
#{record}
</foreach>
</select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment