private void oilSeedsStart(TaskToNodeJson taskToNodeJson) { KafkaStartAndStopTopic kafkaStartAndStopTopic = JSONObject.parseObject(JSONObject.toJSONString(taskToNodeJson.getChannelInfo()), KafkaStartAndStopTopic.class); KafkaNodeDetail aircraftNodeDetail = kafkaStartAndStopTopic.getNodeList().get(NodeSceneEnum.AIRCRAFT_ENTRY.getEnName()); KafkaNodeDetail oilCarNodeDetail = kafkaStartAndStopTopic.getNodeList().get(NodeSceneEnum.OIL_SEEDS_START.getEnName()); if (aircraftNodeDetail.getCurrentStatus().equals(Boolean.TRUE)) { CopyOnWriteArrayList<OilCar> models = ModelUtil.findAnyModel(taskToNodeJson, OilCar.class, NodeSceneEnum.OIL_SEEDS_START.getEnModel()); models.stream().filter(m -> ModelActionEnum.STATIC.equals(m.getAction())) .findFirst() .ifPresent(car -> { if (car.getTotalStatics().stream().findFirst().isPresent()) { LocalDateTime firstStaticTime = car.getTotalStatics().stream().findFirst().get(); //加油车先停了一次,未加油又移动位置,将第一次的时间进行纠偏 if ((ObjectUtil.isNotNull(oilCarNodeDetail.getBeginTime()) && !oilCarNodeDetail.getBeginTime().equals(firstStaticTime)) || ObjectUtil.isNull(oilCarNodeDetail.getBeginTime())) { this.publishResult(firstStaticTime, taskToNodeJson.getChannelId(), NodeSceneEnum.OIL_SEEDS_START); } } }); } }解释下这段代码
时间: 2024-04-27 15:23:45 浏览: 96
这段代码是一个Java方法,名为oilSeedsStart,接收一个TaskToNodeJson类型的参数。方法中主要是通过解析KafkaStartAndStopTopic和KafkaNodeDetail对象的属性,对加油车进行操作。
具体来说,首先通过KafkaStartAndStopTopic对象获取到飞机进场节点和加油车启动节点的信息,然后判断飞机进场节点当前状态是否为“true”。如果是,就通过ModelUtil工具类的findAnyModel方法获取到任务信息中的所有OilCar对象,并使用stream流的过滤和查找方法找到第一个静止状态的OilCar对象。
接着,如果找到了符合条件的OilCar对象,就判断其总静止时间列表中是否存在第一个时间,并对加油车进行操作。具体操作是:如果加油车在第一次静止时已经开始加油,则将第一个静止时间作为加油车启动时间,否则将第一个静止时间作为加油车发车时间,并将结果发布到指定的Kafka主题中。
总的来说,这段代码的作用是对加油车进行启动和操作,并将相关信息发布到Kafka主题中。
相关问题
JSONObject jsonObject = JSONObject.parseObject(Arrays.toString(bytes));报错 JSONObject jsonObject = JSONObject.parseObject(Arrays.toString(bytes));
`JSONObject.parseObject()`方法需要传入一个JSON字符串作为参数,但是`Arrays.toString()`方法是将一个数组转换成一个字符串,并不是将一个字节数组转换成一个JSON字符串。
如果您已经确定您所接收到的字节数组是一个JSON字符串的字节数组,可以直接将其转换为字符串,然后再使用`JSONObject.parseObject()`方法进行解析,例如:
```java
String jsonString = new String(bytes, StandardCharsets.UTF_8);
JSONObject jsonObject = JSONObject.parseObject(jsonString);
```
其中,`bytes`是您所接收到的字节数组,`StandardCharsets.UTF_8`是指定字符串编码格式的常量。通过将字节数组转换为字符串,再使用`JSONObject.parseObject()`方法解析该字符串,就可以得到一个`JSONObject`对象。
ResponseVo responseVo = HttpUtil.doPost(url, JSONObject.toJSONString(params)); JSONObject jsonObject = JSONObject.parseObject(responseVo.getBody());解释一下这段代码
这代码主要是进行了如下操作:
1. 调用了HttpUtil.doPost方法,发起了一个POST请求,该请求的url和请求参数分别为url和params。
2. 将params参数转化为JSON字符串,并传入doPost方法中作为请求体。
3. 获取请求返回的结果,并将结果转化为JSONObject对象。
简单来说,这段代码是通过POST请求发送了一些参数,然后从返回结果中获取到了一个JSON格式的对象。
阅读全文