Просмотр исходного кода

[功能修复]调整107延时到30到60秒

liuf 1 год назад
Родитель
Сommit
fce784fe82

+ 6 - 4
src/main/java/com/tmzn/devicelinkykc/message/DeviceMsgHandle.java

@@ -175,8 +175,8 @@ public class DeviceMsgHandle {
                         deviceStatus.setGunStatus(StatusConstant.FREE);
                     }
                     realTimeStatusPushFrame.deviceStatusPush(deviceConnection, transactionNum, pilecode, (byte) deviceStatus.getGunPort(), deviceStatus.getGunStatus(), deviceStatus.getInsertGunStatus(), 0, 0, zero, zero, 0);
-                    socketHandle.removeDeviceConnection(deviceStatus.getPileCode());
-                    redisCache.deleteObject(RedisConstant.DEVICE_PORT_STATUS + imei);
+                  //  socketHandle.removeDeviceConnection(deviceStatus.getPileCode());
+                   // redisCache.deleteObject(RedisConstant.DEVICE_PORT_STATUS + imei);
                 }
             }
         }
@@ -574,12 +574,14 @@ public class DeviceMsgHandle {
             OrderStatus one = orderStatusService.getOne(orderStatusQueryWrapper);
 
             //7状态小于30秒内且订单原因不是远程停充
-            if((System.currentTimeMillis()- one.getCreateTime())<30*1000&&one.getReasonStopCharging()!=TransConstant.APP_REMOTE_STOP){
+            if((System.currentTimeMillis()- one.getCreateTime())<60*1000
+                    &&one.getReasonStopCharging()!=TransConstant.APP_REMOTE_STOP){
                 logger.info("启动状态还没变化--->当前7状态不处理");
                 return true;
             }
             //7状态:充电完成未拔枪会一直上报,只有当订单完成并回复解析订单成功,7状态当空闲状态上报
-            if (one.getTransactionOrderReportingActionStatus()==StatusConstant.TRANSACTION_ORDER_REPORTING_ACTION_STATUS_OK&&one.getTransactionOrderReplyStatus()==StatusConstant.TRANSACTION_ORDER_REPLY_STATUS_SUCC){
+            if (one.getTransactionOrderReportingActionStatus()==StatusConstant.TRANSACTION_ORDER_REPORTING_ACTION_STATUS_OK
+                    &&one.getTransactionOrderReplyStatus()==StatusConstant.TRANSACTION_ORDER_REPLY_STATUS_SUCC){
                 return false;
             }
 

+ 24 - 4
src/main/java/com/tmzn/devicelinkykc/taskQueue/queue/TaskRunner.java

@@ -170,8 +170,14 @@ public class TaskRunner {
         if (map.size()<1){
             return;
         }
+
+        QueryWrapper<OrderStatus> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("now_order_status", 0); //充电完成
+
+
         //查询所有充电中设备的最新的订单记录,来上报设备状态消息.........?????????????????
-        List<OrderStatus> list = orderStatusService.list();
+        List<OrderStatus> list = orderStatusService.list(queryWrapper);
+        System.out.println(list);
         Map<String, OrderStatus> orderStatusMap = list.stream()
                 .collect(Collectors.toMap(OrderStatus::getPileCode, orderStatus -> orderStatus,
                         (existing, replacement) -> (Instant.ofEpochMilli(existing.getCreateTime()).atZone(ZoneId.systemDefault()).toLocalDateTime()).isAfter(Instant.ofEpochMilli(replacement.getCreateTime()).atZone(ZoneId.systemDefault()).toLocalDateTime()) ? existing : replacement));
@@ -511,10 +517,24 @@ public class TaskRunner {
     public void transactionMsg(Map<String, DeviceConnectionMsg> map) throws Exception {
         log.info("======transaction push task starting=====");
         //任务处理 1.上报交易流水消息后没有响应回复的情况,30秒上送一次三次后停止,五分钟后上送最后一次,不管是否成功都不再上送:有结束时间,充电状态是结束充电的
-        List<OrderStatus> list = orderStatusService.list();
+        QueryWrapper<OrderStatus> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("now_order_status", 1); //充电完成
+        queryWrapper.eq("transaction_order_reporting_action_status", 1); //未上报
+        queryWrapper.eq("transaction_order_reply_status", 0); //未上报
+
+        List<OrderStatus> list = orderStatusService.list(queryWrapper);
+
+//        System.out.println(list);
+
         Map<String, OrderStatus> orderStatusMap = list.stream()
-                .collect(Collectors.toMap(OrderStatus::getPileCode, orderStatus -> orderStatus,
-                        (existing, replacement) -> (Instant.ofEpochMilli(existing.getCreateTime()).atZone(ZoneId.systemDefault()).toLocalDateTime()).isAfter(Instant.ofEpochMilli(replacement.getCreateTime()).atZone(ZoneId.systemDefault()).toLocalDateTime()) ? existing : replacement));
+                .collect(Collectors.toMap(
+                        OrderStatus::getPileCode, orderStatus
+                                -> orderStatus,(existing, replacement)
+                                -> (Instant.ofEpochMilli(existing.getCreateTime())
+                                .atZone(ZoneId.systemDefault()).toLocalDateTime())
+                                .isAfter(Instant.ofEpochMilli(replacement.getCreateTime())
+                                        .atZone(ZoneId.systemDefault()).toLocalDateTime())
+                                ? existing : replacement));
         List<OrderStatus> orderStatuses = orderStatusMap.values().stream()
                 .collect(Collectors.toList());