修改参数下载服务,抢险救灾增量生成入参修改,并在tomcat的配置文件中增加可配置参数加载几天增量,目前抢险救灾增量加载一天的增量,其他增量还是加载10天的增量

#抢险救灾当前加载几天的增量
EMERCARINCDay=1
#除抢险救灾外其他增量当前加载几天的增量
incDays=10
main
gaoshuguang 4 months ago
parent 9b17a26d57
commit e2fb5f7c27

@ -10,6 +10,7 @@ import com.nm.gsgl.common.utils.FileUtil;
import com.nm.gsgl.common.utils.LogUtil;
import com.nm.gsgl.common.utils.MD5Util;
import com.nm.gsgl.common.utils.PathUtil;
import com.nm.gsgl.common.utils.PropertiesUtil;
import com.nm.gsgl.entity.FileInfo;
import com.nm.gsgl.entity.NameTableAuto;
import com.nm.gsgl.entity.dis.NewFileInfo;
@ -45,8 +46,8 @@ public class CreateDbfByDllServiceImpl implements CreateDbfByDllService {
//dbf文件名称
private String dbName = "";
//加载几天的增量
@Value("${incDays}")
public String incDays;
//@Value("${incDays}")
//public String incDays;
@Value("${NFSFilePath}")
public String NFSFilePath;
@ -240,7 +241,8 @@ public class CreateDbfByDllServiceImpl implements CreateDbfByDllService {
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成增量SQB文件完成,返回值为" + countSqb, "CreateDbfByDllServiceImpl");
} else {
//获取当前加载几天的增量
String incDays = StringUtils.isNotBlank(PropertiesUtil.getValue("incDays")) ? PropertiesUtil.getValue("incDays") : "10";
//每天生成一个备份zip文件夹存放增量下载的zip文件
String dayBackPath = NFSFilePath + PathUtil.downFileBackup + dbfDir + File.separator + dateTime + File.separator;
FileUtil.fileCreat(dayBackPath);

@ -110,15 +110,24 @@ public class CreateMinFeeSqbServiceImpl implements CreateMinFeeSqbService{
String subComNO;
subComNO = String.valueOf(nameTable.getSubComNo());
switch (subComNO) {
case "37"://十大
//十大
case "37":
subComNO = "38";
break;
case "34"://大东 和城大
//大东 和城大
case "34":
subComNO = "33";
break;
case "29"://东察
//东察
case "29":
subComNO = "35";
break;
//巴银归属到乌银分公司
case "46":
subComNO = "55";
break;
default:
break;
}
Integer staNo = nameTable.getStaNo();
LogUtil.WriteLog_MinFee("[uuid:" + uuid + "]-获取分公司编号为=" + subComNO, "CreateMinFeeSqbServiceImpl");

@ -13,6 +13,7 @@ import com.nm.gsgl.common.utils.FileUtil;
import com.nm.gsgl.common.utils.LogUtil;
import com.nm.gsgl.common.utils.MD5Util;
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.entity.FileInfo;
import com.nm.gsgl.entity.NameTableAuto;
@ -54,8 +55,8 @@ public class ZipToSqbServiceImpl implements ZipToSqbService {
@Value("${sqliteUrl}")
private String sqliteUrl;
//加载几天的增量
@Value("${incDays}")
public String incDays;
//@Value("${incDays}")
//public String incDays;
@Value("${NFSFilePath}")
public String NFSFilePath;
@ -185,7 +186,7 @@ public class ZipToSqbServiceImpl implements ZipToSqbService {
break;
case Constant.STR_920://抢险救灾车增量
dbName = "EMERCARINC.DBF";
type = 4;
type = 5;
etcType = 10;
dbfDir = "EMERCAR";
qlSqbName = "SQB_EMERCARALL";
@ -224,7 +225,121 @@ public class ZipToSqbServiceImpl implements ZipToSqbService {
LogUtil.WriteLog_HRBlackCard("[uuid:" + uuid + "]-调用动态库生成全量SQB文件完成,返回值为" + countSqb, "ZipToSqbServiceImpl");
} 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");
//每天生成一个备份zip文件夹存放增量下载的zip文件
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");
} else {
//获取当前加载几天的增量
String incDays = StringUtils.isNotBlank(PropertiesUtil.getValue("incDays")) ? PropertiesUtil.getValue("incDays") : "10";
LogUtil.WriteLog_MDBlackCard("[uuid:" + uuid + "]-调用动态库生成增量SQB文件中,协议类型为" + protocolType + "zip文件名为" + fileName, "ZipToSqbServiceImpl-createMDSqbByDll");
//每天生成一个备份zip文件夹存放增量下载的zip文件

@ -0,0 +1,35 @@
package com.nm.gsgl.test;
import com.nm.gsgl.common.Constant;
import com.nm.gsgl.common.utils.DateTimeUtil;
import com.nm.gsgl.common.utils.PathUtil;
import com.nm.gsgl.common.utils.PropertiesUtil;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.util.Date;
/**
* @author: shuguang
* @date: 20250730 15:35
* @description:
*/
public class Test250730 {
public static void main(String[] args) {
Date date = new Date();
//获取当前加载几天的增量
String emercarincDay = "1";
String dbfDir = "EMERCAR";
StringBuilder incDirLst = new StringBuilder();
boolean fDir = false;
for (int i = 0; i < Integer.parseInt(emercarincDay); i++) {
if (fDir) {
incDirLst.append("|");
}
incDirLst.append("/usr/test").append(File.separator).append(DateTimeUtil.getFormateString(DateTimeUtil.addDateDays(date, -i), Constant.YYYYMMDD));
fDir = true;
}
System.out.println(incDirLst);
}
}
Loading…
Cancel
Save