Commit 2f4ed3f9 authored by tianyiming's avatar tianyiming

两员配备- 气瓶基本信息,气瓶充装信息存入es优化

parent b22267d2
......@@ -93,6 +93,10 @@ public class ESCylinderFillingRecordDto {
@Field(type = FieldType.Text)
private String inspectionDate;
//充装前检查时间毫秒值
@Field(type = FieldType.Long)
private Long inspectionDateMs;
//充装前检查结果
@Field(type = FieldType.Text)
private String fillingResult;
......@@ -106,6 +110,10 @@ public class ESCylinderFillingRecordDto {
@Field(type = FieldType.Text)
private String inspectionDateAfter;
//充装前检查结果毫秒值
@Field(type = FieldType.Long)
private Long inspectionDateAfterMS;
//重装后检查结果
@Field(type = FieldType.Text)
private String checkResult;
......@@ -122,4 +130,7 @@ public class ESCylinderFillingRecordDto {
@Field(type = FieldType.Text)
private String regionCode;
//appid+气瓶唯一标识
private String appIdAndSequenceCode;
}
......@@ -72,6 +72,10 @@ public class ESCylinderInfoDto {
@Field(type = FieldType.Text)
private String inspectionDate;
//检验日期
@Field(type = FieldType.Long)
private Long inspectionDateMs;
//气瓶唯一标识
@Field(type = FieldType.Text)
private String sequenceCode;
......
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.cylinder.flc.api.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.cylinder.api.dto.CylinderFillingRecordDtoEs;
import com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderFillingRecordDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderFillingRecordDto;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
......@@ -47,7 +48,7 @@ public interface CylinderFillingRecordMapper extends BaseMapper<CylinderFillingR
);
Page<ESCylinderFillingRecordDto> getCyinderFillingRecord(Page<ESCylinderFillingRecordDto> cylinderFillingRecordDto);
List<ESCylinderFillingRecordDto> getCylinderFillingRecord();
Double getFillingSumByMonth(@Param("appId") String appId, @Param("time") Date time);
......@@ -55,7 +56,9 @@ public interface CylinderFillingRecordMapper extends BaseMapper<CylinderFillingR
Double getFillingSumByDate(@Param("appId") String appId, @Param("time") Date time);
ESCylinderFillingRecordDto getCyinderFillingRecordInfo(String appId, String sequenceCode);
List<ESCylinderFillingRecordDto> getCylinderFillingRecordInfo(@Param("appIds") List<String> appIds,@Param("sequenceCodeS") List<String> sequenceCodeS);
Integer getCylinderFillingRecordTotal();
void updateCylinderFillingToEsStatus( @Param("ids")List<String> ids);
}
......@@ -16,7 +16,8 @@ public interface ICylinderFillingRecordService {
ESCylinderFillingRecordDto saveCylinderFillingRecordToES(ESCylinderFillingRecordDto ci);
Page<ESCylinderFillingRecordDto> getCyinderFillingRecord(Page<ESCylinderFillingRecordDto> cylinderFillingRecordDto);
List<ESCylinderFillingRecordDto> getCylinderFillingRecordAll();
List<ESCylinderFillingRecordDto> getCylinderFillingRecordTest();
Page<ESCylinderFillingRecordDto> queryByKeys(ESCylinderFillingRecordDto esCylinderFillingRecordDto, int pageNum, int pageSize);
......
......@@ -146,83 +146,94 @@
select count(1) from tz_cylinder_filling_record r where date_format(r.filling_endTime,'%Y-%m') = date_format(#{time},'%Y-%m') and app_id = #{appId}
</select>
<select id="getCyinderFillingRecord" resultType="com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderFillingRecordDto">
SELECT
DISTINCT( r.filling_record_id),
r.sequence_nbr AS sequenceNbr,
r.filling_startTime AS fillingStarttime,
r.filling_endTime AS fillingEndtime,
r.filling_user AS fillingUser,
r.filling_quantity AS fillingQuantity,
r.temperature AS temperature,
CASE
r.abnormal
WHEN 3139 THEN
'有异常'
WHEN 3140 THEN
'正常' ELSE''
END AS abnormalStr,
b.inspector_user AS inspectorUser,
b.inspection_date AS inspectionDate,
b.check_results AS fillingResult,
b.sequence_code AS sequenceCode,
b.app_id AS appId,
b.filling_unit_name AS fillingUnitName,
af.inspector AS inspector,
af.inspection_date AS inspectionDateAfter,
af.check_results AS checkResult
<select id="getCylinderFillingRecord" resultType="com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderFillingRecordDto">
SELECT DISTINCT(r.filling_record_id),
r.sequence_nbr AS sequenceNbr,
r.filling_startTime AS fillingStarttime,
r.filling_endTime AS fillingEndtime,
r.filling_user AS fillingUser,
r.filling_quantity AS fillingQuantity,
r.temperature AS temperature,
CASE
r.abnormal
WHEN 3139 THEN
'有异常'
WHEN 3140 THEN
'正常'
ELSE ''
END AS abnormalStr,
b.inspector_user AS inspectorUser,
b.inspection_date AS inspectionDate,
b.check_results AS fillingResult,
b.sequence_code AS sequenceCode,
b.app_id AS appId,
concat(b.app_id, b.sequence_code) AS appIdAndSequenceCode,
b.filling_unit_name AS fillingUnitName,
af.inspector AS inspector,
af.inspection_date AS inspectionDateAfter,
af.check_results AS checkResult
FROM
tz_cylinder_filling_record r
( SELECT * FROM tz_cylinder_filling_record WHERE is_not_es IS NULL LIMIT 5000 ) r
LEFT JOIN tz_cylinder_filling b ON b.filling_before_id = r.filling_before_id
AND r.filling_before_id is NOT null
AND date_format (b.inspection_date, '%Y-%m-%d') = date_format ( r.filling_startTime, '%Y-%m-%d' )
AND r.filling_before_id IS NOT NULL and b.inspection_date NOT LIKE'16%'
AND date_format ( b.inspection_date, '%Y-%m-%d' ) = date_format ( r.filling_startTime, '%Y-%m-%d' )
LEFT JOIN tz_cylinder_filling_check af ON af.filling_check_id = r.filling_check_id
AND date_format (af.inspection_date,'%Y-%m-%d') = date_format ( r.filling_startTime, '%Y-%m-%d' )
LEFT JOIN tz_cylinder_info i ON b.sequence_code = i.sequence_code
AND date_format ( af.inspection_date, '%Y-%m-%d' ) = date_format ( r.filling_startTime, '%Y-%m-%d' )
WHERE b.sequence_code is not null AND b.app_id is not null
</select>
<select id="getCylinderFillingRecordTotal" resultType="java.lang.Integer">
SELECT
COUNT(1)
FROM
tz_cylinder_filling_record r
WHERE
r.is_not_es IS NULL
AND b.inspection_date not like '16%'
ORDER BY r.filling_record_id
AND r.filling_before_id IS NOT NULL
AND r.filling_check_id IS NOT NULL
</select>
<select id="getCyinderFillingRecordInfo"
<update id="updateCylinderFillingToEsStatus">
UPDATE tz_cylinder_filling_record SET "is_not_es" = 1 WHERE "sequence_nbr" IN
<foreach collection="ids" separator="," item="id" open="(" close=")">
#{id}
</foreach>
</update>
<select id="getCylinderFillingRecordInfo"
resultType="com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderFillingRecordDto">
SELECT
ci.unit_name AS unit_name,
ci.factory_num AS factoryNum,
ci.cylinder_variety AS cylinder_variety,
d2.NAME AS cylinder_variety_name,
ci.unit_inner_code AS unit_inner_code,
ci.sequence_code AS sequence_code,
ct.qrCode,
ct.electronic_label_code,
ci.app_id,
ci.credit_code,
tn.region_code
ci.unit_name AS unit_name,
ci.factory_num AS factoryNum,
ci.cylinder_variety AS cylinder_variety,
d2.NAME AS cylinder_variety_name,
ci.unit_inner_code AS unit_inner_code,
ci.sequence_code AS sequence_code,
ct.qrCode,
ct.electronic_label_code,
ci.app_id,
ci.credit_code,
tn.region_code,
concat(ci.app_id, ci.sequence_code) AS appIdAndSequenceCode
FROM
tz_cylinder_info AS ci
LEFT JOIN cb_data_dictionary AS d1 ON d1.TYPE = 'CZJZMC' AND d1.code = ci.filling_media
LEFT JOIN cb_data_dictionary AS d2 ON d2.sequence_nbr = ci.cylinder_variety
LEFT JOIN tz_cylinder_tags AS ct ON ct.sequence_code = ci.sequence_code and ct.app_id = ci.app_id
LEFT JOIN tz_cylinder_unit AS tn ON ci.app_id = tn.app_id
where
ci.sequence_code = #{sequenceCode}
and ci.app_id = #{appId}
</select>
<select id="getCylinderFillingRecordTotal" resultType="java.lang.Integer">
SELECT
COUNT(1)
FROM
tz_cylinder_filling_record r
LEFT JOIN tz_cylinder_filling b ON b.filling_before_id = r.filling_before_id
AND r.filling_before_id IS NOT NULL
AND date_format ( b.inspection_date, '%Y-%m-%d' ) = date_format ( r.filling_startTime, '%Y-%m-%d' )
LEFT JOIN tz_cylinder_filling_check af ON af.filling_check_id = r.filling_check_id
AND date_format ( af.inspection_date, '%Y-%m-%d' ) = date_format ( r.filling_startTime, '%Y-%m-%d' )
LEFT JOIN tz_cylinder_info i ON b.sequence_code = i.sequence_code
WHERE
r.is_not_es IS NULL
AND b.inspection_date NOT LIKE'16%'
<where>
<if test="appIds != null and appIds.size() > 0">
ci.app_id in
<foreach item="appId" collection="appIds" separator="," open="(" close=")" index="">
#{appId}
</foreach>
</if>
<if test="sequenceCodeS != null and sequenceCodeS.size() > 0">
and ci.sequence_code in
<foreach item="sequenceCode" collection="sequenceCodeS" separator="," open="(" close=")" index="">
#{sequenceCode}
</foreach>
</if>
</where>
</select>
</mapper>
......@@ -601,7 +601,7 @@ public class CylinderInfoController extends BaseController {
cylinderInfoPage.setCurrent(1);
cylinderInfoPage.setSize(1000);
cylinderInfoPage = cylinderInfoServiceImpl.getCyinderInfoList(cylinderInfoPage);
if (!ObjectUtils.isEmpty(cylinderInfoPage)) {
if (!ObjectUtils.isEmpty(cylinderInfoPage) && cylinderInfoPage.getRecords().size() > 0) {
cylinderInfoServiceImpl.saveCylinderInfo2ES(cylinderInfoPage.getRecords());
}
return ResponseHelper.buildResponse(true);
......@@ -639,45 +639,19 @@ public class CylinderInfoController extends BaseController {
return ResponseHelper.buildResponse(pageResult);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@TycloudOperation(ApiLevel = UserType.AGENCY ,needAuth = false)
@GetMapping(value = "/saveCyinderFillingRecord")
@ApiOperation(httpMethod = "GET", value = "气瓶充装信息存入es", notes = "气瓶充装信息存入es")
public void saveCyinderFillingRecord() {
Page<ESCylinderFillingRecordDto> recordDtoPage = new Page<>();
Integer count = cylinderFillingRecordServiceImpl.getCylinderFillingRecordTotal();
Integer times = 0;
if (count != 0) {
times = count / 1000;
int last = count % 1000;
if (last > 0) {
times++;
}
} else {
return;
}
for (int i = 0; i <= times; i++) {
recordDtoPage.setCurrent(1);
recordDtoPage.setSize(1000);
Page<ESCylinderFillingRecordDto> cyinderFillingRecord = cylinderFillingRecordServiceImpl.getCyinderFillingRecord(recordDtoPage);
if (!ObjectUtils.isEmpty(cyinderFillingRecord)) {
cylinderFillingRecordServiceImpl.saveCylinderFillingRecord2ES(cyinderFillingRecord.getRecords());
}
}
public ResponseModel<Object> saveCyinderFillingRecord() {
return ResponseHelper.buildResponse(cylinderFillingRecordServiceImpl.getCylinderFillingRecordAll());
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/getCyinderFillingRecord")
@ApiOperation(httpMethod = "GET", value = "气瓶充装信息存入es入口", notes = "气瓶充装信息存入es入口")
public Page<ESCylinderFillingRecordDto> getCyinderFillingRecord() {
Page<ESCylinderFillingRecordDto> cylinderInfoPage = new Page<>();
cylinderInfoPage.setCurrent(1);
cylinderInfoPage.setSize(10);
Page<ESCylinderFillingRecordDto> cyinderFillingRecord = cylinderFillingRecordServiceImpl.getCyinderFillingRecord(cylinderInfoPage);
for (ESCylinderFillingRecordDto ci : cyinderFillingRecord.getRecords()) {
cylinderFillingRecordServiceImpl.saveCylinderFillingRecordToES(ci);
}
return cyinderFillingRecord;
public ResponseModel<Object> getCyinderFillingRecord() {
return ResponseHelper.buildResponse(cylinderFillingRecordServiceImpl.getCylinderFillingRecordTest());
}
......
package com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl;
import cn.hutool.json.ObjectMapper;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.cylinder.api.dto.CylinderFillingRecordDtoEs;
import com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderFillingRecordDto;
import com.yeejoin.amos.boot.module.cylinder.biz.dao.ESCylinderFillingRecordRepository;
import com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderFillingRecordDto;
import com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderFillingRecord;
import com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderFillingRecordMapper;
import com.yeejoin.amos.boot.module.cylinder.flc.api.service.ICylinderFillingRecordService;
import lombok.extern.slf4j.Slf4j;
import net.javacrumbs.shedlock.spring.annotation.SchedulerLock;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
......@@ -23,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StopWatch;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.io.IOException;
......@@ -32,6 +37,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Logger;
import java.util.stream.Collectors;
/**
......@@ -41,6 +47,7 @@ import java.util.stream.Collectors;
* @date 2022-03-04
*/
@Service
@Slf4j
public class CylinderFillingRecordServiceImpl extends BaseService<CylinderFillingRecordDto, CylinderFillingRecord, CylinderFillingRecordMapper> implements ICylinderFillingRecordService {
@Autowired
......@@ -114,74 +121,135 @@ public class CylinderFillingRecordServiceImpl extends BaseService<CylinderFillin
@Scheduled(cron = "${tzs.cylinder.fill.cron}")
@SchedulerLock(name = "cylinderFillingRecord2ESTask", lockAtMostFor = "PT6H")
public void setTimeSaveCylinderInfoToES() {
Page<ESCylinderFillingRecordDto> cylinderFillingRecordPage = new Page<>();
Page<ESCylinderFillingRecordDto> cyinderInfoList = cylinderFillingRecordMapper.getCyinderFillingRecord(cylinderFillingRecordPage);
Long count = cyinderInfoList.getCurrent();
Long times = 0L;
Integer count = cylinderFillingRecordMapper.getCylinderFillingRecordTotal();
Integer times = 0;
if (count != 0) {
times = count / 1000;
Long last = count % 1000;
times = count / 5000;
int last = count % 5000;
if (last > 0) {
times++;
}
} else {
return;
}
for (int i = 0; i <= times; i++) {
cylinderFillingRecordPage.setCurrent(i);
cylinderFillingRecordPage.setSize(1000);
cylinderFillingRecordPage = cylinderFillingRecordMapper.getCyinderFillingRecord(cylinderFillingRecordPage);
if (!ObjectUtils.isEmpty(cylinderFillingRecordPage)) {
cylinderFillingRecordPage.getRecords().stream().map(item -> {
if (!ObjectUtils.isEmpty(item.getSequenceCode())) {
ESCylinderFillingRecordDto cyinderFillingRecordInfo = cylinderFillingRecordMapper.getCyinderFillingRecordInfo(item.getAppId(), item.getSequenceCode());
item.setUnitName(cyinderFillingRecordInfo.getUnitName());
item.setFactoryNum(cyinderFillingRecordInfo.getFactoryNum());
item.setCylinderVariety(cyinderFillingRecordInfo.getCylinderVariety());
item.setCylinderVarietyName(cyinderFillingRecordInfo.getCylinderVarietyName());
item.setUnitInnerCode(cyinderFillingRecordInfo.getUnitInnerCode());
item.setSequenceCode(cyinderFillingRecordInfo.getSequenceCode());
item.setQrCode(cyinderFillingRecordInfo.getQrCode());
item.setElectronicLabelCode(cyinderFillingRecordInfo.getElectronicLabelCode());
item.setAppId(cyinderFillingRecordInfo.getAppId());
item.setCreditCode(cyinderFillingRecordInfo.getCreditCode());
List<ESCylinderFillingRecordDto> cylinderFillingRecord = cylinderFillingRecordMapper.getCylinderFillingRecord();
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.getInspectionDate()) ? 0L : DateUtils.dateParse(item.getInspectionDate(), DateUtils.DATE_TIME_PATTERN).getTime());
item.setInspectionDateAfterMS(ObjectUtils.isEmpty(item.getInspectionDateAfter()) ? 0L : DateUtils.dateParse(item.getInspectionDateAfter(), DateUtils.DATE_TIME_PATTERN).getTime());
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
return item;
}).collect(Collectors.toList());
}
// for (ESCylinderFillingRecordDto ci : cylinderFillingRecordPage.getRecords()) {
// saveCylinderFillingRecordToES(ci);
// }
if (!ObjectUtils.isEmpty(cylinderFillingRecordPage)) {
saveCylinderFillingRecord2ES(cylinderFillingRecordPage.getRecords());
saveCylinderFillingRecord2ES(cylinderFillingRecord);
}
}
}
@Override
public Page<ESCylinderFillingRecordDto> getCyinderFillingRecord(Page<ESCylinderFillingRecordDto> cylinderFillingRecordDto) {
Page<ESCylinderFillingRecordDto> cyinderFillingRecord = cylinderFillingRecordMapper.getCyinderFillingRecord(cylinderFillingRecordDto);
if (!ObjectUtils.isEmpty(cyinderFillingRecord)) {
cyinderFillingRecord.getRecords().stream().map(item -> {
if (!ObjectUtils.isEmpty(item.getSequenceCode())) {
ESCylinderFillingRecordDto cyinderFillingRecordInfo = cylinderFillingRecordMapper.getCyinderFillingRecordInfo(item.getAppId(), item.getSequenceCode());
if (!ObjectUtils.isEmpty(cyinderFillingRecordInfo)) {
item.setUnitName(cyinderFillingRecordInfo.getUnitName());
item.setFactoryNum(cyinderFillingRecordInfo.getFactoryNum());
item.setCylinderVariety(cyinderFillingRecordInfo.getCylinderVariety());
item.setCylinderVarietyName(cyinderFillingRecordInfo.getCylinderVarietyName());
item.setUnitInnerCode(cyinderFillingRecordInfo.getUnitInnerCode());
item.setSequenceCode(cyinderFillingRecordInfo.getSequenceCode());
item.setQrCode(cyinderFillingRecordInfo.getQrCode());
item.setElectronicLabelCode(cyinderFillingRecordInfo.getElectronicLabelCode());
item.setAppId(cyinderFillingRecordInfo.getAppId());
item.setCreditCode(cyinderFillingRecordInfo.getCreditCode());
item.setRegionCode(cyinderFillingRecordInfo.getRegionCode());
public List<ESCylinderFillingRecordDto> getCylinderFillingRecordTest() {
List<ESCylinderFillingRecordDto> cylinderFillingRecord = cylinderFillingRecordMapper.getCylinderFillingRecord();
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);
// List<ESCylinderFillingRecordDto> cylinderFillingRecordInfo = cylinderFillingRecordMapper.getCylinderFillingRecordInfo(appIdAndSequenceCodes);
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.getInspectionDate()) ? 0L : DateUtils.dateParse(item.getInspectionDate(), DateUtils.DATE_TIME_PATTERN).getTime());
item.setInspectionDateAfterMS(ObjectUtils.isEmpty(item.getInspectionDateAfter()) ? 0L : DateUtils.dateParse(item.getInspectionDateAfter(), DateUtils.DATE_TIME_PATTERN).getTime());
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
return item;
}).collect(Collectors.toList());
saveCylinderFillingRecord2ES(cylinderFillingRecord);
}
return cylinderFillingRecord;
}
@Override
public List<ESCylinderFillingRecordDto> getCylinderFillingRecordAll() {
List<ESCylinderFillingRecordDto> cylinderFillingRecord = new ArrayList<>();
Integer count = cylinderFillingRecordMapper.getCylinderFillingRecordTotal();
Integer times = 0;
if (count != 0) {
times = count / 5000;
int last = count % 5000;
if (last > 0) {
times++;
}
} else {
return cylinderFillingRecord;
}
return cyinderFillingRecord;
for (int i = 0; i <= times; i++) {
cylinderFillingRecord = cylinderFillingRecordMapper.getCylinderFillingRecord();
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.getInspectionDate()) ? 0L : DateUtils.dateParse(item.getInspectionDate(), DateUtils.DATE_TIME_PATTERN).getTime());
item.setInspectionDateAfterMS(ObjectUtils.isEmpty(item.getInspectionDateAfter()) ? 0L : DateUtils.dateParse(item.getInspectionDateAfter(), DateUtils.DATE_TIME_PATTERN).getTime());
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
return item;
}).collect(Collectors.toList());
saveCylinderFillingRecord2ES(cylinderFillingRecord);
}
}
return cylinderFillingRecord;
}
@Override
......@@ -334,16 +402,14 @@ public class CylinderFillingRecordServiceImpl extends BaseService<CylinderFillin
@Override
public void saveCylinderFillingRecord2ES(List<ESCylinderFillingRecordDto> records) {
List<CylinderFillingRecord> cylinderFillingRecordList = new ArrayList<>();
List<String> ids = new ArrayList<>();
for (ESCylinderFillingRecordDto record : records) {
CylinderFillingRecord cylinderFillingRecord = new CylinderFillingRecord();
BeanUtils.copyProperties(record, cylinderFillingRecord);
cylinderFillingRecord.setIsNotEs("1");
cylinderFillingRecord.setSequenceNbr(record.getSequenceNbr());
cylinderFillingRecordList.add(cylinderFillingRecord);
ids.add(String.valueOf(record.getSequenceNbr()));
}
esCylinderFillingRecordRepository.saveAll(records);
this.updateBatchById(cylinderFillingRecordList);
cylinderFillingRecordMapper.updateCylinderFillingToEsStatus(ids);
}
@Override
......
......@@ -744,7 +744,7 @@ public class CylinderInfoServiceImpl extends BaseService<CylinderInfoDto, Cylind
});
}
// @Scheduled(cron = "${tzs.cylinder.info.cron}")
@Scheduled(cron = "${tzs.cylinder.info.cron}")
@SchedulerLock(name = "cylinderInfoToESTask", lockAtMostFor = "PT6H")
public void setTimeSaveCylinderInfoToES() {
Page<CylinderInfoDto> cylinderInfoPage = new Page<>();
......@@ -778,6 +778,11 @@ public class CylinderInfoServiceImpl extends BaseService<CylinderInfoDto, Cylind
ESCylinderInfoDto esCylinderInfo = new ESCylinderInfoDto();
BeanUtils.copyProperties(record, 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);
}
ids.add(String.valueOf(record.getSequenceNbr()));
}
StopWatch stopWatch = new StopWatch();
......
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