mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-13 03:39:55 +08:00
同步获取响应数据
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.common.protocol;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -1,4 +1,8 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.common.protocol;
|
||||||
|
|
||||||
|
import com.jsowell.common.protocol.Message;
|
||||||
|
import com.jsowell.common.protocol.RpcRequest;
|
||||||
|
import com.jsowell.common.protocol.RpcResponse;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.common.protocol;
|
||||||
|
|
||||||
|
import com.jsowell.common.protocol.Message;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
@@ -7,7 +8,7 @@ import java.util.UUID;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ToString
|
@ToString
|
||||||
public class RpcRequest extends Message{
|
public class RpcRequest extends Message {
|
||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.common.protocol;
|
||||||
|
|
||||||
|
import com.jsowell.common.protocol.Message;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ToString
|
@ToString
|
||||||
public class RpcResponse extends Message{
|
public class RpcResponse extends Message {
|
||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.jsowell.pile.rpc;
|
package com.jsowell.common.protocol;
|
||||||
|
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.jsowell.common.util;
|
||||||
|
|
||||||
|
import com.jsowell.common.protocol.SyncPromise;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class RpcUtil {
|
||||||
|
|
||||||
|
private final static Map<String, SyncPromise> syncPromiseMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
public static Map<String, SyncPromise> getSyncPromiseMap() {
|
||||||
|
return syncPromiseMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,14 +1,13 @@
|
|||||||
package com.jsowell.netty.server.yunkuaichong;
|
package com.jsowell.netty.server.yunkuaichong;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
|
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
|
||||||
import com.jsowell.common.enums.ykc.PileChannelEntity;
|
import com.jsowell.common.enums.ykc.PileChannelEntity;
|
||||||
import com.jsowell.common.util.BytesUtil;
|
import com.jsowell.common.util.BytesUtil;
|
||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
import com.jsowell.common.util.YKCUtils;
|
import com.jsowell.common.util.YKCUtils;
|
||||||
import com.jsowell.pile.rpc.RpcUtil;
|
import com.jsowell.common.util.RpcUtil;
|
||||||
import com.jsowell.pile.rpc.SyncPromise;
|
import com.jsowell.common.protocol.SyncPromise;
|
||||||
import com.jsowell.netty.service.yunkuaichong.YKCBusinessService;
|
import com.jsowell.netty.service.yunkuaichong.YKCBusinessService;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.channel.*;
|
import io.netty.channel.*;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.pile.rpc;
|
||||||
|
|
||||||
import io.netty.channel.ChannelInitializer;
|
import io.netty.channel.ChannelInitializer;
|
||||||
import io.netty.channel.ChannelPipeline;
|
import io.netty.channel.ChannelPipeline;
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.pile.rpc;
|
||||||
|
|
||||||
|
import com.jsowell.common.protocol.Message;
|
||||||
|
import com.jsowell.common.protocol.MessageConstant;
|
||||||
import com.jsowell.common.util.bean.SerializationUtil;
|
import com.jsowell.common.util.bean.SerializationUtil;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.pile.rpc;
|
||||||
|
|
||||||
|
import com.jsowell.common.protocol.Message;
|
||||||
import com.jsowell.common.util.bean.SerializationUtil;
|
import com.jsowell.common.util.bean.SerializationUtil;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.pile.rpc;
|
||||||
|
|
||||||
import io.netty.bootstrap.Bootstrap;
|
import io.netty.bootstrap.Bootstrap;
|
||||||
import io.netty.channel.*;
|
import io.netty.channel.*;
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.pile.rpc;
|
||||||
|
|
||||||
|
import com.jsowell.common.protocol.RpcRequest;
|
||||||
|
import com.jsowell.common.protocol.RpcResponse;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.channel.DefaultEventLoopGroup;
|
import io.netty.channel.DefaultEventLoopGroup;
|
||||||
import io.netty.channel.EventLoopGroup;
|
import io.netty.channel.EventLoopGroup;
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.pile.rpc;
|
||||||
|
|
||||||
import com.jsowell.pile.rpc.RpcUtil;
|
import com.jsowell.common.protocol.RpcResponse;
|
||||||
import com.jsowell.pile.rpc.SyncPromise;
|
import com.jsowell.common.protocol.SyncPromise;
|
||||||
|
import com.jsowell.common.util.RpcUtil;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.channel.SimpleChannelInboundHandler;
|
import io.netty.channel.SimpleChannelInboundHandler;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.pile.rpc;
|
||||||
|
|
||||||
import io.netty.bootstrap.ServerBootstrap;
|
import io.netty.bootstrap.ServerBootstrap;
|
||||||
import io.netty.channel.*;
|
import io.netty.channel.*;
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
package com.jsowell.pile.rpc;
|
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.google.common.primitives.Bytes;
|
|
||||||
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
|
|
||||||
import com.jsowell.common.enums.ykc.PileChannelEntity;
|
|
||||||
import com.jsowell.common.util.BytesUtil;
|
|
||||||
import com.jsowell.common.util.CRC16Util;
|
|
||||||
import com.jsowell.common.util.YKCUtils;
|
|
||||||
import com.jsowell.pile.rpc.SyncPromise;
|
|
||||||
import com.jsowell.pile.service.PileMsgRecordService;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
|
||||||
import io.netty.channel.Channel;
|
|
||||||
import io.netty.channel.ChannelFuture;
|
|
||||||
import io.netty.channel.ChannelFutureListener;
|
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
public class RpcUtil {
|
|
||||||
|
|
||||||
private final static Map<String, SyncPromise> syncPromiseMap = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
public static Map<String, SyncPromise> getSyncPromiseMap() {
|
|
||||||
return syncPromiseMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.pile.rpc;
|
||||||
|
|
||||||
import io.netty.channel.ChannelInitializer;
|
import io.netty.channel.ChannelInitializer;
|
||||||
import io.netty.channel.ChannelPipeline;
|
import io.netty.channel.ChannelPipeline;
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.pile.rpc;
|
||||||
|
|
||||||
import com.jsowell.pile.rpc.RpcUtil;
|
import com.jsowell.common.protocol.RpcRequest;
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
public class TestRpcClient {
|
public class TestRpcClient {
|
||||||
public static void main(String[] args) throws Exception{
|
public static void main(String[] args) throws Exception{
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.jsowell.netty.rpc;
|
package com.jsowell.pile.rpc;
|
||||||
|
|
||||||
public class TestRpcServer {
|
public class TestRpcServer {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
@@ -2,9 +2,12 @@ package com.jsowell.pile.service;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.jsowell.common.constant.CacheConstants;
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
|
import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
|
||||||
import com.jsowell.common.core.redis.RedisCache;
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
|
import com.jsowell.common.enums.ykc.ChargingFailedReasonEnum;
|
||||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||||
import com.jsowell.common.exception.BusinessException;
|
import com.jsowell.common.exception.BusinessException;
|
||||||
|
import com.jsowell.common.util.BytesUtil;
|
||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
import com.jsowell.pile.domain.PileBillingTemplate;
|
import com.jsowell.pile.domain.PileBillingTemplate;
|
||||||
import com.jsowell.pile.domain.PileFirmwareInfo;
|
import com.jsowell.pile.domain.PileFirmwareInfo;
|
||||||
@@ -296,6 +299,49 @@ public class PileRemoteService {
|
|||||||
// 解析结果
|
// 解析结果
|
||||||
if (Objects.isNull(bytes)) {
|
if (Objects.isNull(bytes)) {
|
||||||
result = "0";
|
result = "0";
|
||||||
|
} else {
|
||||||
|
YKCDataProtocol ykcDataProtocol = new YKCDataProtocol(bytes);
|
||||||
|
byte[] msgBody = ykcDataProtocol.getMsgBody();
|
||||||
|
int startIndex = 0;
|
||||||
|
int length = 16;
|
||||||
|
|
||||||
|
// 交易流水号
|
||||||
|
byte[] transactionCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
||||||
|
String transactionCode = BytesUtil.bcd2Str(transactionCodeByteArr);
|
||||||
|
|
||||||
|
// 桩编码
|
||||||
|
startIndex += length;
|
||||||
|
length = 7;
|
||||||
|
byte[] pileSnByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
||||||
|
String pileSn = BytesUtil.bcd2Str(pileSnByteArr);
|
||||||
|
|
||||||
|
// 枪口号
|
||||||
|
startIndex += length;
|
||||||
|
length = 1;
|
||||||
|
byte[] connectorCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
||||||
|
String connectorCode = BytesUtil.bcd2Str(connectorCodeByteArr);
|
||||||
|
|
||||||
|
// 启动结果 0x00失败 0x01成功
|
||||||
|
startIndex += length;
|
||||||
|
length = 1;
|
||||||
|
byte[] resultCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
||||||
|
String resultCode = BytesUtil.bcd2Str(resultCodeByteArr);
|
||||||
|
|
||||||
|
if (StringUtils.equals(resultCode, "00")) {
|
||||||
|
result = "0";
|
||||||
|
} else {
|
||||||
|
result = "1";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 失败原因
|
||||||
|
startIndex += length;
|
||||||
|
length = 1;
|
||||||
|
byte[] failedReasonByteArr = BytesUtil.copyBytes(msgBody, startIndex, length);
|
||||||
|
String failedReason = BytesUtil.bcd2Str(failedReasonByteArr);
|
||||||
|
String failedReasonMsg = ChargingFailedReasonEnum.getMsgByCode(Integer.parseInt(failedReason, 16));
|
||||||
|
|
||||||
|
log.info("0x59预约充电响应sync, 交易流水号:{}, 桩SN:{}, 枪口号:{}, 结果:{}, 失败原因:{}",
|
||||||
|
transactionCode, pileSn, connectorCode, resultCode, failedReasonMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import com.jsowell.common.exception.BusinessException;
|
|||||||
import com.jsowell.common.util.*;
|
import com.jsowell.common.util.*;
|
||||||
import com.jsowell.common.util.Cp56Time2a.Cp56Time2aUtil;
|
import com.jsowell.common.util.Cp56Time2a.Cp56Time2aUtil;
|
||||||
import com.jsowell.pile.domain.ykcCommond.*;
|
import com.jsowell.pile.domain.ykcCommond.*;
|
||||||
import com.jsowell.pile.rpc.RpcUtil;
|
import com.jsowell.common.util.RpcUtil;
|
||||||
import com.jsowell.pile.rpc.SyncPromise;
|
import com.jsowell.common.protocol.SyncPromise;
|
||||||
import com.jsowell.pile.service.*;
|
import com.jsowell.pile.service.*;
|
||||||
import com.jsowell.pile.vo.web.BillingTemplateVO;
|
import com.jsowell.pile.vo.web.BillingTemplateVO;
|
||||||
import com.jsowell.pile.vo.web.PileModelInfoVO;
|
import com.jsowell.pile.vo.web.PileModelInfoVO;
|
||||||
|
|||||||
Reference in New Issue
Block a user