diff --git a/ParamDownload/src/main/java/com/nm/gsgl/common/Constant.java b/ParamDownload/src/main/java/com/nm/gsgl/common/Constant.java index ff91ec2f..e21a36df 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/common/Constant.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/common/Constant.java @@ -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 ="; diff --git a/ParamDownload/src/main/java/com/nm/gsgl/common/timetask/TimeTaskInfo.java b/ParamDownload/src/main/java/com/nm/gsgl/common/timetask/TimeTaskInfo.java index aa0dfbe0..7fd6116b 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/common/timetask/TimeTaskInfo.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/common/timetask/TimeTaskInfo.java @@ -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 diff --git a/ParamDownload/src/main/java/com/nm/gsgl/entity/business/CheckResultTableNew.java b/ParamDownload/src/main/java/com/nm/gsgl/entity/business/CheckResultTableNew.java index 5e0f15ea..90329335 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/entity/business/CheckResultTableNew.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/entity/business/CheckResultTableNew.java @@ -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; } diff --git a/ParamDownload/src/main/java/com/nm/gsgl/service/FtpDownloadService.java b/ParamDownload/src/main/java/com/nm/gsgl/service/FtpDownloadService.java index f8354c53..9dbb4c45 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/service/FtpDownloadService.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/service/FtpDownloadService.java @@ -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); } diff --git a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/CreateDbServiceImpl.java b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/CreateDbServiceImpl.java index baf093c9..cc35a89b 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/CreateDbServiceImpl.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/CreateDbServiceImpl.java @@ -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 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) { diff --git a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/DelOverdueServiceImpl.java b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/DelOverdueServiceImpl.java index ae1e6c7c..82c1f5fd 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/DelOverdueServiceImpl.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/DelOverdueServiceImpl.java @@ -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 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 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 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"); diff --git a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/EctServiceImpl.java b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/EctServiceImpl.java index c9043c05..a3492f04 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/EctServiceImpl.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/EctServiceImpl.java @@ -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); } } } diff --git a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/FtpDownloadServiceImpl.java b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/FtpDownloadServiceImpl.java index 399db399..98936099 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/FtpDownloadServiceImpl.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/FtpDownloadServiceImpl.java @@ -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 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 = 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"); + } + + } + + } + + } } diff --git a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/IntoDatabaseServiceImpl.java b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/IntoDatabaseServiceImpl.java index 1d1bf3da..26571835 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/IntoDatabaseServiceImpl.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/IntoDatabaseServiceImpl.java @@ -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 = 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; diff --git a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/MinFeeServiceImpl.java b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/MinFeeServiceImpl.java index ad34006a..bb87e807 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/service/impl/MinFeeServiceImpl.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/service/impl/MinFeeServiceImpl.java @@ -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); } } } diff --git a/ParamDownload/src/main/java/com/nm/gsgl/test/ContrastTest.java b/ParamDownload/src/main/java/com/nm/gsgl/test/ContrastTest.java index 72172870..c44f6b05 100644 --- a/ParamDownload/src/main/java/com/nm/gsgl/test/ContrastTest.java +++ b/ParamDownload/src/main/java/com/nm/gsgl/test/ContrastTest.java @@ -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(); diff --git a/ParamDownload/src/main/java/com/nm/gsgl/test/DataTableComparisonTest.java b/ParamDownload/src/main/java/com/nm/gsgl/test/DataTableComparisonTest.java new file mode 100644 index 00000000..8aa412d9 --- /dev/null +++ b/ParamDownload/src/main/java/com/nm/gsgl/test/DataTableComparisonTest.java @@ -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: 2024年06月18日 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> dataFromDb1 = fetchData(db1Url, query, username, password); + List> dataFromDb2 = fetchData(db2Url, query, username2, password2); + + // 比较数据 + + + boolean areEqual = areListsEqual(dataFromDb1, dataFromDb2); + System.out.println("数据是否一致: " + areEqual); + } + + + + + private static List> fetchData(String url, String query, String user, String password) { + List> 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 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> list1, List> 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 map1 = list1.get(i); + Map map2 = list2.get(i); + if (!map1.equals(map2) || !map2.equals(map1)) { + return false; + } + } + + return true; + } + +} diff --git a/ParamDownload/src/main/resources/static/timeTask.properties b/ParamDownload/src/main/resources/static/timeTask.properties index fd95a78e..1111ee3f 100644 --- a/ParamDownload/src/main/resources/static/timeTask.properties +++ b/ParamDownload/src/main/resources/static/timeTask.properties @@ -1,6 +1,6 @@ #每天执行一次 #time.corn1 = 0 0 1 * * ? -#每10分钟执行一次 +#每5分钟执行一次 time.corn1 = 0 0/5 * * * ? #每5分钟执行一次 time.corn2 = 0 0/5 * * * ?