From a21472dd370eaaf94ea16057a93b66ba92d13538 Mon Sep 17 00:00:00 2001 From: gaoshuguang Date: Thu, 12 Sep 2024 10:02:33 +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 --- .../java/com/nm/gsgl/common/Constant.java | 1 + .../com/nm/gsgl/common/utils/FileUtil.java | 62 ++++--------------- .../service/impl/DbSwitchServiceImpl.java | 4 +- .../com/nm/gsgl/entity/CmsDataSynchro.java | 4 +- .../service/impl/ManualIssueServiceImpl.java | 56 +++++++++++++---- .../main/java/com/nm/gsgl/test/Test01.java | 20 +++--- .../version/{1.0.8.txt => 1.1.1.txt} | 3 + 7 files changed, 72 insertions(+), 78 deletions(-) rename ManualSendOut/src/main/resources/version/{1.0.8.txt => 1.1.1.txt} (78%) diff --git a/ManualSendOut/src/main/java/com/nm/gsgl/common/Constant.java b/ManualSendOut/src/main/java/com/nm/gsgl/common/Constant.java index abb401a..c7bb0a5 100644 --- a/ManualSendOut/src/main/java/com/nm/gsgl/common/Constant.java +++ b/ManualSendOut/src/main/java/com/nm/gsgl/common/Constant.java @@ -19,6 +19,7 @@ public class Constant { public static final String STR_ZERO = "0"; public static final Integer ZERO = 0; public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + public static final String MMDDHHMMSSSSS = "MMddHHmmssSss"; public static final String YYYYMMDD = "yyyyMMdd"; public static final String YYMMDD = "yyMMdd"; public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; 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 b3d25e3..5b5ab79 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 @@ -208,9 +208,12 @@ public class FileUtil { if (null != array && array.length > 0) { for (File value : array) { //如果是文件 - if (value.isFile() && value.getName().contains(str)) { - fileName = value.getName(); - break; + if (value.isFile() && value.getName().contains(str) && value.getName().toLowerCase().endsWith(".zlib")) { + if(value.getName().contains(MD5Util.getMd5ByFile(value))){ + fileName = value.getName(); + break; + } + } } } @@ -334,56 +337,12 @@ public class FileUtil { public static void main(String[] args) throws IOException { - String s = zlibFileName("D:\\software\\apache-tomcat-9.0.68\\uploadfiles\\ParamDownload\\dbf\\WriteDbf\\CardBlack", - "TB_CARDBLACKALL_20230223021109_230205103"); + String s = zlibFileName("D:\\桌面", + "ALLROADMINFEE_20240823001_604"); System.out.println(s); - //List stringList = folderNames("D:\\桌面\\123test"); - //System.out.println(stringList); - //stringList.sort(Comparator.naturalOrder()); - //System.out.println(Collections.max(stringList)); - //System.out.println((stringList).get(stringList.size() - 2)); - - //fileCopyReName("D:\\桌面\\DbfTest\\testdbf.txt", "D:\\桌面\\DbfTest\\testdbf222.txt"); - - - // - //String s = "D:\\桌面\\zlibTest\\新建文件夹"; - //List fileInfos = new ArrayList<>(); - //obtainFileInfo(s, fileInfos); - //System.out.println(fileInfos); - //deleteOverdueFile(fileInfos,10); - - - //File file = new File("E:\\ftp文件"); - //File[] files = file.listFiles(); - //int days = 1; - //for (File file1 : files) { - // if (!file1.isDirectory()) { - // String file1Name = file1.getName(); - // // 根据文件的绝对路径获取Path - // Path path = Paths.get(file1.getAbsolutePath()); - // // 根据path获取文件的基本属性类 - // BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class); - // // 从基本属性类中获取文件创建时间 - // FileTime fileTime = attrs.creationTime(); - // // 将文件创建时间转成毫秒 - // long millis = fileTime.toMillis(); - // //获取当前时间毫秒值 - // Date date = new Date(); - // long nowMillis = date.getTime(); - // long l = (nowMillis - millis) / (1000L * 60 * 60 * 24); - // System.out.println(l); - // if (l > days&&file1Name.contains(".doc")) { - // System.out.println("超期"); - // file1.delete(); - // } else { - // System.out.println("没有超期或不是.doc文件"); - // - // } - // } - // - //} + + } @@ -918,4 +877,5 @@ public class FileUtil { } + } diff --git a/ManualSendOut/src/main/java/com/nm/gsgl/dbswich/service/impl/DbSwitchServiceImpl.java b/ManualSendOut/src/main/java/com/nm/gsgl/dbswich/service/impl/DbSwitchServiceImpl.java index 08bdcae..5bc968c 100644 --- a/ManualSendOut/src/main/java/com/nm/gsgl/dbswich/service/impl/DbSwitchServiceImpl.java +++ b/ManualSendOut/src/main/java/com/nm/gsgl/dbswich/service/impl/DbSwitchServiceImpl.java @@ -133,9 +133,9 @@ public class DbSwitchServiceImpl implements DbSwitchService { log.info("[uuid:{}]-开始执行CMS_USERPRMIS_TABLE表SQL", uuid); String impSql=""; if(Constant.STR_ONE.equals(targetDbType)){ - impSql= "update CMS_USERPRMIS_TABLE set MENUTYPE=(select convert(varchar,(PRMISFLAG+1))+'-' from CMS_PRMIS_TABLE where PRMISID=CMS_USERPRMIS_TABLE.PRMISID),ORGTYPE=1"; + impSql= "update CMS_USERPRMIS_TABLE set MENUTYPE=(select convert(varchar,(ISNULL(PRMISFLAG, 1)+1))+'-' from CMS_PRMIS_TABLE where PRMISID=CMS_USERPRMIS_TABLE.PRMISID),ORGTYPE=1 where MENUTYPE is null or MENUTYPE=''"; }else { - impSql="UPDATE CMS_USERPRMIS_TABLE SET MENUTYPE = ( SELECT CONCAT( PRMISFLAG + 1, '-') FROM CMS_PRMIS_TABLE WHERE PRMISID = CMS_USERPRMIS_TABLE.PRMISID ),ORGTYPE = 1"; + impSql="UPDATE CMS_USERPRMIS_TABLE SET MENUTYPE = ( SELECT CONCAT( ifnull(PRMISFLAG,1) + 1, '-') FROM CMS_PRMIS_TABLE WHERE PRMISID = CMS_USERPRMIS_TABLE.PRMISID ),ORGTYPE = 1 where MENUTYPE is null or MENUTYPE=''"; } DatabaseUtil.updateSql(targetDriver,targetUrl, logName, logPw, impSql); String publicSql = "UPDATE CMS_USERPRMIS_TABLE SET MENUTYPE = '2-' WHERE MENUTYPE IS NULL"; diff --git a/ManualSendOut/src/main/java/com/nm/gsgl/entity/CmsDataSynchro.java b/ManualSendOut/src/main/java/com/nm/gsgl/entity/CmsDataSynchro.java index 22bebd8..e76f342 100644 --- a/ManualSendOut/src/main/java/com/nm/gsgl/entity/CmsDataSynchro.java +++ b/ManualSendOut/src/main/java/com/nm/gsgl/entity/CmsDataSynchro.java @@ -38,8 +38,8 @@ public class CmsDataSynchro { private String selcells; @TableField("NEXTDT") private Date nextDt; - @TableField("INTERVAL") - private Integer interval; + //@TableField("INTERVAL") + //private Integer interval; @TableField("DOWNTYPE") private Integer downType; @TableField("TRIGGERFLAG") 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 f6e6fa2..b65b556 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 @@ -17,6 +17,7 @@ import com.nm.gsgl.common.utils.HttpSendUtil; import com.nm.gsgl.common.utils.MD5Util; import com.nm.gsgl.common.utils.NetUtils; import com.nm.gsgl.common.utils.PathUtil; +import com.nm.gsgl.common.utils.PropertiesUtil; import com.nm.gsgl.common.utils.UuidUtil; import com.nm.gsgl.common.utils.ZLibUtils; import com.nm.gsgl.entity.CmsDataSynchro; @@ -314,12 +315,21 @@ public class ManualIssueServiceImpl implements ManualIssueService { log.info("[uuid:{}]-开始手动下发最小费额文件", uuid); CmsParameter cmsParameter = cmsParameterMapper.selectById(Constant.INT_59); Integer paraId = cmsParameter.getParaId(); - //文件类型 - String paraName = cmsParameter.getParaName(); + //查询当前最新版本号 String verNo = cmsParameter.getQgCsVerNo(); + String isDocker = PropertiesUtil.getValue("isDocker"); + //分中心WEB地址 + String ip; + if (Constant.STR_ONE.equals(isDocker)) { + ip = PropertiesUtil.getValue("server.ip"); + } else { + ip = PathUtil.hostAddress; + } if (list != null && list.size() > 0) { for (SetUpTable setUpTable : list) { + //文件类型 + String paraName = cmsParameter.getParaName(); if (StringUtils.isNotBlank(setUpTable.getPORTIP())) { //路段号 Integer roadNo = setUpTable.getROADNO(); @@ -337,8 +347,8 @@ public class ManualIssueServiceImpl implements ManualIssueService { if (FileUtil.fileExists(DownloadPath + File.separator + fileName)) { //是否压缩 int isZlib = 1; - //分中心WEB地址 - String ip = PathUtil.hostAddress; + ////分中心WEB地址 + //String ip = PathUtil.hostAddress; //String ip = "8.142.95.188"; log.info("[uuid:{}]-下发程序ip:{},端口号:{}", uuid, ip, tomcatPort); //ALLROADMINFEE#站编码.SQB,0.28,0.29需要,普通的车道应该还是不带站编码 @@ -348,7 +358,7 @@ public class ManualIssueServiceImpl implements ManualIssueService { if (paraName.contains("#")) { paraName = paraName.split("#")[0] + "#" + roadNo + "#" + staNo + Constant.STR_SQB; } else { - paraName = paraName.replace(Constant.STR_SQB, "#" + roadNo + "#" + staNo + Constant.STR_SQB); + paraName = paraName.replace(Constant.STR_SQB, "_" + roadNo + "_" + staNo + Constant.STR_SQB); } //下载文件地址 @@ -431,6 +441,14 @@ public class ManualIssueServiceImpl implements ManualIssueService { } else { + String isDocker = PropertiesUtil.getValue("isDocker"); + //分中心WEB地址 + String ip; + if (Constant.STR_ONE.equals(isDocker)) { + ip = PropertiesUtil.getValue("server.ip"); + } else { + ip = PathUtil.hostAddress; + } if (list != null && list.size() > 0) { for (SetUpTable setUpTable : list) { if (StringUtils.isNotBlank(setUpTable.getPORTIP())) { @@ -444,8 +462,8 @@ public class ManualIssueServiceImpl implements ManualIssueService { if (FileUtil.fileExists(DownloadPath + File.separator + fileName)) { //是否压缩 int isZlib = 1; - //分中心WEB地址 - String ip = PathUtil.hostAddress; + ////分中心WEB地址 + //String ip = PathUtil.hostAddress; //String ip = "8.142.95.188"; //String ip = "192.168.10.219"; log.info("[uuid:{}]-下发程序ip:{},端口号:{}", uuid, ip, tomcatPort); @@ -509,8 +527,14 @@ public class ManualIssueServiceImpl implements ManualIssueService { //是否压缩 int isZlib = 1; Date now = new Date(); + String isDocker = PropertiesUtil.getValue("isDocker"); //分中心WEB地址 - String ip = PathUtil.hostAddress; + String ip; + if (Constant.STR_ONE.equals(isDocker)) { + ip = PropertiesUtil.getValue("server.ip"); + } else { + ip = PathUtil.hostAddress; + } //String ip = "8.142.95.188"; //版本号 String version = DateTimeUtil.getFormateString(now, Constant.YYYYMMDDHHMMSS); @@ -529,6 +553,8 @@ public class ManualIssueServiceImpl implements ManualIssueService { sqlStr = cmsParameter.getSqlStr(); } else if (Constant.STR_TWO.equals(DBType)) { sqlStr = cmsParameter.getOraStr(); + } else if (Constant.STR_FOUR.equals(DBType)) { + sqlStr = cmsParameter.getOraStr(); } String newName = fileName.replace(Constant.STR_DBF, Constant.STR_) + version + Constant.STR_ZLIB; if (StringUtils.isNotBlank(sqlStr) && paraId != 2) { @@ -560,6 +586,10 @@ public class ManualIssueServiceImpl implements ManualIssueService { Integer staNo = setUpTable.getSTANO(); //paraId=2需要路段号和站编号(下发时根据路段号和站编号做替换) if (paraId == 2) { + Date now2 = new Date(); + version = DateTimeUtil.getFormateString(now2, Constant.MMDDHHMMSSSSS); + 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)); List> mapList = sysMapper.selectList(sqlStr); CreateDbfUtil.createDbfFile(uuid, paraId, fileName, mapList, DownloadPath); @@ -633,15 +663,15 @@ public class ManualIssueServiceImpl implements ManualIssueService { }); Optional serverInfoOptional = serverInfos.stream().filter(item -> item.getNAME().equals(PathUtil.webName)).findFirst(); //获取分中心/收费站程序的IP - String fzxOrSfzIp=""; + String fzxOrSfzIp = ip; //获取分中心/收费站应用程序端口 - String fzxOrSfzPort="0"; + String fzxOrSfzPort = tomcatPort; if (serverInfoOptional.isPresent()) { fzxOrSfzIp = serverInfoOptional.get().getIP(); fzxOrSfzPort = serverInfoOptional.get().getPORT(); - //} else { - // log.error("[uuid:{}]-在NAME_TABLE_DCOM表字段SERVERINFO中未找到程序{}的IP和端口号", uuid, PathUtil.webName); - // throw new PPException(MessageEnum.获取NAME_TABLE_DCOM程序IP端口号失败.getCode(), MessageEnum.获取NAME_TABLE_DCOM程序IP端口号失败.getMessage()); + //} else { + // log.error("[uuid:{}]-在NAME_TABLE_DCOM表字段SERVERINFO中未找到程序{}的IP和端口号", uuid, PathUtil.webName); + // throw new PPException(MessageEnum.获取NAME_TABLE_DCOM程序IP端口号失败.getCode(), MessageEnum.获取NAME_TABLE_DCOM程序IP端口号失败.getMessage()); } // 分中心/收费站文件地址 String staUrl = Constant.HTTP + fzxOrSfzIp + Constant.STR_COLON + fzxOrSfzPort + Constant.STR_SLASH + PathUtil.webName diff --git a/ManualSendOut/src/main/java/com/nm/gsgl/test/Test01.java b/ManualSendOut/src/main/java/com/nm/gsgl/test/Test01.java index 8e08908..66c56f0 100644 --- a/ManualSendOut/src/main/java/com/nm/gsgl/test/Test01.java +++ b/ManualSendOut/src/main/java/com/nm/gsgl/test/Test01.java @@ -1,5 +1,10 @@ package com.nm.gsgl.test; +import com.nm.gsgl.common.Constant; +import com.nm.gsgl.common.utils.DateTimeUtil; + +import java.util.Date; + /** * @author: shuguang * @date: 2023年04月21日 16:53 @@ -8,16 +13,11 @@ package com.nm.gsgl.test; public class Test01 { public static void main(String[] args) { - String s = "user_table"; - switch (s.toUpperCase()) { - case "user_table": - System.out.println(s); - break; - case "USER_TABLE": - System.out.println("============"); - System.out.println(s); - break; + Date now = new Date(); + String version ="4028"+ DateTimeUtil.getFormateString(now, Constant.MMDDHHMMSSSSS); + System.out.println(version); + System.out.println(version.length()); + - } } } diff --git a/ManualSendOut/src/main/resources/version/1.0.8.txt b/ManualSendOut/src/main/resources/version/1.1.1.txt similarity index 78% rename from ManualSendOut/src/main/resources/version/1.0.8.txt rename to ManualSendOut/src/main/resources/version/1.1.1.txt index 909b911..178056c 100644 --- a/ManualSendOut/src/main/resources/version/1.0.8.txt +++ b/ManualSendOut/src/main/resources/version/1.1.1.txt @@ -12,3 +12,6 @@ 7 2024年06月14日 1.0.6 优化黑名单版本号查询 8 2024年06月19日 1.0.7 优化武俊涛下发的生成的ROADCODE.SQB语句 9 2024年08月02日 1.0.8 token时长读取配置文件tokenOutTime +10 2024年08月08日 1.0.9 将手动下发参数生成的语句兼容MySQL,使用CMS_PARAMETER_JAVA原来的ORASTR的字段改成MySQL的查询语句 +11 2024年08月22日 1.1.0 下发最小费额文件时增加文件的MD5校验 +12 2024年09月05日 1.1.1 修复下发操作人员名单时出现下发的非本站的文件