diff --git a/config/application.properties b/config/application.properties index 0fdcd90..c1c19eb 100644 --- a/config/application.properties +++ b/config/application.properties @@ -13,10 +13,14 @@ zdrySwitch=false cyrySwitch=false JjxxSwitch=false #------------------------?????---------------------------- -NewNsydwSwitch=false +NewNsydwSwitch=true metaImpUserSwitch=true -NewNalarminfoSwitch=false -metaHandleAlarmSwitch=false -metaActualUnitUserInfoSwitch=false +NewNalarminfoSwitch=true +metaHandleAlarmSwitch=true +metaActualUnitUserInfoSwitch=true +metaActualUserInfoSwitch=true +actualTimecjxxSwitch=false +actualTimejjxxSwitch=false + diff --git a/src/main/java/com/ssf/mysqloracletest/domain/MetaActualUserInfo.java b/src/main/java/com/ssf/mysqloracletest/domain/MetaActualUserInfo.java new file mode 100644 index 0000000..ef087c1 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/domain/MetaActualUserInfo.java @@ -0,0 +1,151 @@ +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_actual_user_info + */ +@TableName(value ="meta_actual_user_info") +@Data +public class MetaActualUserInfo implements Serializable { + /** + * 主键 + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 照片 + */ + private String userPic; + + /** + * 姓名 + */ + private String userName; + + /** + * 身份证号码 + */ + private String idCard; + + /** + * 性别 + */ + private Integer sex; + + /** + * 移动号码 + */ + private String phone; + + /** + * 联系电话 + */ + private String landline; + + /** + * 实有人口类型 + */ + private Integer actualUserType; + + /** + * 户籍所属辖区 + */ + private String houseHoldRegister; + + /** + * 户籍地址详情 + */ + private String houseHoldAddress; + + /** + * 现住地详址 + */ + private String habitationAddress; + + /** + * 派出所代码 + */ + private String policeStationCode; + + /** + * 派出所名称 + */ + private String policeStationName; + + /** + * 警务区编码 + */ + private String policeDistrictCode; + + /** + * 警务区名称 + */ + private String policeDistrictName; + + /** + * 管理状态 + */ + private String managementStatus; + + /** + * 房屋ID + */ + private String homeId; + + /** + * 房屋代码 + */ + private String homeCode; + + /** + * 户号 + */ + private String accountNumber; + + /** + * 元数据创建时间 + */ + private String metaCreateTime; + + /** + * 元数据更新时间 + */ + private String metaUpdateTime; + + /** + * 创建时间 + */ + 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/mapper/MetaActualUserInfoMapper.java b/src/main/java/com/ssf/mysqloracletest/mapper/MetaActualUserInfoMapper.java new file mode 100644 index 0000000..19f1725 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/mapper/MetaActualUserInfoMapper.java @@ -0,0 +1,18 @@ +package com.ssf.mysqloracletest.mapper; + +import com.ssf.mysqloracletest.domain.MetaActualUserInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 28758 +* @description 针对表【meta_actual_user_info(实有人口信息表)】的数据库操作Mapper +* @createDate 2023-12-02 17:31:50 +* @Entity com.ssf.mysqloracletest.domain.MetaActualUserInfo +*/ +public interface MetaActualUserInfoMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/ssf/mysqloracletest/service/MetaActualUserInfoService.java b/src/main/java/com/ssf/mysqloracletest/service/MetaActualUserInfoService.java new file mode 100644 index 0000000..b6f41bf --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/MetaActualUserInfoService.java @@ -0,0 +1,13 @@ +package com.ssf.mysqloracletest.service; + +import com.ssf.mysqloracletest.domain.MetaActualUserInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 28758 +* @description 针对表【meta_actual_user_info(实有人口信息表)】的数据库操作Service +* @createDate 2023-12-02 17:31:50 +*/ +public interface MetaActualUserInfoService extends IService { + +} diff --git a/src/main/java/com/ssf/mysqloracletest/service/impl/MetaActualUserInfoServiceImpl.java b/src/main/java/com/ssf/mysqloracletest/service/impl/MetaActualUserInfoServiceImpl.java new file mode 100644 index 0000000..6fa48ad --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/impl/MetaActualUserInfoServiceImpl.java @@ -0,0 +1,22 @@ +package com.ssf.mysqloracletest.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ssf.mysqloracletest.domain.MetaActualUserInfo; +import com.ssf.mysqloracletest.service.MetaActualUserInfoService; +import com.ssf.mysqloracletest.mapper.MetaActualUserInfoMapper; +import org.springframework.stereotype.Service; + +/** +* @author 28758 +* @description 针对表【meta_actual_user_info(实有人口信息表)】的数据库操作Service实现 +* @createDate 2023-12-02 17:31:50 +*/ +@Service +public class MetaActualUserInfoServiceImpl extends ServiceImpl + implements MetaActualUserInfoService{ + +} + + + + diff --git a/src/main/java/com/ssf/mysqloracletest/task/JcjCjxxTask.java b/src/main/java/com/ssf/mysqloracletest/task/JcjCjxxTask.java index 8ca274c..763ea1e 100644 --- a/src/main/java/com/ssf/mysqloracletest/task/JcjCjxxTask.java +++ b/src/main/java/com/ssf/mysqloracletest/task/JcjCjxxTask.java @@ -156,7 +156,7 @@ public class JcjCjxxTask { @Scheduled(initialDelay = 100, fixedDelay = 3000) public void transcjxxNow() { - if (!"true".equals(ConfigParam.cjxxSwitch)) { + if (!"true".equals(ConfigParam.actualTimecjxxSwitch)) { return; } diff --git a/src/main/java/com/ssf/mysqloracletest/task/JcjJjxxTask.java b/src/main/java/com/ssf/mysqloracletest/task/JcjJjxxTask.java index a052337..6289063 100644 --- a/src/main/java/com/ssf/mysqloracletest/task/JcjJjxxTask.java +++ b/src/main/java/com/ssf/mysqloracletest/task/JcjJjxxTask.java @@ -115,6 +115,9 @@ public class JcjJjxxTask { public void transcjxxNow() { try { + if (!"true".equals(ConfigParam.actualTimejjxxSwitch)) { + return; + } //1 去mysql查出当前最大时间 JcjJjxxViewMysql jcjJjxxViewMysql = jcjJjxxViewMysqlService.selectRecordOrderByRksj(); diff --git a/src/main/java/com/ssf/mysqloracletest/task/MetaActualUserInfoTask.java b/src/main/java/com/ssf/mysqloracletest/task/MetaActualUserInfoTask.java new file mode 100644 index 0000000..974dd94 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/task/MetaActualUserInfoTask.java @@ -0,0 +1,137 @@ +package com.ssf.mysqloracletest.task; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.ssf.mysqloracletest.domain.MetaActualUserInfo; +import com.ssf.mysqloracletest.domain.VSySyrkMysql; +import com.ssf.mysqloracletest.service.MetaActualUserInfoService; +import com.ssf.mysqloracletest.service.VSySyrkMysqlService; +import com.ssf.mysqloracletest.utils.ConfigParam; +import com.ssf.mysqloracletest.utils.NumKit; +import com.ssf.mysqloracletest.utils.StringKit; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +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 +public class MetaActualUserInfoTask { + + private static final Logger logger = LoggerFactory.getLogger(MetaActualUserInfoTask.class); + + @Resource + private VSySyrkMysqlService vSySyrkMysqlService; + + @Resource + private MetaActualUserInfoService metaActualUserInfoService; + + final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 1000 : NumKit.checkInt(ConfigParam.oncesCounts); + + private boolean syrkTag = false; + + /** + * 连云港 对接海康平台获取人员基础数据 + * // + */ + @Scheduled(initialDelay = 100, fixedDelay = 3000) + public void transsyrk() { + + if (syrkTag) { + return; + } + + if (!"true".equals(ConfigParam.metaActualUserInfoSwitch)) { + return; + } + + + try { + int countsyrk = vSySyrkMysqlService.count(); + logger.info("countsyrk:" + countsyrk); + + if (countsyrk > 0) { + + syrkTag = true; + + int count = countsyrk / oncesCounts; + CountDownLatch latch = new CountDownLatch(count); + ExecutorService syrkPool = Executors.newFixedThreadPool(50); + + for (int i = 0; i <= count; i++) { + Map syrkMap = new HashMap(); + syrkMap.put("rowStart", i * oncesCounts); + syrkMap.put("rowEnd", (i + 1) * oncesCounts); + syrkPool.submit(() -> { + try { + List list = vSySyrkMysqlService.lambdaQuery().list(); + for (VSySyrkMysql syrk : list) { + MetaActualUserInfo metaActualUserInfo = new MetaActualUserInfo(); + metaActualUserInfo.setUserName(syrk.getXM()); + metaActualUserInfo.setIdCard(syrk.getSFZH()); + if (syrk.getXB() != null) { + metaActualUserInfo.setSex(Integer.parseInt(syrk.getXB())); + } + metaActualUserInfo.setPhone(syrk.getSJHM()); + metaActualUserInfo.setLandline(syrk.getLXDH()); + if (syrk.getRYLX() != null) { + metaActualUserInfo.setActualUserType(Integer.parseInt(syrk.getRYLX())); + } + metaActualUserInfo.setHouseHoldRegister(syrk.getHJSSXQ()); + metaActualUserInfo.setHouseHoldAddress(syrk.getHJDXZ()); + metaActualUserInfo.setHabitationAddress(syrk.getXJZDXZ()); + metaActualUserInfo.setPoliceStationCode(syrk.getPCSDM()); + metaActualUserInfo.setPoliceStationName(syrk.getPCSMC()); + metaActualUserInfo.setPoliceDistrictCode(syrk.getJWQDM()); + metaActualUserInfo.setPoliceDistrictName(syrk.getJWQMC()); + metaActualUserInfo.setManagementStatus(syrk.getSTS()); + metaActualUserInfo.setHomeId(syrk.getFJID()); + metaActualUserInfo.setHomeCode(syrk.getFJDM()); +// metaActualUserInfo.setAccountNumber(); + metaActualUserInfo.setMetaCreateTime(syrk.getYSBZK_RKSJ()); + metaActualUserInfo.setMetaUpdateTime(syrk.getYSBZK_GXSJ()); + MetaActualUserInfo one = metaActualUserInfoService.lambdaQuery().eq(MetaActualUserInfo::getIdCard, syrk.getSFZH()).one(); + if (one == null) { + metaActualUserInfoService.save(metaActualUserInfo); + logger.info("syrk-" + syrk.getSFZH() + ":插入成功"); + } else { + UpdateWrapper metaActualUserInfoUpdateWrapper = new UpdateWrapper<>(); + metaActualUserInfoUpdateWrapper.eq("id_card",syrk.getSFZH()); + metaActualUserInfoService.update(metaActualUserInfo, metaActualUserInfoUpdateWrapper); + logger.info("syrk-" + syrk.getSFZH() + ":更新成功"); + } + } + } catch (Exception e) { + logger.info("syrks:" + e.getMessage()); + } + latch.countDown(); + }); + logger.info("syrkMap数据总量:" + countsyrk + "," + "当前处理下标:" + syrkMap.get("rowStart") + "/" + syrkMap.get("rowEnd")); + } + + try { + // Wait for all threads to complete + latch.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 关闭线程池 + syrkPool.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 0a8e5d6..937c928 100644 --- a/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java +++ b/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java @@ -27,6 +27,7 @@ public class ConfigParam { public static String metaImpUserSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("metaImpUserSwitch")); public static String metaHandleAlarmSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("metaHandleAlarmSwitch")); public static String metaActualUnitUserInfoSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("metaActualUnitUserInfoSwitch")); + public static String metaActualUserInfoSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("metaActualUserInfoSwitch")); //将数据洗进 --->业务表的开关---------------------------------------------------------------------------------------------------------- public static String NewNsydwSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("NewNsydwSwitch")); @@ -34,5 +35,6 @@ public class ConfigParam { //CJ实时数据开关 public static String actualTimecjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("actualTimecjxxSwitch")); + public static String actualTimejjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("actualTimejjxxSwitch")); } diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 5bc6b64..1e7e40c 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -1,7 +1,7 @@ - +