develop
hanrenchun 10 months ago
parent 2faa402827
commit f58313262e

@ -1,157 +0,0 @@
package com.ssf.mysqloracletest.task;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ssf.mysqloracletest.domain.MetaActualUnitInfo;
import com.ssf.mysqloracletest.domain.VSySydwmMysql;
import com.ssf.mysqloracletest.domain.VSySydzMysql;
import com.ssf.mysqloracletest.domain.VSySydzOracle;
import com.ssf.mysqloracletest.mapper.MetaActualUnitInfoMapper;
import com.ssf.mysqloracletest.mapper.VSySydwMysqlMapper;
import com.ssf.mysqloracletest.service.MetaActualUnitInfoService;
import com.ssf.mysqloracletest.service.VSySydwMysqlService;
import com.ssf.mysqloracletest.service.VSySydzMysqlService;
import com.ssf.mysqloracletest.service.VSySydzOracleService;
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.beans.BeanUtils;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.math.BigDecimal;
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 UnitInfoTask {
private static final Logger logger = LoggerFactory.getLogger(UnitInfoTask.class);
@Resource
private VSySydwMysqlService vSySydwMysqlService;
@Resource
private MetaActualUnitInfoService metaActualUnitInfoService;
final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 10000 : NumKit.checkInt(ConfigParam.oncesCounts);
private boolean NsydwTag = false;
/**
*
* //
*/
@Scheduled(initialDelay = 100, fixedDelay = 3000)
public void transNsydw() {
if (NsydwTag) {
return;
}
if (!"true".equals(ConfigParam.NewNsydwSwitch)) {
return;
}
try {
int countNsydw = vSySydwMysqlService.count();
logger.info("countNsydw:" + countNsydw);
if (countNsydw > 0) {
NsydwTag = true;
int count = countNsydw / oncesCounts;
CountDownLatch latch = new CountDownLatch(count);
ExecutorService NsydwPool = Executors.newFixedThreadPool(50);
for (int i = 0; i <= count; i++) {
Map NsydwMap = new HashMap();
NsydwMap.put("rowStart", i * oncesCounts);
NsydwMap.put("rowEnd", (i + 1) * oncesCounts);
NsydwPool.submit(() -> {
try {
List<VSySydwmMysql> Nsydws = vSySydwMysqlService.lambdaQuery().list();
for (VSySydwmMysql Nsydw : Nsydws) {
MetaActualUnitInfo unitInfo = new MetaActualUnitInfo();
int unit = Integer.parseInt(Nsydw.getDWZT());
BigDecimal XDecimal = new BigDecimal(Nsydw.getX());
BigDecimal YDecimal = new BigDecimal(Nsydw.getY());
//设置目标字段的值
//IDid----->unit_id(单位ID)
unitInfo.setUnitId(Nsydw.getID());
//DWMC单位名称----->unit_name(单位名称)
unitInfo.setUintName(Nsydw.getDWMC());
//DZ地址----->unit_address(单位地址)
unitInfo.setUintAddress(Nsydw.getDZ());
//LXDH联系电话----->phone(联系电话)
unitInfo.setPhone(Nsydw.getLXDH());
//PCSBM派出所编码----->police_station_code(派出所代码)
unitInfo.setPoliceStationCode(Nsydw.getPCSBM());
//PCSMC派出所名称----->police_station_name(派出所名称)
unitInfo.setPoliceStationName(Nsydw.getPCSMC());
//JWQBM警务区编码----->police_district_code(警务区编码)
unitInfo.setPoliceDistrictCode(Nsydw.getJWQBM());
//JWQMC警务区名称----->police_district_code(警务区名称)
unitInfo.setPoliceDistrictCode(Nsydw.getDWMC());
//DWZT单位状态 1有效----->unit_state(单位状态 1有效)
unitInfo.setUnitState(unit);
//X经度----->longitude(经度)
unitInfo.setLongitude(XDecimal);
//Y纬度----->latitude(纬度)
unitInfo.setLatitude(YDecimal);
//DWLXMC单位类型名称----->unit_type_name(单位类型名称)
unitInfo.setUnitTypeName(Nsydw.getDWLXMC());
//FRZJHM法人证件号码----->legal_person_id_card
unitInfo.setLegalPersonIdCard(Nsydw.getFRZJHM());
//FRXM法人姓名----->legal_person(企业法定代表人)
unitInfo.setLegalPerson(Nsydw.getFRXM());
//YSBZK_RKSJ入库时间----->meta_create_time(元数据创建时间)
unitInfo.setMetaCreateTime(Nsydw.getYSBZK_RKSJ());
//YSBZK_GXSJ更新时间----->meta_update_time(元数据更新时间)
unitInfo.setMetaUpdateTime(Nsydw.getYSBZK_GXSJ());
//确定一个数据是否唯一
MetaActualUnitInfo one = metaActualUnitInfoService.lambdaQuery().eq(MetaActualUnitInfo::getUnitId,Nsydw.getID()).one();
if (one == null) {
metaActualUnitInfoService.save(unitInfo);
logger.info("Nsydw-" + Nsydw.getID() + ":插入成功");
} else {
metaActualUnitInfoService.update(new QueryWrapper<>(unitInfo));
logger.info("Nsydw-" + Nsydw.getID() + ":更新成功");
}
}
} catch (Exception e) {
logger.info("Nsydws:" + StringKit.getTrace(e));
}
latch.countDown();
});
logger.info("NsydwMap数据总量:" + countNsydw + "," + "当前处理下标:" + NsydwMap.get("rowStart") + "/" + NsydwMap.get("rowEnd"));
}
try {
// Wait for all threads to complete
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 关闭线程池
NsydwPool.shutdown();
}
} catch (Exception e) {
logger.info(StringKit.getTrace(e));
}
}
}

@ -1 +1 @@
server: port: 5678 spring: datasource: dynamic: primary: mysql #设置默认的数据源或者数据源组,默认值即为master strict: false #设置严格模式,默认false不启动. 启动后再为匹配到指定数据源时候回抛出异常,不启动会使用默认数据源. datasource: oracleSydz: url: jdbc:oracle:thin:@50.146.63.219:1588/sygadsj driver-class-name: oracle.jdbc.driver.OracleDriver username: za_sjdj password: 'za_sjdj0324' mysql: url: jdbc:mysql://localhost:55306/yhzafk?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=GMT driver-class-name: com.mysql.cj.jdbc.Driver username: root password: '!QAZ1qaz' mybatis-plus: mapper-locations: - classpath:mapper/*.xml
server: port: 5679 spring: datasource: dynamic: primary: mysql #设置默认的数据源或者数据源组,默认值即为master strict: false #设置严格模式,默认false不启动. 启动后再为匹配到指定数据源时候回抛出异常,不启动会使用默认数据源. datasource: oracleSydz: url: jdbc:oracle:thin:@50.146.63.219:1588/sygadsj driver-class-name: oracle.jdbc.driver.OracleDriver username: za_sjdj password: 'za_sjdj0324' mysql: url: jdbc:mysql://50.146.63.224:55306/yhzafk?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=GMT # url: jdbc:mysql://121.41.91.94:12036/yhzafk?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=GMT driver-class-name: com.mysql.cj.jdbc.Driver username: root password: '!QAZ1qaz' mybatis-plus: mapper-locations: - classpath:mapper/*.xml
Loading…
Cancel
Save