|
|
@@ -64,13 +64,25 @@ public class EquipmentChargeStatusJob {
|
|
|
var orderList = new ArrayList<ChargeOrder>();
|
|
|
orders.forEach(order -> {
|
|
|
var chargeOrder = JSONObject.parseObject(order.toString(), ChargeOrder.class);
|
|
|
+ // 检查DB中该订单的当前状态,防止用Redis脏数据覆盖已结束的订单
|
|
|
+ var dbOrder = chargeOrderService.lambdaQuery()
|
|
|
+ .eq(ChargeOrder::getStartChargeSeq, chargeOrder.getStartChargeSeq())
|
|
|
+ .select(ChargeOrder::getChargeStatus, ChargeOrder::getOrderStatus)
|
|
|
+ .one();
|
|
|
+ if (dbOrder != null && dbOrder.getChargeStatus().equals(ChargeOrder.CHARGE_STATUS_已结束)) {
|
|
|
+ log.info("订单{}已在DB中结束,跳过Redis数据覆盖,清理Redis缓存", chargeOrder.getStartChargeSeq());
|
|
|
+ redisTemplate.opsForHash().delete(RedisKeys.CHARGE_ORDER_EQUIP_CHARGE_STATUS, chargeOrder.getStartChargeSeq());
|
|
|
+ return;
|
|
|
+ }
|
|
|
orderList.add(chargeOrder);
|
|
|
if (chargeOrder.getChargeStatus().equals(ChargeOrder.CHARGE_STATUS_停止中) || chargeOrder.getChargeStatus().equals(ChargeOrder.CHARGE_STATUS_已结束)) {
|
|
|
redisTemplate.opsForHash().delete(RedisKeys.CHARGE_ORDER_EQUIP_CHARGE_STATUS, chargeOrder.getStartChargeSeq());
|
|
|
}
|
|
|
});
|
|
|
- chargeOrderService.updateBatchByQueryWrapper(orderList, order ->
|
|
|
- new QueryWrapper<ChargeOrder>().eq("start_charge_seq", order.getStartChargeSeq()));
|
|
|
+ if (!orderList.isEmpty()) {
|
|
|
+ chargeOrderService.updateBatchByQueryWrapper(orderList, order ->
|
|
|
+ new QueryWrapper<ChargeOrder>().eq("start_charge_seq", order.getStartChargeSeq()));
|
|
|
+ }
|
|
|
}
|
|
|
log.info("设备充电状态信息(订单信息)更新定时任务结束,本次更新{}条订单...", orders.size());
|
|
|
}
|