puzhibing
2025-02-06 ed7224238d9bd4d2d3005186a0edc538bd199105
修改参数首字母大小写
45个文件已修改
413 ■■■■ 已修改文件
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TokenUtil.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseModel.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseRequest.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseResult.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ChargeDetail.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatsInfo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatusInfo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentStatsInfo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfoResult.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationEquipChargeStatusResult.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStartCharge.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStartChargeResult.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStationStatusResult.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStopCharge.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStopChargeResult.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/OperatorInfo.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/PlaceHolder.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/PlaceHolderPrice.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/PolicyInfo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipAuth.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipAuthResult.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicy.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicyResult.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStartCharge.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStartChargeResult.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStats.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatsResult.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatus.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatusResult.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfoResult.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStopCharge.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStopChargeResult.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryToken.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryTokenResult.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatsInfo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatusInfo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -1,6 +1,7 @@
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.common.core.domain.R;
@@ -19,17 +20,12 @@
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
@@ -73,9 +69,7 @@
    
    @Resource
    private TokenUtil tokenUtil;
    private static Map<Long, Integer> map = new HashMap<>();
    @Resource
    private ParkingLotClient parkingLotClient;
    
@@ -96,25 +90,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中的无效数据
        Set<Long> set = map.keySet();
        Iterator<Long> iterator = set.iterator();
        while (iterator.hasNext()){
            Long k = iterator.next();
            if(k <= (mapKey - 10)){
                map.remove(k);
            }
        }
        baseResult.setSeq("0001");
        //校验token和签名
        String operatorID = baseRequest.getOperatorID();
        String sig = baseRequest.getSig();
@@ -135,7 +112,7 @@
        }
        //校验token
        if(tokenCheck){
            LoginUser loginUser = tokenUtil.getLoginUser(request);
            Operator loginUser = tokenUtil.getLoginUser(request);
            if(null == loginUser){
                baseResult.setRet(4002);
                baseResult.setMsg("身份校验失败,无效的token");
@@ -147,7 +124,7 @@
        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("签名校验失败");
@@ -178,7 +155,7 @@
            queryTokenResult.setSuccStat(1);
            queryTokenResult.setFailReason(1);
            //参数加密
            String jsonString = JSON.toJSONString(queryTokenResult);
            String jsonString = JacksonUtils.toJson(queryTokenResult);
            String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
            baseResult.setData(encrypt);
            baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -186,13 +163,13 @@
        }
        
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        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 jsonString = JacksonUtils.toJson(queryTokenResult);
            String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
            baseResult.setData(encrypt);
            baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -203,13 +180,14 @@
        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 jsonString = JacksonUtils.toJson(queryTokenResult);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -235,7 +213,7 @@
        }
        Operator operator = baseResult.getOperator();
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        QueryStationsInfo queryStationsInfo = JSON.parseObject(decrypt, QueryStationsInfo.class);
        Integer pageNo = queryStationsInfo.getPageNo();
        Integer pageSize = queryStationsInfo.getPageSize();
@@ -253,7 +231,7 @@
        queryStationsInfoResult.setItemSize(Long.valueOf(siteListPaging.getTotal()).intValue());
        queryStationsInfoResult.setStationInfos(buildSite(parkingLots, siteListPaging.getRecords()));
        //参数加密
        String jsonString = JSON.toJSONString(queryStationsInfoResult);
        String jsonString = JacksonUtils.toJson(queryStationsInfoResult);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -276,8 +254,8 @@
        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.setAreaCode(datum.getDistrictsCode());
@@ -320,7 +298,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());
@@ -506,7 +484,7 @@
        }
        Operator operator = baseResult.getOperator();
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        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();
@@ -557,7 +535,7 @@
        }
        result.setStationStatusInfos(StationStatusInfos);
        //参数加密
        String jsonString = JSON.toJSONString(result);
        String jsonString = JacksonUtils.toJson(result);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -583,7 +561,7 @@
        }
        Operator operator = baseResult.getOperator();
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        QueryStationStats queryStationStats = JSON.parseObject(decrypt, QueryStationStats.class);
        QueryStationStatsResult result = new QueryStationStatsResult();
        ChargingPercentProvinceDto dto = new ChargingPercentProvinceDto();
@@ -627,7 +605,7 @@
        stationStats.setEquipmentStatsInfos(EquipmentStatsInfos);
        result.setStationStats(stationStats);
        //参数加密
        String jsonString = JSON.toJSONString(result);
        String jsonString = JacksonUtils.toJson(result);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -650,7 +628,7 @@
        }
        Operator operator = baseResult.getOperator();
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        QueryEquipAuth queryEquipAuth = JSON.parseObject(decrypt, QueryEquipAuth.class);
        String connectorID = queryEquipAuth.getConnectorID();
        TChargingGun tChargingGun = chargingGunClient.getChargingGunById(Integer.valueOf(connectorID)).getData();
@@ -694,7 +672,7 @@
                break;
        }
        //参数加密
        String jsonString = JSON.toJSONString(queryEquipAuthResult);
        String jsonString = JacksonUtils.toJson(queryEquipAuthResult);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -718,7 +696,7 @@
        }
        Operator operator = baseResult.getOperator();
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        QueryEquipBusinessPolicy queryEquipBusinessPolicy = JSON.parseObject(decrypt, QueryEquipBusinessPolicy.class);
        
        //构建返回结果
@@ -733,7 +711,7 @@
            baseResult.setRet(4004);
            baseResult.setMsg("connectorID 参数无效");
            //参数加密
            String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
            String jsonString = JacksonUtils.toJson(queryEquipBusinessPolicyResult);
            String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
            baseResult.setData(encrypt);
            baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -750,7 +728,7 @@
            queryEquipBusinessPolicyResult.setFailReason(1);
            queryEquipBusinessPolicyResult.setSumPeriod(0);
            //参数加密
            String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
            String jsonString = JacksonUtils.toJson(queryEquipBusinessPolicyResult);
            String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
            baseResult.setData(encrypt);
            baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -767,7 +745,7 @@
        queryEquipBusinessPolicyResult.setSumPeriod(PolicyInfos.size());
        queryEquipBusinessPolicyResult.setPolicyInfos(PolicyInfos);
        //参数加密
        String jsonString = JSON.toJSONString(queryEquipBusinessPolicyResult);
        String jsonString = JacksonUtils.toJson(queryEquipBusinessPolicyResult);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -833,7 +811,7 @@
        }
        Operator operator = baseResult.getOperator();
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        QueryStartCharge queryStartCharge = JSON.parseObject(decrypt, QueryStartCharge.class);
        
        //构建返回结果
@@ -850,7 +828,7 @@
            result.setFailReason(1);
            result.setStartChargeSeqStat(5);
            //参数加密
            String jsonString = JSON.toJSONString(result);
            String jsonString = JacksonUtils.toJson(result);
            String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
            baseResult.setData(encrypt);
            baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -862,7 +840,7 @@
            result.setFailReason(2);
            result.setStartChargeSeqStat(5);
            //参数加密
            String jsonString = JSON.toJSONString(result);
            String jsonString = JacksonUtils.toJson(result);
            String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
            baseResult.setData(encrypt);
            baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -883,7 +861,7 @@
            result.setFailReason(1);
            result.setStartChargeSeqStat(2);
            //参数加密
            String jsonString = JSON.toJSONString(result);
            String jsonString = JacksonUtils.toJson(result);
            String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
            baseResult.setData(encrypt);
            baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -893,7 +871,7 @@
        result.setSuccStat(0);
        result.setFailReason(0);
        //参数加密
        String jsonString = JSON.toJSONString(result);
        String jsonString = JacksonUtils.toJson(result);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -961,12 +939,12 @@
        }
        Operator operator = baseResult.getOperator();
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        QueryEquipChargeStatus queryEquipChargeStatus = JSON.parseObject(decrypt, QueryEquipChargeStatus.class);
        //校验token和签名
        QueryEquipChargeStatusResult queryEquipChargeStatusResult = buildQueryEquipChargeStatusResult(queryEquipChargeStatus.getStartChargeSeq());
        //参数加密
        String jsonString = JSON.toJSONString(queryEquipChargeStatusResult);
        String jsonString = JacksonUtils.toJson(queryEquipChargeStatusResult);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -1136,7 +1114,7 @@
        }
        Operator operator = baseResult.getOperator();
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        QueryStopCharge queryStopCharge = JSON.parseObject(decrypt, QueryStopCharge.class);
        QueryStopChargeResult queryStopChargeResult = new QueryStopChargeResult();
        queryStopChargeResult.setStartChargeSeq(queryStopCharge.getStartChargeSeq());
@@ -1150,14 +1128,14 @@
            queryStopChargeResult.setSuccStat(1);
            queryStopChargeResult.setFailReason(3);
            //参数加密
            String jsonString = JSON.toJSONString(queryStopChargeResult);
            String jsonString = JacksonUtils.toJson(queryStopChargeResult);
            String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
            baseResult.setData(encrypt);
            baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
            return baseResult;
        }
        //参数加密
        String jsonString = JSON.toJSONString(queryStopChargeResult);
        String jsonString = JacksonUtils.toJson(queryStopChargeResult);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -1351,7 +1329,7 @@
        }
        Operator operator = baseResult.getOperator();
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        QueryTerminalCode queryTerminalCode = JSON.parseObject(decrypt, QueryTerminalCode.class);
        String qrCode = queryTerminalCode.getQRCode();
        String substring = qrCode.substring(qrCode.indexOf("=") + 1);
@@ -1359,7 +1337,7 @@
        queryTerminalCodeResult.setTerminalCode(substring);
        
        //参数加密
        String jsonString = JSON.toJSONString(queryTerminalCodeResult);
        String jsonString = JacksonUtils.toJson(queryTerminalCodeResult);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
@@ -1400,7 +1378,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));
@@ -1425,12 +1403,12 @@
        }
        Operator operator = baseResult.getOperator();
        //解密参数
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
        String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
        QueryChargeOrderInfo queryChargeOrderInfo = JSON.parseObject(decrypt, QueryChargeOrderInfo.class);
        //构建返回结果
        QueryChargeOrderInfoResult result = buildQueryChargeOrderInfoResult(queryChargeOrderInfo);
        //参数加密
        String jsonString = JSON.toJSONString(result);
        String jsonString = JacksonUtils.toJson(result);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseResult.setData(encrypt);
        baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java
@@ -3,6 +3,7 @@
import cn.hutool.http.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.JacksonUtils;
import com.ruoyi.common.core.utils.SpringUtils;
import com.ruoyi.integration.drainage.kuaidian.model.NotificationStationChangeResult;
import com.ruoyi.integration.drainage.kuaidian.model.StationChange;
@@ -11,6 +12,7 @@
import com.ruoyi.other.api.domain.Operator;
import com.ruoyi.other.api.feignClient.OperatorClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import java.time.Instant;
import java.time.LocalDateTime;
@@ -19,6 +21,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -29,10 +32,9 @@
@Slf4j
public class TCECUtil {
    
//    private static OperatorClient operatorClient = SpringUtils.getBean(OperatorClient.class);
    public static Map<Long, Integer> map = new HashMap<>();
    private static OperatorClient operatorClient = SpringUtils.getBean(OperatorClient.class);
    
    /**
     * 获取token
@@ -60,7 +62,7 @@
        LocalDateTime localDateTime = Instant.ofEpochSecond(tokenAvailableTime).atOffset(ZoneOffset.UTC).toLocalDateTime();
        operator.setAccessToken(token);
        operator.setTokenAvailableTime(localDateTime);
//        operatorClient.editOperator(operator);
        operatorClient.editOperator(operator);
        return token;
    }
    
@@ -205,33 +207,20 @@
     */
    public static void buildBody(HttpRequest post, Object o, Operator operator){
        Long timeStamp = Long.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
        Integer integer = map.get(timeStamp);
        if(null == integer){
            integer = 1;
        }else{
            integer++;
        }
        map.put(timeStamp, integer);
        post.contentType("application/json;charset=utf-8");
        post.header("Authorization", "Bearer " + getToken(operator));
        BaseRequest baseRequest = new BaseRequest();
        baseRequest.setOperatorID(operator.getOurOperatorId());
        baseRequest.setTimeStamp(timeStamp);
        baseRequest.setSeq(String.format("%04d", integer));
        String jsonString = JSON.toJSONString(o);
        String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
        baseRequest.setSeq("0001");
        String jsonString = JacksonUtils.toJson(o);
        String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
        baseRequest.setData(encrypt);
        baseRequest.setOperator(operator);
        baseRequest.setSig(ourBuildSign(baseRequest));
        baseRequest.setSig(buildSign(baseRequest));
        post.body(JSON.toJSONString(baseRequest));
        //清空小于当前时间的map中的无效数据
        for (Long k : map.keySet()) {
            if(k <= (timeStamp - 10)){
                map.remove(k);
            }
        }
    }
    
    /**
     * 构建签名字符串
@@ -279,7 +268,7 @@
        switch (operator.getName()){
            case "XinDianTu":
                //进行字符串拼接、计算
                String m = new StringBuilder(operator.getOurOperatorId()).append(model.getData()).append(model.getTimeStamp()).append(model.getSeq()).toString();
                String m = new StringBuilder(model.getOperatorID()).append(model.getData()).append(model.getTimeStamp()).append(model.getSeq()).toString();
                byte[] hmacMd5 = SignUtil.getHMacMD5Bytes(key.getBytes(), m.getBytes());
                // 打印计算得到的签名Sig
                sign = SignUtil.bytesToHexString(hmacMd5);
@@ -290,6 +279,7 @@
        }
        return sign;
    }
    
    
    public static void main(String[] args) {
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TokenUtil.java
@@ -69,8 +69,8 @@
     *
     * @return 用户信息
     */
    public LoginUser getLoginUser() {
        LoginUser loginUser = getLoginUser(ServletUtils.getRequest());
    public Operator getLoginUser() {
        Operator loginUser = getLoginUser(ServletUtils.getRequest());
        if (loginUser == null) {
            throw new NotLoginException("令牌已过期,请重新登录!");
        }
@@ -82,7 +82,7 @@
     *
     * @return 用户信息
     */
    public LoginUser getLoginUser(HttpServletRequest request) {
    public Operator getLoginUser(HttpServletRequest request) {
        // 获取请求携带的令牌
        String token = SecurityUtils.getToken(request);
        return getLoginUser(token);
@@ -93,8 +93,8 @@
     *
     * @return 用户信息
     */
    public LoginUser getLoginUser(String token) {
        LoginUser user = null;
    public Operator getLoginUser(String token) {
        Operator user = null;
        try {
            if (StringUtils.isNotEmpty(token)) {
                String userkey = JwtUtils.getUserKey(token);
@@ -102,6 +102,7 @@
                return user;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return user;
    }
@@ -150,14 +151,7 @@
        String userKey = getTokenKey(operator.getToken());
        redisService.setCacheObject(userKey, operator, expireTime, TimeUnit.MINUTES);
    }
    public void refreshToken1(LoginUserApplet dto) {
        dto.setLoginTime(System.currentTimeMillis());
        dto.setExpireTime(dto.getLoginTime() + expireAppletTime * MILLIS_MINUTE);
        // 根据uuid将loginUser缓存
        String userKey = getTokenKey(dto.getToken());
        redisService.setCacheObject(userKey, dto, expireAppletTime, TimeUnit.MINUTES);
    }
    
    private String getTokenKey(String token) {
        return ACCESS_TOKEN + token;
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseModel.java
@@ -1,5 +1,7 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.other.api.domain.Operator;
import lombok.Data;
@@ -15,23 +17,27 @@
     * 运营商标识
     */
    @NotNull
    @JsonProperty("OperatorID")
    private String operatorID;
    /**
     * 参数内容
     */
    @NotNull
    @JsonProperty("Data")
    private String data;
    /**
     * 时间戳
     * yyyyMMddHHmmss
     */
    @NotNull
    @JsonProperty("TimeStamp")
    private Long timeStamp;
    /**
     * 自增序列
     * 4位自增序列取自时间戳,同一秒内按序列自增长,新秒重计。如 0001
     */
    @NotNull
    @JsonProperty("Seq")
    private String seq;
    /**
     * 运营商对象
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseRequest.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,5 +16,6 @@
     * 数字签名
     */
    @NotNull
    @JsonProperty("Sig")
    private String sig;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.other.api.domain.Operator;
import lombok.Data;
@@ -23,16 +24,19 @@
     * 500:系统错误
     */
    @NotNull
    @JsonProperty("Ret")
    private Integer ret;
    /**
     * 错误信息描述
     */
    @NotNull
    @JsonProperty("Msg")
    private String msg;
    /**
     * 签名
     */
    @NotNull
    @JsonProperty("Sig")
    private String sig;
    
    /**
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ChargeDetail.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -18,36 +19,43 @@
     * yyyy-MM-dd HH:mm:ss
     */
    @NotNull
    @JsonProperty("DetailStartTime")
    private String detailStartTime;
    /**
     * 结束时间
     * yyyy-MM-dd HH:mm:ss
     */
    @NotNull
    @JsonProperty("DetailEndTime")
    private String detailEndTime;
    /**
     * 时段电价
     */
    @Null
    @JsonProperty("ElecPrice")
    private BigDecimal elecPrice;
    /**
     * 时段服务费价格
     */
    @Null
    @JsonProperty("SevicePrice")
    private BigDecimal sevicePrice;
    /**
     * 时段充电量
     */
    @Null
    @JsonProperty("DetailPower")
    private BigDecimal detailPower;
    /**
     * 时段电费
     */
    @Null
    @JsonProperty("DetailElecMoney")
    private BigDecimal detailElecMoney;
    /**
     * 时段服务费
     */
    @Null
    @JsonProperty("DetailSeviceMoney")
    private BigDecimal detailSeviceMoney;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -17,41 +18,49 @@
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 充电设备接口名称
     */
    @Null
    @JsonProperty("ConnectorName")
    private String connectorName;
    /**
     * 充电设备接口类型
     */
    @NotNull
    @JsonProperty("ConnectorType")
    private Integer connectorType;
    /**
     * 额定电压上限
     */
    @NotNull
    @JsonProperty("VoltageUpperLimits")
    private Integer voltageUpperLimits;
    /**
     * 额定电压下限
     */
    @NotNull
    @JsonProperty("VoltageLowerLimits")
    private Integer voltageLowerLimits;
    /**
     * 额定电流
     */
    @NotNull
    @JsonProperty("Current")
    private Integer current;
    /**
     * 额定功率
     */
    @NotNull
    @JsonProperty("Power")
    private BigDecimal power;
    /**
     * 车位号
     */
    @Null
    @JsonProperty("ParkNo")
    private String parkNo;
    /**
     * 国家标准
@@ -59,10 +68,12 @@
     * 2:2015
     */
    @NotNull
    @JsonProperty("NationalStandard")
    private Integer nationalStandard;
    /**
     * 枪二维码
     */
    @Null
    @JsonProperty("QRCode")
    private String QRCode;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatsInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -16,10 +17,12 @@
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 充电设备接口累计电量
     */
    @NotNull
    @JsonProperty("ConnectorElectricity")
    private BigDecimal connectorElectricity;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatusInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -16,6 +17,7 @@
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 充电设备接口状态
@@ -27,6 +29,7 @@
     * 255:故障
     */
    @NotNull
    @JsonProperty("Status")
    private Integer status;
    /**
     * 车位状态
@@ -35,6 +38,7 @@
     * 50:占用
     */
    @Null
    @JsonProperty("ParkStatus")
    private Integer parkStatus;
    /**
     * 地锁状态
@@ -43,5 +47,6 @@
     * 50:已上锁
     */
    @Null
    @JsonProperty("LookStatus")
    private Integer lookStatus;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -18,56 +19,67 @@
     * 设备编号
     */
    @NotNull
    @JsonProperty("EquipmentID")
    private String equipmentID;
    /**
     * 设备生产商组织机构代码
     */
    @Null
    @JsonProperty("ManufacturerID")
    private String manufacturerID;
    /**
     * 设备生产商名称
     */
    @Null
    @JsonProperty("ManufacturerName")
    private String manufacturerName;
    /**
     * 设备型号
     */
    @Null
    @JsonProperty("EquipmentModel")
    private String equipmentModel;
    /**
     * 设备生产日期
     * YYYY-MM-DD
     */
    @Null
    @JsonProperty("ProductionDate")
    private String productionDate;
    /**
     * 设备类型
     */
    @NotNull
    @JsonProperty("EquipmentType")
    private Integer equipmentType;
    /**
     * 充电设备接口信息列表
     */
    @NotNull
    @JsonProperty("ConnectorInfos")
    private List<ConnectorInfo> connectorInfos;
    /**
     * 充电设备经度
     */
    @Null
    @JsonProperty("EquipmentLng")
    private BigDecimal equipmentLng;
    /**
     * 充电设备纬度
     */
    @Null
    @JsonProperty("EquipmentLat")
    private BigDecimal equipmentLat;
    /**
     * 充电设备总功率
     */
    @NotNull
    @JsonProperty("Power")
    private BigDecimal power;
    /**
     * 充电设备名称
     */
    @Null
    @JsonProperty("EquipmentName")
    private String equipmentName;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentStatsInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -17,15 +18,18 @@
     * 设备编码
     */
    @NotNull
    @JsonProperty("EquipmentID")
    private String equipmentID;
    /**
     * 充电设备接口累计电量
     */
    @NotNull
    @JsonProperty("EquipmentElectricity")
    private BigDecimal equipmentElectricity;
    /**
     * 充电设备接口统计信息列表
     */
    @NotNull
    @JsonProperty("ConnectorStatsInfos")
    private List<ConnectorStatsInfo> connectorStatsInfos;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -18,43 +19,51 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 开始充电时间
     * yyyy-MM-dd HH:mm:ss
     */
    @NotNull
    @JsonProperty("StartTime")
    private String startTime;
    /**
     * 结束充电时间
     * yyyy-MM-dd HH:mm:ss
     */
    @NotNull
    @JsonProperty("EndTime")
    private String endTime;
    /**
     * 累计充电量
     */
    @NotNull
    @JsonProperty("TotalPower")
    private BigDecimal totalPower;
    /**
     * 总电费
     */
    @NotNull
    @JsonProperty("TotalElecMoney")
    private BigDecimal totalElecMoney;
    /**
     * 总服务费
     */
    @NotNull
    @JsonProperty("TotalSeviceMoney")
    private BigDecimal totalSeviceMoney;
    /**
     * 累计总金额
     */
    @NotNull
    @JsonProperty("TotalMoney")
    private BigDecimal totalMoney;
    /**
     * 充电结束原因
@@ -66,27 +75,32 @@
     * 5·99:自定义
     */
    @NotNull
    @JsonProperty("StopReason")
    private Integer stopReason;
    /**
     * 时段数 N
     * 0·32
     */
    @Null
    @JsonProperty("SumPeriod")
    private Integer sumPeriod;
    /**
     * 充电明细信息
     */
    @Null
    @JsonProperty("ChargeDetails")
    private List<ChargeDetail> chargeDetails;
    /**
     * 占位费
     */
    @Null
    @JsonProperty("TotalDelayMoney")
    private BigDecimal totalDelayMoney;
    /**
     * 车辆识别码
     */
    @Null
    @JsonProperty("VIN")
    private String VIN;
    
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfoResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,11 +16,13 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 确认结果
@@ -27,5 +30,6 @@
     * 1:争议交易
     * 2·99:自定义
     */
    @JsonProperty("ConfirmResult")
    private Integer confirmResult;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationEquipChargeStatusResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,6 +16,7 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 操作结果
@@ -22,5 +24,6 @@
     * 1:失败
     */
    @NotNull
    @JsonProperty("SuccStat")
    private Integer succStat;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStartCharge.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,6 +16,7 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 充电订单状态
@@ -25,15 +27,18 @@
     * 5:未知
     */
    @NotNull
    @JsonProperty("StartChargeSeqStat")
    private Integer startChargeSeqStat;
    /**
     * 充电设别接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 充电启动时间
     */
    @NotNull
    @JsonProperty("StartTime")
    private String startTime;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStartChargeResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,6 +16,7 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 操作结果
@@ -22,6 +24,7 @@
     * 1:失败
     */
    @NotNull
    @JsonProperty("SuccStat")
    private Integer succStat;
    /**
     * 失败原因
@@ -29,5 +32,6 @@
     * 1:接收失败
     */
    @NotNull
    @JsonProperty("FailReason")
    private Integer failReason;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStationStatusResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -17,5 +18,6 @@
     * 1:丢弃/忽略,不需要重试
     */
    @NotNull
    @JsonProperty("Status")
    private Integer status;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStopCharge.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,6 +16,7 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 操作结果
@@ -22,6 +24,7 @@
     * 1:失败
     */
    @NotNull
    @JsonProperty("SuccStat")
    private Integer succStat;
    /**
     * 失败原因
@@ -29,5 +32,6 @@
     * 1:接收失败
     */
    @NotNull
    @JsonProperty("FailReason")
    private Integer failReason;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStopChargeResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,6 +16,7 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 充电订单状态
@@ -25,11 +27,13 @@
     * 5:未知
     */
    @NotNull
    @JsonProperty("StartChargeSeqStat")
    private Integer startChargeSeqStat;
    /**
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 操作结果
@@ -37,6 +41,7 @@
     * 1:失败
     */
    @NotNull
    @JsonProperty("SuccStat")
    private Integer succStat;
    /**
     * 失败原因
@@ -47,5 +52,6 @@
     * 4`9:自定义
     */
    @NotNull
    @JsonProperty("FailReason")
    private Integer failReason;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/OperatorInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -16,30 +17,36 @@
     * 运营商ID
     */
    @NotNull
    @JsonProperty("OperatorID")
    private String operatorID;
    /**
     * 运营商名称
     */
    @NotNull
    @JsonProperty("OperatorName")
    private String operatorName;
    /**
     * 运营商电话1
     */
    @NotNull
    @JsonProperty("OperatorTel1")
    private String operatorTel1;
    /**
     * 运营商电话2
     */
    @Null
    @JsonProperty("OperatorTel2")
    private String operatorTel2;
    /**
     * 运营商注册地址
     */
    @Null
    @JsonProperty("OperatorRegAddress")
    private String operatorRegAddress;
    /**
     * 备注
     */
    @Null
    @JsonProperty("OperatorNote")
    private String operatorNote;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/PlaceHolder.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -17,26 +18,31 @@
     * 免费时长
     */
    @NotNull
    @JsonProperty("FreeTime")
    private Integer freeTime;
    /**
     * 嘴阀占位费
     */
    @NotNull
    @JsonProperty("MaxFee")
    private BigDecimal maxFee;
    /**
     * 生效开始时间
     * yyyy-MM-dd HH:mm:ss
     */
    @NotNull
    @JsonProperty("EffectStartTime")
    private String effectStartTime;
    /**
     * 生效结束时间
     */
    @NotNull
    @JsonProperty("EffectEndTime")
    private String effectEndTime;
    /**
     * 占位费价格
     */
    @NotNull
    @JsonProperty("PlaceHolderPrices")
    private List<PlaceHolderPrice> placeHolderPrices;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/PlaceHolderPrice.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -17,16 +18,19 @@
     * HH:mm
     */
    @NotNull
    @JsonProperty("StartTime")
    private String startTime;
    /**
     * 结束时段
     * HH:mm
     */
    @NotNull
    @JsonProperty("EndTime")
    private String endTime;
    /**
     * 单价
     */
    @NotNull
    @JsonProperty("Price")
    private BigDecimal price;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/PolicyInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -17,15 +18,18 @@
     * HHmmss
     */
    @NotNull
    @JsonProperty("StartTime")
    private String startTime;
    /**
     * 时段电费
     */
    @NotNull
    @JsonProperty("ElecPrice")
    private BigDecimal elecPrice;
    /**
     * 时段服务费
     */
    @NotNull
    @JsonProperty("SevicePrice")
    private BigDecimal sevicePrice;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipAuth.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,10 +16,12 @@
     * 设备认证流水
     */
    @NotNull
    @JsonProperty("EquipAuthSeq")
    private String equipAuthSeq;
    /**
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipAuthResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,11 +16,13 @@
     * 设备认证流水号
     */
    @NotNull
    @JsonProperty("EquipAuthSeq")
    private String equipAuthSeq;
    /**
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 操作结果
@@ -27,6 +30,7 @@
     * 1:失败
     */
    @NotNull
    @JsonProperty("SuccStat")
    private Integer succStat;
    /**
     * 失败原因
@@ -36,5 +40,6 @@
     * 3·99:自定义
     */
    @NotNull
    @JsonProperty("FailReason")
    private Integer failReason;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicy.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -16,10 +17,12 @@
     * 格式”运营商ID+唯一编号“。27字符
     */
    @NotNull
    @JsonProperty("EquipBizSeq")
    private String equipBizSeq;
    /**
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicyResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -16,11 +17,13 @@
     * 业务策略查询流水号
     */
    @NotNull
    @JsonProperty("EquipBizSeq")
    private String equipBizSeq;
    /**
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 操作结果
@@ -28,6 +31,7 @@
     * 1:失败
     */
    @NotNull
    @JsonProperty("SuccStat")
    private Integer succStat;
    /**
     * 失败原因
@@ -35,17 +39,20 @@
     * 1:此充电桩业务策略不存在
     */
    @NotNull
    @JsonProperty("FailReason")
    private Integer failReason;
    /**
     * 时段数N
     * 0`32
     */
    @NotNull
    @JsonProperty("SumPeriod")
    private Integer sumPeriod;
    /**
     * 计策信息
     */
    @NotNull
    @JsonProperty("PolicyInfos")
    private List<PolicyInfo> policyInfos;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -16,15 +17,18 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 抢号
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 车辆识别码
     */
    @Null
    @JsonProperty("VIN")
    private String VIN;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -18,6 +19,7 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 充电订单状态
@@ -28,11 +30,13 @@
     * 5:未知
     */
    @NotNull
    @JsonProperty("StartChargeSeqStat")
    private Integer startChargeSeqStat;
    /**
     * 充电设备接口编号
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 充电设备接口状态
@@ -43,87 +47,104 @@
     * 255:故障
     */
    @NotNull
    @JsonProperty("ConnectorStatus")
    private Integer connectorStatus;
    /**
     * A相电流
     */
    @NotNull
    @JsonProperty("CurrentA")
    private BigDecimal currentA;
    /**
     * B相电流
     */
    @Null
    @JsonProperty("CurrentB")
    private BigDecimal currentB;
    /**
     * C相电流
     */
    @Null
    @JsonProperty("CurrentC")
    private BigDecimal currentC;
    /**
     * A相电压
     */
    @NotNull
    @JsonProperty("VoltageA")
    private BigDecimal voltageA;
    /**
     * B相电压
     */
    @Null
    @JsonProperty("VoltageB")
    private BigDecimal voltageB;
    /**
     * C相电压
     */
    @Null
    @JsonProperty("VoltageC")
    private BigDecimal voltageC;
    /**
     * 电池剩余电量
     */
    @NotNull
    @JsonProperty("Soc")
    private BigDecimal soc;
    /**
     * 开始充电时间
     */
    @NotNull
    @JsonProperty("StartTime")
    private String startTime;
    /**
     * 本次采样时间
     */
    @NotNull
    @JsonProperty("EndTime")
    private String endTime;
    /**
     * 累计充电量
     */
    @NotNull
    @JsonProperty("TotalPower")
    private BigDecimal totalPower;
    /**
     * 累计电费
     */
    @Null
    @JsonProperty("ElecMoney")
    private BigDecimal elecMoney;
    /**
     * 累计服务费
     */
    @Null
    @JsonProperty("SeviceMoney")
    private BigDecimal seviceMoney;
    /**
     * 累计总金额
     */
    @Null
    @JsonProperty("TotalMoney")
    private BigDecimal totalMoney;
    /**
     * 时段数N
     * 0`32
     */
    @Null
    @JsonProperty("SumPeriod")
    private Integer sumPeriod;
    /**
     * 充电明细信息
     */
    @Null
    @JsonProperty("ChargeDetails")
    private List<ChargeDetail> chargeDetails;
    /**
     * 车辆识别码
     */
    @Null
    @JsonProperty("VIN")
    private String VIN;
    
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStartCharge.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -17,25 +18,30 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 二维码其他信息
     */
    @NotNull
    @JsonProperty("QRCode")
    private String QRCode;
    /**
     * 充电余额
     */
    @NotNull
    @JsonProperty("ChargingAmt")
    private BigDecimal chargingAmt;
    /**
     * 充电车牌号
     */
    @Null
    @JsonProperty("PlateNum")
    private String plateNum;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStartChargeResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -16,6 +17,7 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 充电订单状态
@@ -26,11 +28,13 @@
     * 5:未知
     */
    @NotNull
    @JsonProperty("StartChargeSeqStat")
    private Integer startChargeSeqStat;
    /**
     * 充电设别接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
    /**
     * 操作结果
@@ -38,6 +42,7 @@
     * 1:失败
     */
    @NotNull
    @JsonProperty("SuccStat")
    private Integer succStat;
    /**
     * 失败原因
@@ -47,5 +52,6 @@
     * 3`9:自定义
     */
    @NotNull
    @JsonProperty("FailReason")
    private Integer failReason;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStats.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,17 +16,20 @@
     * 充电站ID
     */
    @NotNull
    @JsonProperty("StationID")
    private String stationID;
    /**
     * 统计开始时间
     * yyyy-MM-dd
     */
    @NotNull
    @JsonProperty("StartTime")
    private String startTime;
    /**
     * 统计结束时间
     * yyyy-MM-dd
     */
    @NotNull
    @JsonProperty("EndTime")
    private String endTime;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatsResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,5 +16,6 @@
     * 充电站统计信息
     */
    @NotNull
    @JsonProperty("StationStats")
    private StationStatsInfo stationStats;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatus.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -17,5 +18,6 @@
     * 数组长度不超过50
     */
    @NotNull
    @JsonProperty("StationIDs")
    private List<String> stationIDs;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatusResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@@ -14,9 +15,11 @@
    /**
     * 结果总数
     */
    @JsonProperty("Total")
    private Integer total;
    /**
     * 设备接口状态列表
     */
    @JsonProperty("StationStatusInfos")
    private List<StationStatusInfo> stationStatusInfos;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.Null;
@@ -15,17 +16,20 @@
     * yyyy-MM-dd HH:mm:ss
     */
    @Null
    @JsonProperty("LastQueryTime")
    private String lastQueryTime;
    /**
     * 查询页码
     * 默认1
     */
    @Null
    @JsonProperty("PageNo")
    private Integer pageNo;
    /**
     * 每页数量
     * 默认10
     */
    @Null
    @JsonProperty("PageSize")
    private Integer pageSize;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfoResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -17,20 +18,24 @@
     * 当前页数
     */
    @NotNull
    @JsonProperty("PageNo")
    private Integer pageNo;
    /**
     * 页码总数
     */
    @NotNull
    @JsonProperty("PageCount")
    private Integer pageCount;
    /**
     * 总记录条数
     */
    @NotNull
    @JsonProperty("ItemSize")
    private Integer itemSize;
    /**
     * 充电站信息列表
     */
    @NotNull
    @JsonProperty("StationInfos")
    private List<StationInfo> stationInfos;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStopCharge.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,10 +16,12 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 充电设备接口编码
     */
    @NotNull
    @JsonProperty("ConnectorID")
    private String connectorID;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStopChargeResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,6 +16,7 @@
     * 充电订单号
     */
    @NotNull
    @JsonProperty("StartChargeSeq")
    private String startChargeSeq;
    /**
     * 充电订单状态
@@ -25,6 +27,7 @@
     * 5:未知
     */
    @NotNull
    @JsonProperty("StartChargeSeqStat")
    private Integer startChargeSeqStat;
    /**
     * 操作结果
@@ -32,6 +35,7 @@
     * 1:失败
     */
    @NotNull
    @JsonProperty("SuccStat")
    private Integer succStat;
    /**
     * 失败原因
@@ -42,6 +46,7 @@
     * 4`9:自定义
     */
    @NotNull
    @JsonProperty("FailReason")
    private Integer failReason;
    
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryToken.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,10 +16,12 @@
     * 运营商标识
     */
    @NotNull
    @JsonProperty("OperatorID")
    private String operatorID;
    /**
     * 运营商秘钥
     */
    @NotNull
    @JsonProperty("OperatorSecret")
    private String operatorSecret;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryTokenResult.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -15,6 +16,7 @@
     * 运营商标识
     */
    @NotNull
    @JsonProperty("OperatorID")
    private String operatorID;
    /**
     * 成功状态
@@ -22,16 +24,19 @@
     * 1:失败
     */
    @NotNull
    @JsonProperty("SuccStat")
    private Integer succStat;
    /**
     * 获取的凭证
     */
    @NotNull
    @JsonProperty("AccessToken")
    private String accessToken;
    /**
     * 凭证有效期,秒
     */
    @NotNull
    @JsonProperty("TokenAvailableTime")
    private Long tokenAvailableTime;
    /**
     * 失败原因
@@ -41,5 +46,6 @@
     * 3`9自定义
     */
    @NotNull
    @JsonProperty("FailReason")
    private Integer failReason;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -18,147 +19,176 @@
     * 充电站ID
     */
    @NotNull
    @JsonProperty("StationID")
    private String stationID;
    /**
     * 运营商ID
     */
    @NotNull
    @JsonProperty("OperatorID")
    private String operatorID;
    /**
     * 设备所属方ID
     * 设备所属运营平台组织机构代码
     */
    @NotNull
    @JsonProperty("EquipmentOwnerID")
    private String equipmentOwnerID;
    /**
     * 充电站名称
     */
    @NotNull
    @JsonProperty("StationName")
    private String stationName;
    /**
     * 充电站国家代码
     */
    @NotNull
    @JsonProperty("CountryCode")
    private String countryCode;
    /**
     * 充电站省市辖区编码
     */
    @NotNull
    @JsonProperty("AreaCode")
    private String areaCode;
    /**
     * 详细地址
     */
    @NotNull
    @JsonProperty("Address")
    private String address;
    /**
     * 站点电话
     */
    @Null
    @JsonProperty("StationTel")
    private String stationTel;
    /**
     * 站点电话
     */
    @NotNull
    @JsonProperty("ServiceTel")
    private String serviceTel;
    /**
     * 站点类型
     */
    @NotNull
    @JsonProperty("StationType")
    private Integer stationType;
    /**
     * 站点状态
     */
    @NotNull
    @JsonProperty("StationStatus")
    private Integer stationStatus;
    /**
     * 车位数量,0:未知
     */
    @NotNull
    @JsonProperty("ParkNums")
    private Integer parkNums;
    /**
     * 经度(保留6位小数)
     */
    @NotNull
    @JsonProperty("StationLng")
    private BigDecimal stationLng;
    /**
     * 纬度(保留6位小数)
     */
    @NotNull
    @JsonProperty("StationLat")
    private BigDecimal stationLat;
    /**
     * 站点引导
     */
    @Null
    @JsonProperty("SiteGuide")
    private String siteGuide;
    /**
     * 建设场所
     */
    @NotNull
    @JsonProperty("Construction")
    private Integer construction;
    /**
     * 站点照片
     * 字符串数组
     */
    @Null
    @JsonProperty("Pictures")
    private List<String> pictures;
    /**
     * 使用车型描述
     */
    @Null
    @JsonProperty("MatchCars")
    private String matchCars;
    /**
     * 车位楼层及数量描述
     */
    @Null
    @JsonProperty("ParkInfo")
    private String parkInfo;
    /**
     * 营业时间
     */
    @Null
    @JsonProperty("BusineHours")
    private String busineHours;
    /**
     * 充电电费率描述
     */
    @Null
    @JsonProperty("ElectricityFee")
    private String electricityFee;
    /**
     * 服务费率描述
     */
    @Null
    @JsonProperty("ServiceFee")
    private String serviceFee;
    /**
     * 停车费率描述
     */
    @Null
    @JsonProperty("ParkFee")
    private String parkFee;
    /**
     * 支付方式:刷卡、线上、现金
     */
    @Null
    @JsonProperty("Payment")
    private String payment;
    /**
     * 是否支持预约
     */
    @Null
    @JsonProperty("SupportOrder")
    private Integer supportOrder;
    /**
     * 备注
     */
    @Null
    @JsonProperty("Remark")
    private String remark;
    /**
     * 充电设备信息列表
     */
    @NotNull
    @JsonProperty("EquipmentInfos")
    private List<EquipmentInfo> equipmentInfos;
    /**
     * 占位费描述
     */
    @Null
    @JsonProperty("OvertimeFee")
    private String overtimeFee;
    /**
     * 占位费信息
     */
    @Null
    @JsonProperty("PlaceHolder")
    private PlaceHolder placeHolder;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatsInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -17,27 +18,32 @@
     * 充电站ID
     */
    @NotNull
    @JsonProperty("StationID")
    private String stationID;
    /**
     * 统计的开始时间
     * yyyy-MM-dd
     */
    @NotNull
    @JsonProperty("StartTime")
    private String startTime;
    /**
     * 统计的结束时间
     * yyyy-MM-dd
     */
    @NotNull
    @JsonProperty("EndTime")
    private String endTime;
    /**
     * 充电站累计电量 kw/h
     */
    @NotNull
    @JsonProperty("StationElectricity")
    private BigDecimal stationElectricity;
    /**
     * 充电设备统计信息列表
     */
    @NotNull
    @JsonProperty("EquipmentStatsInfos")
    private List<EquipmentStatsInfo> equipmentStatsInfos;
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatusInfo.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -16,9 +17,11 @@
     * 充电站ID
     */
    @NotNull
    @JsonProperty("StationID")
    private String stationID;
    /**
     * 充电设备接口状态列表
     */
    @JsonProperty("ConnectorStatusInfos")
    private List<ConnectorStatusInfo> connectorStatusInfos;
}