Commit f442a167 authored by 刘凡's avatar 刘凡

新增:新增es数据入库方法

parent dc18bb94
package com.yeejoin.amos.api.openapi.config;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Arrays;
@Configuration
public class ElasticSearchClientConfig {
@Value("${spring.elasticsearch.rest.uris}")
private String uris;
@Value("${elasticsearch.username}")
private String username;
@Value("${elasticsearch.password}")
private String password;
@Bean(destroyMethod = "close")
@Qualifier("highLevelClient")
public RestHighLevelClient restHighLevelClient() {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
try {
HttpHost[] httpHosts = Arrays.stream(uris.split(",")).map(HttpHost::create).toArray(HttpHost[]::new);
RestClientBuilder builder = RestClient.builder(httpHosts);
builder.setHttpClientConfigCallback(httpClientBuilder -> {
httpClientBuilder.disableAuthCaching();
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
});
// 该方法接收一个RequestConfig.Builder对象,对该对象进行修改后然后返回。
builder.setRequestConfigCallback(requestConfigBuilder -> {
// 连接超时(默认为1秒)
return requestConfigBuilder.setConnectTimeout(5000 * 1000)
// 套接字超时(默认为30秒)//更改客户端的超时限制默认30秒现在改为100*1000分钟
.setSocketTimeout(6000 * 1000);
});
return new RestHighLevelClient(builder);
} catch (Exception e) {
throw new IllegalStateException("Invalid ES nodes " + "property '" + uris + "'", e);
}
}
}
package com.yeejoin.amos.api.openapi.face.orm.dao;
import com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderFillingRecordDto;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ESCylinderFillingRecordRepository extends PagingAndSortingRepository<ESCylinderFillingRecordDto, Long> {
}
package com.yeejoin.amos.api.openapi.face.orm.dao;
import com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderInfoDto;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ESCylinderInfoRepository extends PagingAndSortingRepository<ESCylinderInfoDto, Long> {
}
package com.yeejoin.amos.api.openapi.face.orm.dao;
import com.yeejoin.amos.boot.module.cylinder.api.entity.EsCylinder;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
/**
* @author fengwang
* @date 2021-09-26.
*/
@Repository
public interface ESCylinderRepository extends PagingAndSortingRepository<EsCylinder, Long> {
}
package com.yeejoin.amos.api.openapi.face.orm.entity;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
@Data
@Accessors(chain = true)
@Document(indexName = "cylinder_filling", shards = 6, replicas = 2)
public class ESCylinderFillingRecordDto {
@Id
private Long sequenceNbr;
//充装单位
@Field(type = FieldType.Text)
private String fillingUnitName;
//出厂编号
@Field(type = FieldType.Text)
private String factoryNum;
//气瓶品种code
@Field(type = FieldType.Integer)
private Integer cylinderVariety;
//气瓶品种名称
@Field(type = FieldType.Text)
private String cylinderVarietyName;
//二维码编号
@Field(type = FieldType.Text)
private String qrCode;
//电子标签编号
@Field(type = FieldType.Text)
private String electronicLabelCode;
//气瓶唯一标识
@Field(type = FieldType.Text)
private String sequenceCode;
//单位内部编号
@Field(type = FieldType.Text)
private String unitInnerCode;
//产权单位名称
@Field(type = FieldType.Text)
private String unitName;
//气瓶状态code
@Field(type = FieldType.Integer)
private Integer cylinderStatus;
//气瓶状态名称
@Field(type = FieldType.Text)
private String cylinderStatusStr;
//充装开始时间
@Field(type = FieldType.Text)
private String fillingStartTime;
//充装结束时间
@Field(type = FieldType.Text)
private String fillingEndTime;
//充装人员姓名
@Field(type = FieldType.Text)
private String fillingUser;
//充装量(Kg)
@Field(type = FieldType.Double)
private Double fillingQuantity;
//室温
@Field(type = FieldType.Double)
private Double temperature;
//异常情况
@Field(type = FieldType.Text)
private String abnormalStr;
//充装前检查人员姓名
@Field(type = FieldType.Text)
private String inspectorUser;
//充装前检查时间
@Field(type = FieldType.Text)
private String inspectionDate;
//充装前检查时间毫秒值
@Field(type = FieldType.Long)
private Long inspectionDateMs;
//充装前检查结果
@Field(type = FieldType.Text)
private String fillingResult;
//重装后检查人员姓名
@Field(type = FieldType.Text)
private String inspector;
//重装后检查时间
@Field(type = FieldType.Text)
private String inspectionDateAfter;
//充装前检查结果毫秒值
@Field(type = FieldType.Long)
private Long inspectionDateAfterMS;
//重装后检查结果
@Field(type = FieldType.Text)
private String checkResult;
//appid
@Field(type = FieldType.Text)
private String appId;
//统一社会信用代码
@Field(type = FieldType.Text)
private String creditCode;
//行政区划代码
@Field(type = FieldType.Text)
private String regionCode;
//appid+气瓶唯一标识
private String appIdAndSequenceCode;
}
package com.yeejoin.amos.api.openapi.face.orm.entity;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
@Data
@Accessors(chain = true)
@Document(indexName = "cylinder_info", shards = 6, replicas = 2)
public class ESCylinderInfoDto {
@Id
private Long sequenceNbr;
//产权单位名称
@Field(type = FieldType.Text)
private String unitName;
//出厂编号
@Field(type = FieldType.Text)
private String factoryNum;
//气瓶品种code
@Field(type = FieldType.Integer)
private Integer cylinderVariety;
//气瓶品种名称
@Field(type = FieldType.Text)
private String cylinderVarietyName;
//二维码标签
@Field(type = FieldType.Text)
private String qrCode;
//电子标签编号
@Field(type = FieldType.Text)
private String electronicLabelCode;
//气瓶状态code
@Field(type = FieldType.Integer)
private Integer cylinderStatus;
//气瓶状态名称
@Field(type = FieldType.Text)
private String cylinderStatusStr;
//充装介质
@Field(type = FieldType.Text)
private String fillingMediaName;
//公称压力
@Field(type = FieldType.Double)
private Double nominalWorkPressure;
//容积
@Field(type = FieldType.Double)
private Double volume;
//制造日期
@Field(type = FieldType.Text)
private String manufacturingDate;
//制造单位
@Field(type = FieldType.Text)
private String manufacturingUnit;
//检验日期
@Field(type = FieldType.Text)
private String inspectionDate;
//检验日期
@Field(type = FieldType.Long)
private Long inspectionDateMs;
//气瓶唯一标识
@Field(type = FieldType.Text)
private String sequenceCode;
//单位内部编号
@Field(type = FieldType.Text)
private String unitInnerCode;
//appid
@Field(type = FieldType.Text)
private String appId;
//统一社会信用代码
@Field(type = FieldType.Text)
private String creditCode;
@Field(type = FieldType.Text)
private String regionCode;
}
package com.yeejoin.amos.api.openapi.face.orm.entity;
import lombok.Data;
import lombok.experimental.Accessors;
import org.elasticsearch.common.geo.GeoPoint;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import org.springframework.data.elasticsearch.annotations.GeoPointField;
/**
* @author tb
* @date 2022-04-20.
*/
@Data
@Accessors(chain = true)
@Document(indexName = "cylinder", shards = 6, replicas = 2)
public class EsCylinder {
/**
* 主键
*/
@Id
private Long sequenceNbr;
/**
* 气瓶出厂编号
*/
@Field(type = FieldType.Text)
private String factoryNum;
// /**
// * 所属省
// */
// @Field(type = FieldType.Text)
// private String province;
//
// /**
// * 所属地市
// */
// @Field(type = FieldType.Text)
// private String city;
//
// /**
// * 所属区县
// */
// @Field(type = FieldType.Text)
// private String district;
//
/**
* 所属区域代码
*/
@Field(type = FieldType.Text, searchAnalyzer = "ik_max_word", analyzer = "ik_max_word")
private String regionCode;
/**
* 产权单位名称
*/
@Field(type = FieldType.Text)
private String unitName;
/**
* 经度
*/
@Field(type = FieldType.Double)
private Double longitude;
/**
* 纬度
*/
@Field(type = FieldType.Double)
private Double latitude;
/**
* 经纬度字段
*/
@GeoPointField
private GeoPoint location;
/**
* 地址
*/
@Field(type = FieldType.Text, searchAnalyzer = "ik_max_word", analyzer = "ik_max_word")
private String address;
}
package com.yeejoin.amos.api.openapi.face.service; package com.yeejoin.amos.api.openapi.face.service;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.yeejoin.amos.api.openapi.face.orm.dao.ESCylinderFillingRecordRepository;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderFillingRecordDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderFillingRecord;
import com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderFillingRecordMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.cache.Redis; import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
...@@ -32,6 +43,13 @@ import com.yeejoin.amos.api.openapi.face.orm.entity.TmCylinderFillingRecord; ...@@ -32,6 +43,13 @@ import com.yeejoin.amos.api.openapi.face.orm.entity.TmCylinderFillingRecord;
public class TmCylinderFillingRecordService extends BaseService<TmCylinderFillingRecordModel, TmCylinderFillingRecord, TmCylinderFillingRecordMapper> { public class TmCylinderFillingRecordService extends BaseService<TmCylinderFillingRecordModel, TmCylinderFillingRecord, TmCylinderFillingRecordMapper> {
@Autowired @Autowired
private RedisTemplate redisTemplate; private RedisTemplate redisTemplate;
@Autowired
CylinderFillingRecordMapper cylinderFillingRecordMapper;
@Autowired
ESCylinderFillingRecordRepository esCylinderFillingRecordRepository;
@Transactional(rollbackFor= {Exception.class}) @Transactional(rollbackFor= {Exception.class})
public String createCylinderFilling(List<TmCylinderFillingRecordModel> model) { public String createCylinderFilling(List<TmCylinderFillingRecordModel> model) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
...@@ -55,4 +73,51 @@ public class TmCylinderFillingRecordService extends BaseService<TmCylinderFillin ...@@ -55,4 +73,51 @@ public class TmCylinderFillingRecordService extends BaseService<TmCylinderFillin
public List<String> getDateList() { public List<String> getDateList() {
return baseMapper.getDateList(); return baseMapper.getDateList();
} }
@DS("tzs")
public void createCylinderFillingRecord(List<ESCylinderFillingRecordDto> cylinderFillingRecord) {
if (!ObjectUtils.isEmpty(cylinderFillingRecord)) {
List<String> appIds = cylinderFillingRecord.stream().map(ESCylinderFillingRecordDto::getAppId).collect(Collectors.toList());
List<String> sequenceCodeS = cylinderFillingRecord.stream().map(ESCylinderFillingRecordDto::getSequenceCode).collect(Collectors.toList());
List<ESCylinderFillingRecordDto> cylinderFillingRecordInfo = cylinderFillingRecordMapper.getCylinderFillingRecordInfo(appIds, sequenceCodeS);
cylinderFillingRecord.stream().map(item -> {
List<ESCylinderFillingRecordDto> collect = cylinderFillingRecordInfo.stream().filter(e -> item.getAppIdAndSequenceCode().equals(e.getAppIdAndSequenceCode())).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(collect)) {
item.setUnitName(collect.get(0).getUnitName());
item.setFactoryNum(collect.get(0).getFactoryNum());
item.setCylinderVariety(collect.get(0).getCylinderVariety());
item.setCylinderVarietyName(collect.get(0).getCylinderVarietyName());
item.setUnitInnerCode(collect.get(0).getUnitInnerCode());
item.setSequenceCode(collect.get(0).getSequenceCode());
item.setQrCode(collect.get(0).getQrCode());
item.setElectronicLabelCode(collect.get(0).getElectronicLabelCode());
item.setAppId(collect.get(0).getAppId());
item.setCreditCode(collect.get(0).getCreditCode());
item.setRegionCode(collect.get(0).getRegionCode());
try {
item.setInspectionDateMs(ObjectUtils.isEmpty(item.getFillingStartTime()) ? 0L : DateUtils.dateParseWithPattern(item.getFillingStartTime()).getTime());
item.setInspectionDateAfterMS(ObjectUtils.isEmpty(item.getFillingEndTime()) ? 0L : DateUtils.dateParseWithPattern(item.getFillingEndTime()).getTime());
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
return item;
}).collect(Collectors.toList());
saveCylinderFillingRecord2ES(cylinderFillingRecord);
}
}
public void saveCylinderFillingRecord2ES(List<ESCylinderFillingRecordDto> records) {
List<String> ids = new ArrayList<>();
for (ESCylinderFillingRecordDto record : records) {
CylinderFillingRecord cylinderFillingRecord = new CylinderFillingRecord();
BeanUtils.copyProperties(record, cylinderFillingRecord);
ids.add(String.valueOf(record.getSequenceNbr()));
}
esCylinderFillingRecordRepository.saveAll(records);
cylinderFillingRecordMapper.updateCylinderFillingToEsStatus(ids);
}
} }
package com.yeejoin.amos.api.openapi.face.service; package com.yeejoin.amos.api.openapi.face.service;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.google.common.collect.Lists;
import com.yeejoin.amos.api.openapi.face.orm.dao.ESCylinderInfoRepository;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderInfoDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderInfoDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderInfoMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StopWatch;
import org.typroject.tyboot.component.cache.Redis; import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
...@@ -31,9 +43,17 @@ import com.yeejoin.amos.api.openapi.face.orm.entity.TmCylinderInfo; ...@@ -31,9 +43,17 @@ import com.yeejoin.amos.api.openapi.face.orm.entity.TmCylinderInfo;
* @version $Id: ElevatorService.java, v 0.1 2021年9月30日 下午3:28:55 gwb Exp $ * @version $Id: ElevatorService.java, v 0.1 2021年9月30日 下午3:28:55 gwb Exp $
*/ */
@Component @Component
@Slf4j
public class TmCylinderInfoService extends BaseService<TmCylinderInfoModel, TmCylinderInfo, TmCylinderInfoMapper> { public class TmCylinderInfoService extends BaseService<TmCylinderInfoModel, TmCylinderInfo, TmCylinderInfoMapper> {
@Autowired @Autowired
private RedisTemplate redisTemplate; private RedisTemplate redisTemplate;
@Autowired
CylinderInfoMapper cylinderInfoMapper;
@Autowired
ESCylinderInfoRepository esCylinderInfoRepository;
@Transactional(rollbackFor= {Exception.class}) @Transactional(rollbackFor= {Exception.class})
public String createCylinderInfo(List<TmCylinderInfoModel> model) { public String createCylinderInfo(List<TmCylinderInfoModel> model) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
...@@ -52,4 +72,35 @@ public class TmCylinderInfoService extends BaseService<TmCylinderInfoModel, TmCy ...@@ -52,4 +72,35 @@ public class TmCylinderInfoService extends BaseService<TmCylinderInfoModel, TmCy
BizTokenModel bizTokenModel = (BizTokenModel) redisTemplate.opsForValue().get(tokenKey); BizTokenModel bizTokenModel = (BizTokenModel) redisTemplate.opsForValue().get(tokenKey);
return bizTokenModel.getAppId(); return bizTokenModel.getAppId();
} }
public void createCylinderInfo2ES(CylinderInfoDto cylinderInfoDto) {
List<ESCylinderInfoDto> esCylinderInfoDto = new ArrayList<>();
ESCylinderInfoDto esCylinderInfo = new ESCylinderInfoDto();
BeanUtils.copyProperties(cylinderInfoDto, esCylinderInfo);
esCylinderInfoDto.add(esCylinderInfo);
try {
esCylinderInfo.setInspectionDateMs(ObjectUtils.isEmpty(esCylinderInfo.getInspectionDate()) ? 0L : DateUtils.dateParse(esCylinderInfo.getInspectionDate(), DateUtils.DATE_TIME_PATTERN).getTime());
} catch (ParseException e) {
throw new RuntimeException(e);
}
List<String> ids = Lists.newArrayList();
StopWatch stopWatch = new StopWatch();
stopWatch.start();
esCylinderInfoRepository.saveAll(esCylinderInfoDto);
stopWatch.stop();
if (log.isInfoEnabled()) {
log.info("存入es耗时:{} 秒", stopWatch.getTotalTimeSeconds());
}
StopWatch stopWatch1 = new StopWatch();
stopWatch1.start();
cylinderInfoMapper.updateEsCylinderInfoStatus(ids);
stopWatch1.stop();
if (log.isInfoEnabled()) {
log.info("更新业务数据耗时:{} 秒", stopWatch1.getTotalTimeSeconds());
}
}
} }
...@@ -166,6 +166,38 @@ public class CylinderFillingRecordServiceImpl extends BaseService<CylinderFillin ...@@ -166,6 +166,38 @@ public class CylinderFillingRecordServiceImpl extends BaseService<CylinderFillin
} }
} }
public void createCylinderFillingRecord(List<ESCylinderFillingRecordDto> cylinderFillingRecord) {
if (!ObjectUtils.isEmpty(cylinderFillingRecord)) {
List<String> appIds = cylinderFillingRecord.stream().map(ESCylinderFillingRecordDto::getAppId).collect(Collectors.toList());
List<String> sequenceCodeS = cylinderFillingRecord.stream().map(ESCylinderFillingRecordDto::getSequenceCode).collect(Collectors.toList());
List<ESCylinderFillingRecordDto> cylinderFillingRecordInfo = cylinderFillingRecordMapper.getCylinderFillingRecordInfo(appIds, sequenceCodeS);
cylinderFillingRecord.stream().map(item -> {
List<ESCylinderFillingRecordDto> collect = cylinderFillingRecordInfo.stream().filter(e -> item.getAppIdAndSequenceCode().equals(e.getAppIdAndSequenceCode())).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(collect)) {
item.setUnitName(collect.get(0).getUnitName());
item.setFactoryNum(collect.get(0).getFactoryNum());
item.setCylinderVariety(collect.get(0).getCylinderVariety());
item.setCylinderVarietyName(collect.get(0).getCylinderVarietyName());
item.setUnitInnerCode(collect.get(0).getUnitInnerCode());
item.setSequenceCode(collect.get(0).getSequenceCode());
item.setQrCode(collect.get(0).getQrCode());
item.setElectronicLabelCode(collect.get(0).getElectronicLabelCode());
item.setAppId(collect.get(0).getAppId());
item.setCreditCode(collect.get(0).getCreditCode());
item.setRegionCode(collect.get(0).getRegionCode());
try {
item.setInspectionDateMs(ObjectUtils.isEmpty(item.getFillingStartTime()) ? 0L : DateUtils.dateParseWithPattern(item.getFillingStartTime()).getTime());
item.setInspectionDateAfterMS(ObjectUtils.isEmpty(item.getFillingEndTime()) ? 0L : DateUtils.dateParseWithPattern(item.getFillingEndTime()).getTime());
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
return item;
}).collect(Collectors.toList());
saveCylinderFillingRecord2ES(cylinderFillingRecord);
}
}
@Override @Override
public List<ESCylinderFillingRecordDto> getCylinderFillingRecordTest() { public List<ESCylinderFillingRecordDto> getCylinderFillingRecordTest() {
List<ESCylinderFillingRecordDto> cylinderFillingRecord = cylinderFillingRecordMapper.getCylinderFillingRecord(); List<ESCylinderFillingRecordDto> cylinderFillingRecord = cylinderFillingRecordMapper.getCylinderFillingRecord();
......
...@@ -822,6 +822,35 @@ public class CylinderInfoServiceImpl extends BaseService<CylinderInfoDto, Cylind ...@@ -822,6 +822,35 @@ public class CylinderInfoServiceImpl extends BaseService<CylinderInfoDto, Cylind
} }
} }
public void createCylinderInfo2ES(CylinderInfoDto cylinderInfoDto) {
List<ESCylinderInfoDto> esCylinderInfoDto = new ArrayList<>();
ESCylinderInfoDto esCylinderInfo = new ESCylinderInfoDto();
BeanUtils.copyProperties(cylinderInfoDto, esCylinderInfo);
esCylinderInfoDto.add(esCylinderInfo);
try {
esCylinderInfo.setInspectionDateMs(ObjectUtils.isEmpty(esCylinderInfo.getInspectionDate()) ? 0L : DateUtils.dateParse(esCylinderInfo.getInspectionDate(), DateUtils.DATE_TIME_PATTERN).getTime());
} catch (ParseException e) {
throw new RuntimeException(e);
}
List<String> ids = Lists.newArrayList();
StopWatch stopWatch = new StopWatch();
stopWatch.start();
esCylinderInfoRepository.saveAll(esCylinderInfoDto);
stopWatch.stop();
if (log.isInfoEnabled()) {
log.info("存入es耗时:{} 秒", stopWatch.getTotalTimeSeconds());
}
StopWatch stopWatch1 = new StopWatch();
stopWatch1.start();
cylinderInfoMapper.updateEsCylinderInfoStatus(ids);
stopWatch1.stop();
if (log.isInfoEnabled()) {
log.info("更新业务数据耗时:{} 秒", stopWatch1.getTotalTimeSeconds());
}
}
@Override @Override
public Integer getInfoTotal() { public Integer getInfoTotal() {
return cylinderInfoMapper.getInfoTotal(); return cylinderInfoMapper.getInfoTotal();
......
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