diff --git a/src/main/java/com/ssf/mysqloracletest/domain/MetaHuntersInfo.java b/src/main/java/com/ssf/mysqloracletest/domain/MetaHuntersInfo.java new file mode 100644 index 0000000..f1d5906 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/domain/MetaHuntersInfo.java @@ -0,0 +1,111 @@ +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.util.Date; +import lombok.Data; + +/** + * 非法狩猎人员信息表 + * @TableName meta_hunters_info + */ +@TableName(value ="meta_hunters_info") +@Data +public class MetaHuntersInfo implements Serializable { + /** + * 主键 + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 姓名 + */ + private String hunterName; + + /** + * 性别 + */ + private String sex; + + /** + * 联系方式 + */ + private String phone; + + /** + * 证件号码 + */ + private String idCard; + + /** + * 户籍所属辖区 + */ + private String houseHoldRegister; + + /** + * 户籍地址详情 + */ + private String houseHoldAddress; + + /** + * 现住地详址 + */ + private String habitationAddress; + + /** + * 涉案情况 + */ + private String caseSituation; + + /** + * 案件处理情况 + */ + private String caseHandlingSituation; + + /** + * 管控状态 + */ + private Integer controlStatus; + + /** + * 数据有效性 + */ + private Integer dataStatus; + + /** + * 登记时间 + */ + private String registrationTime; + + /** + * 创建时间 + */ + 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; +} \ No newline at end of file diff --git a/src/main/java/com/ssf/mysqloracletest/domain/SlryOracle.java b/src/main/java/com/ssf/mysqloracletest/domain/SlryOracle.java new file mode 100644 index 0000000..5217469 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/domain/SlryOracle.java @@ -0,0 +1,60 @@ +package com.ssf.mysqloracletest.domain; + +import lombok.Data; + +@Data +public class SlryOracle { + private String RYJBXXIDR; + private String XM; + private String XMPY; + private String YWXM; + private String CYM; + private String XB; + private String CSRQ; + private String ZJLX; + private String ZJHM; + private String GJ; + private String HYZK; + private String ZC; + private String MZ; + private String JG; + private String CH; + private String ZJXY; + private String ZZMM; + private String WHCD; + private String BYZK; + private String RYSF; + private String ZYLB; + private String ZWBH; + private String DNABH; + private String QTZJLX; + private String QTZJHM; + private String GZDW; + private String HJDQH; + private String HJDXZ; + private String HJDZRQ; + private String HJDZRQDM; + private String XZDQH; + private String XZDXZ; + private String XZDZRQ; + private String XZDZRQDM; + private String ZDRYLBBJ; + private String GXDWMC; + private String GXDWDM; + private String GXZRRXM; + private String GXZRRSFZH; + private String GXZRRSJHM; + private String SSSAQK; + private String BDJCLQK; + private String BZXX; + private String SJHM; + private String GKZT; + private String YXX; + private String RYLY; + private String DJRXM; + private String DJRSFZH; + private String DJRDWMC; + private String DJRDWDM; + private String DJSJ; + private String ZXCKSJ; +} diff --git a/src/main/java/com/ssf/mysqloracletest/mapper/MetaHuntersInfoMapper.java b/src/main/java/com/ssf/mysqloracletest/mapper/MetaHuntersInfoMapper.java new file mode 100644 index 0000000..0a3245d --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/mapper/MetaHuntersInfoMapper.java @@ -0,0 +1,20 @@ +package com.ssf.mysqloracletest.mapper; + +import com.ssf.mysqloracletest.domain.MetaHuntersInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** +* @author 10503 +* @description 针对表【meta_hunters_info(非法狩猎人员信息表)】的数据库操作Mapper +* @createDate 2023-12-08 23:11:18 +* @Entity com.ssf.mysqloracletest.domain.MetaHuntersInfo +*/ +@Mapper +public interface MetaHuntersInfoMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/ssf/mysqloracletest/mapper/SlryOracleMapper.java b/src/main/java/com/ssf/mysqloracletest/mapper/SlryOracleMapper.java new file mode 100644 index 0000000..9ee001d --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/mapper/SlryOracleMapper.java @@ -0,0 +1,15 @@ +package com.ssf.mysqloracletest.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ssf.mysqloracletest.domain.SlryOracle; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface SlryOracleMapper extends BaseMapper { + public int countSlry(); + + public List getSlryList(Map map); +} diff --git a/src/main/java/com/ssf/mysqloracletest/service/MetaHuntersInfoService.java b/src/main/java/com/ssf/mysqloracletest/service/MetaHuntersInfoService.java new file mode 100644 index 0000000..4abc4c7 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/MetaHuntersInfoService.java @@ -0,0 +1,13 @@ +package com.ssf.mysqloracletest.service; + +import com.ssf.mysqloracletest.domain.MetaHuntersInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 10503 +* @description 针对表【meta_hunters_info(非法狩猎人员信息表)】的数据库操作Service +* @createDate 2023-12-08 23:11:18 +*/ +public interface MetaHuntersInfoService extends IService { + +} diff --git a/src/main/java/com/ssf/mysqloracletest/service/SlryOracleService.java b/src/main/java/com/ssf/mysqloracletest/service/SlryOracleService.java new file mode 100644 index 0000000..ec73b71 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/SlryOracleService.java @@ -0,0 +1,14 @@ +package com.ssf.mysqloracletest.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ssf.mysqloracletest.domain.SlryOracle; +import com.ssf.mysqloracletest.domain.VSwryGjxxOracle; + +import java.util.List; +import java.util.Map; + +public interface SlryOracleService extends IService { + public int countSwry(); + + public List getSlryList(Map map); +} diff --git a/src/main/java/com/ssf/mysqloracletest/service/impl/MetaHuntersInfoServiceImpl.java b/src/main/java/com/ssf/mysqloracletest/service/impl/MetaHuntersInfoServiceImpl.java new file mode 100644 index 0000000..104d466 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/impl/MetaHuntersInfoServiceImpl.java @@ -0,0 +1,24 @@ +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.MetaHuntersInfo; +import com.ssf.mysqloracletest.service.MetaHuntersInfoService; +import com.ssf.mysqloracletest.mapper.MetaHuntersInfoMapper; +import org.springframework.stereotype.Service; + +/** +* @author 10503 +* @description 针对表【meta_hunters_info(非法狩猎人员信息表)】的数据库操作Service实现 +* @createDate 2023-12-08 23:11:18 +*/ +@Service +@DS("mysql") +public class MetaHuntersInfoServiceImpl extends ServiceImpl + implements MetaHuntersInfoService{ + +} + + + + diff --git a/src/main/java/com/ssf/mysqloracletest/service/impl/SlryOracleServiceImpl.java b/src/main/java/com/ssf/mysqloracletest/service/impl/SlryOracleServiceImpl.java new file mode 100644 index 0000000..2a29659 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/impl/SlryOracleServiceImpl.java @@ -0,0 +1,33 @@ +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.SlryOracle; +import com.ssf.mysqloracletest.mapper.SlryOracleMapper; +import com.ssf.mysqloracletest.service.SlryOracleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +@DS("oracleSydz") +public class SlryOracleServiceImpl extends ServiceImpl + implements SlryOracleService { + + @Resource + private SlryOracleMapper oracleMapper; + + @Override + public int countSwry() { + return oracleMapper.countSlry(); + } + + @Override + public List getSlryList(Map map) { + return oracleMapper.getSlryList(map); + } + + +} diff --git a/src/main/java/com/ssf/mysqloracletest/task/MetaHandleAlarmTask.java b/src/main/java/com/ssf/mysqloracletest/task/MetaHandleAlarmTask.java index 8994b12..28c8309 100644 --- a/src/main/java/com/ssf/mysqloracletest/task/MetaHandleAlarmTask.java +++ b/src/main/java/com/ssf/mysqloracletest/task/MetaHandleAlarmTask.java @@ -126,7 +126,6 @@ public class MetaHandleAlarmTask { while (matcher.find()) { chineseCharacters.append(matcher.group()); } - return chineseCharacters.toString(); } diff --git a/src/main/java/com/ssf/mysqloracletest/task/SlryOracleTask.java b/src/main/java/com/ssf/mysqloracletest/task/SlryOracleTask.java new file mode 100644 index 0000000..03e38f7 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/task/SlryOracleTask.java @@ -0,0 +1,121 @@ +package com.ssf.mysqloracletest.task; + +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +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.beans.BeanUtils; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * 用户数据接入 + */ +@Component +@RequiredArgsConstructor +public class SlryOracleTask { + + private static final Logger logger = LoggerFactory.getLogger(SlryOracleTask.class); + + private final SlryOracleService slryOracleService; + + private final MetaHuntersInfoService huntersInfoService; + final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 1000 : NumKit.checkInt(ConfigParam.oncesCounts); + + + /** + * 连云港 对接海康平台获取人员基础数据 + * // + */ + @Scheduled(initialDelay = 100, fixedDelay = 3000) + public void transSwry() { + + if (!"true".equals(ConfigParam.SlryOracleSwitch)) { + return; + } + + + try { + int countSlry = slryOracleService.countSwry(); + CountDownLatch latch = new CountDownLatch(countSlry); + ExecutorService cjxxPool = Executors.newFixedThreadPool(5); + + for (int i = 0; i <= countSlry; i++) { + Map slryMap = new HashMap(); + slryMap.put("rowStart", i * oncesCounts); + slryMap.put("rowEnd", (i + 1) * oncesCounts); + cjxxPool.submit(() -> { + try { + List slryList = slryOracleService.getSlryList(slryMap); + for (SlryOracle slry : slryList) { + MetaHuntersInfo metaHuntersInfo = new MetaHuntersInfo(); + metaHuntersInfo.setHunterName(slry.getXM()); + metaHuntersInfo.setSex(slry.getXB()); + metaHuntersInfo.setPhone(slry.getSJHM()); + metaHuntersInfo.setIdCard(slry.getZJHM()); + metaHuntersInfo.setHouseHoldRegister(slry.getHJDQH()); + metaHuntersInfo.setHouseHoldAddress(slry.getHJDXZ()); + metaHuntersInfo.setHabitationAddress(slry.getXZDXZ()); + metaHuntersInfo.setCaseSituation(slry.getSSSAQK()); + metaHuntersInfo.setCaseHandlingSituation(slry.getBDJCLQK()); + metaHuntersInfo.setControlStatus(Integer.parseInt(slry.getGKZT())); + metaHuntersInfo.setDataStatus(Integer.parseInt(slry.getYXX())); + //确定一个数据是否唯一 + MetaHuntersInfo one = huntersInfoService.lambdaQuery().eq(MetaHuntersInfo::getIdCard, slry.getZJHM()).one(); + if (one == null) { + boolean save = huntersInfoService.save(metaHuntersInfo); + if (save) { + logger.info("Swry-" + slry.getZJHM() + ":插入成功"); + } + } else { + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("id_card", slry.getZJHM()); + boolean update = huntersInfoService.update(metaHuntersInfo, wrapper); + if (update) { + logger.info("Swry-" + slry.getZJHM() + ":更新成功"); + } + } + } + } catch (Exception e) { + logger.info("cjxxs:" + e.getMessage()); + } + latch.countDown(); + }); + logger.info("cjxxMap数据总量:" + countSlry + "," + "当前处理下标:" + slryMap.get("rowStart") + "/" + slryMap.get("rowEnd")); + } + + try { + // Wait for all threads to complete + latch.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 关闭线程池 + cjxxPool.shutdown(); + } catch ( + Exception e) { + logger.info(StringKit.getTrace(e)); + } + } +} + + diff --git a/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java b/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java index 1d63d41..3c54eea 100644 --- a/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java +++ b/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java @@ -48,5 +48,7 @@ public class ConfigParam { public static String sydzToEstateInfoSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("sydzToEstateInfoSwitch")); public static String syryToActualInfoSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("syryToActualInfoSwitch")); + public static String SlryOracleSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("SlryOracleSwitch")); + } diff --git a/src/main/resources/mapper/SlryOracleMapper.xml b/src/main/resources/mapper/SlryOracleMapper.xml new file mode 100644 index 0000000..bd41ff5 --- /dev/null +++ b/src/main/resources/mapper/SlryOracleMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +