From 9e43c32ad97ad39a1b9aa2852d788ca1c566e982 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 20 二月 2025 17:41:10 +0800
Subject: [PATCH] 对账
---
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java | 421 ++++++++++++++++++++++++++++++++++------------------
1 files changed, 274 insertions(+), 147 deletions(-)
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
index 6294bf2..d93bf73 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -1,17 +1,19 @@
package com.ruoyi.integration.drainage;
import com.alibaba.fastjson.JSON;
+import com.alibaba.nacos.common.utils.JacksonUtils;
import com.ruoyi.chargingPile.api.feignClient.*;
import com.ruoyi.chargingPile.api.model.*;
-import com.ruoyi.chargingPile.api.vo.GetParkingRecord;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.integration.drainage.kuaidian.TCECKDUtil;
import com.ruoyi.integration.drainage.kuaidian.model.*;
import com.ruoyi.integration.drainage.model.*;
import com.ruoyi.integration.drainage.model.enu.*;
+import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService;
import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import com.ruoyi.order.api.model.AddTripartitePlatformOrder;
@@ -20,7 +22,8 @@
import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
import com.ruoyi.other.api.domain.Operator;
import com.ruoyi.other.api.feignClient.OperatorClient;
-import com.ruoyi.system.api.model.LoginUser;
+import com.ruoyi.other.api.feignClient.SystemConfigurationClient;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
@@ -32,15 +35,14 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* @author zhibing.pu
* @Date 2025/1/21 17:52
*/
+@Slf4j
@RestController
@RequestMapping("/evcs/v1.0")
public class TCECController {
@@ -67,15 +69,19 @@
private ChargingOrderAccountingStrategyClient chargingOrderAccountingStrategyClient;
@Resource
+ private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService;
+
+ @Resource
private TokenUtil tokenUtil;
-
- private static Map<Long, Integer> map = new HashMap<>();
-
+
@Resource
private ParkingLotClient parkingLotClient;
@Resource
private ParkingRecordClient parkingRecordClient;
+
+ @Resource
+ private SystemConfigurationClient systemConfigurationClient;
@@ -91,22 +97,8 @@
baseResult.setMsg("成功");
baseResult.setOperatorID(baseRequest.getOperatorID());
Long mapKey = Long.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
- Integer integer = map.get(mapKey);
- if(null == integer){
- integer = 1;
- }else{
- integer++;
- }
- map.put(mapKey, integer);
baseResult.setTimeStamp(mapKey);
- baseResult.setSeq(String.format("%04d", integer));
- //清空小于当前时间的map中的无效数据
- for (Long k : map.keySet()) {
- if(k <= (mapKey - 10)){
- map.remove(k);
- }
- }
-
+ baseResult.setSeq("0001");
//校验token和签名
String operatorID = baseRequest.getOperatorID();
String sig = baseRequest.getSig();
@@ -127,7 +119,7 @@
}
//校验token
if(tokenCheck){
- LoginUser loginUser = tokenUtil.getLoginUser(request);
+ Operator loginUser = tokenUtil.getLoginUser(request);
if(null == loginUser){
baseResult.setRet(4002);
baseResult.setMsg("身份校验失败,无效的token");
@@ -136,15 +128,15 @@
}
Operator operator = r.getData();
+ baseResult.setOperator(operator);
baseRequest.setOperator(operator);
//校验签名
- String sign = TCECUtil.buildSign(baseRequest);
+ String sign = TCECUtil.ourBuildSign(baseRequest);
if(!sign.equals(sig)){
baseResult.setRet(4001);
baseResult.setMsg("签名校验失败");
return baseResult;
}
- baseResult.setOperator(operator);
return baseResult;
}
@@ -158,10 +150,13 @@
*/
@PostMapping("/query_token")
public BaseResult queryToken(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台获取token请求参数:" + JacksonUtils.toJson(baseRequest));
BaseResult baseResult = requestCheck(false, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台获取token响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台获取token响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
QueryTokenResult queryTokenResult = new QueryTokenResult();
@@ -170,24 +165,29 @@
queryTokenResult.setSuccStat(1);
queryTokenResult.setFailReason(1);
//参数加密
- String jsonString = JSON.toJSONString(queryTokenResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryTokenResult);
+ log.info("三方平台获取token响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台获取token响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台获取token请求Data:" + decrypt);
QueryToken queryToken = JSON.parseObject(decrypt, QueryToken.class);
- if(!queryToken.getOperatorSecret().equals(operator.getOperatorSecret())){
+ if(!queryToken.getOperatorSecret().equals(operator.getOurOperatorSecret())){
queryTokenResult.setSuccStat(1);
queryTokenResult.setFailReason(2);
//参数加密
- String jsonString = JSON.toJSONString(queryTokenResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryTokenResult);
+ log.info("三方平台获取token响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台获取token响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -195,16 +195,19 @@
Map<String, Object> token = tokenUtil.createToken(operator);
String access_token = token.get("access_token").toString();
Long expires_in = Long.valueOf(token.get("expires_in").toString());
-
+
+ queryTokenResult.setOperatorID("906171535");
queryTokenResult.setSuccStat(0);
queryTokenResult.setFailReason(0);
queryTokenResult.setAccessToken(access_token);
queryTokenResult.setTokenAvailableTime(expires_in * 60);
//参数加密
- String jsonString = JSON.toJSONString(queryTokenResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryTokenResult);
+ log.info("三方平台获取token响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台获取token响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -218,16 +221,20 @@
*/
@PostMapping("/query_stations_info")
public BaseResult queryStationsInfo(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台查询充电站信息请求参数:" + JacksonUtils.toJson(baseRequest));
//校验token和签名
BaseResult baseResult = requestCheck(true, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台查询充电站信息响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台查询充电站信息响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Operator operator = baseResult.getOperator();
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台查询充电站信息请求Data:" + decrypt);
QueryStationsInfo queryStationsInfo = JSON.parseObject(decrypt, QueryStationsInfo.class);
Integer pageNo = queryStationsInfo.getPageNo();
Integer pageSize = queryStationsInfo.getPageSize();
@@ -245,10 +252,12 @@
queryStationsInfoResult.setItemSize(Long.valueOf(siteListPaging.getTotal()).intValue());
queryStationsInfoResult.setStationInfos(buildSite(parkingLots, siteListPaging.getRecords()));
//参数加密
- String jsonString = JSON.toJSONString(queryStationsInfoResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryStationsInfoResult);
+ log.info("三方平台查询充电站信息响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台查询充电站信息响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -263,19 +272,19 @@
List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData();
List<Integer> collect1 = tChargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList());
List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(collect1).getData();
-
+ String serviceTel = systemConfigurationClient.getServerPhone().getData();
List<StationInfo> StationInfos = new ArrayList<>();
for (Site datum : sites) {
StationInfo stationInfo = new StationInfo();
stationInfo.setStationID(datum.getId().toString());
- stationInfo.setOperatorID("");
- stationInfo.setEquipmentOwnerID("91510903906171535D");
+ stationInfo.setOperatorID("906171535");
+ stationInfo.setEquipmentOwnerID("906171535");
stationInfo.setStationName(datum.getName());
- stationInfo.setCountryCode(datum.getCountryCode());
+ stationInfo.setCountryCode(StringUtils.isNotEmpty(datum.getCountryCode()) ? datum.getCountryCode() : "CN");
stationInfo.setAreaCode(datum.getDistrictsCode());
stationInfo.setAddress(datum.getAddress());
stationInfo.setStationTel(datum.getPhone());
- stationInfo.setServiceTel(datum.getServicePhone());
+ stationInfo.setServiceTel(serviceTel);
switch (datum.getSiteType()){
case 0:
stationInfo.setStationType(StationTypeEnum.OTHER.getType());
@@ -312,7 +321,7 @@
stationInfo.setStationLat(new BigDecimal(datum.getLat()).setScale(6, RoundingMode.DOWN));
stationInfo.setStationLng(new BigDecimal(datum.getLon()).setScale(6, RoundingMode.DOWN));
stationInfo.setConstruction(datum.getConstructionSite() == 0 ? ConstructionEnum.OTHER.getType() : datum.getConstructionSite());
- stationInfo.setPictures(Arrays.asList(datum.getImgUrl().split(",")));
+ stationInfo.setPictures(StringUtils.isNotEmpty(datum.getImgUrl()) ? Arrays.asList(datum.getImgUrl().split(",")) : new ArrayList<>());
stationInfo.setSiteGuide(datum.getGuide());
stationInfo.setMatchCars(datum.getVehicleDescription());
stationInfo.setBusineHours(datum.getStartServiceTime() + "-" + datum.getEndServiceTime());
@@ -393,6 +402,7 @@
//构建设备接口信息
equipmentInfo.setConnectorInfos(buildConnectorInfos(tChargingPile.getId(), tChargingPile.getCode(), chargingGunList));
+ equipmentInfo.setPower(tChargingPile.getRatedPower());
equipmentInfos.add(equipmentInfo);
}
return equipmentInfos;
@@ -409,7 +419,7 @@
List<TChargingGun> collect = chargingGunList.stream().filter(s -> s.getChargingPileId().equals(chargingPileId)).collect(Collectors.toList());
for (TChargingGun chargingGun : collect) {
ConnectorInfo connectorInfo = new ConnectorInfo();
- connectorInfo.setConnectorID(chargingGun.getId().toString());
+ connectorInfo.setConnectorID(chargingGun.getFullNumber());
connectorInfo.setConnectorName(chargingGun.getName());
switch (chargingGun.getType()){
case 0:
@@ -449,9 +459,9 @@
* @return
*/
@PostMapping("/pushChargingGunStatus")
- public R pushChargingGunStatus(@RequestParam("id") Integer id, @RequestParam("status") Integer status){
+ public R pushChargingGunStatus(@RequestParam("fullNumber") String fullNumber, @RequestParam("status") Integer status){
ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo();
- connectorStatusInfo.setConnectorID(id.toString());
+ connectorStatusInfo.setConnectorID(fullNumber);
switch (status){
case 1:
connectorStatusInfo.setStatus(0);
@@ -475,6 +485,9 @@
connectorStatusInfo.setStatus(255);
break;
}
+ ConnectorStatusInfo connectorStatusInfo1 = new ConnectorStatusInfo();
+ BeanUtils.copyProperties(connectorStatusInfo, connectorStatusInfo1);
+ connectorStatusInfo.setConnectorStatusInfo(connectorStatusInfo1);
List<Operator> operators = operatorClient.getAllOperator().getData();
for (Operator operator : operators) {
TCECUtil.notificationStationStatus(operator, connectorStatusInfo);
@@ -490,15 +503,19 @@
*/
@PostMapping("/query_station_status")
public BaseResult queryStationStatus(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台获取设备接口状态请求参数:" + JacksonUtils.toJson(baseRequest));
BaseResult baseResult = requestCheck(true, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台获取设备接口状态响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台获取设备接口状态响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Operator operator = baseResult.getOperator();
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台获取设备接口状态请求Data:" + decrypt);
QueryStationStatus queryStationsInfo = JSON.parseObject(decrypt, QueryStationStatus.class);
List<Integer> collect = queryStationsInfo.getStationIDs().stream().map(Integer::valueOf).collect(Collectors.toList());
List<Site> data = siteClient.getSiteByIds(collect).getData();
@@ -518,7 +535,7 @@
List<TChargingGun> collect2 = chargingGunList.stream().filter(s -> s.getSiteId().equals(datum.getId())).collect(Collectors.toList());
for (TChargingGun chargingGun : collect2) {
ConnectorStatusInfo info = new ConnectorStatusInfo();
- info.setConnectorID(chargingGun.getId().toString());
+ info.setConnectorID(chargingGun.getFullNumber());
switch (chargingGun.getStatus()){
case 1:
info.setStatus(0);
@@ -549,10 +566,12 @@
}
result.setStationStatusInfos(StationStatusInfos);
//参数加密
- String jsonString = JSON.toJSONString(result);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(result);
+ log.info("三方平台获取设备接口状态响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台获取设备接口状态响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -566,16 +585,20 @@
*/
@PostMapping("/query_station_stats")
public BaseResult queryStationStats(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台获取统计信息请求参数:" + JacksonUtils.toJson(baseRequest));
//校验token和签名
BaseResult baseResult = requestCheck(true, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台获取统计信息响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台获取统计信息响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Operator operator = baseResult.getOperator();
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台获取统计信息请求Data:" + decrypt);
QueryStationStats queryStationStats = JSON.parseObject(decrypt, QueryStationStats.class);
QueryStationStatsResult result = new QueryStationStatsResult();
ChargingPercentProvinceDto dto = new ChargingPercentProvinceDto();
@@ -608,8 +631,9 @@
List<TChargingOrder> tChargingOrders1 = collect2.get(integer1);
BigDecimal reduce2 = tChargingOrders1.stream().map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add);
+ TChargingGun chargingGun = chargingGunClient.getChargingGunById(integer1).getData();
ConnectorStatsInfo connectorStatsInfo = new ConnectorStatsInfo();
- connectorStatsInfo.setConnectorID(integer1.toString());
+ connectorStatsInfo.setConnectorID(chargingGun.getFullNumber());
connectorStatsInfo.setConnectorElectricity(reduce2);
ConnectorStatsInfos.add(connectorStatsInfo);
}
@@ -619,10 +643,12 @@
stationStats.setEquipmentStatsInfos(EquipmentStatsInfos);
result.setStationStats(stationStats);
//参数加密
- String jsonString = JSON.toJSONString(result);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(result);
+ log.info("三方平台获取统计信息响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台获取统计信息响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -633,22 +659,27 @@
*/
@PostMapping("/query_equip_auth")
public BaseResult queryEquipAuth(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台设备认证请求参数:" + JacksonUtils.toJson(baseRequest));
//校验token和签名
BaseResult baseResult = requestCheck(true, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台设备认证响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台设备认证响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Operator operator = baseResult.getOperator();
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台设备认证请求Data:" + decrypt);
QueryEquipAuth queryEquipAuth = JSON.parseObject(decrypt, QueryEquipAuth.class);
String connectorID = queryEquipAuth.getConnectorID();
- TChargingGun tChargingGun = chargingGunClient.getChargingGunById(Integer.valueOf(connectorID)).getData();
+ TChargingGun tChargingGun = chargingGunClient.getChargingGunByFullNumber(connectorID).getData();
if(null == tChargingGun){
baseResult.setRet(4004);
baseResult.setMsg("connectorID 参数无效");
+ log.info("三方平台设备认证响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
QueryEquipAuthResult queryEquipAuthResult = new QueryEquipAuthResult();
@@ -686,10 +717,12 @@
break;
}
//参数加密
- String jsonString = JSON.toJSONString(queryEquipAuthResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryEquipAuthResult);
+ log.info("三方平台设备认证响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台设备认证响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -701,16 +734,20 @@
*/
@PostMapping("/query_equip_business_policy")
public BaseResult queryEquipBusinessPolicy(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台查询业务策略信息请求参数:" + JacksonUtils.toJson(baseRequest));
//校验token和签名
BaseResult baseResult = requestCheck(true, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台查询业务策略信息响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台查询业务策略信息响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Operator operator = baseResult.getOperator();
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台查询业务策略信息请求Data:" + decrypt);
QueryEquipBusinessPolicy queryEquipBusinessPolicy = JSON.parseObject(decrypt, QueryEquipBusinessPolicy.class);
//构建返回结果
@@ -720,15 +757,17 @@
queryEquipBusinessPolicyResult.setSuccStat(0);
queryEquipBusinessPolicyResult.setFailReason(0);
String connectorID = queryEquipBusinessPolicy.getConnectorID();
- TChargingGun tChargingGun = chargingGunClient.getChargingGunById(Integer.valueOf(connectorID)).getData();
+ TChargingGun tChargingGun = chargingGunClient.getChargingGunByFullNumber(connectorID).getData();
if(null == tChargingGun){
baseResult.setRet(4004);
baseResult.setMsg("connectorID 参数无效");
//参数加密
- String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryEquipBusinessPolicyResult);
+ log.info("三方平台查询业务策略信息响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台查询业务策略信息响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Integer accountingStrategyId = tChargingGun.getAccountingStrategyId();
@@ -742,10 +781,12 @@
queryEquipBusinessPolicyResult.setFailReason(1);
queryEquipBusinessPolicyResult.setSumPeriod(0);
//参数加密
- String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryEquipBusinessPolicyResult);
+ log.info("三方平台查询业务策略信息响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台查询业务策略信息响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
List<PolicyInfo> PolicyInfos = new ArrayList<>();
@@ -759,10 +800,12 @@
queryEquipBusinessPolicyResult.setSumPeriod(PolicyInfos.size());
queryEquipBusinessPolicyResult.setPolicyInfos(PolicyInfos);
//参数加密
- String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryEquipBusinessPolicyResult);
+ log.info("三方平台查询业务策略信息响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台查询业务策略信息响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -816,16 +859,20 @@
*/
@PostMapping("/query_start_charge")
public BaseResult queryStartCharge(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台请求开始充电请求参数:" + JacksonUtils.toJson(baseRequest));
//校验token和签名
BaseResult baseResult = requestCheck(true, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台请求开始充电响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台请求开始充电响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Operator operator = baseResult.getOperator();
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台请求开始充电请求Data:" + decrypt);
QueryStartCharge queryStartCharge = JSON.parseObject(decrypt, QueryStartCharge.class);
//构建返回结果
@@ -833,7 +880,7 @@
result.setStartChargeSeq(queryStartCharge.getStartChargeSeq());
result.setConnectorID(queryStartCharge.getConnectorID());
String connectorID = queryStartCharge.getConnectorID();
- TChargingGun tChargingGun = chargingGunClient.getChargingGunById(Integer.valueOf(connectorID)).getData();
+ TChargingGun tChargingGun = chargingGunClient.getChargingGunByFullNumber(connectorID).getData();
//设备不存在
if(null == tChargingGun){
baseResult.setRet(4004);
@@ -842,10 +889,12 @@
result.setFailReason(1);
result.setStartChargeSeqStat(5);
//参数加密
- String jsonString = JSON.toJSONString(result);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(result);
+ log.info("三方平台请求开始充电响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台请求开始充电响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
//设备离线
@@ -854,10 +903,12 @@
result.setFailReason(2);
result.setStartChargeSeqStat(5);
//参数加密
- String jsonString = JSON.toJSONString(result);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(result);
+ log.info("三方平台请求开始充电响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台请求开始充电响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
//调用充电接口
@@ -865,7 +916,7 @@
addTripartitePlatformOrder.setStartChargeSeq(queryStartCharge.getStartChargeSeq());
addTripartitePlatformOrder.setChargingGunId(tChargingGun.getId());
addTripartitePlatformOrder.setOperatorId(operator.getOperatorId());
- addTripartitePlatformOrder.setPaymentAmount(queryStartCharge.getChargingAmt());
+ addTripartitePlatformOrder.setPaymentAmount(null == queryStartCharge.getChargingAmt() ? new BigDecimal(9999) : queryStartCharge.getChargingAmt());
addTripartitePlatformOrder.setRechargePaymentType(0);
addTripartitePlatformOrder.setPlateNum(queryStartCharge.getPlateNum());
R order = chargingOrderClient.addTripartitePlatformOrder(addTripartitePlatformOrder);
@@ -875,20 +926,45 @@
result.setFailReason(1);
result.setStartChargeSeqStat(2);
//参数加密
- String jsonString = JSON.toJSONString(result);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(result);
+ log.info("三方平台请求开始充电响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台请求开始充电响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
result.setStartChargeSeqStat(1);
result.setSuccStat(0);
result.setFailReason(0);
//参数加密
- String jsonString = JSON.toJSONString(result);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(result);
+ log.info("三方平台请求开始充电响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台请求开始充电响应参数:" + JacksonUtils.toJson(baseResult));
+
+ //定义定时任务推送订单状态
+ ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
+ Runnable task = new Runnable() {
+ @Override
+ public void run() {
+ try {
+ TChargingOrder chargingOrder = chargingOrderClient.getChargingOrderByStartChargeSeq(result.getStartChargeSeq()).getData();
+ if(chargingOrder.getStatus() != 3){
+ scheduler.shutdown();
+ return;
+ }
+ log.info("开始执行三方平台定时推送");
+ notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ };
+ //一分钟执行一次
+ scheduler.scheduleAtFixedRate(task, 10, 10, TimeUnit.SECONDS);
return baseResult;
}
@@ -944,24 +1020,30 @@
*/
@PostMapping("/query_equip_charge_status")
public BaseResult queryEquipChargeStatus(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台查询充电状态请求参数:" + JacksonUtils.toJson(baseRequest));
//校验token和签名
BaseResult baseResult = requestCheck(true, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台查询充电状态响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台查询充电状态响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Operator operator = baseResult.getOperator();
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台查询充电状态请求Data:" + decrypt);
QueryEquipChargeStatus queryEquipChargeStatus = JSON.parseObject(decrypt, QueryEquipChargeStatus.class);
//校验token和签名
QueryEquipChargeStatusResult queryEquipChargeStatusResult = buildQueryEquipChargeStatusResult(queryEquipChargeStatus.getStartChargeSeq());
//参数加密
- String jsonString = JSON.toJSONString(queryEquipChargeStatusResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryEquipChargeStatusResult);
+ log.info("三方平台查询充电状态响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台查询充电状态响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -1000,8 +1082,8 @@
queryEquipChargeStatusResult.setStartChargeSeqStat(4);
break;
}
- queryEquipChargeStatusResult.setConnectorID(chargingOrder.getChargingGunId().toString());
TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+ queryEquipChargeStatusResult.setConnectorID(chargingGun.getFullNumber());
//1=离线,2=空闲,3=占用(未充电),4=占用(充电中),5=占用(已充满),6=占用(预约锁定),7=故障
switch (chargingGun.getStatus()){
case 1:
@@ -1028,20 +1110,30 @@
}
queryEquipChargeStatusResult.setCurrentA(chargingOrder.getCurrent());
queryEquipChargeStatusResult.setVoltageA(chargingOrder.getVoltage());
- queryEquipChargeStatusResult.setSoc(chargingOrder.getTotalElectricity());
+ UploadRealTimeMonitoringData timeMonitoringData = uploadRealTimeMonitoringDataService.getLastDataById(chargingOrder.getCode());
+ queryEquipChargeStatusResult.setSoc(null == timeMonitoringData ? BigDecimal.ZERO : new BigDecimal(timeMonitoringData.getSoc()));
queryEquipChargeStatusResult.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
- queryEquipChargeStatusResult.setEndTime((null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ queryEquipChargeStatusResult.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
queryEquipChargeStatusResult.setTotalPower(chargingOrder.getElectricity());
- queryEquipChargeStatusResult.setElecMoney(chargingOrder.getTotalElectricity());
- queryEquipChargeStatusResult.setSeviceMoney(chargingOrder.getServiceCharge());
- queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getTotalElectricity().add(chargingOrder.getServiceCharge()));
+
+ List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
+ if(data.size() > 0){
+ BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+ queryEquipChargeStatusResult.setElecMoney(totalElectricity);
+ queryEquipChargeStatusResult.setSeviceMoney(serviceCharge);
+ queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getPaymentAmount());
+ }else{
+ queryEquipChargeStatusResult.setElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
+ queryEquipChargeStatusResult.setSeviceMoney(BigDecimal.ZERO);
+ queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
+ }
//构建充电明细
List<ChargeDetail> chargeDetails = new ArrayList<>();
- List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
- LocalDateTime startTime = chargingOrder.getStartTime();
- LocalDateTime endTime = chargingOrder.getEndTime();
+ LocalDateTime startTime = null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getStartTime();
+ LocalDateTime endTime = null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime();
String s_format = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String e_format = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
for (TChargingOrderAccountingStrategy datum : data) {
@@ -1077,7 +1169,7 @@
* @return
*/
@PostMapping("/notificationEquipChargeStatus")
- public R notificationEquipChargeStatus(@RequestParam("startChargeSeq") String startChargeSeq, @RequestParam("operatorId") Integer operatorId){
+ public R notificationEquipChargeStatus(@RequestParam(value = "startChargeSeq") String startChargeSeq, @RequestParam(value = "operatorId") Integer operatorId){
QueryEquipChargeStatusResult queryEquipChargeStatusResult = buildQueryEquipChargeStatusResult(startChargeSeq);
Operator operator = operatorClient.getOperatorById(operatorId).getData();
NotificationEquipChargeStatusResult notificationEquipChargeStatusResult = TCECUtil.notificationEquipChargeStatus(operator, queryEquipChargeStatusResult);
@@ -1119,16 +1211,20 @@
*/
@PostMapping("/query_stop_charge")
public BaseResult queryStopCharge(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台请求停止充电请求参数:" + JacksonUtils.toJson(baseRequest));
//校验token和签名
BaseResult baseResult = requestCheck(true, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台请求停止充电响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台请求停止充电响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Operator operator = baseResult.getOperator();
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台请求停止充电请求Data:" + decrypt);
QueryStopCharge queryStopCharge = JSON.parseObject(decrypt, QueryStopCharge.class);
QueryStopChargeResult queryStopChargeResult = new QueryStopChargeResult();
queryStopChargeResult.setStartChargeSeq(queryStopCharge.getStartChargeSeq());
@@ -1142,17 +1238,21 @@
queryStopChargeResult.setSuccStat(1);
queryStopChargeResult.setFailReason(3);
//参数加密
- String jsonString = JSON.toJSONString(queryStopChargeResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryStopChargeResult);
+ log.info("三方平台请求停止充电响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台请求停止充电响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
//参数加密
- String jsonString = JSON.toJSONString(queryStopChargeResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryStopChargeResult);
+ log.info("三方平台请求停止充电响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台请求停止充电响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -1262,14 +1362,26 @@
if(null == chargingOrder){
return null;
}
- notificationChargeOrderInfo.setConnectorID(chargingOrder.getChargingGunId().toString());
+ TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+ notificationChargeOrderInfo.setConnectorID(chargingGun.getFullNumber());
notificationChargeOrderInfo.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
- notificationChargeOrderInfo.setEndTime((null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ notificationChargeOrderInfo.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
notificationChargeOrderInfo.setTotalPower(chargingOrder.getElectricity());
- notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getTotalElectricity());
- notificationChargeOrderInfo.setTotalSeviceMoney(chargingOrder.getServiceCharge());
- notificationChargeOrderInfo.setTotalMoney(chargingOrder.getTotalElectricity().add(chargingOrder.getServiceCharge()));
- notificationChargeOrderInfo.setTotalDelayMoney(BigDecimal.ZERO);
+
+ List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
+ if(data.size() > 0){
+ BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+ notificationChargeOrderInfo.setTotalElecMoney(totalElectricity.setScale(2, RoundingMode.HALF_EVEN));
+ notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge.setScale(2, RoundingMode.HALF_EVEN));
+ notificationChargeOrderInfo.setTotalMoney(chargingOrder.getPaymentAmount());
+ }else{
+ notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
+ notificationChargeOrderInfo.setTotalSeviceMoney(BigDecimal.ZERO);
+ notificationChargeOrderInfo.setTotalMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
+ }
+
+
TParkingRecord parkingRecord = parkingRecordClient.getParkingRecordByChargingOrderId(chargingOrder.getId()).getData();
if(null != parkingRecord && parkingRecord.getStatus() == 3){
notificationChargeOrderInfo.setTotalDelayMoney(parkingRecord.getPayment());
@@ -1293,10 +1405,9 @@
//构建充电明细
List<ChargeDetail> chargeDetails = new ArrayList<>();
- List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
- LocalDateTime startTime = chargingOrder.getStartTime();
- LocalDateTime endTime = chargingOrder.getEndTime();
+ LocalDateTime startTime = null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getStartTime();
+ LocalDateTime endTime = null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime();
String s_format = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String e_format = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
for (TChargingOrderAccountingStrategy datum : data) {
@@ -1327,34 +1438,43 @@
/**
- * 二维码查询抢号(快电)
+ * 二维码查询枪号(快电)
* @param baseRequest
* @param request
* @return
*/
@PostMapping("/query_terminal_code")
public BaseResult queryTerminalCode(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台二维码查询枪号请求参数:" + JacksonUtils.toJson(baseRequest));
//校验token和签名
BaseResult baseResult = requestCheck(true, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台二维码查询枪号响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台二维码查询枪号响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Operator operator = baseResult.getOperator();
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台二维码查询枪号请求Data:" + decrypt);
QueryTerminalCode queryTerminalCode = JSON.parseObject(decrypt, QueryTerminalCode.class);
String qrCode = queryTerminalCode.getQRCode();
String substring = qrCode.substring(qrCode.indexOf("=") + 1);
+ TChargingGun chargingGun = chargingGunClient.getChargingGunByFullNumber(substring).getData();
QueryTerminalCodeResult queryTerminalCodeResult = new QueryTerminalCodeResult();
- queryTerminalCodeResult.setTerminalCode(substring);
+ if(null != chargingGun){
+ queryTerminalCodeResult.setTerminalCode(chargingGun.getId().toString());
+ }
//参数加密
- String jsonString = JSON.toJSONString(queryTerminalCodeResult);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(queryTerminalCodeResult);
+ log.info("三方平台二维码查询枪号响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台二维码查询枪号响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -1392,7 +1512,7 @@
//待处理相关业务逻辑
}
//参数加密
- String jsonString = JSON.toJSONString(notificationChargeCarnumResult);
+ String jsonString = JacksonUtils.toJson(notificationChargeCarnumResult);
String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
baseResult.setData(encrypt);
baseResult.setSig(TCECUtil.buildSign(baseResult));
@@ -1408,24 +1528,30 @@
*/
@PostMapping("/query_charge_order_info")
public BaseResult queryChargeOrderInfo(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("三方平台账单拉取请求参数:" + JacksonUtils.toJson(baseRequest));
//校验token和签名
BaseResult baseResult = requestCheck(true, baseRequest, request);
if(0 != baseResult.getRet()){
+ log.info("三方平台账单拉取响应Data:");
baseResult.setData("");
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台账单拉取响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
Operator operator = baseResult.getOperator();
//解密参数
- String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("三方平台账单拉取请求Data:" + decrypt);
QueryChargeOrderInfo queryChargeOrderInfo = JSON.parseObject(decrypt, QueryChargeOrderInfo.class);
//构建返回结果
QueryChargeOrderInfoResult result = buildQueryChargeOrderInfoResult(queryChargeOrderInfo);
//参数加密
- String jsonString = JSON.toJSONString(result);
- String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+ String jsonString = JacksonUtils.toJson(result);
+ log.info("三方平台账单拉取响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
- baseResult.setSig(TCECUtil.buildSign(baseResult));
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("三方平台账单拉取响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
@@ -1446,11 +1572,12 @@
if(null == chargingOrder){
return null;
}
+ TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
OrderInfo orderInfo = new OrderInfo();
orderInfo.setStartChargeSeq(chargingOrder.getStartChargeSeq());
- orderInfo.setConnectorID(chargingOrder.getChargingGunId().toString());
+ orderInfo.setConnectorID(chargingGun.getFullNumber());
orderInfo.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
- orderInfo.setEndTime((null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ orderInfo.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
orderInfo.setTotalPower(chargingOrder.getTotalElectricity());
orderInfo.setTotalElecMoney(chargingOrder.getElectrovalence());
orderInfo.setTotalSeviceMoney(chargingOrder.getServiceCharge());
@@ -1475,7 +1602,7 @@
List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
LocalDateTime startTime = chargingOrder.getStartTime();
- LocalDateTime endTime = chargingOrder.getEndTime();
+ LocalDateTime endTime = null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime();
String s_format = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String e_format = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
for (TChargingOrderAccountingStrategy datum : data) {
--
Gitblit v1.7.1