|
@@ -6,12 +6,24 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.camel.CamelContext;
|
|
import org.apache.camel.CamelContext;
|
|
|
import org.apache.camel.Exchange;
|
|
import org.apache.camel.Exchange;
|
|
|
import org.apache.camel.ProducerTemplate;
|
|
import org.apache.camel.ProducerTemplate;
|
|
|
|
|
+import org.dromara.common.core.constant.Constants;
|
|
|
|
|
+import org.dromara.common.core.utils.StringUtils;
|
|
|
|
|
+import org.dromara.common.redis.utils.RedisUtils;
|
|
|
|
|
+import org.dromara.sms4j.api.universal.RedisUtil;
|
|
|
import org.dromara.system.domain.GpsData;
|
|
import org.dromara.system.domain.GpsData;
|
|
|
|
|
+import org.dromara.system.domain.TblCarInfo;
|
|
|
|
|
+import org.dromara.system.domain.bo.TblCarInfoBo;
|
|
|
|
|
+import org.dromara.system.domain.vo.TblCarInfoVo;
|
|
|
|
|
+import org.dromara.system.service.ISysDictDataService;
|
|
|
|
|
+import org.dromara.system.service.ITblCarInfoService;
|
|
|
|
|
+import org.dromara.system.service.ITblCarPathService;
|
|
|
import org.dromara.system.service.ITblGpsDataService;
|
|
import org.dromara.system.service.ITblGpsDataService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
|
+import java.time.Duration;
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -23,6 +35,19 @@ public class CamelDataUtil {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
ITblGpsDataService gpsDataService;
|
|
ITblGpsDataService gpsDataService;
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ ITblCarInfoService tblCarInfoService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ ITblCarPathService tablCarPathService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ ISysDictDataService sysDictDataService;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ private StandardThreadExecutor threadPoolExecutor=new StandardThreadExecutor();
|
|
|
|
|
+
|
|
|
public void SendData(String endrouter,Object payload,String headerkey,Object headervalue){
|
|
public void SendData(String endrouter,Object payload,String headerkey,Object headervalue){
|
|
|
ProducerTemplate template = camelContext.createProducerTemplate();
|
|
ProducerTemplate template = camelContext.createProducerTemplate();
|
|
|
template.sendBodyAndHeader(endrouter,payload,headerkey,headervalue);
|
|
template.sendBodyAndHeader(endrouter,payload,headerkey,headervalue);
|
|
@@ -44,6 +69,40 @@ public class CamelDataUtil {
|
|
|
gpsData.setSpeed(JSONUtil.parseObj(body).getDouble("SPD"));
|
|
gpsData.setSpeed(JSONUtil.parseObj(body).getDouble("SPD"));
|
|
|
log.info("body:{}",JSONUtil.toJsonStr(gpsData));
|
|
log.info("body:{}",JSONUtil.toJsonStr(gpsData));
|
|
|
gpsDataService.insertData(gpsData);
|
|
gpsDataService.insertData(gpsData);
|
|
|
|
|
+
|
|
|
|
|
+ //缓存最新数据到redis
|
|
|
|
|
+ RedisUtils.setCacheObject(StringUtils.format("gps_{}", devicecode), gpsData);
|
|
|
|
|
+
|
|
|
|
|
+// GpsData gpsData1 = RedisUtils.getCacheObject(StringUtils.format("gps_{}", devicecode));
|
|
|
|
|
+// System.out.println("ss");
|
|
|
|
|
+ //TODO 需要计算位置做预报及广播 在其他线程中做运算
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ threadPoolExecutor.execute(new Runnable() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void run() {
|
|
|
|
|
+
|
|
|
|
|
+ TblCarInfoBo carInfoBo = new TblCarInfoBo();
|
|
|
|
|
+ carInfoBo.setDeviceInfos(devicecode);
|
|
|
|
|
+ List<TblCarInfoVo> carInfoVos = tblCarInfoService.queryList(carInfoBo);
|
|
|
|
|
+ if(carInfoVos.size()>0){
|
|
|
|
|
+ TblCarInfoVo carInfoVo = carInfoVos.get(0);
|
|
|
|
|
+ if(StringUtils.isNotEmpty(carInfoVo.getCarNum())){
|
|
|
|
|
+ //查询车辆信息
|
|
|
|
|
+ TblCarInfoBo carInfoBo1 = new TblCarInfoBo();
|
|
|
|
|
+ carInfoBo1.setCarNum(carInfoVo.getCarNum());
|
|
|
|
|
+ List<TblCarInfoVo> carInfoVos1 = tblCarInfoService.queryList(carInfoBo1);
|
|
|
|
|
+ if(carInfoVos1.size()>0){
|
|
|
|
|
+ TblCarInfoVo carInfoVo1 = carInfoVos1.get(0);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 查询车辆信息 查询路线信息 查询下个站点信息(包括站点设备) 计算经纬距离 满足条件播报(led or 广播)
|
|
|
|
|
+ System.out.println("---------");
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
log.info("body:{}",body);
|
|
log.info("body:{}",body);
|