parent
044f7215fb
commit
ecd9a4de0d
@ -0,0 +1,30 @@
|
||||
package com.ssf.mysqloracletest.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* village_send_vehicle_record
|
||||
* 形体抓拍转发记录表
|
||||
*/
|
||||
@Data
|
||||
public class VillageSendStaticRecord {
|
||||
private String id;
|
||||
private String villageCode;
|
||||
private String villageName;
|
||||
private String deviceCode;
|
||||
private String tableName;
|
||||
private String tableId;
|
||||
private String sendTime;
|
||||
private String receiveTime;
|
||||
private String manufactorNo;
|
||||
private String receiptId;
|
||||
private String resultStatus;
|
||||
private String resultRemark;
|
||||
private String isactive;
|
||||
private String c1;
|
||||
private String c2;
|
||||
private String c3;
|
||||
private String c4;
|
||||
private String c5;
|
||||
|
||||
}
|
@ -0,0 +1,155 @@
|
||||
package com.ssf.mysqloracletest.task;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ssf.mysqloracletest.domain.MetaRealEstateInfo;
|
||||
import com.ssf.mysqloracletest.domain.VJwtSyfw;
|
||||
import com.ssf.mysqloracletest.domain.VSySydzMysql;
|
||||
import com.ssf.mysqloracletest.service.JwtSyfwService;
|
||||
import com.ssf.mysqloracletest.service.MetaRealEstateInfoService;
|
||||
import com.ssf.mysqloracletest.service.VSySydzMysqlService;
|
||||
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.util.List;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
/**
|
||||
* 用户数据接入
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class SydzToEstateInfoTask {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(SydzToEstateInfoTask.class);
|
||||
|
||||
private final MetaRealEstateInfoService estateInfoService;
|
||||
private final VSySydzMysqlService sydzMysqlService;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* 实有房屋往实有地址清洗
|
||||
*
|
||||
* 清洗实有房屋
|
||||
*/
|
||||
@Scheduled(initialDelay = 100, fixedDelay = 3000)
|
||||
public void transMetaRealEstateInfo() {
|
||||
|
||||
if (!"true".equals(ConfigParam.sydzToEstateInfoSwitch)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
logger.info("sydzToEstateInfoSwitch start");
|
||||
try {
|
||||
List<VSySydzMysql> sydzs = sydzMysqlService.selectVSySydz(new VSySydzMysql());
|
||||
|
||||
CountDownLatch latch = new CountDownLatch(sydzs.size());
|
||||
ExecutorService jwtSyfwPool = Executors.newFixedThreadPool(50);
|
||||
|
||||
for (VSySydzMysql bean : sydzs) {
|
||||
jwtSyfwPool.submit(() -> {
|
||||
cleanJwtSyfw(bean);
|
||||
latch.countDown();
|
||||
});
|
||||
}
|
||||
try {
|
||||
// Wait for all threads to complete
|
||||
latch.await();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// 关闭线程池
|
||||
jwtSyfwPool.shutdown();
|
||||
} catch (Exception e) {
|
||||
logger.info(StringKit.getTrace(e));
|
||||
}
|
||||
}
|
||||
|
||||
//实有房屋往实有地址清洗
|
||||
private void cleanJwtSyfw(VSySydzMysql bean) {
|
||||
VSySydzMysql beanCp = new VSySydzMysql();
|
||||
try {
|
||||
|
||||
BeanUtils.copyProperties(bean, beanCp);
|
||||
|
||||
String dzdxtymc = StringKit.toString(beanCp.getDZDXTYMC());
|
||||
dzdxtymc = StringKit.convertChineseUnitToDigit(dzdxtymc);
|
||||
// dzdxtymc = dzdxtymc.replaceAll("号","幢");
|
||||
String home = "";
|
||||
try {
|
||||
home = StringKit.extractDigits(dzdxtymc.substring(0, dzdxtymc.indexOf("室")));
|
||||
} catch (Exception e) {
|
||||
home = "";
|
||||
}
|
||||
String unit = "1";
|
||||
try {
|
||||
unit = StringKit.extractDigits(dzdxtymc.substring(0, dzdxtymc.indexOf("单元")));
|
||||
} catch (Exception e) {
|
||||
unit = "1";
|
||||
}
|
||||
String build = "";
|
||||
try {
|
||||
build = StringKit.extractDigits(dzdxtymc.substring(0, dzdxtymc.indexOf("幢")));
|
||||
} catch (Exception e) {
|
||||
build = "";
|
||||
}
|
||||
|
||||
|
||||
String address = "";
|
||||
try {
|
||||
int index = dzdxtymc.indexOf("号");
|
||||
if (index != -1) {
|
||||
address = dzdxtymc.substring(0, index);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.info("小区地址未匹配到请求中户籍地址:" + build);
|
||||
}
|
||||
|
||||
|
||||
if ("".equals(home) || "".equals(unit) || "".equals(address)){
|
||||
beanCp.setStatus("2");
|
||||
sydzMysqlService.updateVSySydzById(beanCp);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
MetaRealEstateInfo realEstateInfo = new MetaRealEstateInfo();
|
||||
// realEstateInfo.setHomeId();
|
||||
realEstateInfo.setPoliceStationCode(StringKit.toString(bean.getZRQDM()));
|
||||
realEstateInfo.setPoliceDistrictCode(StringKit.toString(bean.getZRQDM()));
|
||||
realEstateInfo.setRealEstateBriefAddress(address + "号");
|
||||
realEstateInfo.setRealEstateAddress(StringKit.toString(StringKit.convertChineseUnitToDigit(beanCp.getDZDXTYMC())));
|
||||
realEstateInfo.setUnitName(unit);
|
||||
realEstateInfo.setBuildingName(build);
|
||||
realEstateInfo.setHomeName(home);
|
||||
realEstateInfo.setLongitude(NumKit.checkDouble(bean.getJDZB()));
|
||||
realEstateInfo.setLatitude(NumKit.checkDouble(bean.getCJSJ()));
|
||||
boolean b = estateInfoService.save(realEstateInfo);
|
||||
|
||||
if (b) {
|
||||
beanCp.setStatus("1");
|
||||
sydzMysqlService.updateVSySydzById(beanCp);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.info(StringKit.getTrace(e));
|
||||
beanCp.setStatus("2");
|
||||
sydzMysqlService.updateVSySydzById(beanCp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,145 @@
|
||||
package com.ssf.mysqloracletest.task;
|
||||
|
||||
import com.ssf.mysqloracletest.domain.*;
|
||||
import com.ssf.mysqloracletest.service.MetaActualUserInfoService;
|
||||
import com.ssf.mysqloracletest.service.MetaRealEstateInfoService;
|
||||
import com.ssf.mysqloracletest.service.VSySyrkMysqlService;
|
||||
import com.ssf.mysqloracletest.service.VillageActualUserInfoService;
|
||||
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.util.List;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
/**
|
||||
* 用户数据接入
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class SyrkToActualInfoTask {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(SyrkToActualInfoTask.class);
|
||||
|
||||
private final MetaActualUserInfoService metaActualUserInfoService;
|
||||
private final VSySyrkMysqlService syrkMysqlService;
|
||||
private final VillageActualUserInfoService villageActualUserInfoService;
|
||||
private final MetaRealEstateInfoService estateInfoService;
|
||||
|
||||
/**
|
||||
* 实有房屋往实有地址清洗
|
||||
* <p>
|
||||
* 清洗实有房屋
|
||||
*/
|
||||
@Scheduled(initialDelay = 100, fixedDelay = 3000)
|
||||
public void transMetaRealEstateInfo() {
|
||||
|
||||
if (!"true".equals(ConfigParam.syryToActualInfoSwitch)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
logger.info("syryToActualInfoSwitch start");
|
||||
try {
|
||||
List<VSySyrkMysql> sydzs = syrkMysqlService.selectVSySyrkList();
|
||||
|
||||
CountDownLatch latch = new CountDownLatch(sydzs.size());
|
||||
ExecutorService jwtSyfwPool = Executors.newFixedThreadPool(50);
|
||||
|
||||
for (VSySyrkMysql bean : sydzs) {
|
||||
jwtSyfwPool.submit(() -> {
|
||||
cleanJwtSyfw(bean);
|
||||
latch.countDown();
|
||||
});
|
||||
}
|
||||
try {
|
||||
// Wait for all threads to complete
|
||||
latch.await();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// 关闭线程池
|
||||
jwtSyfwPool.shutdown();
|
||||
} catch (Exception e) {
|
||||
logger.info(StringKit.getTrace(e));
|
||||
}
|
||||
}
|
||||
|
||||
//实有房屋往实有地址清洗
|
||||
private void cleanJwtSyfw(VSySyrkMysql bean) {
|
||||
VSySyrkMysql beanCp = new VSySyrkMysql();
|
||||
try {
|
||||
|
||||
BeanUtils.copyProperties(bean, beanCp);
|
||||
//先取现居住地 如果没有 取户籍地
|
||||
// String sxzdxz = StringKit.toString(beanCp.getXJZDXZ() );
|
||||
// if("".equals(StringKit.toString(sxzdxz))){
|
||||
// sxzdxz = StringKit.toString(beanCp.getHJDXZ());
|
||||
// }
|
||||
// if("".equals(sxzdxz)){
|
||||
// logger.info("sxzdxz:"+sxzdxz);
|
||||
// beanCp.setStatus("2");
|
||||
// syrkMysqlService.updateVSySyrkById(beanCp);
|
||||
// return;
|
||||
// }
|
||||
|
||||
|
||||
VillageActualUserInfo userInfoPara = new VillageActualUserInfo();
|
||||
userInfoPara.setIdcard(StringKit.toString(beanCp.getSFZH()));
|
||||
List<VillageActualUserInfo> actualUserInfos = villageActualUserInfoService.selectVillageActualUserInfoListLimit1(userInfoPara);
|
||||
String userPic = "";
|
||||
if (actualUserInfos != null && actualUserInfos.size() > 0) {
|
||||
userPic = StringKit.toString(actualUserInfos.get(0).getUserPic());
|
||||
}
|
||||
|
||||
MetaActualUserInfo realEstateInfo = new MetaActualUserInfo();
|
||||
realEstateInfo.setUserPic(userPic);
|
||||
realEstateInfo.setUserName(beanCp.getXM());
|
||||
realEstateInfo.setIdCard(beanCp.getSFZH());
|
||||
realEstateInfo.setSex(NumKit.checkInt(beanCp.getXB()));
|
||||
realEstateInfo.setPhone(beanCp.getLXDH());
|
||||
realEstateInfo.setLandline(beanCp.getSJHM());
|
||||
realEstateInfo.setActualUserType(NumKit.checkInt(beanCp.getRYLX()));
|
||||
// realEstateInfo.setHouseHoldRegister();
|
||||
//户籍地
|
||||
realEstateInfo.setHouseHoldAddress(beanCp.getHJDXZ());
|
||||
//现居住地
|
||||
realEstateInfo.setHabitationAddress(beanCp.getXJZDXZ());
|
||||
realEstateInfo.setPoliceStationCode(beanCp.getPCSDM());
|
||||
realEstateInfo.setPoliceStationName(beanCp.getPCSMC());
|
||||
realEstateInfo.setPoliceDistrictCode(beanCp.getJWQDM());
|
||||
realEstateInfo.setPoliceDistrictName(beanCp.getJWQMC());
|
||||
realEstateInfo.setManagementStatus(beanCp.getSTS());
|
||||
|
||||
//房屋放出来单独清洗
|
||||
/* MetaRealEstateInfo metaRealEstateInfoPara = new MetaRealEstateInfo();
|
||||
metaRealEstateInfoPara.setRealEstateAddress(StringKit.toString(beanCp.getXJZDXZ()));
|
||||
MetaRealEstateInfo estateInfo = estateInfoService.getListByAddress(metaRealEstateInfoPara);
|
||||
if (estateInfo != null) {
|
||||
realEstateInfo.setHomeId(StringKit.toString(estateInfo.getId()));
|
||||
}*/
|
||||
realEstateInfo.setMetaCreateTime(beanCp.getYSBZK_RKSJ());
|
||||
realEstateInfo.setMetaUpdateTime(beanCp.getYSBZK_GXSJ());
|
||||
|
||||
boolean b = metaActualUserInfoService.save(realEstateInfo);
|
||||
if (b) {
|
||||
beanCp.setStatus("1");
|
||||
syrkMysqlService.updateVSySyrkById(beanCp);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.info(StringKit.getTrace(e));
|
||||
beanCp.setStatus("2");
|
||||
syrkMysqlService.updateVSySyrkById(beanCp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,169 @@
|
||||
<?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.VillageSendStaticRecordDao">
|
||||
<resultMap type="com.ssf.mysqloracletest.domain.VillageSendStaticRecord" id="VillageSendStaticRecordResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="villageCode" column="village_code"/>
|
||||
<result property="villageName" column="village_name"/>
|
||||
<result property="tableName" column="table_name"/>
|
||||
<result property="tableId" column="table_id"/>
|
||||
<result property="sendTime" column="send_time"/>
|
||||
<result property="receiveTime" column="receive_time"/>
|
||||
<result property="manufactorNo" column="manufactor_no"/>
|
||||
<result property="receiptId" column="receipt_id"/>
|
||||
<result property="isactive" column="isactive"/>
|
||||
<result property="resultStatus" column="result_status"/>
|
||||
<result property="deviceCode" column="device_code"/>
|
||||
<result property="c1" column="c1"/>
|
||||
<result property="c2" column="c2"/>
|
||||
<result property="c3" column="c3"/>
|
||||
<result property="c4" column="c4"/>
|
||||
<result property="c5" column="c5"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<insert id="insertRecord" parameterType="com.ssf.mysqloracletest.domain.VillageSendStaticRecord"
|
||||
useGeneratedKeys="true" keyProperty="id">
|
||||
insert into village_send_static_record
|
||||
(
|
||||
`village_code`,
|
||||
`village_name`,
|
||||
`device_code`,
|
||||
`table_name`,
|
||||
`table_id`,
|
||||
`send_time`,
|
||||
`receive_time`,
|
||||
`manufactor_no`,
|
||||
`receipt_id`,
|
||||
`result_status`,
|
||||
`result_remark`,
|
||||
`c1`
|
||||
)
|
||||
values
|
||||
(
|
||||
#{villageCode},
|
||||
#{villageName},
|
||||
#{deviceCode},
|
||||
#{tableName},
|
||||
#{tableId},
|
||||
#{sendTime},
|
||||
#{receiveTime},
|
||||
#{manufactorNo},
|
||||
#{receiptId},
|
||||
#{resultStatus},
|
||||
#{resultRemark},
|
||||
#{c1}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<insert id="insertRecords" parameterType="java.util.List"
|
||||
useGeneratedKeys="true" keyProperty="id">
|
||||
insert into village_send_static_record
|
||||
(
|
||||
`village_code`,
|
||||
`village_name`,
|
||||
`device_code`,
|
||||
`table_name`,
|
||||
`table_id`,
|
||||
`send_time`,
|
||||
`receive_time`,
|
||||
`manufactor_no`,
|
||||
`receipt_id`,
|
||||
`result_status`,
|
||||
`result_remark`,
|
||||
`c1`
|
||||
)
|
||||
values
|
||||
<foreach item="item" index="index" collection="list" open="" separator="," close="">
|
||||
(#{item.villageCode},
|
||||
#{item.villageName},
|
||||
#{item.deviceCode},
|
||||
#{item.tableName},
|
||||
#{item.tableId},
|
||||
#{item.sendTime},
|
||||
#{item.receiveTime},
|
||||
#{item.manufactorNo},
|
||||
#{item.receiptId},
|
||||
#{item.resultStatus},
|
||||
#{item.resultRemark},
|
||||
#{item.c1})
|
||||
</foreach>
|
||||
|
||||
</insert>
|
||||
|
||||
<update id="updateRecord" parameterType="com.ssf.mysqloracletest.domain.VillageSendStaticRecord">
|
||||
update village_send_static_record
|
||||
<set>
|
||||
<if test="receiveTime != null and receiveTime != ''">`receive_time` = #{receiveTime},</if>
|
||||
<if test="receiptId != null and receiptId != ''">`receipt_id` = #{receiptId},</if>
|
||||
<if test="resultStatus != null and resultStatus != ''">`result_status` = #{resultStatus},</if>
|
||||
<if test="resultRemark != null and resultRemark != ''">`result_remark` = #{resultRemark},</if>
|
||||
<if test="c1 != null and c1 != ''">`c1` = #{c1},</if>
|
||||
<if test="c2 != null and c2 != ''">`c2` = #{c2},</if>
|
||||
<if test="isactive != null and isactive != ''">`isactive` = #{isactive},</if>
|
||||
</set>
|
||||
where 1=1
|
||||
<if test="id != null and id != ''"> and id = #{id}</if>
|
||||
<if test="villageCode != null and villageCode != ''"> and village_code = #{villageCode}</if>
|
||||
<if test="tableName != null and tableName != ''"> and `table_name` = #{tableName}</if>
|
||||
<if test="resultRemark != null and resultRemark != ''"> and `result_remark` = #{resultRemark}</if>
|
||||
<if test="manufactorNo != null and manufactorNo != ''"> and manufactor_no = #{manufactorNo}</if>
|
||||
</update>
|
||||
|
||||
<update id="updateRecordByTableId" parameterType="com.ssf.mysqloracletest.domain.VillageSendStaticRecord">
|
||||
update village_send_static_record
|
||||
<set>
|
||||
<if test="receiveTime != null and receiveTime != ''">`receive_time` = #{receiveTime},</if>
|
||||
<if test="receiptId != null and receiptId != ''">`receipt_id` = #{receiptId},</if>
|
||||
<if test="resultStatus != null and resultStatus != ''">`result_status` = #{resultStatus},</if>
|
||||
<if test="resultRemark != null and resultRemark != ''">`result_remark` = #{resultRemark},</if>
|
||||
<if test="c1 != null and c1 != ''">`c1` = #{c1},</if>
|
||||
<if test="c2 != null and c2 != ''">`c2` = #{c2},</if>
|
||||
<if test="isactive != null and isactive != ''">`isactive` = #{isactive},</if>
|
||||
</set>
|
||||
where 1=1
|
||||
<if test="tableId != null and tableId != ''"> and table_id = #{tableId}</if>
|
||||
<if test="villageCode != null and villageCode != ''"> and village_code = #{villageCode}</if>
|
||||
<if test="tableName != null and tableName != ''"> and `table_name` = #{tableName}</if>
|
||||
<if test="resultStatus != null and resultStatus != ''"> and `result_status` = #{resultStatus}</if>
|
||||
<if test="resultRemark != null and resultRemark != ''"> and `result_remark` = #{resultRemark}</if>
|
||||
<if test="manufactorNo != null and manufactorNo != ''"> and manufactor_no = #{manufactorNo}</if>
|
||||
</update>
|
||||
|
||||
<select id="getMaxTableIdFromVillageSendStaticRecord" resultType="java.lang.Long">
|
||||
select table_id as tableId from village_send_static_record where isactive=1
|
||||
and manufactor_no = #{manufactorNo}
|
||||
and village_code = #{villageCode}
|
||||
and `table_name` = #{tableName}
|
||||
and device_code = #{deviceCode}
|
||||
order by table_id desc limit 1
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="getstart" resultMap="VillageSendStaticRecordResult">
|
||||
select table_id from village_send_static_record ${partitionStr}
|
||||
where
|
||||
table_name = #{tableName} and manufactor_no = #{manufactor} and village_code = #{villageCode}
|
||||
order by table_id desc limit 1;
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getList" resultMap="VillageSendStaticRecordResult">
|
||||
select * from village_send_static_record
|
||||
<where>
|
||||
and result_status is null
|
||||
<if test="villageCode != null and villageCode != ''">and village_code = #{villageCode}</if>
|
||||
<if test="manufactorNo != null and manufactorNo != ''">and manufactor_no = #{manufactorNo}</if>
|
||||
<if test="resultStatus != null and resultStatus != ''">and result_status = #{resultStatus}</if>
|
||||
<if test="tableName != null and tableName != ''">and table_name = #{tableName}</if>
|
||||
<if test="resultRemark != null and resultRemark != ''"> and result_remark like concat('%', #{resultRemark}, '%')</if>
|
||||
</where>
|
||||
order by id desc
|
||||
limit 200;
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
Loading…
Reference in new issue