2025年04月28日 1.0.3 新增接口

查询收费门架费率http://ip:port/FeeUnitQuery/baseinfo/gantryfee
                                     查询连通关系http://ip:port/FeeUnitQuery/baseinfo/gantryinfo
                                     根据参数下载最小费额文件http://ip:port/FeeUnitQuery/baseinfo/minPath
                                     出口交易查询http://ip:port/FeeUnitQuery/baseinfo/QueryExStationTrans
main
gaoshuguang 7 months ago
parent 36724417da
commit 355c01ec78

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="SonarLintModuleSettings">
<option name="uniqueId" value="f4ba4619-9a22-4a0f-bbde-8741c3c0b23f" />
</component>
</module>

@ -2,6 +2,11 @@
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="AlibabaVarargsParameter" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="DuplicatedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<Languages>
<language minSize="70" name="Java" />
</Languages>
</inspection_tool>
<inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
<option name="TOP_LEVEL_CLASS_OPTIONS">
<value>

@ -33,6 +33,8 @@ public class CorsConfig implements WebMvcConfigurer {
// 是否允许证书
.excludePathPatterns(
"/index**",
"/baseinfo/**",
"/getData**",
"/ETCSuccessRateQuery**",
"/ETCSuccessRateQuery",
"/assets/**",

@ -13,15 +13,20 @@ public enum MessageEnum {
/**
*
*/
MD5("10001", "MD5校验失败"),
("701", "鉴权码不存在"),
md5("702", "md5校验失败"),
POST("703", "POST参数校验失败"),
("704", "请求文件名参数校验失败"),
("705", "请求数据不存在"),
("706", "当前数据已为最新"),
("707", "最小费额文件不存在"),
/**
*
*/
("20001", "复制文件失败"),
("20002", "文件移动重命名失败"),
("20003", "拆分入库失败"),
("20004", "查询数据失败"),
("20003", "查询数据失败"),
("99999","操作失败"),
;
private String code;

@ -0,0 +1,47 @@
package com.nmggs.query.common.utils;
import com.nmggs.query.common.emnu.MessageEnum;
import com.nmggs.query.common.exception.PPException;
import org.apache.commons.lang3.ObjectUtils;
import java.util.Objects;
/**
* @author: shuguang
* @date: 20250421 9:51
* @description:
*/
public class CheckUtils {
public static void checkAddParams(String authKey, String reqAuthKey, String reqMd5, String verifyMd5) {
if (ObjectUtils.isEmpty(reqAuthKey)) {
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
}
if (!Objects.equals(verifyMd5, reqMd5)) {
throw new PPException(MessageEnum.md5.getCode(), MessageEnum.md5.getMessage());
}
if (!authKey.equals(reqAuthKey)) {
throw new PPException(MessageEnum.POST.getCode(), MessageEnum.POST.getMessage());
}
}
public static void checkParams(String authKey, String reqAuthKey, String reqMd5, String fileName) {
if (ObjectUtils.isEmpty(reqAuthKey)) {
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
}
if (ObjectUtils.isEmpty(fileName) || !fileName.contains("_REQ_15_") || !fileName.endsWith(".json")) {
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
}
String md5 = MD5Util.md5(authKey + fileName);
if (!Objects.equals(md5, reqMd5)) {
throw new PPException(MessageEnum.md5.getCode(), MessageEnum.md5.getMessage());
}
if (!authKey.equals(reqAuthKey)) {
throw new PPException(MessageEnum.POST.getCode(), MessageEnum.POST.getMessage());
}
}
}

@ -30,6 +30,16 @@ public class LogUtil {
String fileName = f.format(new Date()) + "_Info";
WriteLog(fileName, msg, disStr);
}
public static void WriteLog_InterfaceQuery(String msg, String disStr) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd-HH");
String fileName = f.format(new Date()) + "_InterfaceQuery";
WriteLog(fileName, msg, disStr);
}
public static void WriteLog_AddInterface(String msg, String disStr) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd-HH");
String fileName = f.format(new Date()) + "_AddInterface";
WriteLog(fileName, msg, disStr);
}
public static void WriteLog_Error(String msg, String disStr) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd-HH");

@ -0,0 +1,144 @@
package com.nmggs.query.common.utils;
import org.springframework.util.DigestUtils;
import java.io.File;
import java.io.FileInputStream;
import java.math.BigInteger;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* @author: shuguang
* @date: 20221016 16:46
* @description: MD5
*/
public class MD5Util {
/**
* MD5
*
* @param password
* @return java.lang.String
* @author shuguang
* @date 2022-10-16 13:30
*/
public static String md5(String password) {
if (password == null) {
return null;
}
try {
// 使用UTF-8编码将字符串转换为字节数组
byte[] bytes = password.getBytes(StandardCharsets.UTF_8);
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(bytes);
byte[] digest = md.digest();
BigInteger no = new BigInteger(1, digest);
String hashtext = no.toString(16);
while (hashtext.length() < 32) {
hashtext = "0" + hashtext;
}
return hashtext;
} catch (NoSuchAlgorithmException e) {
// 记录错误日志
System.err.println("MD5 algorithm not found: " + e.getMessage());
}
return null;
}
//public static String md5(String password) {
// //生成一个md5加密器
// try {
// MessageDigest md = MessageDigest.getInstance("MD5");
// //计算MD5 的值
// md.update(password.getBytes());
// //BigInteger 将8位的字符串 转成16位的字符串 得到的字符串形式是哈希码值
// //BigInteger(参数1,参数2) 参数1 是 1为正数 0为零 -1为负数
// return new BigInteger(1, md.digest()).toString(16);
// } catch (NoSuchAlgorithmException e) {
// //log.error(e.getMessage(), e);
// LogUtil.WriteLog_Error("报错:"+e.getMessage(), "MD5Util");
// }
// return null;
//}
/**
* MD5 0 使 MD5
*
*
* @param file
* @return java.lang.String
* @author shuguang
* @date 2022-10-16 13:30
*/
//public static String getMd5ByFile(File file) {
// String value = null;
// FileInputStream in = null;
// try {
// in = new FileInputStream(file);
// MappedByteBuffer byteBuffer = in.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());
// MessageDigest md5 = MessageDigest.getInstance("MD5");
// md5.update(byteBuffer);
// BigInteger bi = new BigInteger(1, md5.digest());
// value = bi.toString(16);
// } catch (Exception e) {
// LogUtil.WriteLog_Error("报错:"+e.getMessage(), "MD5Util");
// } finally {
// try {
// if(in != null){
// in.close();
// }
// } catch (IOException e) {
// LogUtil.WriteLog_Error("报错:"+e.getMessage(), "MD5Util");
// }
// }
// return value;
//}
public static String getMd5ByFile(File file) {
String value = null;
try (FileInputStream in = new FileInputStream(file);
FileChannel channel = in.getChannel()) {
MappedByteBuffer byteBuffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(byteBuffer);
BigInteger bi = new BigInteger(1, md5.digest());
value = bi.toString(16);
} catch (Exception e) {
LogUtil.WriteLog_Error("报错:" + e.getMessage(), "MD5Util");
}
return value;
}
/**
* MD5
*
* @param filePath
* @return java.lang.String
* @author shuguang
* @date 2022-10-16 13:30
*/
//public static String getMd5ByFilePath(String filePath) {
//
// String value = null;
// try {
// value = DigestUtils.md5DigestAsHex(new FileInputStream(filePath));
// } catch (Exception e) {
// LogUtil.WriteLog_Error("报错:"+e.getMessage(), "MD5Util");
// }
// return value;
//}
public static String getMd5ByFilePath(String filePath) {
String value = null;
try (FileInputStream fis = new FileInputStream(filePath)) {
value = DigestUtils.md5DigestAsHex(fis);
} catch (Exception e) {
LogUtil.WriteLog_Error("报错:" + e.getMessage(), "MD5Util");
}
return value;
}
public static void main(String[] args) {
String input = "蒙BF626772025-04-202025-04-278c602c65fe6f57c4b721c5078bb8a916";
String md5 = MD5Util.md5(input);
System.out.println("MD5: " + md5);
}
}

@ -69,7 +69,8 @@ public class PathUtil {
downloadWarPath = TomcatPath + "/taskWarFiles/downloadWarFile";
webPath = webPath + webName;
}
applicationPath = webappsPath + "/application.properties";
//applicationPath = webappsPath + "/application.properties";
applicationPath = webappsPath + "/application1.properties";
applicationTextPath = webappsPath + "/applicationText.properties";
WebServiceWarPath = TomcatPath + "/WebServiceWar";
tomcatUserXMLPath = TomcatPath + "/conf/tomcat-users.xml";

@ -0,0 +1,46 @@
package com.nmggs.query.controller;
import com.nmggs.query.common.utils.UuidUtil;
import com.nmggs.query.service.AddInterfaceService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* @author: shuguang
* @date: 20250427 15:43
* @description:
*/
@RestController
public class AddInterfaceController {
@Resource
private AddInterfaceService addInterfaceService;
@PostMapping("/baseinfo/QueryExStationTrans")
public String QueryExStationTrans(@RequestBody Map<String, Object> params) {
String uuid = UuidUtil.getUuid();
return addInterfaceService.QueryExStationTrans(params, uuid);
}
@PostMapping("/baseinfo/minPath")
public void minPath(@RequestBody Map<String, Object> params, HttpServletResponse response) {
String uuid = UuidUtil.getUuid();
addInterfaceService.minPath(params, uuid, response);
}
@PostMapping("/baseinfo/gantryinfo")
public String gantryinfo(@RequestBody Map<String, Object> params) {
String uuid = UuidUtil.getUuid();
return addInterfaceService.gantryinfo(params, uuid);
}
@PostMapping("/baseinfo/gantryfee")
public String gantryfee(@RequestBody Map<String, Object> params) {
String uuid = UuidUtil.getUuid();
return addInterfaceService.gantryfee(params, uuid);
}
}

@ -0,0 +1,29 @@
package com.nmggs.query.controller;
import com.nmggs.query.common.utils.UuidUtil;
import com.nmggs.query.service.GetDataService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Map;
/**
* @author: shuguang
* @date: 20250418 15:43
* @description:
*/
@RestController
public class GetDataController {
@Resource
private GetDataService getDataService;
@PostMapping("/getData")
public String getData(@RequestBody Map<String, Object> params) {
String uuid = UuidUtil.getUuid();
return getDataService.getData(params, uuid);
}
}

@ -0,0 +1,24 @@
package com.nmggs.query.mapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* @author: shuguang
* @date: 20250427 10:39
* @description:
*/
@Mapper
public interface AddInterfaceMapper {
int getNodefeeMaxIdx();
List<Map<String, Object>> selectNodefeeList();
int getNoderelationMaxIdx();
List<Map<String, Object>> selectNoderelationList();
List<Map<String, Object>> selectExStationTransList( String vehiclePlate, String dateStart, String dateEnd);
}

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--你的mapper路径-->
<mapper namespace="com.nmggs.query.mapper.AddInterfaceMapper">
<select id="getNodefeeMaxIdx" resultType="java.lang.Integer">
SELECT MAX(idx)
FROM NODEFEE_TABLE
</select>
<select id="selectNodefeeList" resultType="java.util.Map">
SELECT "IDX" AS "version",
"TOLLINTERVALID" AS "id",
"VEHTYPE" AS "vehType",
TO_CHAR("VALIDTIME", 'YYYY-MM-DD') AS "validTime"
FROM "NODEFEE_TABLE"
WHERE "IDX" = (SELECT MAX("IDX") FROM "NODEFEE_TABLE")
</select>
<select id="getNoderelationMaxIdx" resultType="java.lang.Integer">
SELECT MAX(idx)
FROM NODERELATION_TABLE
</select>
<select id="selectNoderelationList" resultType="java.util.Map">
SELECT "IDX" AS "version",
"ENROADNODEID" AS "enRoadNodeId",
"EXROADNODEID" AS "exRoadNodeId",
"MILES" AS "miles"
FROM "NODERELATION_TABLE"
WHERE "IDX" = (SELECT MAX("IDX") FROM "NODERELATION_TABLE")
</select>
<select id="selectExStationTransList" resultType="java.util.Map">
SELECT
a."enStationId",
a."enLaneId",
a."enPassTime",
n.GBSTATIONID AS "exStationId",
s.GBID AS "exLaneId" ,
a."exPassTime",
a."fee",
a."fee_pay"
FROM
(
SELECT
ENTOLLSTATIONHEX AS "enStationId",
ENTOLLLANEID AS "enLaneId",
IDT AS "enPassTime",
stano,
PORTNO,
DT AS "exPassTime",
( INCASH + PAYCASH ) AS "fee_pay",
CASH AS "fee"
FROM
out_port
WHERE
ACARNO = #{vehiclePlate}
AND DT >= TO_DATE( #{dateStart}, 'yyyy-MM-dd' )
AND DT &lt;= TO_DATE( #{dateEnd}, 'yyyy-MM-dd' )
) a
LEFT JOIN NAME_TABLE n ON n.STANO = a.STANO
LEFT JOIN SETUP_TABLE s ON s.STANO = a.STANO
AND s.PORTNO = a.PORTNO
</select>
</mapper>

@ -0,0 +1,30 @@
package com.nmggs.query.mapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* @author: shuguang
* @date: 20250418 15:48
* @description:
*/
@Mapper
public interface InterfaceQueryMapper {
List<Map<String, Object>> getBasicLinkOwnerDownloadReq15();
List<Map<String, Object>> getBasicTollRoadDownloadReq15();
List<Map<String, Object>> getBasicSectionDownloadReq15();
List<Map<String, Object>> getBasicVerticalSectionDownloadReq15();
List<Map<String, Object>> getBasicTollStationDownloadReq15();
List<Map<String, Object>> getBasicTollPlazaDownloadReq15();
List<Map<String, Object>> getBasicTollLaneDownloadReq15();
List<Map<String, Object>> getBasicTollPointDownloadReq15();
}

@ -0,0 +1,195 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--你的mapper路径-->
<mapper namespace="com.nmggs.query.mapper.InterfaceQueryMapper">
<select id="getBasicLinkOwnerDownloadReq15" resultType="java.util.Map">
SELECT "GBID" AS "id",
"COMNAME" AS "name",
"GBCONTACT" AS "contact",
"GBTEL" AS "tel",
"GBADDRESS" AS "address",
"BANK" AS "bank",
"BANKADDR" AS "bankAddr",
"BANKACCOUNT" AS "bankAccount",
"TAXPAYERCODE" AS "taxpayerCode",
"CREDITCODE" AS "creditCode"
FROM "COMPANY_TABLE"
</select>
<select id="getBasicTollRoadDownloadReq15" resultType="java.util.Map">
SELECT "GBID" AS "id",
"GBLINENAME" AS "name",
"GBLEVEL" AS "TECHLEVEL",
"GBSTARTSITE" AS "startSite",
"GBSTARTSTAKENUM" AS "startStakeNum",
"GBSTARTLAT" AS "startLat",
"GBSTARTLNG" AS "startLng",
"GBSTARTSTATIONID" AS "startStationId",
"GBENDSITE" AS "endSite",
"GBENDSTAKENUM" AS "endStakeNum",
"GBENDLAT" AS "endLat",
"GBENDLNG" AS "endLng",
"GBENDSTATIONID" AS "endStationId"
FROM "ROAD_LINE_TABLE"
</select>
<select id="getBasicSectionDownloadReq15" resultType="java.util.Map">
SELECT "GBLINEID" AS "id",
"LINENAME" AS "name",
"GBROADTYPE" AS "type",
"GBMILES" * 1000 AS "length",
"GBSTARTLAT" AS "startLat",
"GBSTARTLNG" AS "startLng",
"GBSTARTSTAKENUM" AS "startStakeNum",
"GBENDSTAKENUM" AS "endStakeNum",
"GBENDLAT" AS "endLat",
"GBENDLNG" AS "endLng",
"GBTAX" AS "tax",
"GBTAXRATE" AS "taxRate",
"GBSECTIONOWNERID" AS "sectionOwnerId",
"GBCHARGETYPE" AS "chargeType",
"GBTOLLROADS" AS "tollRoads",
"GBBUILTTIME" AS "builtTime",
"GBSTARTTIME" AS "startTime",
"GBENDTIME" AS "endTime"
FROM "LINE_TABLE"
</select>
<select id="getBasicVerticalSectionDownloadReq15" resultType="java.util.Map">
SELECT "ID" AS "id",
"NAME" AS "name",
"TYPE" AS "type",
"LENGTH" AS "length",
"STARTLAT" AS "startLat",
"STARTLNG" AS "startLng",
"STARTSTAKENUM" AS "startStakeNum",
"ENDSTAKENUM" AS "endStakeNum",
"ENDLAT" AS "endLat",
"ENDLNG" AS "endLng",
"TOLLROADS" AS "tollRoads",
"PROVINCETYPE" AS "provinceType",
"ENDTIME" AS "endTime"
FROM "FEEUNIT_TABLE"
</select>
<select id="getBasicTollStationDownloadReq15" resultType="java.util.Map">
SELECT "GBSTATIONID" AS "id",
"STANAME" AS "name",
"GBTOLLPLAZACOUNT" AS "tollPlazaCount",
"STATIONHEX" AS "stationHex",
"LINETYPE" AS "lineType",
"OPERATORS" AS "operators",
"DATAMERGEPOINT" AS "dataMergePoint",
"IMEI" AS "imei",
"IP" AS "ip",
"SNMPVERSION" AS "snmpVersion",
"SNMPPORT" AS "snmpPort",
"COMMUNITY" AS "community",
"SECURITYNAME" AS "securityName",
"SECURITYLEVEL" AS "securityLevel",
"AUTHENTICATION" AS "authentication",
"AUTHKEY" AS "authKey",
"ENCRYPTION" AS "encryption",
"SECRETKEY" AS "secretKey"
FROM "NAME_TABLE"
WHERE LENGTH("GBSTATIONID") > 2
</select>
<select id="getBasicTollPlazaDownloadReq15" resultType="java.util.Map">
SELECT "GBID" AS "id",
"GBNAME" AS "name",
"GBPLAZATYPE" AS "plazaType",
"GBLAT" AS "Lat",
"GBLNG" AS "Lng",
"GBSTAKENUM" AS "stakeNum",
"GBETCLANECOUNT" AS "ETCLaneCount",
"GBMTCLANECOUNT" AS "MTCLaneCount",
"GBMIXLANECOUNT" AS "mixLaneCount"
FROM "TOLLPLAZA_TABLE"
</select>
<select id="getBasicTollLaneDownloadReq15" resultType="java.util.Map">
SELECT "GBID" AS "id",
"GBTYPE" AS "type",
"GBTIDALTIME" AS "tidalTime",
"GBSTARTTIME" AS "startTime",
"GBENDTIME" AS "endTime",
"GBSTATUS" AS "status",
"LANEHEX" AS "laneHex",
"RSUMANUID" AS "rsuManUID",
"RSUMODEL" AS "rsuModel",
"RSUID" AS "rsuID"
FROM "SETUP_TABLE"
</select>
<select id="getBasicTollPointDownloadReq15" resultType="java.util.Map">
SELECT "ID" AS "id",
"NAME" AS "name",
"TYPE" AS "type",
"BOUNDARYTYPE" AS "boundaryType",
"TOLLINTERVALS" AS "tollIntervals",
"LAT" AS "lat",
"LNG" AS "lng",
"PILENUM" AS "pileNumber",
"STATUS" AS "status",
"STARTTIME" AS "startTime",
"ENDTIME" AS "endTime",
"GANTRYHEX" AS "etcGantryHex",
"RSUMANUID" AS "rsuManUID",
"RSUMODEL" AS "rsuModel",
"RSUID" AS "rsuID",
"VPLRUID" AS "vplrUID",
"VPLRMODEL" AS "vplrModel",
"VPLRID" AS "vplrID",
"HDVUID" AS "hdvUID",
"HDVMODEL" AS "hdvModel",
"HDVID" AS "hdvID",
"CONTROLLERUID" AS "controllerUID",
"CONTROLLERMODEL" AS "controllerModel",
"CONTROLLERID" AS "controllerID",
"CONTROLLERSYSVER" AS "controllerSysVer",
"SERVERUID" AS "serverUID",
"SERVERMODEL" AS "serverModel",
"SERVERID" AS "serverID",
"SERVERSYSVER" AS "serverSysVer",
"SERVERDBVER" AS "serverDBVer",
"VEHDETECTORUID" AS "vehDetectorUID",
"VEHDETECTORMODEL" AS "vehDetectorModel",
"VEHDETECTORID" AS "vehDetectorID",
"WEATHERDETECTORUID" AS "weatherDetectorUID",
"WEATHERDETECTORMODEL" AS "weatherDetectorModel",
"WEATHERDETECTORID" AS "weatherDetectorID",
"CLASSDETECTORUID" AS "classDetectorUID",
"CLASSDETECTORMODEL" AS "classDetectorModel",
"CLASSDETECTORID" AS "classDetectorID",
"LOADDETECTIONUID" AS "loadDetectionUID",
"LOADDETECTIONMODEL" AS "loadDetectionModel",
"LOADDETECTIONID" AS "loadDetectionID",
"TEMPCONTROLLERUID" AS "tempControllerUID",
"TEMPCONTROLLERMODEL" AS "tempControllerModel",
"TEMPCONTROLLERID" AS "tempControllerID",
"POWERCONTROLLERUID" AS "powerControllerUID",
"POWERCONTROLLERMODEL" AS "powerControllerModel",
"POWERCONTROLLERID" AS "powerControllerID",
"SAFEEQUIPUID" AS "safeEquipUID",
"SAFEEQUIPMODEL" AS "safeEquipModel",
"SAFEEQUIPID" AS "safeEquipID",
"LINETYPE" AS "lineType",
"OPERATORS" AS "operators",
"DATAMERGEPOINT" AS "dataMergePoint",
"IMEI" AS "imei",
"IP" AS "ip",
"SNMPVERSION" AS "snmpVersion",
"SNMPPORT" AS "snmpPort",
"COMMUNITY" AS "community",
"SECURITYNAME" AS "securityName",
"SECURITYLEVEL" AS "securityLevel",
"AUTHENTICATION" AS "authentication",
"AUTHKEY" AS "authKey",
"ENCRYPTION" AS "encryption",
"SECRETKEY" AS "secretKey"
FROM "GANTRY_TABLE"
</select>
</mapper>

@ -0,0 +1,52 @@
package com.nmggs.query.service;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* @author: shuguang
* @date: 20250427 9:51
* @description:
*/
public interface AddInterfaceService {
/**
*
*
* @param params
* @param uuid uuid
* @return java.lang.String
* @author shuguang
* @date 2025-04-27 9:53
*/
String gantryfee(Map<String, Object> params, String uuid);
/**
*
*
* @param params
* @param uuid uuid
* @return java.lang.String
* @author shuguang
* @date 2025-04-27 9:53
*/
String gantryinfo(Map<String, Object> params, String uuid);
/**
*
*
* @param params
* @param uuid uuid
* @param response HttpServletResponse
* @author shuguang
* @date 2025-04-27 9:53
*/
void minPath(Map<String, Object> params, String uuid, HttpServletResponse response);
/**
*
*
* @param params
* @param uuid uuid
* @return java.lang.String
* @author shuguang
* @date 2025-04-27 9:53
*/
String QueryExStationTrans(Map<String, Object> params, String uuid);
}

@ -0,0 +1,20 @@
package com.nmggs.query.service;
import java.util.Map;
/**
* @author: shuguang
* @date: 20250418 15:44
* @description:
*/
public interface GetDataService {
/**
*
* @author shuguang
* @date 2025-04-18 15:51
* @param params
* @param uuid uuid
* @return java.lang.String
*/
String getData(Map<String, Object> params, String uuid);
}

@ -0,0 +1,260 @@
package com.nmggs.query.service.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.nmggs.query.common.emnu.MessageEnum;
import com.nmggs.query.common.exception.PPException;
import com.nmggs.query.common.utils.CheckUtils;
import com.nmggs.query.common.utils.FileUtil;
import com.nmggs.query.common.utils.LogUtil;
import com.nmggs.query.common.utils.MD5Util;
import com.nmggs.query.common.utils.PropertiesUtil;
import com.nmggs.query.mapper.AddInterfaceMapper;
import com.nmggs.query.service.AddInterfaceService;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
* @author: shuguang
* @date: 20250427 9:51
* @description:
*/
@Service
public class AddInterfaceServiceImpl implements AddInterfaceService {
@Resource
private AddInterfaceMapper addInterfaceMapper;
/**
*
*
* @param params
* @param uuid uuid
* @return java.lang.String
* @author shuguang
* @date 2025-04-27 9:53
*/
@Override
public String gantryfee(Map<String, Object> params, String uuid) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-开始通过接口获取收费门架费率,参数为" + params, "AddInterfaceServiceImpl-gantryfee");
//鉴权码
String authKey = PropertiesUtil.getValue("authKey");
int version = (Integer) params.get("version");
String reqAuthKey = (String) params.get("authKey");
String reqMd5 = (String) params.get("md5");
String verifyMd5 = MD5Util.md5(version + authKey);
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-鉴权码为:" + authKey + ",请求鉴权码为:" + reqAuthKey + ",请求md5为" + reqMd5 + ",验证md5为" + verifyMd5, "AddInterfaceServiceImpl-QueryExStationTrans");
CheckUtils.checkAddParams(authKey, reqAuthKey, reqMd5, verifyMd5);
int maxIdx = addInterfaceMapper.getNodefeeMaxIdx();
List<Map<String, Object>> list;
String result = "";
if (version >= maxIdx) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-当前查询的版本号" + version + "收费门架费率数据已是最新数据,查询不返回数据", "AddInterfaceServiceImpl-gantryfee");
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} else {
list = addInterfaceMapper.selectNodefeeList();
}
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-获取查询数据,条数为" + list.size(), "AddInterfaceServiceImpl-gantryfee");
result = conversionJson(list, uuid);
return result;
}
/**
*
*
* @param params
* @param uuid uuid
* @return java.lang.String
* @author shuguang
* @date 2025-04-27 9:53
*/
@Override
public String gantryinfo(Map<String, Object> params, String uuid) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-开始通过接口获取连通关系数据,参数为" + params, "AddInterfaceServiceImpl-gantryinfo");
//鉴权码
String authKey = PropertiesUtil.getValue("authKey");
int version = (Integer) params.get("version");
String reqAuthKey = (String) params.get("authKey");
String reqMd5 = (String) params.get("md5");
String verifyMd5 = MD5Util.md5(version + authKey);
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-鉴权码为:" + authKey + ",请求鉴权码为:" + reqAuthKey + ",请求md5为" + reqMd5 + ",验证md5为" + verifyMd5, "AddInterfaceServiceImpl-QueryExStationTrans");
CheckUtils.checkAddParams(authKey, reqAuthKey, reqMd5, verifyMd5);
int maxIdx = addInterfaceMapper.getNoderelationMaxIdx();
List<Map<String, Object>> list;
String result = "";
if (version >= maxIdx) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-当前查询的版本号" + version + "收费门架费率数据已是最新数据,查询不返回数据", "AddInterfaceServiceImpl-gantryinfo");
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} else {
list = addInterfaceMapper.selectNoderelationList();
}
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-获取查询数据,条数为" + list.size(), "AddInterfaceServiceImpl-gantryinfo");
result = conversionJson(list, uuid);
return result;
}
/**
*
*
* @param params
* @param uuid uuid
* @param response HttpServletResponse
* @author shuguang
* @date 2025-04-27 9:53
*/
@Override
@ResponseBody
public void minPath(Map<String, Object> params, String uuid, HttpServletResponse response) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-开始通过接口根据参数下载最小费额文件,参数为" + params, "AddInterfaceServiceImpl-minPath");
String version = (String) params.get("version");
int subcomno = (Integer) params.get("subcomno");
int stano = (Integer) params.get("stano");
//鉴权码
String authKey = PropertiesUtil.getValue("authKey");
String reqAuthKey = (String) params.get("authKey");
String reqMd5 = (String) params.get("md5");
String verifyMd5 = MD5Util.md5(version+subcomno+stano + authKey);
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-鉴权码为:" + authKey + ",请求鉴权码为:" + reqAuthKey + ",请求md5为" + reqMd5 + ",验证md5为" + verifyMd5, "AddInterfaceServiceImpl-QueryExStationTrans");
CheckUtils.checkAddParams(authKey, reqAuthKey, reqMd5, verifyMd5);
String minFeeFilePath = PropertiesUtil.getValue("minFeeFilePath");
List<Long> longs = FileUtil.folderNames(minFeeFilePath);
if (longs.size() > 0) {
long latestVersion = Collections.max(longs);
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-当前请求下载的版本号" + version + "最小费额文件最新版本号为:" + latestVersion, "AddInterfaceServiceImpl-minPath");
if (Long.parseLong(version) >= latestVersion) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-当前查询的版本号" + version + "最小费额文件已是最新数据,查询不返回数据", "AddInterfaceServiceImpl-minPath");
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
}
minFeeFilePath = minFeeFilePath + File.separator + latestVersion + File.separator + subcomno;
// 构造正则表达式
String regex = ".*ALLROADMINFEE_"+latestVersion+"_" +stano+"_.*\\.ZLIB$";
// 检查文件是否存在
String filePath = checkFileExistsAndGetPath(minFeeFilePath, regex);
if (filePath == null) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-当前查询的版本号" + version + "最小费额文件不存在,查询不返回数据", "AddInterfaceServiceImpl-minPath");
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
} else {
// 将文件以下载形式返回
File file = new File(filePath);
response.setContentType("application/octet-stream");
response.setContentLengthLong(file.length());
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=\"" + file.getName() + "\"");
try (FileInputStream fileInputStream = new FileInputStream(file);
OutputStream outputStream = response.getOutputStream()) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.flush();
} catch (IOException e) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-文件流操作失败:" + e.getMessage(), "AddInterfaceServiceImpl-minPath");
}
}
} else {
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
}
}
/**
*
*
* @param params
* @param uuid uuid
* @return java.lang.String
* @author shuguang
* @date 2025-04-27 9:53
*/
@Override
public String QueryExStationTrans(Map<String, Object> params, String uuid) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-开始通过接口获取出口交易数据,参数为" + params, "AddInterfaceServiceImpl-QueryExStationTrans");
String vehiclePlate = (String) params.get("VehiclePlate");
String dateStart = (String) params.get("dateStart");
String dateEnd = (String) params.get("dateEnd");
//鉴权码
String authKey = PropertiesUtil.getValue("authKey");
String reqAuthKey = (String) params.get("authKey");
String reqMd5 = (String) params.get("md5");
String verifyMd5 = MD5Util.md5(vehiclePlate+dateStart+dateEnd + authKey);
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-鉴权码为:" + authKey + ",请求鉴权码为:" + reqAuthKey + ",请求md5为" + reqMd5 + ",验证md5为" + verifyMd5, "AddInterfaceServiceImpl-QueryExStationTrans");
CheckUtils.checkAddParams(authKey, reqAuthKey, reqMd5, verifyMd5);
List<Map<String, Object>> list = addInterfaceMapper.selectExStationTransList(vehiclePlate, dateStart, dateEnd);
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-获取查询数据,条数为" + list.size(), "AddInterfaceServiceImpl-QueryExStationTrans");
Map<String, Object> map = new java.util.HashMap<>();
map.put("dataCount", list.size());
map.put("dataList", list);
return conversionMapToJson(map, uuid);
}
private String conversionJson(List<Map<String, Object>> list, String uuid) {
String result = "";
// 使用ObjectMapper将List<Map<String, Object>>转换为JSON字符串
ObjectMapper objectMapper = new ObjectMapper();
try {
result = objectMapper.writeValueAsString(list);
} catch (JsonProcessingException e) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-转换json数据报错" + e.getMessage(), "AddInterfaceServiceImpl-conversionJson");
}
return result;
}
private String conversionMapToJson(Map<String, Object> map, String uuid) {
String result = "";
ObjectMapper objectMapper = new ObjectMapper();
try {
result = objectMapper.writeValueAsString(map);
} catch (JsonProcessingException e) {
LogUtil.WriteLog_AddInterface("[uuid:" + uuid + "]-转换json数据报错" + e.getMessage(), "AddInterfaceServiceImpl-conversionMapToJson");
}
return result;
}
private String checkFileExistsAndGetPath(String directoryPath, String regex) {
try {
// 获取目录路径
Path path = Paths.get(directoryPath);
// 遍历目录中的文件
return Files.list(path)
// 确保是文件
.filter(Files::isRegularFile)
// 获取文件名
.map(Path::getFileName)
// 转换为字符串
.map(Path::toString)
// 匹配正则表达式
.filter(fileName -> fileName.matches(regex))
// 获取文件路径
.findFirst()
.map(fileName -> directoryPath + File.separator + fileName)
.orElse(null);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}

@ -0,0 +1,106 @@
package com.nmggs.query.service.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.nmggs.query.common.emnu.MessageEnum;
import com.nmggs.query.common.exception.PPException;
import com.nmggs.query.common.utils.CheckUtils;
import com.nmggs.query.common.utils.LogUtil;
import com.nmggs.query.common.utils.PropertiesUtil;
import com.nmggs.query.mapper.InterfaceQueryMapper;
import com.nmggs.query.service.GetDataService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @author: shuguang
* @date: 20250418 15:45
* @description:
*/
@Service
public class GetDataServiceImpl implements GetDataService {
@Resource
private InterfaceQueryMapper interfaceQueryMapper;
/**
*
*
* @param params
* @param uuid uuid
* @return java.lang.String
* @author shuguang
* @date 2025-04-18 15:51
*/
@Override
public String getData(Map<String, Object> params, String uuid) {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-开始通过接口获取基础信息,参数为"+params, "GetDataServiceImpl-getData");
//鉴权码
String authKey = PropertiesUtil.getValue("authKey");
String fileName = (String) params.get("fileName");
String reqAuthKey = (String) params.get("authKey");
String reqMd5 = (String) params.get("md5");
CheckUtils.checkParams(authKey, reqAuthKey, reqMd5, fileName);
List<Map<String, Object>> list;
String result = null;
//收费公路业主信息
if (fileName.contains("BASIC_LINKOWNERDOWNLOAD_REQ_15_")) {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-当前获取的是收费公路业主信息", "GetDataServiceImpl-getData");
list = interfaceQueryMapper.getBasicLinkOwnerDownloadReq15();
//收费公路信息
} else if (fileName.contains("BASIC_TOLLROADDOWNLOAD_REdisplayedSideImageQ_15")) {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-当前获取的是收费公路信息", "GetDataServiceImpl-getData");
list = interfaceQueryMapper.getBasicTollRoadDownloadReq15();
//收费路段信息
} else if (fileName.contains("BASIC_SECTIONDOWNLOAD_REQ_15_")) {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-当前获取的是收费路段信息", "GetDataServiceImpl-getData");
list = interfaceQueryMapper.getBasicSectionDownloadReq15();
//收费单元信息
} else if (fileName.contains("BASIC_VERTICALSECTIONDOWNLOAD_REQ_15_")) {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-当前获取的是收费单元信息", "GetDataServiceImpl-getData");
list = interfaceQueryMapper.getBasicVerticalSectionDownloadReq15();
//收费站信息
} else if (fileName.contains("BASIC_TOLLSTATIONDOWNLOAD_REQ_15_")) {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-当前获取的是收费站信息", "GetDataServiceImpl-getData");
list = interfaceQueryMapper.getBasicTollStationDownloadReq15();
//收费广场信息
} else if (fileName.contains("BASIC_TOLLPLAZADOWNLOAD_REQ_15_")) {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-当前获取的是收费广场信息", "GetDataServiceImpl-getData");
list = interfaceQueryMapper.getBasicTollPlazaDownloadReq15();
//收费车道信息
} else if (fileName.contains("BASIC_TOLLLANEDOWNLOAD_REQ_15_")) {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-当前获取的是收费车道信息", "GetDataServiceImpl-getData");
list = interfaceQueryMapper.getBasicTollLaneDownloadReq15();
//收费门架信息
} else if (fileName.contains("BASIC_TOLLPOINTDOWNLOAD_REQ_15_")) {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-当前获取的是收费门架信息", "GetDataServiceImpl-getData");
list = interfaceQueryMapper.getBasicTollPointDownloadReq15();
}else {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-请求文件名参数校验失败", "GetDataServiceImpl-getData");
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
}
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-获取查询数据,条数为"+list.size(), "GetDataServiceImpl-getData");
if (list.size() == 0) {
LogUtil.WriteLog_InterfaceQuery("[uuid:" + uuid + "]-请求数据不存在", "GetDataServiceImpl-getData");
throw new PPException(MessageEnum..getCode(), MessageEnum..getMessage());
}
// 使用ObjectMapper将List<Map<String, Object>>转换为JSON字符串
ObjectMapper objectMapper = new ObjectMapper();
try {
result = objectMapper.writeValueAsString(list);
} catch (JsonProcessingException e) {
LogUtil.WriteLog_Error("[uuid:" + uuid + "]-转换json数据报错"+e.getMessage(), "GetDataServiceImpl-getData");
}
return result;
}
}

@ -1,3 +0,0 @@
序号 日期 版本号 说明
1 2024年08月15日 1.0.0 查询FEEUNIT_TABLE初始版本号
2 2024年11月11日 1.0.1 将前端路由页面去掉都由主框架路径跳转同时兼容GoldenDB数据库

@ -0,0 +1,9 @@
序号 日期 版本号 说明
1 2024年08月15日 1.0.0 查询FEEUNIT_TABLE初始版本号
2 2024年11月11日 1.0.1 将前端路由页面去掉都由主框架路径跳转同时兼容GoldenDB数据库
3 2025年04月21日 1.0.2 增加基础信息下载接口查询接口(http://ip:port/FeeUnitQuery/getData)
4 2025年04月28日 1.0.3 新增接口
查询收费门架费率http://ip:port/FeeUnitQuery/baseinfo/gantryfee
查询连通关系http://ip:port/FeeUnitQuery/baseinfo/gantryinfo
根据参数下载最小费额文件http://ip:port/FeeUnitQuery/baseinfo/minPath
出口交易查询http://ip:port/FeeUnitQuery/baseinfo/QueryExStationTrans

@ -1,3 +0,0 @@
序号 日期 版本号 说明
1 2024年08月15日 1.0.0 查询FEEUNIT_TABLE初始版本号
2 2024年11月11日 1.0.1 将前端路由页面去掉都由主框架路径跳转同时兼容GoldenDB数据库

@ -1,3 +0,0 @@
序号 日期 版本号 说明
1 2024年08月15日 1.0.0 查询FEEUNIT_TABLE初始版本号
2 2024年11月11日 1.0.1 将前端路由页面去掉都由主框架路径跳转同时兼容GoldenDB数据库

@ -1,30 +1,40 @@
com\nmggs\query\common\utils\ClobUtils.class
com\nmggs\query\common\config\ErrorConfig.class
com\nmggs\query\mapper\AddInterfaceMapper.class
com\nmggs\query\service\impl\QueryTableServiceImpl.class
com\nmggs\query\controller\GetDataController.class
com\nmggs\query\common\exception\Result.class
com\nmggs\query\controller\QueryTableController.class
com\nmggs\query\service\AddInterfaceService.class
com\nmggs\query\common\config\MyEnvironmentPostProcessor.class
com\nmggs\query\common\emnu\MessageEnum.class
com\nmggs\query\common\utils\DateTimeUtil.class
com\nmggs\query\service\QueryTableService.class
com\nmggs\query\common\utils\PagesUtils.class
com\nmggs\query\common\exception\PPException.class
com\nmggs\query\common\utils\LogUtil.class
com\nmggs\query\common\config\CaptchaConfig.class
com\nmggs\query\test\Test01.class
com\nmggs\query\service\impl\AddInterfaceServiceImpl.class
com\nmggs\query\common\emnu\Constant.class
com\nmggs\query\entity\Res.class
com\nmggs\query\test\ListTest.class
com\nmggs\query\common\utils\TokenUtil.class
com\nmggs\query\common\config\MybatisConfig.class
com\nmggs\query\common\exception\PPExceptionHandler.class
com\nmggs\query\mapper\SysMapper.class
com\nmggs\query\common\config\RedisSessionConfig.class
com\nmggs\query\common\utils\UuidUtil.class
com\nmggs\query\common\utils\PropertiesUtil.class
com\nmggs\query\common\utils\PathUtil.class
com\nmggs\query\service\impl\GetDataServiceImpl.class
com\nmggs\query\common\utils\ClobUtils.class
com\nmggs\query\common\config\ErrorConfig.class
com\nmggs\query\common\utils\CheckUtils.class
com\nmggs\query\service\GetDataService.class
com\nmggs\query\controller\QueryTableController.class
com\nmggs\query\common\utils\PagesUtils.class
com\nmggs\query\common\utils\LogUtil.class
com\nmggs\query\common\config\CaptchaConfig.class
com\nmggs\query\test\Test01.class
com\nmggs\query\entity\Res.class
com\nmggs\query\test\ListTest.class
com\nmggs\query\common\config\RedisSessionConfig.class
com\nmggs\query\common\config\CorsConfig.class
com\nmggs\query\common\config\FilterConfig.class
com\nmggs\query\controller\AddInterfaceController.class
com\nmggs\query\common\utils\FileUtil.class
com\nmggs\query\common\utils\ObjectUtils.class
com\nmggs\query\FeeUnitQueryApplication.class
com\nmggs\query\common\utils\PropertiesUtil.class
com\nmggs\query\common\utils\PathUtil.class
com\nmggs\query\common\utils\MD5Util.class
com\nmggs\query\mapper\InterfaceQueryMapper.class

@ -1,9 +1,13 @@
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\ClobUtils.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\TokenUtil.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\mapper\SysMapper.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\service\impl\AddInterfaceServiceImpl.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\emnu\Constant.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\PathUtil.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\CheckUtils.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\PagesUtils.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\service\AddInterfaceService.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\controller\GetDataController.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\config\CaptchaConfig.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\FileUtil.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\exception\Result.java
@ -14,11 +18,16 @@ D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\entity\
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\config\FilterConfig.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\controller\QueryTableController.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\config\MyEnvironmentPostProcessor.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\service\GetDataService.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\config\ErrorConfig.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\MD5Util.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\config\MybatisConfig.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\LogUtil.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\test\ListTest.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\mapper\AddInterfaceMapper.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\mapper\InterfaceQueryMapper.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\DateTimeUtil.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\service\impl\GetDataServiceImpl.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\UuidUtil.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\ObjectUtils.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\config\RedisSessionConfig.java
@ -27,4 +36,5 @@ D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\test\Test01.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\common\utils\PropertiesUtil.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\service\impl\QueryTableServiceImpl.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\controller\AddInterfaceController.java
D:\myproject\git\FeeUnitQuery\FeeUnitQuery\src\main\java\com\nmggs\query\FeeUnitQueryApplication.java

Loading…
Cancel
Save