diff --git a/src/main/java/com/ssf/mysqloracletest/domain/TSlryRyjbxxYjxx.java b/src/main/java/com/ssf/mysqloracletest/domain/TSlryRyjbxxYjxx.java new file mode 100644 index 0000000..3ea7b43 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/domain/TSlryRyjbxxYjxx.java @@ -0,0 +1,44 @@ +package com.ssf.mysqloracletest.domain; + +import lombok.Data; + +@Data +public class TSlryRyjbxxYjxx { + + + private String YJXXID; + private String XM; + private String SFZH; + private String YJLX; + private String YJJB; + private String YJNR; + private String YJSJ; + 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 KEY8; + private String VALUE8; + private String XZDZRQ; + private String XZDZRQDM; + private String ZDRYLBBJ; + private String HJDZRQ; + private String HJDZRQDM; + private String KEY10; + private String VALUE10; + private String KEY9; + private String VALUE9; + private String KEY11; + private String VALUE11; + +} diff --git a/src/main/java/com/ssf/mysqloracletest/domain/TransitHuntersUserModelRecord.java b/src/main/java/com/ssf/mysqloracletest/domain/TransitHuntersUserModelRecord.java new file mode 100644 index 0000000..f44ecb2 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/domain/TransitHuntersUserModelRecord.java @@ -0,0 +1,219 @@ +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_hunters_user_model_record + */ +@TableName(value ="transit_hunters_user_model_record") +@Data +public class TransitHuntersUserModelRecord implements Serializable { + /** + * 主键 + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 车主姓名 + */ + @TableField(value = "hunters_user_name") + private String huntersUserName; + + /** + * 证件号码 + */ + @TableField(value = "hunters_user_id_card") + private String huntersUserIdCard; + + /** + * 狩猎人员类别 + */ + @TableField(value = "hunters_user_type") + private Integer huntersUserType; + + /** + * 预警类型 + */ + @TableField(value = "warning_type") + private Integer warningType; + + /** + * 预警级别 + */ + @TableField(value = "warning_level") + private Integer warningLevel; + + /** + * 预警时间 + */ + @TableField(value = "warning_time") + private String warningTime; + + /** + * 预警内容 + */ + @TableField(value = "warning_content") + private String warningContent; + + /** + * 首次抓拍全景图 + */ + @TableField(value = "first_global_pic") + private String firstGlobalPic; + + /** + * 首次抓拍人脸图 + */ + @TableField(value = "first_user_pic") + private String firstUserPic; + + /** + * 首次经过时间 + */ + @TableField(value = "first_pass_time") + private String firstPassTime; + + /** + * 首次抓拍点位编码 + */ + @TableField(value = "first_device_code") + private String firstDeviceCode; + + /** + * 首次抓拍经过位置 + */ + @TableField(value = "first_device_address") + private String firstDeviceAddress; + + /** + * 首次抓拍点位经度 + */ + @TableField(value = "first_longitude") + private BigDecimal firstLongitude; + + /** + * 首次抓拍点位纬度 + */ + @TableField(value = "first_latitude") + private BigDecimal firstLatitude; + + /** + * 末次抓拍全景图 + */ + @TableField(value = "end_global_pic") + private String endGlobalPic; + + /** + * 末次经过时间 + */ + @TableField(value = "end_pass_time") + private String endPassTime; + + /** + * 末次抓拍人脸图 + */ + @TableField(value = "end_user_pic") + private String endUserPic; + + /** + * 末次抓拍点位编码 + */ + @TableField(value = "end_device_code") + private String endDeviceCode; + + /** + * 末次抓拍经过位置 + */ + @TableField(value = "end_device_address") + private String endDeviceAddress; + + /** + * 末次抓拍点位经度 + */ + @TableField(value = "end_longitude") + private BigDecimal endLongitude; + + /** + * 末次抓拍点位纬度 + */ + @TableField(value = "end_latitude") + private BigDecimal endLatitude; + + /** + * 抓拍次数 + */ + @TableField(value = "capture_frequency") + private Integer captureFrequency; + + /** + * 户籍地派出所编码 + */ + @TableField(value = "house_hold_police_station_code") + private String houseHoldPoliceStationCode; + + /** + * 户籍地派出所名称 + */ + @TableField(value = "house_hold_police_station_name") + private String houseHoldPoliceStationName; + + /** + * 现住地派出所编码 + */ + @TableField(value = "habitation_police_station_code") + private String habitationPoliceStationCode; + + /** + * 现住地派出所名称 + */ + @TableField(value = "habitation_police_station_name") + private String habitationPoliceStationName; + + /** + * 预警时间(分区) + */ + @TableField(value = "partition_field") + private Date partitionField; + + /** + * 创建时间 + */ + @TableField(value = "create_time") + private Date createTime; + + /** + * 创建者 + */ + @TableField(value = "create_by") + private Integer createBy; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; + + /** + * 更新者 + */ + @TableField(value = "update_by") + private Integer updateBy; + + /** + * 0:不活跃,1:活跃 + */ + @TableField(value = "is_active") + private Integer isActive; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/ssf/mysqloracletest/mapper/TSlryRyjbxxYjxxOracleMapper.java b/src/main/java/com/ssf/mysqloracletest/mapper/TSlryRyjbxxYjxxOracleMapper.java new file mode 100644 index 0000000..32375a2 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/mapper/TSlryRyjbxxYjxxOracleMapper.java @@ -0,0 +1,30 @@ +package com.ssf.mysqloracletest.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ssf.mysqloracletest.domain.TSlryRyjbxxGjxx; +import com.ssf.mysqloracletest.domain.TSlryRyjbxxYjxx; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +/** +* @author 28758 +* @description 针对表【v_sy_sydw_cyry】的数据库操作Mapper +* @createDate 2023-11-29 20:30:59 +* @Entity com.ssf.mysqloracletest.domain.VSySydwCyry +*/ +@Mapper +public interface TSlryRyjbxxYjxxOracleMapper extends BaseMapper { + public int countSlry(); + + public List getSlryList(Map map); + + public List getSlryListByTime(Map map); + + public List getRealTimeRecording(String maxTime); +} + + + + diff --git a/src/main/java/com/ssf/mysqloracletest/mapper/TransitHuntersUserModelRecordMapper.java b/src/main/java/com/ssf/mysqloracletest/mapper/TransitHuntersUserModelRecordMapper.java new file mode 100644 index 0000000..ae7f2bb --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/mapper/TransitHuntersUserModelRecordMapper.java @@ -0,0 +1,18 @@ +package com.ssf.mysqloracletest.mapper; + +import com.ssf.mysqloracletest.domain.TransitHuntersUserModelRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 28758 +* @description 针对表【transit_hunters_user_model_record(非法狩猎人员模型记录表)】的数据库操作Mapper +* @createDate 2023-12-14 09:18:21 +* @Entity com.ssf.mysqloracletest.domain.TransitHuntersUserModelRecord +*/ +public interface TransitHuntersUserModelRecordMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/ssf/mysqloracletest/service/TSlryRyjbxxYjxxOracleService.java b/src/main/java/com/ssf/mysqloracletest/service/TSlryRyjbxxYjxxOracleService.java new file mode 100644 index 0000000..5b771b2 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/TSlryRyjbxxYjxxOracleService.java @@ -0,0 +1,23 @@ +package com.ssf.mysqloracletest.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ssf.mysqloracletest.domain.TSlryRyjbxxGjxx; +import com.ssf.mysqloracletest.domain.TSlryRyjbxxYjxx; + +import java.util.List; +import java.util.Map; + +/** +* @author 28758 +* @description 针对表【v_sy_sydw_Slry】的数据库操作Service +* @createDate 2023-11-29 20:30:59 +*/ +public interface TSlryRyjbxxYjxxOracleService extends IService { + public int countSlry(); + + public List getSlryList(Map map); + + public List getSlryListByTime(Map map); + + public List getRealTimeRecording(String maxTime); +} diff --git a/src/main/java/com/ssf/mysqloracletest/service/TransitHuntersUserModelRecordService.java b/src/main/java/com/ssf/mysqloracletest/service/TransitHuntersUserModelRecordService.java new file mode 100644 index 0000000..c6777b9 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/TransitHuntersUserModelRecordService.java @@ -0,0 +1,13 @@ +package com.ssf.mysqloracletest.service; + +import com.ssf.mysqloracletest.domain.TransitHuntersUserModelRecord; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 28758 +* @description 针对表【transit_hunters_user_model_record(非法狩猎人员模型记录表)】的数据库操作Service +* @createDate 2023-12-14 09:18:21 +*/ +public interface TransitHuntersUserModelRecordService extends IService { + +} diff --git a/src/main/java/com/ssf/mysqloracletest/service/impl/TSlryRyjbxxYjxxOracleServiceImpl.java b/src/main/java/com/ssf/mysqloracletest/service/impl/TSlryRyjbxxYjxxOracleServiceImpl.java new file mode 100644 index 0000000..e98cb24 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/impl/TSlryRyjbxxYjxxOracleServiceImpl.java @@ -0,0 +1,53 @@ +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.TSlryRyjbxxGjxx; +import com.ssf.mysqloracletest.domain.TSlryRyjbxxYjxx; +import com.ssf.mysqloracletest.mapper.TSlryRyjbxxGjxxOracleMapper; +import com.ssf.mysqloracletest.mapper.TSlryRyjbxxYjxxOracleMapper; +import com.ssf.mysqloracletest.service.TSlryRyjbxxGjxxOracleService; +import com.ssf.mysqloracletest.service.TSlryRyjbxxYjxxOracleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** +* @author 28758 +* @description 针对表【Slry】的数据库操作Service实现 +* @createDate 2023-11-29 20:30:59 +*/ +@Service +@DS("oracleSydz") +public class TSlryRyjbxxYjxxOracleServiceImpl extends ServiceImpl + implements TSlryRyjbxxYjxxOracleService { + + @Resource + private TSlryRyjbxxYjxxOracleMapper oracleMapper; + + @Override + public int countSlry() { + return oracleMapper.countSlry(); + } + + @Override + public List getSlryList(Map map) { + return oracleMapper.getSlryList(map); + } + + @Override + public List getSlryListByTime(Map map) { + return oracleMapper.getSlryListByTime(map); + } + + @Override + public List getRealTimeRecording(String time) { + return oracleMapper.getRealTimeRecording(time); + } +} + + + + diff --git a/src/main/java/com/ssf/mysqloracletest/service/impl/TransitHuntersUserModelRecordServiceImpl.java b/src/main/java/com/ssf/mysqloracletest/service/impl/TransitHuntersUserModelRecordServiceImpl.java new file mode 100644 index 0000000..fd9994f --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/impl/TransitHuntersUserModelRecordServiceImpl.java @@ -0,0 +1,22 @@ +package com.ssf.mysqloracletest.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ssf.mysqloracletest.domain.TransitHuntersUserModelRecord; +import com.ssf.mysqloracletest.service.TransitHuntersUserModelRecordService; +import com.ssf.mysqloracletest.mapper.TransitHuntersUserModelRecordMapper; +import org.springframework.stereotype.Service; + +/** +* @author 28758 +* @description 针对表【transit_hunters_user_model_record(非法狩猎人员模型记录表)】的数据库操作Service实现 +* @createDate 2023-12-14 09:18:21 +*/ +@Service +public class TransitHuntersUserModelRecordServiceImpl extends ServiceImpl + implements TransitHuntersUserModelRecordService{ + +} + + + + diff --git a/src/main/java/com/ssf/mysqloracletest/task/SlryYjxxOracleTask.java b/src/main/java/com/ssf/mysqloracletest/task/SlryYjxxOracleTask.java new file mode 100644 index 0000000..8c99898 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/task/SlryYjxxOracleTask.java @@ -0,0 +1,122 @@ +package com.ssf.mysqloracletest.task; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.ssf.mysqloracletest.domain.*; +import com.ssf.mysqloracletest.service.*; +import com.ssf.mysqloracletest.utils.ConfigParam; +import com.ssf.mysqloracletest.utils.NumKit; +import com.ssf.mysqloracletest.utils.StringKit; +import lombok.RequiredArgsConstructor; +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.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 SlryYjxxOracleTask { + + private static final Logger logger = LoggerFactory.getLogger(SlryYjxxOracleTask.class); + String pattern = "yyyyMMddHHmmss"; + + SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); + + private final TSlryRyjbxxYjxxOracleService tSlryRyjbxxYjxxOracleService; + private final DevopsDeviceInfoService devopsDeviceInfoService; + private final TransitHuntersUserModelRecordService transitHuntersUserModelRecordService; + + + /** + * 连云港 对接海康平台获取人员基础数据 + * // + */ + @Scheduled(initialDelay = 100, fixedDelay = 3000) + public void transSwry() { + + if (!"true".equals(ConfigParam.SlryYjxxOracleSwitch)) { + return; + } + + + Map slryMap = new HashMap(); + slryMap.put("rowStart", 1); + slryMap.put("rowEnd", 100); + try { + List slryList = tSlryRyjbxxYjxxOracleService.getSlryList(slryMap); + for (TSlryRyjbxxYjxx slry : slryList) { + TransitHuntersUserModelRecord transitHuntersUserModelRecord = new TransitHuntersUserModelRecord(); + transitHuntersUserModelRecord.setHuntersUserName(slry.getXM()); + transitHuntersUserModelRecord.setHuntersUserIdCard(slry.getSFZH()); + if (slry.getZDRYLBBJ() != null) { + transitHuntersUserModelRecord.setHuntersUserType(NumKit.checkInt(slry.getZDRYLBBJ())); + } + if (slry.getYJLX() != null) { + transitHuntersUserModelRecord.setWarningType(NumKit.checkInt(slry.getYJLX())); + } + if (slry.getYJJB() != null) { + transitHuntersUserModelRecord.setWarningLevel(NumKit.checkInt(slry.getYJJB())); + } + transitHuntersUserModelRecord.setWarningTime(slry.getYJSJ()); + transitHuntersUserModelRecord.setWarningContent(slry.getYJNR()); + transitHuntersUserModelRecord.setFirstGlobalPic(slry.getVALUE5()); + transitHuntersUserModelRecord.setFirstUserPic(slry.getVALUE4()); + transitHuntersUserModelRecord.setFirstPassTime(String.valueOf(dateFormat.parse(slry.getVALUE1()).getTime()/1000)); + transitHuntersUserModelRecord.setFirstDeviceCode(slry.getVALUE3()); + transitHuntersUserModelRecord.setFirstDeviceAddress(slry.getVALUE2()); + DevopsDeviceInfo one = devopsDeviceInfoService.lambdaQuery().eq(DevopsDeviceInfo::getGbsChannelNo, slry.getVALUE3()).one(); + transitHuntersUserModelRecord.setFirstLongitude(one.getLongitude()); + transitHuntersUserModelRecord.setFirstLatitude(one.getLatitude()); + transitHuntersUserModelRecord.setEndGlobalPic(slry.getVALUE10()); + transitHuntersUserModelRecord.setEndUserPic(slry.getVALUE9()); + transitHuntersUserModelRecord.setEndPassTime(String.valueOf(dateFormat.parse(slry.getVALUE6()).getTime()/1000)); + transitHuntersUserModelRecord.setEndDeviceCode(slry.getVALUE8()); + transitHuntersUserModelRecord.setEndDeviceAddress(slry.getVALUE7()); + DevopsDeviceInfo one1 = devopsDeviceInfoService.lambdaQuery().eq(DevopsDeviceInfo::getGbsChannelNo, slry.getVALUE8()).one(); + transitHuntersUserModelRecord.setEndLatitude(one1.getLatitude()); + transitHuntersUserModelRecord.setEndLongitude(one1.getLongitude()); + transitHuntersUserModelRecord.setCaptureFrequency(NumKit.checkInt(slry.getVALUE11())); + transitHuntersUserModelRecord.setHouseHoldPoliceStationCode(slry.getHJDZRQDM()); + transitHuntersUserModelRecord.setHouseHoldPoliceStationName(slry.getHJDZRQ()); + transitHuntersUserModelRecord.setHabitationPoliceStationCode(slry.getXZDZRQDM()); + transitHuntersUserModelRecord.setHabitationPoliceStationName(slry.getXZDZRQ()); + transitHuntersUserModelRecord.setPartitionField(dateFormat.parse(slry.getYJSJ())); + TransitHuntersUserModelRecord modelRecord = transitHuntersUserModelRecordService.lambdaQuery().eq(TransitHuntersUserModelRecord::getFirstGlobalPic, slry.getVALUE5()).one(); + //确定一个数据是否唯一 + if (modelRecord == null) { + boolean save = transitHuntersUserModelRecordService.save(transitHuntersUserModelRecord); + if (save) { + logger.info("Slry-" + slry.getSFZH() + ":插入成功"); + } + } else { + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("first_global_pic", slry.getVALUE5()); + boolean update = transitHuntersUserModelRecordService.update(transitHuntersUserModelRecord, wrapper); + if (update) { + logger.info("Slry-" + slry.getSFZH() + ":更新成功"); + } + } + } + } catch (Exception e) { + logger.info("cjxxs:" + e.getMessage()); + } + + + } + + + + +} + + diff --git a/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java b/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java index 21f8db4..d7f1e1e 100644 --- a/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java +++ b/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java @@ -50,6 +50,7 @@ public class ConfigParam { public static String syryToActualInfoSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("syryToActualInfoSwitch")); public static String SlryOracleSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("SlryOracleSwitch")); + public static String SlryYjxxOracleSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("SlryYjxxOracleSwitch")); public static String jwzUserInfoToActual = StringKit.toString(PropertiesUtil.queryPropertiesByKey("jwzUserInfoToActual")); diff --git a/src/main/resources/mapper/TSlryRyjbxxYjxxOracleMapper.xml b/src/main/resources/mapper/TSlryRyjbxxYjxxOracleMapper.xml new file mode 100644 index 0000000..ef3c982 --- /dev/null +++ b/src/main/resources/mapper/TSlryRyjbxxYjxxOracleMapper.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/mapper/TransitHuntersUserModelRecordMapper.xml b/src/main/resources/mapper/TransitHuntersUserModelRecordMapper.xml new file mode 100644 index 0000000..420cfee --- /dev/null +++ b/src/main/resources/mapper/TransitHuntersUserModelRecordMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +