Du SYDW TEst

develop
Angel 10 months ago
parent d8b1663d26
commit fc3ae1662f

@ -0,0 +1,132 @@
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 meta_actual_unit_info
*/
@TableName(value ="meta_actual_unit_info")
@Data
public class MetaActualUnitInfo implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* ID
*/
private String unitId;
/**
*
*/
private String uintName;
/**
*
*/
private String uintAddress;
/**
*
*/
private String phone;
/**
*
*/
private Integer unitState;
/**
*
*/
private String unitTypeName;
/**
*
*/
private String policeStationCode;
/**
*
*/
private String policeStationName;
/**
*
*/
private String policeDistrictCode;
/**
*
*/
private String policeDistrictName;
/**
*
*/
private BigDecimal longitude;
/**
*
*/
private BigDecimal latitude;
/**
*
*/
private String legalPerson;
/**
*
*/
private String legalPersonIdCard;
/**
*
*/
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;
}

@ -0,0 +1,18 @@
package com.ssf.mysqloracletest.mapper;
import com.ssf.mysqloracletest.domain.MetaActualUnitInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author 10503
* @description meta_actual_unit_info()Mapper
* @createDate 2023-12-01 09:50:00
* @Entity com.ssf.mysqloracletest.domain.MetaActualUnitInfo
*/
public interface MetaActualUnitInfoMapper extends BaseMapper<MetaActualUnitInfo> {
}

@ -0,0 +1,15 @@
package com.ssf.mysqloracletest.service;
import com.ssf.mysqloracletest.domain.MetaActualUnitInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.stereotype.Service;
/**
* @author 10503
* @description meta_actual_unit_info()Service
* @createDate 2023-12-01 09:50:00
*/
@Service
public interface MetaActualUnitInfoService extends IService<MetaActualUnitInfo> {
}

@ -0,0 +1,25 @@
package com.ssf.mysqloracletest.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ssf.mysqloracletest.domain.MetaActualUnitInfo;
import com.ssf.mysqloracletest.mapper.MetaActualUnitInfoMapper;
import com.ssf.mysqloracletest.service.MetaActualUnitInfoService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @author 10503
* @description meta_actual_unit_info()Service
* @createDate 2023-12-01 09:50:00
*/
@Service
@RequiredArgsConstructor
public class MetaActualUnitInfoServiceImpl extends ServiceImpl<MetaActualUnitInfoMapper, MetaActualUnitInfo> implements MetaActualUnitInfoService {
}

@ -0,0 +1,157 @@
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));
}
}
}
Loading…
Cancel
Save