|
@@ -7,7 +7,10 @@ import com.evp.comm.server.xnet.server.process.protocol.EvpsProtocolConst;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.slf4j.MDC;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/*
|
|
|
serviceId 서비스ID String 19
|
|
@@ -109,16 +112,33 @@ public class EvpsService implements EvpsCommResponse {
|
|
|
|
|
|
service.setStatusCd(0);
|
|
|
|
|
|
- // 경로수
|
|
|
- int routeCount = ((buffer[idx++] & 0xFF) << 24) | ((buffer[idx++] & 0xFF) << 16) | ((buffer[idx++] & 0xFF) << 8) | (buffer[idx++] & 0xFF);
|
|
|
-
|
|
|
this.dbmsDataProcess.add(new DbmsData(DbmsData.DBMS_DATA_INS_SERVICE, packet.getCenter(), service));
|
|
|
|
|
|
if (packet.getPacket().getTotal() == 1) {
|
|
|
- // 프레임이 한번에 전송되서 온것
|
|
|
+ // 프레임이 한번에 전송되어서 온것
|
|
|
+ // 경로수
|
|
|
+ int routeCount = ((buffer[idx++] & 0xFF) << 24) | ((buffer[idx++] & 0xFF) << 16) | ((buffer[idx++] & 0xFF) << 8) | (buffer[idx++] & 0xFF);
|
|
|
int reqRouteSize = routeCount * 8; // lat(4), lng(4)
|
|
|
if (packet.getPacket().getFrameLength() != EvpsProtocolConst.EVPS_HEAD_SIZE + EvpsProtocolConst.MIN_SERVICE_DATA_SIZE + reqRouteSize) {
|
|
|
+ List<HashMap<String, Object>> lists = new ArrayList<>();
|
|
|
+ for (int ii = 0; ii < routeCount; ii++) {
|
|
|
+
|
|
|
+ int routeLat = ((buffer[idx++] & 0xFF) << 24) | ((buffer[idx++] & 0xFF) << 16) | ((buffer[idx++] & 0xFF) << 8) | (buffer[idx++] & 0xFF);
|
|
|
+ int routeLng = ((buffer[idx++] & 0xFF) << 24) | ((buffer[idx++] & 0xFF) << 16) | ((buffer[idx++] & 0xFF) << 8) | (buffer[idx++] & 0xFF);
|
|
|
+
|
|
|
+ service.setArrLng(arrivalLng/EvpsProtocolConst.EVPS_GEO_CORRECT);
|
|
|
|
|
|
+ HashMap<String, Object> param = new HashMap<>();
|
|
|
+ param.put("SERVICE_ID", service.getServiceId());
|
|
|
+ param.put("SEQ_NO", ii+1);
|
|
|
+ param.put("LAT", routeLat/EvpsProtocolConst.EVPS_GEO_CORRECT);
|
|
|
+ param.put("LNG", routeLng/EvpsProtocolConst.EVPS_GEO_CORRECT);
|
|
|
+
|
|
|
+ lists.add(param);
|
|
|
+ }
|
|
|
+ if (!lists.isEmpty()) {
|
|
|
+ this.dbmsDataProcess.add(new DbmsData(DbmsData.DBMS_DATA_INS_ROUTE, packet.getCenter(), lists));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
@@ -128,7 +148,6 @@ public class EvpsService implements EvpsCommResponse {
|
|
|
else {
|
|
|
// 패킷이 분할되서 온것
|
|
|
|
|
|
-
|
|
|
if (packet.getPacket().getCurrent() == packet.getPacket().getTotal()) {
|
|
|
// 마지막 패킷이 들어온것
|
|
|
}
|