main
gaoshuguang 1 year ago
parent 10be376130
commit b1c9d4caaa

@ -173,20 +173,19 @@ public class Constant {
*/
//生产环境使用 begin
//public static final String SELECT_TF_DOWNLOAD_NOTIFY_BLACK = "SELECT ID,SYSTEMID,TABLENAME,BATCHNO,VERSION,PROTOCOL_TYPE,CREATETIME,RECORDNUM,UPDATEFLAG,UPDATETIME,DOMAIN1,DOMAIN2,DOMAIN3,DOMAIN4 FROM TF_DOWNLOAD_NOTIFY where createtime>=to_date('20230101','yyyyMMdd') and protocol_type in(101,102,103,104,105,106,107,108,111,237,240,241,242,243,244,245,246,302,304,306,501,502,503,604,605,804,801,802,803,808,809,901,902,903,904,905,917,918,919,920,922,923,924,925) and updateflag=0 and length(domain1)>18 and substr(domain1,0,3)='ftp'";
//public static final String SELECT_TF_DOWNLOAD_NOTIFY_MIN_FEE = "SELECT ID,SYSTEMID,TABLENAME,BATCHNO,VERSION,PROTOCOL_TYPE,CREATETIME,RECORDNUM,UPDATEFLAG,UPDATETIME,DOMAIN1,DOMAIN2,DOMAIN3,DOMAIN4 FROM TF_DOWNLOAD_NOTIFY_CS where createtime>=to_date('20230101','yyyyMMdd') and protocol_type in(250) and updateflag=0 and length(domain1)>18 and substr(domain1,0,3)='ftp'";
//public static final String SELECT_T_PARAM_NOTIFY = "SELECT PARAM_ID,PARAM_NAME,VERSION,CREATE_TIME,RECORD_COUNT,FLAG,PARAM_PATH,SPARE3 FROM T_PARAM_NOTIFY WHERE FLAG=0 and PARAM_ID IN(35,36) AND CREATE_TIME>=TO_DATE('20230101','yyyyMMdd')";
//public static final String SELECT_TF_DOWNLOAD_NOTIFY_BLACK = "SELECT ID,SYSTEMID,TABLENAME,BATCHNO,VERSION,PROTOCOL_TYPE,CREATETIME,RECORDNUM,UPDATEFLAG,UPDATETIME,DOMAIN1,DOMAIN2,DOMAIN3,DOMAIN4 FROM TF_DOWNLOAD_NOTIFY where createtime>=to_date('20240624','yyyyMMdd') and protocol_type in(101,102,103,104,105,106,107,108,111,801,802,808,809,919,920) and updateflag=0 and length(domain1)>18 and substr(domain1,0,3)='ftp'";
//public static final String SELECT_TF_DOWNLOAD_NOTIFY_INSERT_DB = "SELECT ID,SYSTEMID,TABLENAME,BATCHNO,VERSION,PROTOCOL_TYPE,CREATETIME,RECORDNUM,UPDATEFLAG,UPDATETIME,DOMAIN1,DOMAIN2,DOMAIN3,DOMAIN4 FROM TF_DOWNLOAD_NOTIFY where createtime>=to_date('20240624','yyyyMMdd') and protocol_type in(237,240,241,242,243,244,245,246,302,304,306,501,502,503,604,605,804,803,901,902,903,904,905,917,918,922,923,924,925) and updateflag=0 and length(domain1)>18 and substr(domain1,0,3)='ftp'";
//public static final String UPDATE_TF_DOWNLOAD_NOTIFY_HR = "UPDATE TF_DOWNLOAD_NOTIFY SET UPDATEFLAG = 1 WHERE ID =";
//public static final String SELECT_TF_DOWNLOAD_NOTIFY_MIN_FEE = "SELECT ID,SYSTEMID,TABLENAME,BATCHNO,VERSION,PROTOCOL_TYPE,CREATETIME,RECORDNUM,UPDATEFLAG,UPDATETIME,DOMAIN1,DOMAIN2,DOMAIN3,DOMAIN4 FROM TF_DOWNLOAD_NOTIFY where createtime>=to_date('20230101','yyyyMMdd') and protocol_type in(250) and updateflag=0 and length(domain1)>18 and substr(domain1,0,3)='ftp'";
//public static final String SELECT_T_PARAM_NOTIFY = "SELECT PARAM_ID,PARAM_NAME,VERSION,CREATE_TIME,RECORD_COUNT,FLAG,PARAM_PATH,SPARE3 FROM T_PARAM_NOTIFY WHERE FLAG=0 and PARAM_ID IN(35,36) AND CREATE_TIME>=TO_DATE('20230101','yyyyMMdd')";
//public static final String UPDATE_T_PARAM_NOTIFY_MD = "UPDATE T_PARAM_NOTIFY SET FLAG = 1 WHERE PARAM_ID =";
//生产环境使用 end
//测试环境使用 begin
public static final String SELECT_TF_DOWNLOAD_NOTIFY_BLACK = "SELECT ID,SYSTEMID,TABLENAME,BATCHNO,VERSION,PROTOCOL_TYPE,CREATETIME,RECORDNUM,UPDATEFLAG,UPDATETIME,DOMAIN1,DOMAIN2,DOMAIN3,DOMAIN4 FROM TF_DOWNLOAD_NOTIFY_CS where createtime>=to_date('20230101','yyyyMMdd') and protocol_type in(101,102,103,104,105,106,107,108,111,237,240,241,242,243,244,245,246,302,304,306,501,502,503,604,605,804,801,802,803,808,809,901,902,903,904,905,917,918,919,920,922,923,924,925) and updateflag=0 and length(domain1)>18 and substr(domain1,0,3)='ftp'";
public static final String SELECT_TF_DOWNLOAD_NOTIFY_BLACK = "SELECT ID,SYSTEMID,TABLENAME,BATCHNO,VERSION,PROTOCOL_TYPE,CREATETIME,RECORDNUM,UPDATEFLAG,UPDATETIME,DOMAIN1,DOMAIN2,DOMAIN3,DOMAIN4 FROM TF_DOWNLOAD_NOTIFY_CS where createtime>=to_date('20240624','yyyyMMdd') and protocol_type in(101,102,103,104,105,106,107,108,111,801,802,808,809,919,920) and updateflag=0 and length(domain1)>18 and substr(domain1,0,3)='ftp'";
public static final String SELECT_TF_DOWNLOAD_NOTIFY_INSERT_DB = "SELECT ID,SYSTEMID,TABLENAME,BATCHNO,VERSION,PROTOCOL_TYPE,CREATETIME,RECORDNUM,UPDATEFLAG,UPDATETIME,DOMAIN1,DOMAIN2,DOMAIN3,DOMAIN4 FROM TF_DOWNLOAD_NOTIFY_CS where createtime>=to_date('20240624','yyyyMMdd') and protocol_type in(237,240,241,242,243,244,245,246,302,304,306,501,502,503,604,605,804,803,901,902,903,904,905,917,918,922,923,924,925) and updateflag=0 and length(domain1)>18 and substr(domain1,0,3)='ftp'";
public static final String UPDATE_TF_DOWNLOAD_NOTIFY_HR = "UPDATE TF_DOWNLOAD_NOTIFY_CS SET UPDATEFLAG = 1 WHERE ID =";
//public static final String SELECT_TF_DOWNLOAD_NOTIFY_BLACK = "SELECT ID,SYSTEMID,TABLENAME,BATCHNO,VERSION,PROTOCOL_TYPE,CREATETIME,RECORDNUM,UPDATEFLAG,UPDATETIME,DOMAIN1,DOMAIN2,DOMAIN3,DOMAIN4 FROM TF_DOWNLOAD_NOTIFY_TEST where createtime>=to_date('20230101','yyyyMMdd') and protocol_type in(101,102,103,104,105,106,107,108,111,237,240,241,242,243,244,245,246,302,304,306,501,502,503,604,605,804,801,802,803,808,809,901,902,903,904,905,917,918,919,920,922,923,924,925) and updateflag=0 and length(domain1)>18 and substr(domain1,0,3)='ftp'";
//public static final String UPDATE_TF_DOWNLOAD_NOTIFY_HR = "UPDATE TF_DOWNLOAD_NOTIFY_TEST SET UPDATEFLAG = 1 WHERE ID =";
//public static final String UPDATE_TF_DOWNLOAD_NOTIFY_HR = "UPDATE TF_DOWNLOAD_NOTIFY_CS SET UPDATEFLAG = 2 WHERE ID =";
public static final String SELECT_TF_DOWNLOAD_NOTIFY_MIN_FEE = "SELECT ID,SYSTEMID,TABLENAME,BATCHNO,VERSION,PROTOCOL_TYPE,CREATETIME,RECORDNUM,UPDATEFLAG,UPDATETIME,DOMAIN1,DOMAIN2,DOMAIN3,DOMAIN4 FROM TF_DOWNLOAD_NOTIFY_CS where createtime>=to_date('20230101','yyyyMMdd') and protocol_type in(250) and updateflag=0 and length(domain1)>18 and substr(domain1,0,3)='ftp'";
public static final String SELECT_T_PARAM_NOTIFY = "SELECT PARAM_ID,PARAM_NAME,VERSION,CREATE_TIME,RECORD_COUNT,FLAG,PARAM_PATH,SPARE3 FROM T_PARAM_NOTIFY_CS WHERE FLAG=0 and PARAM_ID IN(35,36) AND CREATE_TIME>=TO_DATE('20230101','yyyyMMdd')";
public static final String UPDATE_T_PARAM_NOTIFY_MD = "UPDATE T_PARAM_NOTIFY_CS SET FLAG = 1 WHERE PARAM_ID =";

@ -8,9 +8,6 @@ import com.nm.gsgl.service.EctService;
import com.nm.gsgl.service.IntoDatabaseService;
import com.nm.gsgl.service.MinFeeService;
import com.nm.gsgl.service.SqliteBackupsService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.PropertySource;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
@ -30,8 +27,6 @@ import java.time.LocalDateTime;
@EnableAsync
public class TimeTaskInfo {
@Resource
private SqliteBackupsService sqliteBackupsService;
@Resource
private EctService ectService;
@Resource

@ -18,6 +18,9 @@ public class CheckResultTableNew {
*/
@TableField("CHECKID")
private String checkId;
@TableField("EXSTATIONID")
private String exStationId;
/**
*
*/
@ -73,4 +76,6 @@ public class CheckResultTableNew {
*/
@TableField("BASICFILENAME")
private String basicFilename;
@TableField("OPERATION")
private String operation;
}

@ -8,7 +8,7 @@ package com.nm.gsgl.service;
public interface FtpDownloadService {
/**
*
*
*
* @author shuguang
* @date 2023-02-06 16:45
@ -22,4 +22,13 @@ public interface FtpDownloadService {
* @date 2023-02-06 16:45
*/
void getMdMdTask(String uuid);
/**
*
*
* @param uuid uuid
* @author shuguang
* @date 2024-06-17 10:03
*/
void getHrInsertDBTask(String uuid);
}

@ -382,7 +382,7 @@ public class CreateDbServiceImpl implements CreateDbService {
LogUtil.WriteLog_Error("[uuid:" + uuid + "]-插入数据库对应表中失败:" + e.getMessage(), "CreateDbServiceImpl");
//更新sqlite任务表的任务状态为2-报错
DatabaseUtil.insertSqlite(sqliteDriverName, sqliteUrl, Constant.ERROR_UPDATE_BUSINESS_HANDLER + businessTask.getId());
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
//throw new PPException(MessageEnum.插入数据库对应表中操作失败.getCode(), MessageEnum.插入数据库对应表中操作失败.getMessage());
}
}
/**
@ -939,7 +939,7 @@ public class CreateDbServiceImpl implements CreateDbService {
QueryWrapper<NooutportS2Down> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ID", obj.getId());
//加入主键updateTime字段
queryWrapper.eq("UPDATETIME", obj.getUpdateTime().replace(Constant.STR_T, Constant.STR_SPACE));
queryWrapper.eq("UPDATETIME", DateTimeUtil.getFormatDate(obj.getUpdateTime().replace(Constant.STR_T, Constant.STR_SPACE),Constant.YYYY_MM_DD_HH_MM_SS));
boolean exists = nooutportS2DownMapper.exists(queryWrapper);
//20230613 gsg 先删除再插入
if (exists) {

@ -77,12 +77,12 @@ public class DelOverdueServiceImpl implements DelOverdueService {
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-删除下载的zip文件备份文件路径" + NFSFilePath + PathUtil.downFile+"完成", "DelOverdueServiceImpl");
//log.info("[uuid:{}]开始删除zlib文件路径{}", uuid, NFSFilePath + PathUtil.dbfWrtPth);
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-开始删除zlib文件路径" + NFSFilePath + PathUtil.dbfWrtPth, "DelOverdueServiceImpl");
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-开始删除DBF的zlib文件路径" + NFSFilePath + PathUtil.dbfWrtPth, "DelOverdueServiceImpl");
List<FileInfo> fileInfos3 = new ArrayList<>();
FileUtil.obtainFileInfo(NFSFilePath + PathUtil.dbfWrtPth, fileInfos3);
FileUtil.deleteOverdueFile(fileInfos3, Integer.parseInt(zlibLWTime));
//log.info("[uuid:{}]删除zlib文件路径{}完成", uuid, NFSFilePath + PathUtil.dbfWrtPth);
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-删除zlib文件路径" + NFSFilePath + PathUtil.dbfWrtPth+"完成", "DelOverdueServiceImpl");
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-删除DBF的zlib文件路径" + NFSFilePath + PathUtil.dbfWrtPth+"完成", "DelOverdueServiceImpl");
//log.info("[uuid:{}]开始删除dbf文件备份路径{}", uuid, NFSFilePath + PathUtil.dbfBackPth);
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-开始删除dbf文件备份路径" + NFSFilePath + PathUtil.dbfBackPth, "DelOverdueServiceImpl");
@ -92,6 +92,19 @@ public class DelOverdueServiceImpl implements DelOverdueService {
//log.info("[uuid:{}]删除dbf文件备份路径{}完成", uuid, NFSFilePath + PathUtil.dbfBackPth);
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-删除dbf文件备份路径" + NFSFilePath + PathUtil.dbfBackPth+"完成", "DelOverdueServiceImpl");
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-开始删除SQB文件路径" + NFSFilePath + PathUtil.sqbPath, "DelOverdueServiceImpl");
List<FileInfo> fileInfosSqb = new ArrayList<>();
FileUtil.obtainFileInfo(NFSFilePath + PathUtil.sqbPath, fileInfosSqb);
FileUtil.deleteOverdueFile(fileInfosSqb, Integer.parseInt(zlibLWTime));
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-删除SQB文件路径" + NFSFilePath + PathUtil.sqbPath+"完成", "DelOverdueServiceImpl");
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-开始删除SQB备份文件路径" + NFSFilePath + PathUtil.sqbBackPath, "DelOverdueServiceImpl");
List<FileInfo> fileInfosSqbBack = new ArrayList<>();
FileUtil.obtainFileInfo(NFSFilePath + PathUtil.sqbBackPath, fileInfosSqbBack);
FileUtil.deleteOverdueFile(fileInfosSqbBack, Integer.parseInt(dbfTime));
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-删除SQB备份文件路径" + NFSFilePath + PathUtil.sqbBackPath+"完成", "DelOverdueServiceImpl");
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-开始删除目录下的空的文件夹路径" + NFSFilePath, "DelOverdueServiceImpl");
FileUtil.deleteEmptyFolder(new File(NFSFilePath));
LogUtil.WriteLog_DeleteOverFile("[uuid:" + uuid + "]-删除目录下的空的文件夹路径" + NFSFilePath+"完成", "DelOverdueServiceImpl");

@ -122,12 +122,13 @@ public class EctServiceImpl implements EctService {
DatabaseUtil.updateSql(driverName, HRConnectionStringOracle, HROracleName, HROraclePass, Constant.UPDATE_TF_DOWNLOAD_NOTIFY_HR + id, uuid);
//删除下载的zip文件
FileUtil.delete(new File(NFSFilePath + PathUtil.downFile + businessTask.getFileName()));
sqliteBackupsService.buildBackups(uuid);
//} else {
// log.info("[uuid:{}]数据处理失败中介下载任务id{}不更新", uuid, id);
}
}
}
sqliteBackupsService.buildBackups(uuid);
}
}
@ -182,11 +183,12 @@ public class EctServiceImpl implements EctService {
Constant.UPDATE_T_PARAM_NOTIFY_MD + type + Constant.AND_VERSION_MD + version + Constant.SINGLE_LEAD, uuid);
//删除下载的zip文件
FileUtil.delete(new File(NFSFilePath + PathUtil.downFile + businessTask.getFileName()));
sqliteBackupsService.buildBackups(uuid);
}
}
}
sqliteBackupsService.buildBackups(uuid);
}
}
}

@ -82,7 +82,7 @@ public class FtpDownloadServiceImpl implements FtpDownloadService {
/**
*
*
*
* @author shuguang
* @date 2023-02-06 16:45
@ -312,4 +312,126 @@ public class FtpDownloadServiceImpl implements FtpDownloadService {
}
}
}
/**
*
*
* @param uuid uuid
* @author shuguang
* @date 2024-06-17 10:03
*/
@Override
public void getHrInsertDBTask(String uuid) {
//log.info("[uuid:{}]开始查询华软中介服务上的下载任务数据", uuid);
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-开始查询华软中介服务上的下载任务数据" , "FtpDownloadServiceImpl-getHrMdTask");
//查询下载任务数据
List<DownloadNotify> downloadNotifys = DatabaseUtil.selectDownloadNotify(driverName, HRConnectionStringOracle, HROracleName, HROraclePass, Constant.SELECT_TF_DOWNLOAD_NOTIFY_INSERT_DB);
String localPath = NFSFilePath + PathUtil.downFile;
FileUtil.fileCreat(localPath);
//log.info("[uuid:{}]查询华软中介服务上的下载任务数据条数为{}", uuid, downloadNotifys.size());
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-查询华软中介服务上的下载任务数据条数为"+downloadNotifys.size() , "FtpDownloadServiceImpl-getHrMdTask");
if (downloadNotifys.size() == 0) {
//log.info("[uuid:{}]华软中介服务上无下载任务", uuid);
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-华软中介服务无下载任务" , "FtpDownloadServiceImpl-getHrMdTask");
} else {
for (DownloadNotify downloadNotify : downloadNotifys) {
long start = System.currentTimeMillis();
String id = downloadNotify.getID();
String tableName = downloadNotify.getTABLENAME();
String version = downloadNotify.getVERSION();
String protocolType = downloadNotify.getPROTOCOLTYPE();
//Json文件记录数
String fileCount = downloadNotify.getRECORDNUM();
//如果时黑名单 就是文件下载地址
String domain1 = downloadNotify.getDOMAIN1();
String md5 = downloadNotify.getDOMAIN2().trim();
//先查询sqlite库中是否存在已下载的文件
String sql = Constant.SELECT_BUSINESS_BY_ID + id;
List<BusinessTasks> businessTasks = DatabaseUtil.selectBusines(sqliteDriverName, sqliteUrl, sql);
//构建Ftp下载文件
String ftpUrl = Constant.FTP_PREFIX + HRFtpIP + Constant.STR_COLON + HRPort + Constant.STR_SLASH;
String fileName = domain1.substring(domain1.lastIndexOf("/") + 1);
String ftpFilePath = domain1.replace(ftpUrl, Constant.NULL_STRING).replace(fileName, Constant.NULL_STRING);
if (businessTasks.size() == 0 || !FileUtil.fileExists(localPath + fileName)) {
//log.info("[uuid:{}]开始下载华软中介服务上的任务数据,protocolType为{}", uuid, protocolType);
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-开始下载华软中介服务上的任务数据,protocolType为"+protocolType , "FtpDownloadServiceImpl-getHrMdTask");
boolean isDownload = false;
try {
isDownload = FTPUtil.downloadFile(HRFtpIP, HRFtpUsername, HRPassword, Integer.parseInt(HRPort), ftpFilePath, localPath, fileName);
} catch (Exception e) {
//log.error("[uuid:{}]{}-下载zip文件({}){}失败,等待下次轮询", uuid, protocolType, id, tableName);
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-下载zip文件protocolType为"+protocolType+"id为"+id+"业务主表表名为"+tableName , "FtpDownloadServiceImpl-getHrMdTask");
//throw new PPException(MessageEnum.FTP文件下载失败.getCode(), MessageEnum.FTP文件下载失败.getMessage());
}
long end = System.currentTimeMillis();
//log.info("[uuid:{}]下载耗时:{}毫秒", uuid, end - start);
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-下载耗时毫秒为"+(end - start) , "FtpDownloadServiceImpl-getHrMdTask");
if (isDownload) {
//校验md5
String downlMd5 = MD5Util.getMd5ByFilePath(localPath + fileName);
//log.info("[uuid:{}]{}-下载zip文件({}){},原MD5值为{}", uuid, protocolType, id, tableName, md5);
//log.info("[uuid:{}]{}-下载zip文件({}){},下载的MD5值为{}", uuid, protocolType, id, tableName, downlMd5);
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-下载zip文件protocolType为"+protocolType+"id为"+id+"业务主表表名为"+tableName +"原MD5值为"+md5,
"FtpDownloadServiceImpl-getHrMdTask");
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-下载zip文件protocolType为"+protocolType+"id为"+id+"业务主表表名为"+tableName +"下载的MD5值为"+downlMd5,
"FtpDownloadServiceImpl-getHrMdTask");
if (StringUtils.isBlank(downlMd5) || !md5.equals(downlMd5)) {
//log.info("[uuid:{}]{}-下载zip文件({}){},MD5校验失败", uuid, protocolType, id, tableName);
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-下载zip文件protocolType为"+protocolType+"id为"+id+"业务主表表名为"+tableName +"MD5校验失败",
"FtpDownloadServiceImpl-getHrMdTask");
//throw new PPException(MessageEnum.MD5校验失败.getCode(), MessageEnum.MD5校验失败.getMessage());
} else {
//log.info("[uuid:{}]{}-下载zip文件({}){},MD5校验成功", uuid, protocolType, id, tableName);
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-下载zip文件protocolType为"+protocolType+"id为"+id+"业务主表表名为"+tableName +"MD5校验成功",
"FtpDownloadServiceImpl-getHrMdTask");
//获取新的版本号
String newVersion = StringUtil.getNewVersion(protocolType, version);
//插入sqlite数据库任务表中
BusinessTasks bt = new BusinessTasks();
bt.setId(id);
bt.setFileName(fileName);
bt.setSize(FileUtil.formatFileSize(FileUtil.getFileSize(new File(localPath + fileName))));
bt.setRecordCount(Integer.parseInt(fileCount));
//1-已下载
bt.setDownStatus(1);
bt.setProtocolType(protocolType);
bt.setDownloadTime(DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD_HH_MM_SS));
bt.setConsumTime(end - start);
bt.setVersion(version);
bt.setNewVersion(newVersion);
bt.setProStatus(StringUtil.turnProStatus(protocolType));
//中介库名称 1-华软 2-迈道
bt.setMiddleDatabase(1);
//办理状态 0-未处理 1-已处理 2-再次轮询处理
bt.setHandleStatus(0);
String sqliteInsert = StringUtil.sqliteInsert(bt);
if (businessTasks.size() == 0) {
DatabaseUtil.insertSqlite(sqliteDriverName, sqliteUrl, sqliteInsert);
//log.info("[uuid:{}]插入sqlite数据库business_tasks_info表中任务数据,id为{}protocolType为{}", uuid, id, protocolType);
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-插入sqlite数据库business_tasks_info表中任务数据,id为"+id+"protocolType为"+protocolType,
"FtpDownloadServiceImpl-getHrMdTask");
}
}
}
} else {
//log.info("[uuid:{}]sqlite数据库中已存在下载的记录同时下载路径下存在该文件{},跳过下载执行后面的处理程序,id为{}", uuid, fileName, id);
LogUtil.WriteLog_HRZipDownloadFile("[uuid:" + uuid + "]-sqlite数据库中已存在下载的记录同时下载路径下存在该文件"+fileName+"跳过下载执行后面的处理程序,id为"+id,
"FtpDownloadServiceImpl-getHrMdTask");
}
}
}
}
}

@ -10,6 +10,7 @@ import com.nm.gsgl.entity.intermediary.AppAliveStatus;
import com.nm.gsgl.entity.sqlite.BusinessTasks;
import com.nm.gsgl.mapper.AppAliveStatusMapper;
import com.nm.gsgl.service.CreateDbService;
import com.nm.gsgl.service.FtpDownloadService;
import com.nm.gsgl.service.IntoDatabaseService;
import com.nm.gsgl.service.SqliteBackupsService;
import org.springframework.beans.factory.annotation.Value;
@ -51,6 +52,8 @@ public class IntoDatabaseServiceImpl implements IntoDatabaseService {
private SqliteBackupsService sqliteBackupsService;
@Resource
private CreateDbService createDbService;
@Resource
private FtpDownloadService ftpDownloadService;
//public static Logger insertDBLog = LoggerFactory.getLogger("InsertDB");
/**
* nmgmpayadmin
@ -71,6 +74,8 @@ public class IntoDatabaseServiceImpl implements IntoDatabaseService {
AppAliveStatus appAliveStatus = appAliveStatusMapper.selectById(1);
int aLiveId = appAliveStatus.getALiveId();
if (mId == aLiveId) {
//开始下载扫描迈道,华软下载任务
ftpDownloadService.getHrInsertDBTask(uuid);
//开始查询sqlite任务表中华软未处理数据任务
List<BusinessTasks> businessTasks = DatabaseUtil.selectBusines(sqliteDriverName, sqliteUrl, Constant.SELECT_BUSINESS_HANDLER_HR);
//按照文件类型排序
@ -215,10 +220,11 @@ public class IntoDatabaseServiceImpl implements IntoDatabaseService {
DatabaseUtil.updateSql(driverName, HRConnectionStringOracle, HROracleName, HROraclePass, Constant.UPDATE_TF_DOWNLOAD_NOTIFY_HR + id, uuid);
//删除下载的zip文件
FileUtil.delete(new File(NFSFilePath + PathUtil.downFile + businessTask.getFileName()));
sqliteBackupsService.buildBackups(uuid);
}
}
}
sqliteBackupsService.buildBackups(uuid);
return true;
} else {
return false;

@ -104,13 +104,14 @@ public class MinFeeServiceImpl implements MinFeeService {
DatabaseUtil.updateSql(driverName, HRConnectionStringOracle, HROracleName, HROraclePass, Constant.UPDATE_TF_DOWNLOAD_NOTIFY_HR + id, uuid);
//删除下载的zip文件
FileUtil.delete(new File(NFSFilePath + PathUtil.downFile + businessTask.getFileName()));
sqliteBackupsService.buildBackups(uuid);
} else {
//log.info("[uuid:{}]最小费额文件数据处理失败中介下载任务id{}不更新", uuid, id);
LogUtil.WriteLog_MinFee("[uuid:" + uuid + "]-最小费额文件数据处理失败,中介下载任务(id为" +id+")不更新", "MinFeeServiceImpl");
}
}
}
sqliteBackupsService.buildBackups(uuid);
}
}
}

@ -16,40 +16,37 @@ import java.util.List;
public class ContrastTest {
public static void main(String[] args) {
// 数据库连接信息
String db1Url = "jdbc:oracle:thin:@192.168.101.70:1521/XE";
String db1Url = "jdbc:oracle:thin:@10.15.100.5:1521/TORCL";
String db2Url = "jdbc:oracle:thin:@10.15.100.5:1521/TORCL";
String username = "nmgmpayadmin";
String password = "nmgh90[]";
//String query = "SELECT * FROM CT_ETC_CLEAR_SUM WHERE PROCESSTIME>=to_date('2024-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-05-16 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROCESSTIME ";
//String query = "SELECT SERPROVINCEID,CLEARDATE,PROCESSTIME,PAYERAMOUNT,PAYERMESSAGECOUNT,RECEIVERAMOUNT FROM CT_OTHER_CLEAR_SUM_1 WHERE PROCESSTIME>=to_date('2024-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-05-16 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROCESSTIME ";
//String query = "SELECT count(*) FROM CT_GANTRYPASSID WHERE EXTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ";
//String query = "SELECT ID,SPLITTIME,EXTIME FROM CT_OUT_PORT_ETC_NOPAY WHERE EXTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY EXTIME";
//String query = "SELECT ID,SPLITTIME,ENTIME FROM CT_OTHER_OUT_PORT WHERE ENTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and ENTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY EXTIME";
//String query = "SELECT ID,SPLITTIME FROM CT_OTHER_GANTRYPASSID WHERE SPLITTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID " ;
//String query = "SELECT ID,SPLITTIME FROM CT_OUTOTHER_GANTRY WHERE SPLITTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,REFUNDID,PROCESSTIME FROM CT_SERVERREFUND_TABLE WHERE PROCESSTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROCESSTIME" ;
//String query = "SELECT ID,RESTITUTIONID,PROCESSTIME FROM CT_SERVERLATERPAY_TABLE WHERE PROCESSTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROCESSTIME" ;
//604数据不一致正式库无数据
//String query = "SELECT PASSID,VEHICLEID,RECEIVERID,PAYERID,FEE,RECEIVETIME FROM CT_GATHERDETAIL_TABLE WHERE RECEIVETIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and RECEIVETIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY RECEIVETIME" ;
//605数据不一致 正式库无数据
//String query = "SELECT PASSID,VEHICLEID,ORIGIN,PAYERID,PAYFEE,PAYTIME FROM CT_PAYERDETAIL_TABLE WHERE PAYTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and PAYTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PAYTIME" ;
//804数据不一致 条数一致 CHECKID不一致
//String query = "SELECT CHECKID FROM CHECKRESULT_INFO_TABLE WHERE CHECKTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and CHECKTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY CHECKTIME" ;
//803数据不一致 条数一致 CHECKID不一致
//String query = "SELECT CHECKID,VEHICLEID,CHECKTIME FROM CHECKRESULT_TABLE_NEW WHERE CHECKTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and CHECKTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY CHECKTIME" ;
//String query = "SELECT ID,EXTIME FROM BSDZ_DISPUTE_PASSPROV WHERE EXTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY EXTIME" ;
//String query = "SELECT SPLITDATE,SERPROVINCEID FROM BSDZ_CLEAR_SUM WHERE SPLITDATE>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY SPLITDATE" ;
//904数据不一致 条数不一致
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_S2_DOWN WHERE PROVEXTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROVEXTIME" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_S2_DOWN WHERE SPLITDATE>=to_date('2024-05-11 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-05-13 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY SPLITDATE" ;
//String query = "SELECT ID,EXTIME FROM BSDZ_DISPUTE_EXPROV WHERE EXTIME>=to_date('2024-05-11 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-05-12 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY EXTIME" ;
String username2 = "nmghlbeadmin";
String password2 = "nmlwzx2021[]";
//String query = "SELECT SPLITDATE,PROCESSTIME,AMOUNT,TRANSACTIONCOUNT,BASICFILENAME FROM CT_ETC_CLEAR_SUM WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROCESSTIME ";
//String query = "SELECT SERPROVINCEID,CLEARDATE,PROCESSTIME,PAYERAMOUNT,PAYERMESSAGECOUNT,RECEIVERAMOUNT FROM CT_OTHER_CLEAR_SUM_1 WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROCESSTIME ";
//String query = "SELECT count(*) FROM CT_GANTRYPASSID WHERE EXTIME>=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ";
//String query = "SELECT ID,SPLITTIME,EXTIME FROM CT_OUT_PORT_ETC_NOPAY WHERE EXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY EXTIME";
//String query = "SELECT ID,SPLITTIME,ENTIME FROM CT_OTHER_OUT_PORT WHERE ENTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and ENTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY EXTIME";
//String query = "SELECT ID,SPLITTIME FROM CT_OTHER_GANTRYPASSID WHERE SPLITTIME>=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID " ;
//String query = "SELECT ID,SPLITTIME FROM CT_OUTOTHER_GANTRY WHERE SPLITTIME>=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID " ;
//String query = "SELECT ID,REFUNDID,PROCESSTIME FROM CT_SERVERREFUND_TABLE WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//304 ID长度不一致 0114012399230100003730202404221452502024
//0114012399230100003730202404221452502024061609034300202
//String query = "SELECT ID,RESTITUTIONID,PROCESSTIME FROM CT_SERVERLATERPAY_TABLE WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT PASSID,VEHICLEID,RECEIVERID,PAYERID,FEE,RECEIVETIME FROM CT_GATHERDETAIL_TABLE WHERE RECEIVETIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and RECEIVETIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PASSID" ;
//String query = "SELECT PASSID,VEHICLEID,ORIGIN,PAYERID,PAYFEE,PAYTIME FROM CT_PAYERDETAIL_TABLE WHERE PAYTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PAYTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PASSID" ;
//String query = "SELECT CHECKID FROM CHECKRESULT_INFO_TABLE WHERE CHECKTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and CHECKTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY CHECKID" ;
//String query = "SELECT CHECKID,VEHICLEID,CHECKTIME FROM CHECKRESULT_TABLE_NEW WHERE CHECKTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and CHECKTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY CHECKID" ;
//String query = "SELECT ID,EXTIME FROM BSDZ_DISPUTE_PASSPROV WHERE EXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT SPLITDATE,SERPROVINCEID FROM BSDZ_CLEAR_SUM WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY SPLITDATE" ;
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_S2_DOWN WHERE PROVEXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_S2_DOWN WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,EXTIME FROM BSDZ_DISPUTE_EXPROV WHERE EXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//922数据不一致 条数不一致
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_S3_DOWN WHERE PROVEXTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROVEXTIME" ;
//923数据不一致 条数不一致
String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_RESULT WHERE PROVEXTIME>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROVEXTIME" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_S3_DOWN WHERE SPLITDATE>=to_date('2024-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY SPLITDATE" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_RESULT WHERE SPLITDATE>=to_date('2024-05-08 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-05-09 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY SPLITDATE" ;
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_S3_DOWN WHERE PROVEXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_RESULT WHERE PROVEXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_S3_DOWN WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_RESULT WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
@ -57,7 +54,7 @@ public class ContrastTest {
// 连接两个数据库
try (Connection db1Connection = DriverManager.getConnection(db1Url, username, password);
Connection db2Connection = DriverManager.getConnection(db2Url, username, password)) {
Connection db2Connection = DriverManager.getConnection(db2Url, username2, password2)) {
// 创建Statement对象
Statement db1Statement = db1Connection.createStatement();

@ -0,0 +1,115 @@
package com.nm.gsgl.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author: shuguang
* @date: 20240618 17:02
* @description:
*/
public class DataTableComparisonTest {
public static void main(String[] args) {
// 数据库连接信息
String db1Url = "jdbc:oracle:thin:@10.15.100.5:1521/TORCL";
String db2Url = "jdbc:oracle:thin:@10.15.100.5:1521/TORCL";
String username = "nmgmpayadmin";
String password = "nmgh90[]";
String username2 = "nmghlbeadmin";
String password2 = "nmlwzx2021[]";
// SQL查询语句
//String query = "SELECT SPLITDATE,PROCESSTIME,AMOUNT,TRANSACTIONCOUNT,BASICFILENAME FROM CT_ETC_CLEAR_SUM WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROCESSTIME ";
//String query = "SELECT SERPROVINCEID,CLEARDATE,PROCESSTIME,PAYERAMOUNT,PAYERMESSAGECOUNT,RECEIVERAMOUNT FROM CT_OTHER_CLEAR_SUM_1 WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PROCESSTIME ";
//String query = "SELECT count(*) FROM CT_GANTRYPASSID WHERE EXTIME>=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ";
//String query = "SELECT ID,SPLITTIME,EXTIME FROM CT_OUT_PORT_ETC_NOPAY WHERE EXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY EXTIME";
//String query = "SELECT ID,SPLITTIME,ENTIME FROM CT_OTHER_OUT_PORT WHERE ENTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and ENTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY EXTIME";
//String query = "SELECT ID,SPLITTIME FROM CT_OTHER_GANTRYPASSID WHERE SPLITTIME>=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID " ;
//String query = "SELECT ID,SPLITTIME FROM CT_OUTOTHER_GANTRY WHERE SPLITTIME>=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID " ;
String query = "SELECT ID,REFUNDID,PROCESSTIME FROM CT_SERVERREFUND_TABLE WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//304 ID长度不一致 0114012399230100003730202404221452502024
//0114012399230100003730202404221452502024061609034300202
//String query = "SELECT ID,RESTITUTIONID,PROCESSTIME FROM CT_SERVERLATERPAY_TABLE WHERE PROCESSTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROCESSTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT PASSID,VEHICLEID,RECEIVERID,PAYERID,FEE,RECEIVETIME FROM CT_GATHERDETAIL_TABLE WHERE RECEIVETIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and RECEIVETIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PASSID" ;
//String query = "SELECT PASSID,VEHICLEID,ORIGIN,PAYERID,PAYFEE,PAYTIME FROM CT_PAYERDETAIL_TABLE WHERE PAYTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PAYTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY PASSID" ;
//String query = "SELECT CHECKID FROM CHECKRESULT_INFO_TABLE WHERE CHECKTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and CHECKTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY CHECKID" ;
//String query = "SELECT CHECKID,VEHICLEID,CHECKTIME FROM CHECKRESULT_TABLE_NEW WHERE CHECKTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and CHECKTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY CHECKID" ;
//String query = "SELECT ID,EXTIME FROM BSDZ_DISPUTE_PASSPROV WHERE EXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT SPLITDATE,SERPROVINCEID FROM BSDZ_CLEAR_SUM WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY SPLITDATE" ;
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_S2_DOWN WHERE PROVEXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_S2_DOWN WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,EXTIME FROM BSDZ_DISPUTE_EXPROV WHERE EXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and EXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_S3_DOWN WHERE PROVEXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,PROVEXTIME FROM BSDZ_NOOUTPORT_RESULT WHERE PROVEXTIME>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and PROVEXTIME<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_S3_DOWN WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
//String query = "SELECT ID,SPLITDATE FROM BSDZ_NOSPLIT_RESULT WHERE SPLITDATE>=to_date('2024-06-16 00:00:00','yyyy-mm-dd hh24:mi:ss') and SPLITDATE<=to_date('2024-06-17 00:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY ID" ;
// 连接数据库并获取数据
List<Map<String, Object>> dataFromDb1 = fetchData(db1Url, query, username, password);
List<Map<String, Object>> dataFromDb2 = fetchData(db2Url, query, username2, password2);
// 比较数据
boolean areEqual = areListsEqual(dataFromDb1, dataFromDb2);
System.out.println("数据是否一致: " + areEqual);
}
private static List<Map<String, Object>> fetchData(String url, String query, String user, String password) {
List<Map<String, Object>> dataList = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query)) {
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
while (rs.next()) {
Map<String, Object> row = new HashMap<>();
for (int i = 1; i <= columnCount; i++) {
row.put(metaData.getColumnName(i), rs.getObject(i));
}
dataList.add(row);
}
} catch (SQLException e) {
e.printStackTrace();
}
return dataList;
}
public static boolean areListsEqual(List<Map<String, Object>> list1, List<Map<String, Object>> list2) {
if (list1.size() != list2.size()) {
return false;
}
// 对列表中的Map进行排序
list1.sort(Comparator.comparing(Map::toString));
list2.sort(Comparator.comparing(Map::toString));
for (int i = 0; i < list1.size(); i++) {
Map<String, Object> map1 = list1.get(i);
Map<String, Object> map2 = list2.get(i);
if (!map1.equals(map2) || !map2.equals(map1)) {
return false;
}
}
return true;
}
}

@ -1,6 +1,6 @@
#每天执行一次
#time.corn1 = 0 0 1 * * ?
#每10分钟执行一次
#每5分钟执行一次
time.corn1 = 0 0/5 * * * ?
#每5分钟执行一次
time.corn2 = 0 0/5 * * * ?

Loading…
Cancel
Save