From affb5538478774b0f0bd29e246e893c2b083dad6 Mon Sep 17 00:00:00 2001 From: gaoshuguang Date: Tue, 8 Oct 2024 14:50:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nm/gsgl/common/utils/FileUtil.java | 5 +- .../service/impl/ManualIssueServiceImpl.java | 181 ++++++++++-------- .../java/com/nm/gsgl/test/Test240927.java | 30 +++ .../version/{1.1.2.txt => 1.1.3.txt} | 1 + 4 files changed, 134 insertions(+), 83 deletions(-) create mode 100644 ManualSendOut/src/main/java/com/nm/gsgl/test/Test240927.java rename ManualSendOut/src/main/resources/version/{1.1.2.txt => 1.1.3.txt} (93%) diff --git a/ManualSendOut/src/main/java/com/nm/gsgl/common/utils/FileUtil.java b/ManualSendOut/src/main/java/com/nm/gsgl/common/utils/FileUtil.java index 5b5ab79..e45b22c 100644 --- a/ManualSendOut/src/main/java/com/nm/gsgl/common/utils/FileUtil.java +++ b/ManualSendOut/src/main/java/com/nm/gsgl/common/utils/FileUtil.java @@ -549,8 +549,9 @@ public class FileUtil { try { FileUtils.moveFile(new File(oldPath), new File(newPath)); } catch (IOException e) { - e.printStackTrace(); - throw new PPException(MessageEnum.文件移动重命名失败.getCode(), MessageEnum.文件移动重命名失败.getMessage()); + //e.printStackTrace(); + log.error("文件移动重命名失败"+e.getMessage(), e); + //throw new PPException(MessageEnum.文件移动重命名失败.getCode(), MessageEnum.文件移动重命名失败.getMessage()); } } diff --git a/ManualSendOut/src/main/java/com/nm/gsgl/service/impl/ManualIssueServiceImpl.java b/ManualSendOut/src/main/java/com/nm/gsgl/service/impl/ManualIssueServiceImpl.java index b65b556..ed9e479 100644 --- a/ManualSendOut/src/main/java/com/nm/gsgl/service/impl/ManualIssueServiceImpl.java +++ b/ManualSendOut/src/main/java/com/nm/gsgl/service/impl/ManualIssueServiceImpl.java @@ -236,6 +236,29 @@ public class ManualIssueServiceImpl implements ManualIssueService { for (Integer protocolType : ids) { + + //下传日期 + String isDate = DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD); + //序列号 + int lastNum = 1; + //先查询CMS_DOWNLOG_JAVA中下发的批次号 + //判断当前是否是Oracle + List cmsDownLogs; + if (Constant.STR_TWO.equals(DBType)) { + cmsDownLogs = cmsDownLogMapper.selectListOracle(protocolType, isDate); + } else { + QueryWrapper downLogQueryWrapper = new QueryWrapper<>(); + downLogQueryWrapper.select("NUM").eq("PARAID", protocolType) + .eq("DT", isDate) + .lt("NUM", 10000); + cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper); + } + if (cmsDownLogs != null && cmsDownLogs.size() > 0) { + cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed()); + lastNum = cmsDownLogs.get(0).getNum() + 1; + } + + //判断是否需要生成文件后下载 if (Constant.INT_GENERATED.contains(protocolType)) { //判断当前是否联网中心 @@ -268,26 +291,7 @@ public class ManualIssueServiceImpl implements ManualIssueService { String md5 = newFileInfo.getMd5(); //版本号 String version = newFileInfo.getVersion(); - //下传日期 - String isDate = DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD); - //序列号 - int lastNum = 1; - //先查询CMS_DOWNLOG_JAVA中下发的批次号 - //判断当前是否是Oracle - List cmsDownLogs; - if (Constant.STR_TWO.equals(DBType)) { - cmsDownLogs = cmsDownLogMapper.selectListOracle(protocolType, isDate); - } else { - QueryWrapper downLogQueryWrapper = new QueryWrapper<>(); - downLogQueryWrapper.select("NUM").eq("PARAID", protocolType) - .eq("DT", isDate) - .lt("NUM", 10000); - cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper); - } - if (cmsDownLogs != null && cmsDownLogs.size() > 0) { - cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed()); - lastNum = cmsDownLogs.get(0).getNum() + 1; - } + //路段号 Integer roadNo = setUpTable.getROADNO(); //查询分中心的IP和程序的端口号 @@ -371,26 +375,26 @@ public class ManualIssueServiceImpl implements ManualIssueService { String md5 = MD5Util.getMd5ByFilePath(DownloadPath + File.separator + fileName); //版本号 String version = cmsParameter.getQgCsVerNo(); - //下传日期 - String isDate = DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD); - //序列号 - int lastNum = 1; - //先查询CMS_DOWNLOG_JAVA中下发的批次号 - //判断当前是否是Oracle - List cmsDownLogs; - if (Constant.STR_TWO.equals(DBType)) { - cmsDownLogs = cmsDownLogMapper.selectListOracle(paraId, isDate); - } else { - QueryWrapper downLogQueryWrapper = new QueryWrapper<>(); - downLogQueryWrapper.select("NUM").eq("PARAID", paraId) - .eq("DT", isDate) - .lt("NUM", 10000); - cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper); - } - if (cmsDownLogs != null && cmsDownLogs.size() > 0) { - cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed()); - lastNum = cmsDownLogs.get(0).getNum() + 1; - } + ////下传日期 + //String isDate = DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD); + ////序列号 + //int lastNum = 1; + ////先查询CMS_DOWNLOG_JAVA中下发的批次号 + ////判断当前是否是Oracle + //List cmsDownLogs; + //if (Constant.STR_TWO.equals(DBType)) { + // cmsDownLogs = cmsDownLogMapper.selectListOracle(paraId, isDate); + //} else { + // QueryWrapper downLogQueryWrapper = new QueryWrapper<>(); + // downLogQueryWrapper.select("NUM").eq("PARAID", paraId) + // .eq("DT", isDate) + // .lt("NUM", 10000); + // cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper); + //} + //if (cmsDownLogs != null && cmsDownLogs.size() > 0) { + // cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed()); + // lastNum = cmsDownLogs.get(0).getNum() + 1; + //} String socketStr = conStringMin(String.valueOf(protocolType), paraName, fileName, isZlib, ip, downUrl, backUrl, md5, version, isDate, lastNum, roadNo, staNo, portNo); //查询获取车道的ip @@ -477,27 +481,27 @@ public class ManualIssueServiceImpl implements ManualIssueService { String md5 = cmsParameter.getQgCsMd5(); //版本号 String version = cmsParameter.getQgCsVerNo(); - //下传日期 - String isDate = DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD); - //序列号 - int lastNum = 1; - //先查询CMS_DOWNLOG_JAVA中下发的批次号 - //判断当前是否是Oracle - List cmsDownLogs; - if (Constant.STR_TWO.equals(DBType)) { - cmsDownLogs = cmsDownLogMapper.selectListOracle(paraId, isDate); - } else { - QueryWrapper downLogQueryWrapper = new QueryWrapper<>(); - downLogQueryWrapper.select("NUM").eq("PARAID", paraId) - .eq("DT", isDate) - .lt("NUM", 10000); - cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper); - } - - if (cmsDownLogs != null && cmsDownLogs.size() > 0) { - cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed()); - lastNum = cmsDownLogs.get(0).getNum() + 1; - } + ////下传日期 + //String isDate = DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD); + ////序列号 + //int lastNum = 1; + ////先查询CMS_DOWNLOG_JAVA中下发的批次号 + ////判断当前是否是Oracle + //List cmsDownLogs; + //if (Constant.STR_TWO.equals(DBType)) { + // cmsDownLogs = cmsDownLogMapper.selectListOracle(paraId, isDate); + //} else { + // QueryWrapper downLogQueryWrapper = new QueryWrapper<>(); + // downLogQueryWrapper.select("NUM").eq("PARAID", paraId) + // .eq("DT", isDate) + // .lt("NUM", 10000); + // cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper); + //} + // + //if (cmsDownLogs != null && cmsDownLogs.size() > 0) { + // cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed()); + // lastNum = cmsDownLogs.get(0).getNum() + 1; + //} //路段号 Integer roadNo = setUpTable.getROADNO(); // 站编码 @@ -539,7 +543,7 @@ public class ManualIssueServiceImpl implements ManualIssueService { //版本号 String version = DateTimeUtil.getFormateString(now, Constant.YYYYMMDDHHMMSS); //下传日期 - String isDate = DateTimeUtil.getFormateString(now, Constant.YYYY_MM_DD); + //String isDate = DateTimeUtil.getFormateString(now, Constant.YYYY_MM_DD); //下载文件地址 String downUrl = null; //回调地址 @@ -586,8 +590,17 @@ public class ManualIssueServiceImpl implements ManualIssueService { Integer staNo = setUpTable.getSTANO(); //paraId=2需要路段号和站编号(下发时根据路段号和站编号做替换) if (paraId == 2) { + if (Constant.STR_ONE.equals(DBType)) { + sqlStr = cmsParameter.getSqlStr(); + } else if (Constant.STR_TWO.equals(DBType)) { + sqlStr = cmsParameter.getOraStr(); + } else if (Constant.STR_FOUR.equals(DBType)) { + sqlStr = cmsParameter.getOraStr(); + } Date now2 = new Date(); - version = DateTimeUtil.getFormateString(now2, Constant.MMDDHHMMSSSSS); + FileUtil.delFile(new File(DownloadPath + File.separator + fileName)); + //version = DateTimeUtil.getFormateString(now2, Constant.MMDDHHMMSSSSS); + version = staNo + DateTimeUtil.getFormateString(now2, Constant.YYMMDD); newName = fileName.replace(Constant.STR_DBF, Constant.STR_) + version + Constant.STR_ZLIB; String newFileName = fileName.replace(Constant.STR_DBF, Constant.STR_) + version + Constant.STR_DBF; sqlStr = sqlStr.replace("%ROADNO%", String.valueOf(roadNo)).replace("%STANO%", String.valueOf(staNo)); @@ -599,7 +612,7 @@ public class ManualIssueServiceImpl implements ManualIssueService { String zlibName = newName.replace(Constant.STR_ZLIB, Constant.STR_ + md5 + Constant.STR_ZLIB); String oldPath = DownloadPath + File.separator + newName; String newPath = DownloadPath + File.separator + zlibName; - FileUtil.copyFile(oldPath, newPath); + FileUtil.moveFileReName(oldPath, newPath); //if (new File(oldPath).renameTo(new File(newPath))) { // //} @@ -609,25 +622,31 @@ public class ManualIssueServiceImpl implements ManualIssueService { //回调地址 backUrl = Constant.HTTP + ip + Constant.STR_COLON + tomcatPort + Constant.STR_SLASH + PathUtil.webName + Constant.WEBSERVICE_BACK; + //线程等待1秒 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } } //序列号 - int lastNum = 1; - //先查询CMS_DOWNLOG_JAVA中下发的批次号 - //判断当前是否是Oracle - List cmsDownLogs; - if (Constant.STR_TWO.equals(DBType)) { - cmsDownLogs = cmsDownLogMapper.selectListOracle(protocolType, isDate); - } else { - QueryWrapper downLogQueryWrapper = new QueryWrapper<>(); - downLogQueryWrapper.select("NUM").eq("PARAID", protocolType) - .eq("DT", isDate) - .lt("NUM", 10000); - cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper); - } - if (cmsDownLogs != null && cmsDownLogs.size() > 0) { - cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed()); - lastNum = cmsDownLogs.get(0).getNum() + 1; - } + //int lastNum = 1; + ////先查询CMS_DOWNLOG_JAVA中下发的批次号 + ////判断当前是否是Oracle + //List cmsDownLogs; + //if (Constant.STR_TWO.equals(DBType)) { + // cmsDownLogs = cmsDownLogMapper.selectListOracle(protocolType, isDate); + //} else { + // QueryWrapper downLogQueryWrapper = new QueryWrapper<>(); + // downLogQueryWrapper.select("NUM").eq("PARAID", protocolType) + // .eq("DT", isDate) + // .lt("NUM", 10000); + // cmsDownLogs = cmsDownLogMapper.selectList(downLogQueryWrapper); + //} + //if (cmsDownLogs != null && cmsDownLogs.size() > 0) { + // cmsDownLogs.sort(Comparator.comparing(CmsDownLog::getNum).reversed()); + // lastNum = cmsDownLogs.get(0).getNum() + 1; + //} //查询站的IP和程序的端口号 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ROADNO", roadNo) diff --git a/ManualSendOut/src/main/java/com/nm/gsgl/test/Test240927.java b/ManualSendOut/src/main/java/com/nm/gsgl/test/Test240927.java new file mode 100644 index 0000000..d136b86 --- /dev/null +++ b/ManualSendOut/src/main/java/com/nm/gsgl/test/Test240927.java @@ -0,0 +1,30 @@ +package com.nm.gsgl.test; + +import com.nm.gsgl.common.utils.ZLibUtils; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; + +/** + * @author: shuguang + * @date: 2024年09月27日 17:11 + * @description: + */ +public class Test240927 { + public static void main(String[] args) { + String sourceFile = "D:\\桌面\\TB_PRICEFEE_20240926110955_0_94_784325f5c5276262ca46df9d1dfa0c20.zlib"; + String outputFile = "D:\\桌面\\TB_PRICELIB.sqb"; + + try { + FileInputStream fileInputStream = new FileInputStream(sourceFile); + byte[] decompress = ZLibUtils.decompress(fileInputStream); + ZLibUtils.getFileByBytes(decompress, "D:\\桌面", "TB_PRICELIB.sqb"); + System.out.println(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + + } + +} diff --git a/ManualSendOut/src/main/resources/version/1.1.2.txt b/ManualSendOut/src/main/resources/version/1.1.3.txt similarity index 93% rename from ManualSendOut/src/main/resources/version/1.1.2.txt rename to ManualSendOut/src/main/resources/version/1.1.3.txt index 2c7e8c8..8246bac 100644 --- a/ManualSendOut/src/main/resources/version/1.1.2.txt +++ b/ManualSendOut/src/main/resources/version/1.1.3.txt @@ -16,3 +16,4 @@ 11 2024年08月22日 1.1.0 下发最小费额文件时增加文件的MD5校验,最小费额#分割改成_分割的文件名 12 2024年09月05日 1.1.1 修复下发操作人员名单时出现下发的非本站的文件 13 2024年09月20日 1.1.2 下发车道时可根据车道类型选择相应的车道功能 +14 2024年10月08日 1.1.3 下发车道人员工号时,先删除下发文件夹下的operator.DBF,然后再下发