2025年08月21日 1.0.4 删除接口,迁移到项目GetDataInterface中

main
gaoshuguang 3 months ago
parent 355c01ec78
commit 5a92b860fb

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

@ -1,46 +0,0 @@
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);
}
}

@ -1,29 +0,0 @@
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);
}
}

@ -1,24 +0,0 @@
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);
}

@ -1,65 +0,0 @@
<?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>

@ -1,30 +0,0 @@
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();
}

@ -1,195 +0,0 @@
<?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>

@ -1,52 +0,0 @@
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);
}

@ -1,20 +0,0 @@
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);
}

@ -1,260 +0,0 @@
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;
}
}
}

@ -1,106 +0,0 @@
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;
}
}

@ -7,3 +7,4 @@
查询连通关系http://ip:port/FeeUnitQuery/baseinfo/gantryinfo
根据参数下载最小费额文件http://ip:port/FeeUnitQuery/baseinfo/minPath
出口交易查询http://ip:port/FeeUnitQuery/baseinfo/QueryExStationTrans
5 2025年08月21日 1.0.4 删除接口迁移到项目GetDataInterface中
Loading…
Cancel
Save