人脸抓拍数据清洗

develop
hanrenchun 7 months ago
parent 3db2658159
commit 5950b5316f

@ -1,7 +1,9 @@
package com.ssf.mysqloracletest.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.ssf.mysqloracletest.domain.TMotorvehicle;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @author 28758
@ -9,6 +11,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2023-12-14 19:17:07
* @Entity com.ssf.mysqloracletest.domain.TMotorvehicle
*/
@Mapper
@DS("postgreUser")
public interface TMotorvehicleMapper extends BaseMapper<TMotorvehicle> {
}

@ -67,8 +67,9 @@ public class UserAndVehicleRecordTask {
.gt(TStrhEntityInfoKs::getCapturetime, maxTime).count();
if (count > 0) {
int num = count / 1000;
Page<TStrhEntityInfoKs> page = new Page<>( 1, 1000);
for (int i = 0; i <= num; i++) {
Page<TStrhEntityInfoKs> page = new Page<>(i + 1, 1000);
page.setCurrent(i + 1);
QueryWrapper<TStrhEntityInfoKs> wrapper = new QueryWrapper<>();
wrapper.in("cameraidx", arrayList);
wrapper.gt("capturetime", maxTime);
@ -99,7 +100,7 @@ public class UserAndVehicleRecordTask {
}
} else {
QueryWrapper<TransitUserRecord> recordQueryWrapper = new QueryWrapper<>();
recordQueryWrapper.eq("", tStrhEntityInfoKs.getSmalimage());
recordQueryWrapper.eq("person_pic", tStrhEntityInfoKs.getSmalimage());
boolean update = transitUserRecordService.update(transitUserRecord, recordQueryWrapper);
if (update) {
logger.info("UserRecord-" + transitUserRecord.getDeviceCode() + ":更新成功");

@ -0,0 +1,111 @@
package com.ssf.mysqloracletest.task;
import cn.hutool.db.sql.Query;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ssf.mysqloracletest.domain.DevopsDeviceInfo;
import com.ssf.mysqloracletest.domain.TMotorvehicle;
import com.ssf.mysqloracletest.domain.TransitUserRecord;
import com.ssf.mysqloracletest.domain.TransitVehicleRecord;
import com.ssf.mysqloracletest.service.DevopsDeviceInfoService;
import com.ssf.mysqloracletest.service.TMotorvehicleService;
import com.ssf.mysqloracletest.service.TransitVehicleRecordService;
import com.ssf.mysqloracletest.utils.ConfigParam;
import com.ssf.mysqloracletest.utils.StringKit;
import lombok.RequiredArgsConstructor;
import oracle.sql.TRANSDUMP;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
@RequiredArgsConstructor
@Component
public class VehicleRecordTask {
private static final Logger logger = LoggerFactory.getLogger(VehicleRecordTask.class);
private final TMotorvehicleService tMotorvehicleService;
private final TransitVehicleRecordService transitVehicleRecordService;
private final DevopsDeviceInfoService devopsDeviceInfoService;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String maxTime = "20231200000000";
@Scheduled(initialDelay = 100, fixedDelay = 3000)
public void setVehicleRecordTask() {
if (!"true".equals(ConfigParam.VehicleSwitch)) {
return;
}
try {
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
LambdaQueryWrapper<TransitVehicleRecord> transitVehicleRecordQueryWrapper = Wrappers.lambdaQuery();
transitVehicleRecordQueryWrapper.orderByDesc(TransitVehicleRecord::getPartitionField);
transitVehicleRecordQueryWrapper.last("LIMIT 1");
TransitVehicleRecord one = transitVehicleRecordService.getOne(transitVehicleRecordQueryWrapper);
if (one != null){
Date partitionField = one.getPartitionField();
maxTime = dateFormat.format(partitionField);
}
List<DevopsDeviceInfo> list = devopsDeviceInfoService.lambdaQuery().eq(DevopsDeviceInfo::getDeviceType, 2).list();
ArrayList<String> arrayList = new ArrayList<>();
for (DevopsDeviceInfo devopsDeviceInfo : list){
arrayList.add(devopsDeviceInfo.getGbsChannelNo());
}
Integer count = tMotorvehicleService.lambdaQuery()
.in(TMotorvehicle::getTollgateid, arrayList)
.gt(TMotorvehicle::getPasstime, maxTime).count();
if (count > 0){
int num = count/1000;
Page<TMotorvehicle> page = new Page<>(1,1000);
for (int i = 0; i <= num ; i++){
page.setCurrent(i + 1);
QueryWrapper<TMotorvehicle> wrapper = new QueryWrapper<>();
wrapper.in("tollgateid",arrayList);
wrapper.gt("passtime",maxTime);
List<TMotorvehicle> records = tMotorvehicleService.page(page,wrapper).getRecords();
for (TMotorvehicle tMotorvehicle : records){
TransitVehicleRecord transitVehicleRecord = new TransitVehicleRecord();
DevopsDeviceInfo devopsDeviceInfo = devopsDeviceInfoService.lambdaQuery().eq(DevopsDeviceInfo::getGbsChannelNo, tMotorvehicle.getTollgateid()).one();
transitVehicleRecord.setPlaceCode(devopsDeviceInfo.getPlaceCode());
transitVehicleRecord.setPlaceName(devopsDeviceInfo.getDeviceName());
transitVehicleRecord.setDeviceCode(devopsDeviceInfo.getDeviceCode());
transitVehicleRecord.setDeviceName(devopsDeviceInfo.getDeviceName());
transitVehicleRecord.setGbsChannelNo(tMotorvehicle.getDeviceid());
transitVehicleRecord.setPlateNo(tMotorvehicle.getPlateno());
transitVehicleRecord.setGlobalPic(tMotorvehicle.getStorageurl1());
transitVehicleRecord.setPlatePic(tMotorvehicle.getStorageurl2());
transitVehicleRecord.setDoorwayCode(tMotorvehicle.getTollgateid());
transitVehicleRecord.setPassTime(dateFormat.parse(tMotorvehicle.getPasstime()).getTime()/1000);
transitVehicleRecord.setPartitionField(dateFormat.parse(tMotorvehicle.getPasstime()));
TransitVehicleRecord vehicleRecord = transitVehicleRecordService.lambdaQuery().eq(TransitVehicleRecord::getGlobalPic, tMotorvehicle.getStorageurl1()).one();
if (vehicleRecord == null){
boolean save = transitVehicleRecordService.save(transitVehicleRecord);
if (save){
logger.info("VehicleRecord-" + devopsDeviceInfo.getDeviceCode() + ":插入成功");
}
}else {
QueryWrapper<TransitVehicleRecord> recordQueryWrapper = new QueryWrapper<>();
recordQueryWrapper.eq("global_pic", tMotorvehicle.getStorageurl1());
boolean update = transitVehicleRecordService.update(transitVehicleRecord, recordQueryWrapper);
if (update) {
logger.info("VehicleRecord-" + devopsDeviceInfo.getDeviceCode() + ":更新成功");
}
}
}
}
}
} catch (Exception e) {
logger.info(StringKit.getTrace(e));
}
}
}

@ -55,5 +55,6 @@ public class ConfigParam {
public static String wsDownloadPicPath = PropertiesUtil.queryPropertiesByKey("wsDownloadPicPath");
public static String wsDownloadPicAreaStart = PropertiesUtil.queryPropertiesByKey("wsDownloadPicAreaStart");
public static String UserAndVehicleSwitch = PropertiesUtil.queryPropertiesByKey("UserAndVehicleSwitch");
public static String VehicleSwitch = PropertiesUtil.queryPropertiesByKey("VehicleSwitch");
}

Loading…
Cancel
Save