重点人员,车辆 人脸抓拍数据清洗

develop
hanrenchun 10 months ago
parent 854d5da804
commit 3cfaeaed2d

@ -7,6 +7,7 @@ syfwSwitch=false
syrkSwitch=false syrkSwitch=false
jksbSwitch=false jksbSwitch=false
SwrySwitch=false
cjxxSwitch=false cjxxSwitch=false
zdrySwitch=false zdrySwitch=false
@ -17,7 +18,7 @@ NewNsydwSwitch=false
metaImpUserSwitch=false metaImpUserSwitch=false
NewNalarminfoSwitch=false NewNalarminfoSwitch=false
metaHandleAlarmSwitch=false metaHandleAlarmSwitch=false
metaActualUnitUserInfoSwitch=false metaActualUnitUserInfoSwitch=true
metaActualUserInfoSwitch=true metaActualUserInfoSwitch=true
actualTimecjxxSwitch=false actualTimecjxxSwitch=false
actualTimejjxxSwitch=false actualTimejjxxSwitch=false

@ -0,0 +1,137 @@
package com.ssf.mysqloracletest.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName transit_imp_user_record
*/
@TableName(value ="transit_imp_user_record")
@Data
public class TransitImpUserRecord implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
*
*/
private String deviceCode;
/**
*
*/
private BigDecimal longitude;
/**
*
*/
private BigDecimal latitude;
/**
*
*/
private String deviceAddress;
/**
*
*/
private String orientation;
/**
*
*/
private String globalPic;
/**
*
*/
private String userPic;
/**
*
*/
private String similarity;
/**
*
*/
private String ownerName;
/**
*
*/
private String idCard;
/**
*
*/
private String phone;
/**
*
*/
private Long passTime;
/**
*
*/
private Date partitionField;
/**
*
*/
private String policeStationName;
/**
*
*/
private String controlBasis;
/**
*
*/
private String controlBasisNotes;
/**
*
*/
private String impUserTypeName;
/**
*
*/
private Date createTime;
/**
*
*/
private Integer createBy;
/**
*
*/
private Date updateTime;
/**
*
*/
private Integer updateBy;
/**
* 0:,1:
*/
private Integer isActive;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,142 @@
package com.ssf.mysqloracletest.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName transit_imp_vehicle_record
*/
@TableName(value ="transit_imp_vehicle_record")
@Data
public class TransitImpVehicleRecord implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
*
*/
private String deviceCode;
/**
*
*/
private BigDecimal longitude;
/**
*
*/
private BigDecimal latitude;
/**
*
*/
private String deviceAddress;
/**
*
*/
private String orientation;
/**
*
*/
private String plateNo;
/**
*
*/
private String globalPic;
/**
*
*/
private String platePic;
/**
*
*/
private String userPic;
/**
*
*/
private String ownerName;
/**
*
*/
private String idCard;
/**
*
*/
private String phone;
/**
*
*/
private Long passTime;
/**
*
*/
private Date partitionField;
/**
*
*/
private String policeStationName;
/**
*
*/
private String controlBasis;
/**
*
*/
private String controlBasisNotes;
/**
*
*/
private String impUserTypeName;
/**
*
*/
private Date createTime;
/**
*
*/
private Integer createBy;
/**
*
*/
private Date updateTime;
/**
*
*/
private Integer updateBy;
/**
* 0:,1:
*/
private Integer isActive;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,33 @@
package com.ssf.mysqloracletest.domain;
import lombok.Data;
@Data
public class VSwryGjxxOracle {
private String GJXXID;
private String GJLX;
private String KEY1;
private String VALUE1;
private String KEY2;
private String VALUE2;
private String KEY3;
private String VALUE3;
private String KEY4;
private String VALUE4;
private String KEY5;
private String VALUE5;
private String KEY6;
private String VALUE6;
private String KEY7;
private String VALUE7;
private String GJSJ;
private String RYWKSJ;
private String ZDRYSFZH;
private String ZDRYXM;
private String KEY8;
private String VALUE8;
private String DWBH;
private String JDZB;
private String WDZB;
}

@ -43,5 +43,6 @@ public class VSySydwCyryMysql implements Serializable {
private String YSBZK_GXSJ; private String YSBZK_GXSJ;
@TableField(value = "DWMC") @TableField(value = "DWMC")
private String DWMC; private String DWMC;
private String status;
} }

@ -121,4 +121,6 @@ public class ZhxfZdrygkRyjbxxViewMysql implements Serializable {
@TableField(value = "CXZT") @TableField(value = "CXZT")
private String CXZT; private String CXZT;
private String status;
} }

@ -0,0 +1,18 @@
package com.ssf.mysqloracletest.mapper;
import com.ssf.mysqloracletest.domain.TransitImpUserRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author 28758
* @description transit_imp_user_record()Mapper
* @createDate 2023-12-05 16:27:16
* @Entity com.ssf.mysqloracletest.domain.TransitImpUserRecord
*/
public interface TransitImpUserRecordMapper extends BaseMapper<TransitImpUserRecord> {
}

@ -0,0 +1,18 @@
package com.ssf.mysqloracletest.mapper;
import com.ssf.mysqloracletest.domain.TransitImpVehicleRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author 28758
* @description transit_imp_vehicle_record()Mapper
* @createDate 2023-12-05 16:27:27
* @Entity com.ssf.mysqloracletest.domain.TransitImpVehicleRecord
*/
public interface TransitImpVehicleRecordMapper extends BaseMapper<TransitImpVehicleRecord> {
}

@ -0,0 +1,29 @@
package com.ssf.mysqloracletest.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ssf.mysqloracletest.domain.JcjJjxxViewOracle;
import com.ssf.mysqloracletest.domain.VSwryGjxxOracle;
import com.ssf.mysqloracletest.domain.VSySydwCyryOracle;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* @author 28758
* @description v_sy_sydw_cyryMapper
* @createDate 2023-11-29 20:30:59
* @Entity com.ssf.mysqloracletest.domain.VSySydwCyry
*/
@Mapper
public interface VSwryGjxxOracleMapper extends BaseMapper<VSwryGjxxOracle> {
public int countSwry();
public List<VSwryGjxxOracle> getSwryList(Map map);
public List<VSwryGjxxOracle> getRealTimeRecording(String maxTime);
}

@ -0,0 +1,13 @@
package com.ssf.mysqloracletest.service;
import com.ssf.mysqloracletest.domain.TransitImpUserRecord;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author 28758
* @description transit_imp_user_record()Service
* @createDate 2023-12-05 16:27:16
*/
public interface TransitImpUserRecordService extends IService<TransitImpUserRecord> {
}

@ -0,0 +1,13 @@
package com.ssf.mysqloracletest.service;
import com.ssf.mysqloracletest.domain.TransitImpVehicleRecord;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author 28758
* @description transit_imp_vehicle_record()Service
* @createDate 2023-12-05 16:27:27
*/
public interface TransitImpVehicleRecordService extends IService<TransitImpVehicleRecord> {
}

@ -0,0 +1,21 @@
package com.ssf.mysqloracletest.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ssf.mysqloracletest.domain.JcjJjxxViewOracle;
import com.ssf.mysqloracletest.domain.VSwryGjxxOracle;
import java.util.List;
import java.util.Map;
/**
* @author 28758
* @description v_sy_sydw_SwryService
* @createDate 2023-11-29 20:30:59
*/
public interface VSySwryGjxxOracleService extends IService<VSwryGjxxOracle> {
public int countSwry();
public List<VSwryGjxxOracle> getSwryList(Map map);
public List<VSwryGjxxOracle> getRealTimeRecording(String maxTime);
}

@ -12,7 +12,7 @@ import com.ssf.mysqloracletest.domain.ZhxfZdrygkRyjbxxViewMysql;
public interface VSySydwCyryMysqlService extends IService<VSySydwCyryMysql> { public interface VSySydwCyryMysqlService extends IService<VSySydwCyryMysql> {
public VSySydwCyryMysql selectCyryById(String id); public VSySydwCyryMysql selectCyryById(String id);
public int insertCyry(VSySydwCyryMysql syrk); public int insertCyry(VSySydwCyryMysql cyry);
public int updateCyryById(VSySydwCyryMysql syrk); public int updateCyryById(VSySydwCyryMysql cyry);
} }

@ -0,0 +1,22 @@
package com.ssf.mysqloracletest.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ssf.mysqloracletest.domain.TransitImpUserRecord;
import com.ssf.mysqloracletest.service.TransitImpUserRecordService;
import com.ssf.mysqloracletest.mapper.TransitImpUserRecordMapper;
import org.springframework.stereotype.Service;
/**
* @author 28758
* @description transit_imp_user_record()Service
* @createDate 2023-12-05 16:27:16
*/
@Service
public class TransitImpUserRecordServiceImpl extends ServiceImpl<TransitImpUserRecordMapper, TransitImpUserRecord>
implements TransitImpUserRecordService{
}

@ -0,0 +1,22 @@
package com.ssf.mysqloracletest.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ssf.mysqloracletest.domain.TransitImpVehicleRecord;
import com.ssf.mysqloracletest.service.TransitImpVehicleRecordService;
import com.ssf.mysqloracletest.mapper.TransitImpVehicleRecordMapper;
import org.springframework.stereotype.Service;
/**
* @author 28758
* @description transit_imp_vehicle_record()Service
* @createDate 2023-12-05 16:27:27
*/
@Service
public class TransitImpVehicleRecordServiceImpl extends ServiceImpl<TransitImpVehicleRecordMapper, TransitImpVehicleRecord>
implements TransitImpVehicleRecordService{
}

@ -0,0 +1,46 @@
package com.ssf.mysqloracletest.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ssf.mysqloracletest.domain.JcjCjxxViewOracle;
import com.ssf.mysqloracletest.domain.VSwryGjxxOracle;
import com.ssf.mysqloracletest.mapper.VSwryGjxxOracleMapper;
import com.ssf.mysqloracletest.service.VSySwryGjxxOracleService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @author 28758
* @description swryService
* @createDate 2023-11-29 20:30:59
*/
@Service
@DS("oracleSydz")
public class VSwryGjxxOracleServiceImpl extends ServiceImpl<VSwryGjxxOracleMapper, VSwryGjxxOracle>
implements VSySwryGjxxOracleService {
@Resource
private VSwryGjxxOracleMapper oracleMapper;
@Override
public int countSwry() {
return oracleMapper.countSwry();
}
@Override
public List<VSwryGjxxOracle> getSwryList(Map map) {
return oracleMapper.getSwryList(map);
}
@Override
public List<VSwryGjxxOracle> getRealTimeRecording(String time) {
return oracleMapper.getRealTimeRecording(time);
}
}

@ -77,7 +77,7 @@ public class MetaHandleAlarmTask {
List<JcjCjxxViewMysql> list = jcjCjxxViewMysqlService.lambdaQuery().list(); List<JcjCjxxViewMysql> list = jcjCjxxViewMysqlService.lambdaQuery().list();
for (JcjCjxxViewMysql cjxx : list) { for (JcjCjxxViewMysql cjxx : list) {
MetaHandleAlarmInfo metaHandleAlarmInfo = new MetaHandleAlarmInfo(); MetaHandleAlarmInfo metaHandleAlarmInfo = new MetaHandleAlarmInfo();
metaHandleAlarmInfo.setAlarmCode(cjxx.getCJBH()); metaHandleAlarmInfo.setAlarmCode(cjxx.getJJBH());
metaHandleAlarmInfo.setHandleAlarmUnit(cjxx.getCJDWMC()); metaHandleAlarmInfo.setHandleAlarmUnit(cjxx.getCJDWMC());
metaHandleAlarmInfo.setHandleAlarmTime(cjxx.getCJSJ()); metaHandleAlarmInfo.setHandleAlarmTime(cjxx.getCJSJ());
metaHandleAlarmInfo.setHandleAlarmContent(cjxx.getCLJGNR()); metaHandleAlarmInfo.setHandleAlarmContent(cjxx.getCLJGNR());
@ -86,15 +86,15 @@ public class MetaHandleAlarmTask {
metaHandleAlarmInfo.setHandleAlarmUserCode(cjxx.getCJR()); metaHandleAlarmInfo.setHandleAlarmUserCode(cjxx.getCJR());
metaHandleAlarmInfo.setHandleAlarmResult(cjxx.getCJJGMC()); metaHandleAlarmInfo.setHandleAlarmResult(cjxx.getCJJGMC());
//确定一个数据是否唯一 //确定一个数据是否唯一
MetaHandleAlarmInfo one = metaHandleAlarmInfoService.lambdaQuery().eq(MetaHandleAlarmInfo::getAlarmCode, cjxx.getCJBH()).one(); MetaHandleAlarmInfo one = metaHandleAlarmInfoService.lambdaQuery().eq(MetaHandleAlarmInfo::getAlarmCode, cjxx.getJJBH()).one();
if (one == null) { if (one == null) {
metaHandleAlarmInfoService.save(metaHandleAlarmInfo); metaHandleAlarmInfoService.save(metaHandleAlarmInfo);
logger.info("cjxx-" + cjxx.getCJBH() + ":插入成功"); logger.info("cjxx-" + cjxx.getJJBH() + ":插入成功");
} else { } else {
UpdateWrapper<MetaHandleAlarmInfo> metaHandleAlarmInfoUpdateWrapper = new UpdateWrapper<>(); UpdateWrapper<MetaHandleAlarmInfo> metaHandleAlarmInfoUpdateWrapper = new UpdateWrapper<>();
metaHandleAlarmInfoUpdateWrapper.eq("alarm_code", cjxx.getCJBH()); metaHandleAlarmInfoUpdateWrapper.eq("alarm_code", cjxx.getJJBH());
metaHandleAlarmInfoService.update(metaHandleAlarmInfo,metaHandleAlarmInfoUpdateWrapper); metaHandleAlarmInfoService.update(metaHandleAlarmInfo,metaHandleAlarmInfoUpdateWrapper);
logger.info("cjxx-" + cjxx.getCJBH() + ":更新成功"); logger.info("cjxx-" + cjxx.getJJBH() + ":更新成功");
} }
} }
} catch (Exception e) { } catch (Exception e) {

@ -1,6 +1,8 @@
package com.ssf.mysqloracletest.task; package com.ssf.mysqloracletest.task;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ssf.mysqloracletest.domain.MetaImpUserInfo; import com.ssf.mysqloracletest.domain.MetaImpUserInfo;
import com.ssf.mysqloracletest.domain.ZhxfZdrygkRyjbxxViewMysql; import com.ssf.mysqloracletest.domain.ZhxfZdrygkRyjbxxViewMysql;
import com.ssf.mysqloracletest.service.MetaImpUserInfoService; import com.ssf.mysqloracletest.service.MetaImpUserInfoService;
@ -8,6 +10,7 @@ import com.ssf.mysqloracletest.service.ZhxfZdrygkRyjbxxViewMysqlService;
import com.ssf.mysqloracletest.utils.ConfigParam; import com.ssf.mysqloracletest.utils.ConfigParam;
import com.ssf.mysqloracletest.utils.NumKit; import com.ssf.mysqloracletest.utils.NumKit;
import com.ssf.mysqloracletest.utils.StringKit; import com.ssf.mysqloracletest.utils.StringKit;
import lombok.RequiredArgsConstructor;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
@ -17,24 +20,21 @@ import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/** /**
* *
*/ */
@Component @Component
@RequiredArgsConstructor
public class MetaImpUserInfoTask { public class MetaImpUserInfoTask {
private static final Logger logger = LoggerFactory.getLogger(MetaImpUserInfoTask.class); private static final Logger logger = LoggerFactory.getLogger(MetaImpUserInfoTask.class);
private final ZhxfZdrygkRyjbxxViewMysqlService zdryMysqlService;
private final MetaImpUserInfoService metaImpUserInfoService;
@Resource
private ZhxfZdrygkRyjbxxViewMysqlService zdryMysqlService;
@Resource
private MetaImpUserInfoService metaImpUserInfoService;
final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 1000 : NumKit.checkInt(ConfigParam.oncesCounts);
private boolean zdryTag = false;
/** /**
* *
@ -47,69 +47,56 @@ public class MetaImpUserInfoTask {
return; return;
} }
try { try {
int countzdry = zdryMysqlService.count(); QueryWrapper<ZhxfZdrygkRyjbxxViewMysql> wrapper = new QueryWrapper<>();
logger.info("countzdry:" + countzdry); wrapper.isNull("status");
Page<ZhxfZdrygkRyjbxxViewMysql> page = new Page<>(1, 1000);
if (countzdry > 0) { List<ZhxfZdrygkRyjbxxViewMysql> list = zdryMysqlService.page(page,wrapper).getRecords();
CountDownLatch latch = new CountDownLatch(list.size());
int count = countzdry / oncesCounts; ExecutorService zdryPool = Executors.newFixedThreadPool(5);
for (ZhxfZdrygkRyjbxxViewMysql zdry : list) {
for (int i = 0; i <= count; i++) { MetaImpUserInfo metaImpUserInfo = new MetaImpUserInfo();
Map zdryMap = new HashMap(); metaImpUserInfo.setUserName(zdry.getXM());
zdryMap.put("rowStart", i * oncesCounts); metaImpUserInfo.setIdCard(zdry.getZJHM());
zdryMap.put("rowEnd", (i + 1) * oncesCounts); if (zdry.getXB() != null) {
try { metaImpUserInfo.setSex(Integer.parseInt(zdry.getXB()));
List<ZhxfZdrygkRyjbxxViewMysql> list = zdryMysqlService.lambdaQuery().list(); }
for (ZhxfZdrygkRyjbxxViewMysql zdry : list) { metaImpUserInfo.setPhone(zdry.getSJHM());
MetaImpUserInfo metaImpUserInfo = new MetaImpUserInfo(); String s = "000000";
metaImpUserInfo.setUserName(zdry.getXM()); if (zdry.getZDRYXL() != null && !zdry.getZDRYXL().contains(",")) {
metaImpUserInfo.setIdCard(zdry.getZJHM()); String substring = zdry.getZDRYXL().substring(0, 4);
if (zdry.getXB() != null) { substring = substring + s;
metaImpUserInfo.setSex(Integer.parseInt(zdry.getXB())); metaImpUserInfo.setImpUserType(substring);
} } else if (zdry.getZDRYXL().contains(",")) {
metaImpUserInfo.setPhone(zdry.getSJHM()); String[] split = zdry.getZDRYXL().split(",");
String s = "000000"; String substring = split[0].substring(0, 4);
if (zdry.getZDRYXL() != null && !zdry.getZDRYXL().contains(",")) { String substring1 = split[1].substring(0, 4);
String substring = zdry.getZDRYXL().substring(0, 4); substring = substring + s + "," + substring1 + s;
substring = substring + s; metaImpUserInfo.setImpUserType(substring);
metaImpUserInfo.setImpUserType(substring); }
} else if (zdry.getZDRYXL().contains(",")) { metaImpUserInfo.setImpUserSubType(zdry.getZDRYXL());
String[] split = zdry.getZDRYXL().split(","); metaImpUserInfo.setHouseHoldRegister(zdry.getHJDQH());
String substring = split[0].substring(0, 4); metaImpUserInfo.setHouseHoldAddress(zdry.getHJDXZ());
String substring1 = split[1].substring(0, 4); metaImpUserInfo.setHouseHoldAddress(zdry.getHJDXZ());
substring = substring + s + "," + substring1 + s; metaImpUserInfo.setHabitationRegister(zdry.getXZDHQ());
metaImpUserInfo.setImpUserType(substring); metaImpUserInfo.setHabitationAddress(zdry.getXZDXZ());
} metaImpUserInfo.setRegisterUnitCode(zdry.getDJRDWDM());
metaImpUserInfo.setImpUserSubType(zdry.getZDRYXL()); metaImpUserInfo.setRegisterUnitName(zdry.getDJRDWMC());
metaImpUserInfo.setHouseHoldRegister(zdry.getHJDQH()); boolean save = metaImpUserInfoService.save(metaImpUserInfo);
metaImpUserInfo.setHouseHoldAddress(zdry.getHJDXZ()); if (save){
metaImpUserInfo.setHabitationRegister(zdry.getXZDHQ()); zdry.setStatus("1");
metaImpUserInfo.setHabitationAddress(zdry.getXZDXZ()); zdryMysqlService.updateZdryjbxxById(zdry);
metaImpUserInfo.setRegisterUnitCode(zdry.getDJRDWDM());
metaImpUserInfo.setRegisterUnitName(zdry.getDJRDWMC());
//确定一个数据是否唯一
MetaImpUserInfo one = metaImpUserInfoService.lambdaQuery().eq(MetaImpUserInfo::getIdCard, zdry.getZJHM()).one();
if (one == null) {
metaImpUserInfoService.save(metaImpUserInfo);
logger.info("zdry-" + zdry.getZJHM() + ":插入成功");
} else {
UpdateWrapper<MetaImpUserInfo> metaImpUserInfoUpdateWrapper = new UpdateWrapper<>();
metaImpUserInfoUpdateWrapper.eq("id_card", zdry.getZJHM());
metaImpUserInfoService.update(metaImpUserInfo, metaImpUserInfoUpdateWrapper);
logger.info("zdry-" + zdry.getZJHM() + ":更新成功");
}
}
} catch (Exception e) {
logger.info("zdrys:" + e.getMessage());
}
logger.info("zdryMap数据总量:" + countzdry + "," + "当前处理下标:" + zdryMap.get("rowStart") + "/" + zdryMap.get("rowEnd"));
} }
} }
try {
// Wait for all threads to complete
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
zdryPool.shutdown();
} catch (Exception e) { } catch (Exception e) {
logger.info(StringKit.getTrace(e)); logger.info("zdrys:" + e.getMessage());
} }
} }

@ -0,0 +1,181 @@
package com.ssf.mysqloracletest.task;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.ssf.mysqloracletest.domain.TransitImpUserRecord;
import com.ssf.mysqloracletest.domain.TransitImpVehicleRecord;
import com.ssf.mysqloracletest.domain.VSwryGjxxOracle;
import com.ssf.mysqloracletest.service.TransitImpUserRecordService;
import com.ssf.mysqloracletest.service.TransitImpVehicleRecordService;
import com.ssf.mysqloracletest.service.VSySwryGjxxOracleService;
import com.ssf.mysqloracletest.utils.ConfigParam;
import com.ssf.mysqloracletest.utils.NumKit;
import com.ssf.mysqloracletest.utils.StringKit;
import lombok.RequiredArgsConstructor;
import oracle.sql.TRANSDUMP;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
*
*/
@Component
@RequiredArgsConstructor
public class VSwryGjxxTask {
private static final Logger logger = LoggerFactory.getLogger(VSwryGjxxTask.class);
String pattern = "yyyyMMddHHmmss";
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
private final VSySwryGjxxOracleService vSySwryGjxxOracleService;
private final TransitImpUserRecordService transitImpUserRecordService;
private final TransitImpVehicleRecordService transitImpVehicleRecordService;
final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 1000 : NumKit.checkInt(ConfigParam.oncesCounts);
private boolean SwryTag = false;
/**
*
* //
*/
@Scheduled(initialDelay = 100, fixedDelay = 3000)
public void transSwry() {
if (SwryTag) {
return;
}
if (!"true".equals(ConfigParam.SwrySwitch)) {
return;
}
try {
int countSwry = vSySwryGjxxOracleService.countSwry();
logger.info("countSwry:" + countSwry);
logger.info("countSwry:" + countSwry);
if (countSwry > 0) {
SwryTag = true;
int count = countSwry / oncesCounts;
CountDownLatch latch = new CountDownLatch(count);
ExecutorService SwryPool = Executors.newFixedThreadPool(50);
for (int i = 0; i <= count; i++) {
Map SwryMap = new HashMap();
SwryMap.put("rowStart", i * oncesCounts);
SwryMap.put("rowEnd", (i + 1) * oncesCounts);
SwryPool.submit(() -> {
try {
List<VSwryGjxxOracle> Swrys = vSySwryGjxxOracleService.getSwryList(SwryMap);
for (VSwryGjxxOracle swry : Swrys) {
if ("02".equals(swry.getGJLX())){
TransitImpVehicleRecord transitImpVehicleRecord = new TransitImpVehicleRecord();
transitImpVehicleRecord.setDeviceCode(swry.getVALUE3());
transitImpVehicleRecord.setLongitude(NumKit.checkBigDecimal(swry.getJDZB()));
transitImpVehicleRecord.setLatitude(NumKit.checkBigDecimal(swry.getWDZB()));
transitImpVehicleRecord.setDeviceAddress(swry.getVALUE1());
transitImpVehicleRecord.setPlateNo(swry.getVALUE2());
transitImpVehicleRecord.setGlobalPic(swry.getVALUE5());
transitImpVehicleRecord.setUserPic(swry.getVALUE4());
transitImpVehicleRecord.setOwnerName(swry.getZDRYXM());
transitImpVehicleRecord.setIdCard(swry.getZDRYSFZH());
transitImpVehicleRecord.setPassTime(NumKit.checkLong(swry.getRYWKSJ()));
transitImpVehicleRecord.setPartitionField(dateFormat.parse(swry.getRYWKSJ()));
TransitImpVehicleRecord one = transitImpVehicleRecordService.lambdaQuery().eq(TransitImpVehicleRecord::getGlobalPic, swry.getVALUE5()).one();
if (one==null){
boolean save = transitImpVehicleRecordService.save(transitImpVehicleRecord);
if (save) {
logger.info("Swry-" + swry.getGJXXID() + ":插入成功");
}
}else {
UpdateWrapper<TransitImpVehicleRecord> transitImpVehicleRecordUpdateWrapper = new UpdateWrapper<>();
transitImpVehicleRecordUpdateWrapper.eq("global_pic",swry.getVALUE5());
boolean update = transitImpVehicleRecordService.update(transitImpVehicleRecord, transitImpVehicleRecordUpdateWrapper);
if (update) {
logger.info("Swry-" + swry.getGJXXID() + ":更新成功");
}
}
}
if ("03".equals(swry.getGJSJ())){
TransitImpUserRecord transitImpUserRecord = new TransitImpUserRecord();
transitImpUserRecord.setDeviceCode(swry.getVALUE6());
transitImpUserRecord.setLongitude(NumKit.checkBigDecimal(swry.getJDZB()));
transitImpUserRecord.setLatitude(NumKit.checkBigDecimal(swry.getWDZB()));
transitImpUserRecord.setDeviceAddress(swry.getVALUE1());
transitImpUserRecord.setGlobalPic(swry.getVALUE4());
transitImpUserRecord.setUserPic(swry.getVALUE3());
transitImpUserRecord.setSimilarity(swry.getVALUE2());
transitImpUserRecord.setOwnerName(swry.getZDRYXM());
transitImpUserRecord.setIdCard(swry.getZDRYSFZH());
transitImpUserRecord.setPassTime(NumKit.checkLong(swry.getRYWKSJ()));
transitImpUserRecord.setPartitionField(dateFormat.parse(swry.getRYWKSJ()));
TransitImpUserRecord one = transitImpUserRecordService.lambdaQuery().eq(TransitImpUserRecord::getGlobalPic,swry.getVALUE4()).one();
if (one==null) {
boolean save = transitImpUserRecordService.save(transitImpUserRecord);
if (save) {
logger.info("Swry-" + swry.getGJXXID() + ":插入成功");
}
}else {
UpdateWrapper<TransitImpUserRecord> transitImpUserRecordUpdateWrapper = new UpdateWrapper<>();
transitImpUserRecordUpdateWrapper.eq("global_pic",swry.getVALUE4());
boolean update = transitImpUserRecordService.update(transitImpUserRecord, transitImpUserRecordUpdateWrapper);
if (update) {
logger.info("Swry-" + swry.getGJXXID() + ":更新成功");
}
}
}
}
} catch (Exception e) {
logger.info("Swrys:" + StringKit.getTrace(e));
}
latch.countDown();
});
logger.info("SwryMap数据总量:" + countSwry + "," + "当前处理下标:" + SwryMap.get("rowStart") + "/" + SwryMap.get("rowEnd"));
}
try {
// Wait for all threads to complete
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 关闭线程池
SwryPool.shutdown();
}
} catch (Exception e) {
logger.info(StringKit.getTrace(e));
}
}
}

@ -14,6 +14,7 @@ public class ConfigParam {
public static String syfwSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("syfwSwitch")); public static String syfwSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("syfwSwitch"));
public static String syrkSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("syrkSwitch")); public static String syrkSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("syrkSwitch"));
public static String SwrySwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("SwrySwitch"));
public static String jksbSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("jksbSwitch")); public static String jksbSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("jksbSwitch"));
public static String cjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("cjxxSwitch")); public static String cjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("cjxxSwitch"));
@ -36,8 +37,8 @@ public class ConfigParam {
//CJ实时数据开关 //CJ实时数据开关
public static String actualTimecjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("actualTimecjxxSwitch")); public static String actualTimecjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("actualTimecjxxSwitch"));
public static String actualTimejjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("actualTimejjxxSwitch")); public static String actualTimejjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("actualTimejjxxSwitch"));
//rentalHouse数据清洗开关 //rentalHouse数据清洗开关
public static String RentalHouseSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("RentalHouseSwitch")); public static String RentalHouseSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("RentalHouseSwitch"));
public static String metaRealEstateInfoSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("metaRealEstateInfoSwitch")); public static String metaRealEstateInfoSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("metaRealEstateInfoSwitch"));

@ -0,0 +1,52 @@
<?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.ssf.mysqloracletest.mapper.VSwryGjxxOracleMapper">
<select id="countSwry" resultType="int">
select count(*)
from SYX_JWSZPT.V_SWRY_GJXX
</select>
<resultMap id="BaseResultMap" type="com.ssf.mysqloracletest.domain.VSwryGjxxOracle">
<result property="GJXXID" column="GJXXID" jdbcType="VARCHAR"/>
<result property="GJLX" column="GJLX" jdbcType="VARCHAR"/>
<result property="KEY1" column="KEY1" jdbcType="VARCHAR"/>
<result property="VALUE1" column="VALUE1" jdbcType="VARCHAR"/>
<result property="KEY2" column="KEY2" jdbcType="VARCHAR"/>
<result property="VALUE2" column="VALUE2" jdbcType="VARCHAR"/>
<result property="KEY3" column="KEY3" jdbcType="VARCHAR"/>
<result property="VALUE3" column="VALUE3" jdbcType="VARCHAR"/>
<result property="KEY4" column="KEY4" jdbcType="VARCHAR"/>
<result property="VALUE4" column="VALUE4" jdbcType="VARCHAR"/>
<result property="KEY5" column="KEY5" jdbcType="VARCHAR"/>
<result property="VALUE5" column="VALUE5" jdbcType="VARCHAR"/>
<result property="KEY6" column="KEY6" jdbcType="VARCHAR"/>
<result property="VALUE6" column="VALUE6" jdbcType="VARCHAR"/>
<result property="KEY7" column="KEY7" jdbcType="VARCHAR"/>
<result property="VALUE7" column="VALUE7" jdbcType="VARCHAR"/>
<result property="GJSJ" column="GJSJ" jdbcType="VARCHAR"/>
<result property="RYWKSJ" column="RYWKSJ" jdbcType="VARCHAR"/>
<result property="ZDRYSFZH" column="ZDRYSFZH" jdbcType="VARCHAR"/>
<result property="ZDRYXM" column="ZDRYXM" jdbcType="VARCHAR"/>
<result property="KEY8" column="KEY8" jdbcType="VARCHAR"/>
<result property="VALUE8" column="VALUE8" jdbcType="VARCHAR"/>
<result property="DWBH" column="DWBH" jdbcType="VARCHAR"/>
<result property="JDZB" column="JDZB" jdbcType="VARCHAR"/>
<result property="WDZB" column="WDZB" jdbcType="VARCHAR"/>
</resultMap>
<select id="getSwryList" parameterType="java.util.Map" resultMap="BaseResultMap">
SELECT t2.*
FROM (SELECT ROWNUM rn, t1.* FROM (SELECT * FROM SYX_JWSZPT.V_SWRY_GJXX) t1 WHERE ROWNUM<![CDATA[ <= ]]> ${rowEnd}) t2
WHERE t2.rn <![CDATA[ >= ]]> ${rowStart}
</select>
<select id="getRealTimeRecording" parameterType="java.util.Map" resultMap="BaseResultMap">
SELECT * FROM SYX_JWSZPT.V_SWRY_GJXX where GJSJ >#{maxTime}
</select>
</mapper>

@ -19,9 +19,11 @@
<result property="YSBZK_RKSJ" column="YSBZK_RKSJ" jdbcType="VARCHAR"/> <result property="YSBZK_RKSJ" column="YSBZK_RKSJ" jdbcType="VARCHAR"/>
<result property="YSBZK_GXSJ" column="YSBZK_GXSJ" jdbcType="VARCHAR"/> <result property="YSBZK_GXSJ" column="YSBZK_GXSJ" jdbcType="VARCHAR"/>
<result property="DWMC" column="DWMC" jdbcType="VARCHAR"/> <result property="DWMC" column="DWMC" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<select id="selectVSyCyryById" parameterType="java.lang.String" resultMap="BaseResultMap"> <select id="selectVSyCyryById" parameterType="java.lang.String" resultMap="BaseResultMap">
select * select *
from v_sy_sydw_cyry from v_sy_sydw_cyry
@ -47,6 +49,7 @@
<if test="YSBZK_RKSJ != null and YSBZK_RKSJ != '' ">YSBZK_RKSJ,</if> <if test="YSBZK_RKSJ != null and YSBZK_RKSJ != '' ">YSBZK_RKSJ,</if>
<if test="YSBZK_GXSJ != null and YSBZK_GXSJ != '' ">YSBZK_GXSJ,</if> <if test="YSBZK_GXSJ != null and YSBZK_GXSJ != '' ">YSBZK_GXSJ,</if>
<if test="DWMC != null and DWMC != '' ">DWMC ,</if> <if test="DWMC != null and DWMC != '' ">DWMC ,</if>
<if test="status != null and status != '' ">status ,</if>
</trim> </trim>
@ -65,6 +68,7 @@
<if test="YSBZK_RKSJ != null and YSBZK_RKSJ != '' ">#{YSBZK_RKSJ},</if> <if test="YSBZK_RKSJ != null and YSBZK_RKSJ != '' ">#{YSBZK_RKSJ},</if>
<if test="YSBZK_GXSJ != null and YSBZK_GXSJ != '' ">#{YSBZK_GXSJ},</if> <if test="YSBZK_GXSJ != null and YSBZK_GXSJ != '' ">#{YSBZK_GXSJ},</if>
<if test="DWMC != null and DWMC != '' ">#{DWMC },</if> <if test="DWMC != null and DWMC != '' ">#{DWMC },</if>
<if test="status != null and status != '' ">#{status},</if>
</trim> </trim>
</insert> </insert>
@ -86,6 +90,7 @@
<if test="YSBZK_RKSJ != null and YSBZK_RKSJ != '' ">YSBZK_RKSJ=#{YSBZK_RKSJ},</if> <if test="YSBZK_RKSJ != null and YSBZK_RKSJ != '' ">YSBZK_RKSJ=#{YSBZK_RKSJ},</if>
<if test="YSBZK_GXSJ != null and YSBZK_GXSJ != '' ">YSBZK_GXSJ=#{YSBZK_GXSJ},</if> <if test="YSBZK_GXSJ != null and YSBZK_GXSJ != '' ">YSBZK_GXSJ=#{YSBZK_GXSJ},</if>
<if test="DWMC != null and DWMC != '' ">DWMC =#{DWMC },</if> <if test="DWMC != null and DWMC != '' ">DWMC =#{DWMC },</if>
<if test="status != null and status != '' ">status =#{status},</if>
</trim> </trim>
where ID = #{ID} where ID = #{ID}

@ -56,6 +56,7 @@
<result property="SJHM" column="SJHM" jdbcType="VARCHAR"/> <result property="SJHM" column="SJHM" jdbcType="VARCHAR"/>
<result property="YWSJHM" column="YWSJHM" jdbcType="VARCHAR"/> <result property="YWSJHM" column="YWSJHM" jdbcType="VARCHAR"/>
<result property="CXZT" column="CXZT" jdbcType="VARCHAR"/> <result property="CXZT" column="CXZT" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
@ -239,6 +240,7 @@
<if test="SJHM != null and SJHM != '' ">SJHM =#{SJHM },</if> <if test="SJHM != null and SJHM != '' ">SJHM =#{SJHM },</if>
<if test="YWSJHM != null and YWSJHM != '' ">YWSJHM =#{YWSJHM },</if> <if test="YWSJHM != null and YWSJHM != '' ">YWSJHM =#{YWSJHM },</if>
<if test="CXZT != null and CXZT != '' ">CXZT =#{CXZT },</if> <if test="CXZT != null and CXZT != '' ">CXZT =#{CXZT },</if>
<if test="status != null and status != '' ">status =#{status},</if>
</trim> </trim>
where RYJBXXID = #{RYJBXXID} where RYJBXXID = #{RYJBXXID}

Loading…
Cancel
Save