mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-13 03:39:55 +08:00
update
This commit is contained in:
@@ -44,7 +44,7 @@ public class JcppPileSyncController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@ApiOperation("全量同步充电桩数据")
|
@ApiOperation("全量同步充电桩数据")
|
||||||
@PreAuthorize("@ss.hasPermi('jcpp:sync:full')")
|
@PreAuthorize("@ss.hasPermi('jcpp:sync:full')")
|
||||||
@Log(title = "JCPP 充电桩同步", businessType = BusinessType.OTHER)
|
// @Log(title = "JCPP 充电桩同步", businessType = BusinessType.OTHER)
|
||||||
@PostMapping("/full")
|
@PostMapping("/full")
|
||||||
public AjaxResult syncFull() {
|
public AjaxResult syncFull() {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ jcpp:
|
|||||||
# JCPP 同步接口地址
|
# JCPP 同步接口地址
|
||||||
api-url: http://localhost:8180/api/sync
|
api-url: http://localhost:8180/api/sync
|
||||||
# 批量同步大小(每批充电桩数量)
|
# 批量同步大小(每批充电桩数量)
|
||||||
batch-size: 500
|
batch-size: 1000
|
||||||
# 超时时间(毫秒)
|
# 超时时间(毫秒)
|
||||||
timeout: 60000
|
timeout: 60000
|
||||||
# 是否启用自动增量同步
|
# 是否启用自动增量同步
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public class JcppPileSyncServiceImpl implements IJcppPileSyncService {
|
|||||||
@Value("${jcpp.sync.api-url:http://localhost:8180/api/sync}")
|
@Value("${jcpp.sync.api-url:http://localhost:8180/api/sync}")
|
||||||
private String jcppApiUrl;
|
private String jcppApiUrl;
|
||||||
|
|
||||||
@Value("${jcpp.sync.batch-size:500}")
|
@Value("${jcpp.sync.batch-size:1000}")
|
||||||
private int batchSize;
|
private int batchSize;
|
||||||
|
|
||||||
@Value("${jcpp.sync.timeout:60000}")
|
@Value("${jcpp.sync.timeout:60000}")
|
||||||
@@ -458,10 +458,14 @@ public class JcppPileSyncServiceImpl implements IJcppPileSyncService {
|
|||||||
*/
|
*/
|
||||||
private List<JcppSyncResult> syncPilesToJcpp(List<JcppPileSyncDTO> pileDTOs) {
|
private List<JcppSyncResult> syncPilesToJcpp(List<JcppPileSyncDTO> pileDTOs) {
|
||||||
String url = jcppApiUrl + "/piles";
|
String url = jcppApiUrl + "/piles";
|
||||||
|
long methodStartTime = System.currentTimeMillis();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 获取访问令牌
|
// 获取访问令牌
|
||||||
|
long tokenStartTime = System.currentTimeMillis();
|
||||||
String token = jcppAuthService.getAccessToken();
|
String token = jcppAuthService.getAccessToken();
|
||||||
|
long tokenTime = System.currentTimeMillis() - tokenStartTime;
|
||||||
|
log.info("【性能】获取访问令牌耗时: {} ms", tokenTime);
|
||||||
if (token == null || token.isEmpty()) {
|
if (token == null || token.isEmpty()) {
|
||||||
log.error("无法获取 JCPP 访问令牌");
|
log.error("无法获取 JCPP 访问令牌");
|
||||||
// 返回失败结果
|
// 返回失败结果
|
||||||
@@ -473,6 +477,7 @@ public class JcppPileSyncServiceImpl implements IJcppPileSyncService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 构建请求体
|
// 构建请求体
|
||||||
|
long buildStartTime = System.currentTimeMillis();
|
||||||
JSONObject requestBody = new JSONObject();
|
JSONObject requestBody = new JSONObject();
|
||||||
requestBody.put("piles", pileDTOs);
|
requestBody.put("piles", pileDTOs);
|
||||||
|
|
||||||
@@ -482,17 +487,22 @@ public class JcppPileSyncServiceImpl implements IJcppPileSyncService {
|
|||||||
headers.set("Authorization", "Bearer " + token);
|
headers.set("Authorization", "Bearer " + token);
|
||||||
|
|
||||||
HttpEntity<String> entity = new HttpEntity<>(requestBody.toJSONString(), headers);
|
HttpEntity<String> entity = new HttpEntity<>(requestBody.toJSONString(), headers);
|
||||||
|
long buildTime = System.currentTimeMillis() - buildStartTime;
|
||||||
|
log.info("【性能】构建充电桩请求体耗时: {} ms", buildTime);
|
||||||
|
|
||||||
// 发送请求
|
// 发送请求
|
||||||
log.info("调用 JCPP 充电桩同步接口: {}, 数量: {}", url, pileDTOs.size());
|
log.info("调用 JCPP 充电桩同步接口: {}, 数量: {}", url, pileDTOs.size());
|
||||||
|
long httpStartTime = System.currentTimeMillis();
|
||||||
ResponseEntity<String> response = restTemplate.postForEntity(url, entity, String.class);
|
ResponseEntity<String> response = restTemplate.postForEntity(url, entity, String.class);
|
||||||
|
long httpTime = System.currentTimeMillis() - httpStartTime;
|
||||||
|
log.info("【性能】JCPP 充电桩接口 HTTP 请求耗时: {} ms (网络+JCPP处理)", httpTime);
|
||||||
|
|
||||||
// 打印响应状态和内容
|
// 打印响应状态和内容
|
||||||
log.info("JCPP 充电桩同步接口响应 - 状态码: {}, 响应体: {}",
|
// log.info("JCPP 充电桩同步接口响应 - 状态码: {}, 响应体: {}", response.getStatusCode(), response.getBody());
|
||||||
response.getStatusCode(), response.getBody());
|
|
||||||
|
|
||||||
if (response.getStatusCode() == HttpStatus.OK) {
|
if (response.getStatusCode() == HttpStatus.OK) {
|
||||||
// 解析响应
|
// 解析响应
|
||||||
|
long parseStartTime = System.currentTimeMillis();
|
||||||
JSONObject responseBody = JSON.parseObject(response.getBody());
|
JSONObject responseBody = JSON.parseObject(response.getBody());
|
||||||
|
|
||||||
// JCPP 响应格式:{ "success": true, "data": { "results": [...] } }
|
// JCPP 响应格式:{ "success": true, "data": { "results": [...] } }
|
||||||
@@ -506,11 +516,14 @@ public class JcppPileSyncServiceImpl implements IJcppPileSyncService {
|
|||||||
log.warn("JCPP 充电桩同步响应中没有 data 字段");
|
log.warn("JCPP 充电桩同步响应中没有 data 字段");
|
||||||
results = new ArrayList<>();
|
results = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
long parseTime = System.currentTimeMillis() - parseStartTime;
|
||||||
|
log.info("【性能】解析充电桩响应耗时: {} ms", parseTime);
|
||||||
|
|
||||||
// 统计结果
|
// 统计结果
|
||||||
long successCount = results != null ? results.stream().filter(JcppSyncResult::isSuccess).count() : 0;
|
long successCount = results != null ? results.stream().filter(JcppSyncResult::isSuccess).count() : 0;
|
||||||
long failCount = results != null ? results.size() - successCount : 0;
|
long failCount = results != null ? results.size() - successCount : 0;
|
||||||
log.info("JCPP 充电桩同步结果 - 成功: {}, 失败: {}", successCount, failCount);
|
long totalTime = System.currentTimeMillis() - methodStartTime;
|
||||||
|
log.info("JCPP 充电桩同步结果 - 成功: {}, 失败: {}, 方法总耗时: {} ms", successCount, failCount, totalTime);
|
||||||
|
|
||||||
return results != null ? results : new ArrayList<>();
|
return results != null ? results : new ArrayList<>();
|
||||||
} else if (response.getStatusCode() == HttpStatus.UNAUTHORIZED) {
|
} else if (response.getStatusCode() == HttpStatus.UNAUTHORIZED) {
|
||||||
@@ -614,10 +627,14 @@ public class JcppPileSyncServiceImpl implements IJcppPileSyncService {
|
|||||||
*/
|
*/
|
||||||
private List<JcppSyncResult> syncGunsToJcpp(List<JcppGunSyncDTO> gunDTOs) {
|
private List<JcppSyncResult> syncGunsToJcpp(List<JcppGunSyncDTO> gunDTOs) {
|
||||||
String url = jcppApiUrl + "/guns";
|
String url = jcppApiUrl + "/guns";
|
||||||
|
long methodStartTime = System.currentTimeMillis();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 获取访问令牌
|
// 获取访问令牌
|
||||||
|
long tokenStartTime = System.currentTimeMillis();
|
||||||
String token = jcppAuthService.getAccessToken();
|
String token = jcppAuthService.getAccessToken();
|
||||||
|
long tokenTime = System.currentTimeMillis() - tokenStartTime;
|
||||||
|
log.info("【性能】获取访问令牌耗时: {} ms", tokenTime);
|
||||||
if (token == null || token.isEmpty()) {
|
if (token == null || token.isEmpty()) {
|
||||||
log.error("无法获取 JCPP 访问令牌");
|
log.error("无法获取 JCPP 访问令牌");
|
||||||
// 返回失败结果
|
// 返回失败结果
|
||||||
@@ -629,6 +646,7 @@ public class JcppPileSyncServiceImpl implements IJcppPileSyncService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 构建请求体
|
// 构建请求体
|
||||||
|
long buildStartTime = System.currentTimeMillis();
|
||||||
JSONObject requestBody = new JSONObject();
|
JSONObject requestBody = new JSONObject();
|
||||||
requestBody.put("guns", gunDTOs);
|
requestBody.put("guns", gunDTOs);
|
||||||
|
|
||||||
@@ -638,17 +656,22 @@ public class JcppPileSyncServiceImpl implements IJcppPileSyncService {
|
|||||||
headers.set("Authorization", "Bearer " + token);
|
headers.set("Authorization", "Bearer " + token);
|
||||||
|
|
||||||
HttpEntity<String> entity = new HttpEntity<>(requestBody.toJSONString(), headers);
|
HttpEntity<String> entity = new HttpEntity<>(requestBody.toJSONString(), headers);
|
||||||
|
long buildTime = System.currentTimeMillis() - buildStartTime;
|
||||||
|
log.info("【性能】构建充电枪请求体耗时: {} ms", buildTime);
|
||||||
|
|
||||||
// 发送请求
|
// 发送请求
|
||||||
log.info("调用 JCPP 充电枪同步接口: {}, 数量: {}", url, gunDTOs.size());
|
log.info("调用 JCPP 充电枪同步接口: {}, 数量: {}", url, gunDTOs.size());
|
||||||
|
long httpStartTime = System.currentTimeMillis();
|
||||||
ResponseEntity<String> response = restTemplate.postForEntity(url, entity, String.class);
|
ResponseEntity<String> response = restTemplate.postForEntity(url, entity, String.class);
|
||||||
|
long httpTime = System.currentTimeMillis() - httpStartTime;
|
||||||
|
log.info("【性能】JCPP 充电枪接口 HTTP 请求耗时: {} ms (网络+JCPP处理)", httpTime);
|
||||||
|
|
||||||
// 打印响应状态和内容
|
// 打印响应状态和内容
|
||||||
log.info("JCPP 充电枪同步接口响应 - 状态码: {}, 响应体: {}",
|
// log.info("JCPP 充电枪同步接口响应 - 状态码: {}, 响应体: {}", response.getStatusCode(), response.getBody());
|
||||||
response.getStatusCode(), response.getBody());
|
|
||||||
|
|
||||||
if (response.getStatusCode() == HttpStatus.OK) {
|
if (response.getStatusCode() == HttpStatus.OK) {
|
||||||
// 解析响应
|
// 解析响应
|
||||||
|
long parseStartTime = System.currentTimeMillis();
|
||||||
JSONObject responseBody = JSON.parseObject(response.getBody());
|
JSONObject responseBody = JSON.parseObject(response.getBody());
|
||||||
|
|
||||||
// JCPP 响应格式:{ "success": true, "data": { "results": [...] } }
|
// JCPP 响应格式:{ "success": true, "data": { "results": [...] } }
|
||||||
@@ -662,11 +685,14 @@ public class JcppPileSyncServiceImpl implements IJcppPileSyncService {
|
|||||||
log.warn("JCPP 充电枪同步响应中没有 data 字段");
|
log.warn("JCPP 充电枪同步响应中没有 data 字段");
|
||||||
results = new ArrayList<>();
|
results = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
long parseTime = System.currentTimeMillis() - parseStartTime;
|
||||||
|
log.info("【性能】解析充电枪响应耗时: {} ms", parseTime);
|
||||||
|
|
||||||
// 统计结果
|
// 统计结果
|
||||||
long successCount = results != null ? results.stream().filter(JcppSyncResult::isSuccess).count() : 0;
|
long successCount = results != null ? results.stream().filter(JcppSyncResult::isSuccess).count() : 0;
|
||||||
long failCount = results != null ? results.size() - successCount : 0;
|
long failCount = results != null ? results.size() - successCount : 0;
|
||||||
log.info("JCPP 充电枪同步结果 - 成功: {}, 失败: {}", successCount, failCount);
|
long totalTime = System.currentTimeMillis() - methodStartTime;
|
||||||
|
log.info("JCPP 充电枪同步结果 - 成功: {}, 失败: {}, 方法总耗时: {} ms", successCount, failCount, totalTime);
|
||||||
|
|
||||||
return results != null ? results : new ArrayList<>();
|
return results != null ? results : new ArrayList<>();
|
||||||
} else if (response.getStatusCode() == HttpStatus.UNAUTHORIZED) {
|
} else if (response.getStatusCode() == HttpStatus.UNAUTHORIZED) {
|
||||||
|
|||||||
Reference in New Issue
Block a user