判断实时数据电量和金额为0则停止充电

This commit is contained in:
panshuling321 2022-09-01 13:36:13 +08:00
parent c5b0d14cc0
commit 6fab0d0974
2 changed files with 14 additions and 5 deletions

View File

@ -43,12 +43,10 @@ public class BmsReqChargerOutputDataLogic implements ServiceLogic {
BmsReqChargerOutputData orderData = objectMapper.convertValue(req, BmsReqChargerOutputData.class);
String orderNo = (String) req.get("orderNo");
String orderKey = "order:".concat(orderNo);
Map<String, Object> cacheOrder = REDIS.getCacheMap(orderKey);
String orderKey = "order:".concat(orderNo).concat(".bms");
CacheBmsReqChargerOutputData cacheBmsReqChargerOutputData = translate(orderData);
cacheOrder.put("bmsData", cacheBmsReqChargerOutputData);
REDIS.setCacheMap(orderKey, cacheOrder);
REDIS.setCacheObject(orderKey, cacheBmsReqChargerOutputData);
pileOrderService.pileRimeOrderBms(orderNo);
XhpcDeviceMessage deviceMessage = new XhpcDeviceMessage();

View File

@ -132,7 +132,7 @@ public class RealtimeDataLogic implements ServiceLogic {
}
Integer balance = (Integer) cacheOrder.get("initBalance");
CacheRealtimeData cacheRealtimeData = translate(realtimeData);
balance -= cacheRealtimeData.getAmountCharged();
cacheRealtimeData.setCreateTime(DateUtil.now());
String lord = orderkey.concat(".lord");
REDIS.setCacheObject(lord, cacheRealtimeData);
@ -147,6 +147,7 @@ public class RealtimeDataLogic implements ServiceLogic {
cacheOrder.put("em1", calcem1(cdhex));
}
}
balance -= cacheRealtimeData.getAmountCharged();
cacheOrder.put("rbalance", balance);
cacheOrder.put("remainingTime", tr);
cacheOrder.put("status", statusplain);
@ -201,6 +202,16 @@ public class RealtimeDataLogic implements ServiceLogic {
cacheOrder.put("lordiss", "false");
pileOrderService.pileStop(orderNo, 4, "订单实时数据恢复");
}
// 判断金额和电量为0 防止白嫖
if(realtimeDataList.size() > 3){
if(cacheRealtimeData.getAmountCharged() < 0.1 && cacheRealtimeData.getChargingDegree() < 0.1){
log.error("实时数据充电度数:{}, 实时充电金额为: {},订单[{}] 自动结束",
cacheRealtimeData.getChargingDegree(),
cacheRealtimeData.getAmountCharged(),
cacheRealtimeData.getOrderNo());
chargingController.stopCharging(pileNo, gunId, default_version);
}
}
}
}
} else {