|
|
|
@ -13,6 +13,7 @@ import com.nm.gsgl.common.utils.FileUtil;
|
|
|
|
import com.nm.gsgl.common.utils.LogUtil;
|
|
|
|
import com.nm.gsgl.common.utils.LogUtil;
|
|
|
|
import com.nm.gsgl.common.utils.MD5Util;
|
|
|
|
import com.nm.gsgl.common.utils.MD5Util;
|
|
|
|
import com.nm.gsgl.common.utils.PathUtil;
|
|
|
|
import com.nm.gsgl.common.utils.PathUtil;
|
|
|
|
|
|
|
|
import com.nm.gsgl.common.utils.PropertiesUtil;
|
|
|
|
import com.nm.gsgl.common.utils.UnzipUtil;
|
|
|
|
import com.nm.gsgl.common.utils.UnzipUtil;
|
|
|
|
import com.nm.gsgl.entity.FileInfo;
|
|
|
|
import com.nm.gsgl.entity.FileInfo;
|
|
|
|
import com.nm.gsgl.entity.NameTableAuto;
|
|
|
|
import com.nm.gsgl.entity.NameTableAuto;
|
|
|
|
@ -54,8 +55,8 @@ public class ZipToSqbServiceImpl implements ZipToSqbService {
|
|
|
|
@Value("${sqliteUrl}")
|
|
|
|
@Value("${sqliteUrl}")
|
|
|
|
private String sqliteUrl;
|
|
|
|
private String sqliteUrl;
|
|
|
|
//加载几天的增量
|
|
|
|
//加载几天的增量
|
|
|
|
@Value("${incDays}")
|
|
|
|
//@Value("${incDays}")
|
|
|
|
public String incDays;
|
|
|
|
//public String incDays;
|
|
|
|
|
|
|
|
|
|
|
|
@Value("${NFSFilePath}")
|
|
|
|
@Value("${NFSFilePath}")
|
|
|
|
public String NFSFilePath;
|
|
|
|
public String NFSFilePath;
|
|
|
|
@ -185,7 +186,7 @@ public class ZipToSqbServiceImpl implements ZipToSqbService {
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case Constant.STR_920://抢险救灾车增量
|
|
|
|
case Constant.STR_920://抢险救灾车增量
|
|
|
|
dbName = "EMERCARINC.DBF";
|
|
|
|
dbName = "EMERCARINC.DBF";
|
|
|
|
type = 4;
|
|
|
|
type = 5;
|
|
|
|
etcType = 10;
|
|
|
|
etcType = 10;
|
|
|
|
dbfDir = "EMERCAR";
|
|
|
|
dbfDir = "EMERCAR";
|
|
|
|
qlSqbName = "SQB_EMERCARALL";
|
|
|
|
qlSqbName = "SQB_EMERCARALL";
|
|
|
|
@ -224,7 +225,121 @@ public class ZipToSqbServiceImpl implements ZipToSqbService {
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成全量SQB文件完成,返回值为" + countSqb, "ZipToSqbServiceImpl");
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成全量SQB文件完成,返回值为" + countSqb, "ZipToSqbServiceImpl");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else if (type == 5){
|
|
|
|
|
|
|
|
//获取当前加载几天的增量
|
|
|
|
|
|
|
|
String emercarincDay = StringUtils.isNotBlank(PropertiesUtil.getValue("EMERCARINCDay")) ? PropertiesUtil.getValue("EMERCARINCDay") : "1";
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成增量SQB文件中,协议类型为" + protocolType + "zip文件名为" + fileName, "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
//每天生成一个备份zip文件夹存放增量下载的zip文件
|
|
|
|
|
|
|
|
dayBackPath = NFSFilePath + PathUtil.downFileBackup + dbfDir + File.separator + dateTime + File.separator;
|
|
|
|
|
|
|
|
FileUtil.fileCreat(dayBackPath);
|
|
|
|
|
|
|
|
FileUtil.copyFile(localPath + fileName, dayBackPath + fileName);
|
|
|
|
|
|
|
|
//将下载的增量文件复制到入库文件夹下
|
|
|
|
|
|
|
|
String insertDbPath = NFSFilePath + File.separator + "ParamInsertDb" + File.separator + "zipFilePath" + File.separator;
|
|
|
|
|
|
|
|
FileUtil.fileCreat(insertDbPath);
|
|
|
|
|
|
|
|
FileUtil.copyFile(localPath + fileName, insertDbPath + fileName);
|
|
|
|
|
|
|
|
//当前时段是否生成新版本增量
|
|
|
|
|
|
|
|
boolean isGenerate = false;
|
|
|
|
|
|
|
|
//根据主键protocolType查询DIS_NEWFILEINFO_JAVA表中上次的生成时间
|
|
|
|
|
|
|
|
NewFileInfo newFileInfo = newFileInfoMapper.selectById(protocolType);
|
|
|
|
|
|
|
|
if (newFileInfo != null) {
|
|
|
|
|
|
|
|
Date updateTime = newFileInfo.getUpdateTime();
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-根据主键protocolType=" + protocolType + "查询DIS_NEWFILEINFO_JAVA表中上次的生成时间为" + updateTime, "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
int hours = DateTimeUtil.getHour(date);
|
|
|
|
|
|
|
|
if (updateTime != null) {
|
|
|
|
|
|
|
|
if (hours != DateTimeUtil.getHour(updateTime)) {
|
|
|
|
|
|
|
|
isGenerate = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
isGenerate = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
isGenerate = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isGenerate) {
|
|
|
|
|
|
|
|
//如果是增量先查询上一版本的版本号
|
|
|
|
|
|
|
|
if (Constant.ONE_HOUR_ISSUED.contains(protocolType)) {
|
|
|
|
|
|
|
|
version = getVersion(protocolType, date);
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-最终增量本次版本号为" + version, "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//增量目录名称
|
|
|
|
|
|
|
|
StringBuilder incDirLst = new StringBuilder();
|
|
|
|
|
|
|
|
boolean fDir = false;
|
|
|
|
|
|
|
|
for (int i = 0; i < Integer.parseInt(emercarincDay); i++) {
|
|
|
|
|
|
|
|
if (fDir) {
|
|
|
|
|
|
|
|
incDirLst.append("|");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
incDirLst.append(NFSFilePath).append(PathUtil.downFileBackup).append(dbfDir).append(File.separator).append(DateTimeUtil.getFormateString(DateTimeUtil.addDateDays(date, -i), Constant.YYYYMMDD));
|
|
|
|
|
|
|
|
fDir = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
zlibSqbName = bfSqbName + Constant.STR_ + formateString + Constant.STR_ + version + Constant.STR_ZLIB;
|
|
|
|
|
|
|
|
sqbZlibPathName = sqbPath + dbfDir + File.separator + zlibSqbName;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成增量SQB文件中,协议类型为" + protocolType + "zip文件名为" + fileName, "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取最新的全量sqb文件全路径
|
|
|
|
|
|
|
|
//全量文件
|
|
|
|
|
|
|
|
String sqbQlFileDir = NFSFilePath + PathUtil.sqbBackPath + dbfDir;
|
|
|
|
|
|
|
|
String pblackAllFileName = "";
|
|
|
|
|
|
|
|
List<FileInfo> fileInfos2 = new ArrayList<>();
|
|
|
|
|
|
|
|
File[] files2 = new File(sqbQlFileDir).listFiles();
|
|
|
|
|
|
|
|
if (null != files2 && files2.length > 0) {
|
|
|
|
|
|
|
|
for (File file : files2) {
|
|
|
|
|
|
|
|
if (file.isFile() && file.getName().endsWith(Constant.STR_SQB) && file.getName().contains(qlSqbName)) {
|
|
|
|
|
|
|
|
FileInfo fileInfo = new FileInfo();
|
|
|
|
|
|
|
|
fileInfo.setFileName(file.getName());
|
|
|
|
|
|
|
|
fileInfo.setLastModified(new Date(file.lastModified()));
|
|
|
|
|
|
|
|
fileInfo.setFilePath(file.getPath());
|
|
|
|
|
|
|
|
fileInfos2.add(fileInfo);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取当前时间的全量文件版本号
|
|
|
|
|
|
|
|
String nowVersion = DateTimeUtil.getFormateString(date, Constant.YYMMDD) + "103";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (fileInfos2.size() > 0) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//对文件的最后修改时间进行排序
|
|
|
|
|
|
|
|
fileInfos2.sort(Comparator.comparing(FileInfo::getLastModified));
|
|
|
|
|
|
|
|
for (FileInfo fileInfo2 : fileInfos2) {
|
|
|
|
|
|
|
|
if (DateUtils.isSameDay(date, fileInfo2.getLastModified()) || fileInfo2.getFileName().contains(nowVersion)) {
|
|
|
|
|
|
|
|
pblackAllFileName = fileInfo2.getFileName();
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(pblackAllFileName)) {
|
|
|
|
|
|
|
|
pblackAllFileName = fileInfos2.get(0).getFileName();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
LogUtil.WriteLog_Error("[uuid:" + uuid + "]-获取当日全量SQB文件失败", "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
//更新sqlite任务表的任务状态为2-报错
|
|
|
|
|
|
|
|
DatabaseUtil.insertSqlite(sqliteDriverName, sqliteUrl, Constant.ERROR_UPDATE_BUSINESS_HANDLER + businessTask.getId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-获取当日全量SQB文件名称" + pblackAllFileName, "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//如果没有最新的全量SQB文件时,不生成增量文件
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(pblackAllFileName)) {
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成增量入参,全量SQB文件全路径" + (sqbQlFileDir + File.separator + pblackAllFileName).replace("\\", "/"), "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成增量入参,生成SQB文件全路径" + sqbPathName.replace("\\", "/"), "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成增量入参,生成SQBzlib文件全路径" + sqbZlibPathName.replace("\\", "/"), "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
countSqb = CMinFeeCreator.INSTANCE.MakeBlackIncSQB(etcType, version, format, incDirLst.toString(),
|
|
|
|
|
|
|
|
(sqbQlFileDir + File.separator + pblackAllFileName).replace("\\", "/"),
|
|
|
|
|
|
|
|
sqbPathName.replace("\\", "/"), sqbZlibPathName.replace("\\", "/"), bytMd5);
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-]调用动态库生成增量SQB文件完成,返回值为" + countSqb, "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-该时间点" + protocolType + "已下发/或者该点不下发", "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
//更新sqlite任务表的任务状态为3-不下发
|
|
|
|
|
|
|
|
DatabaseUtil.insertSqlite(sqliteDriverName, sqliteUrl,
|
|
|
|
|
|
|
|
Constant.NOT_DIS_UPDATE_BUSINESS_HANDLER + DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD_HH_MM_SS) + Constant.WHERE_ID + businessTask.getId());
|
|
|
|
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-更新business_tasks_info任务表的下发状态为3-不下发,id为" + businessTask.getId(), "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
//获取当前加载几天的增量
|
|
|
|
|
|
|
|
String incDays = StringUtils.isNotBlank(PropertiesUtil.getValue("incDays")) ? PropertiesUtil.getValue("incDays") : "10";
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成增量SQB文件中,协议类型为" + protocolType + "zip文件名为" + fileName, "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成增量SQB文件中,协议类型为" + protocolType + "zip文件名为" + fileName, "ZipToSqbServiceImpl-createSqbByDll");
|
|
|
|
//每天生成一个备份zip文件夹存放增量下载的zip文件
|
|
|
|
//每天生成一个备份zip文件夹存放增量下载的zip文件
|
|
|
|
dayBackPath = NFSFilePath + PathUtil.downFileBackup + dbfDir + File.separator + dateTime + File.separator;
|
|
|
|
dayBackPath = NFSFilePath + PathUtil.downFileBackup + dbfDir + File.separator + dateTime + File.separator;
|
|
|
|
@ -515,6 +630,8 @@ public class ZipToSqbServiceImpl implements ZipToSqbService {
|
|
|
|
LogUtil.WriteLog_MDBlackCard("[uuid:" + uuid + "]-调用动态库生成全量SQB文件完成,返回值为" + countSqb, "ZipToSqbServiceImpl-createMDSqbByDll");
|
|
|
|
LogUtil.WriteLog_MDBlackCard("[uuid:" + uuid + "]-调用动态库生成全量SQB文件完成,返回值为" + countSqb, "ZipToSqbServiceImpl-createMDSqbByDll");
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
|
|
|
|
//获取当前加载几天的增量
|
|
|
|
|
|
|
|
String incDays = StringUtils.isNotBlank(PropertiesUtil.getValue("incDays")) ? PropertiesUtil.getValue("incDays") : "10";
|
|
|
|
LogUtil.WriteLog_MDBlackCard("[uuid:" + uuid + "]-调用动态库生成增量SQB文件中,协议类型为" + protocolType + "zip文件名为" + fileName, "ZipToSqbServiceImpl-createMDSqbByDll");
|
|
|
|
LogUtil.WriteLog_MDBlackCard("[uuid:" + uuid + "]-调用动态库生成增量SQB文件中,协议类型为" + protocolType + "zip文件名为" + fileName, "ZipToSqbServiceImpl-createMDSqbByDll");
|
|
|
|
|
|
|
|
|
|
|
|
//每天生成一个备份zip文件夹存放增量下载的zip文件
|
|
|
|
//每天生成一个备份zip文件夹存放增量下载的zip文件
|
|
|
|
|