优化异常订单审核

This commit is contained in:
yuyang 2022-08-30 10:47:25 +08:00
parent 3fbdde558b
commit 470dcf7a1e
2 changed files with 41 additions and 11 deletions

View File

@ -519,7 +519,12 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis
if(map !=null){
BigDecimal powerPriceTotal = new BigDecimal(map.get("powerPriceTotal").toString());
BigDecimal servicePriceTotal = new BigDecimal(map.get("servicePriceTotal").toString());
xhpcRealTimeOrderService.getExamine(chargeOrderId,powerPriceTotal,servicePriceTotal,null,null,null);
BigDecimal chargingDegree = new BigDecimal(map.get("chargingDegree").toString());
if(map.get("startTime")!=null && map.get("endTime")!=null){
xhpcRealTimeOrderService.getExamine(chargeOrderId,powerPriceTotal,servicePriceTotal,chargingDegree,map.get("startTime").toString(),map.get("endTime").toString());
}else{
xhpcRealTimeOrderService.getExamine(chargeOrderId,powerPriceTotal,servicePriceTotal,chargingDegree,null,null);
}
}
}

View File

@ -175,19 +175,38 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
//基本信息
Map<String, Object> message = xhpcRealTimeOrderMapper.getMessage(realTimeOrderId);
try{
if(message ==null || message.get("chargeOrderId") ==null){
XhpcChargeOrder chargeOrder = xhpcChargeOrderService.getChargingOrderId(Long.parseLong(message.get("chargeOrderId").toString()));
Map<String, Object> cacheMap = redisService.getCacheMap("order:" + chargeOrder.getSerialNumber());
if (cacheMap !=null && cacheMap.get("startTime")!=null && cacheMap.get("lastOrderTime")!=null) {
String startTime = cacheMap.get("startTime").toString();
String lastOrderTime = cacheMap.get("lastOrderTime").toString();
chargeOrder.setStartTime(DateUtil.parse(startTime));
chargeOrder.setEndTime(DateUtil.parse(lastOrderTime));
message.put("startTime",startTime);
message.put("endTime",lastOrderTime);
if (cacheMap.get("totalPower")!=null && cacheMap.get("totalMoney")!=null) {
String totalPower = cacheMap.get("totalPower").toString();
//String totalPowerSub = totalPower.substring(0, totalPower.length() - 1);
String totalMoney = cacheMap.get("totalMoney").toString();
//String totalMoneySub = totalMoney.substring(0, totalMoney.length() - 1);
chargeOrder.setChargingDegree(new BigDecimal(totalPower));
chargeOrder.setAmountCharged(new BigDecimal(totalMoney));
message.put("chargingDegree",new BigDecimal(totalPower));
}
}
if(message.get("chargeOrderId") == null){
message.put("powerPriceTotal",0);
message.put("servicePriceTotal",0);
return message;
}
//获取开始充电时间结束时间计费模型充电度数已充金额
XhpcChargeOrder chargeOrder = xhpcChargeOrderService.getChargingOrderId(Long.parseLong(message.get("chargeOrderId").toString()));
if(chargeOrder.getRateModelId()==null || "".equals(chargeOrder.getRateModelId().toString())){
Map<String, Object> xhpcChargingStationMap = xhpcRealTimeOrderMapper.getXhpcChargingStationById(chargeOrder.getChargingStationId());
chargeOrder.setRateModelId(Long.valueOf(xhpcChargingStationMap.get("rateModelId").toString()));
}
//获取该订单最后一条实时数据
Map<String, Object> cacheMap = redisService.getCacheMap("order:" + chargeOrder.getSerialNumber());
Long rateModelId = chargeOrder.getRateModelId();
if(cacheMap !=null && cacheMap.get("orderData") !=null){
CacheOrderData cacheOrderData = (CacheOrderData)cacheMap.get("orderData");
@ -268,12 +287,16 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
}
chargeOrder.setAmountCharged(money);
}else{
if (cacheMap.get("startTime")!=null && cacheMap.get("lastOrderTime")!=null && cacheMap.get("totalPower")!=null && cacheMap.get("totalMoney")!=null) {
if (cacheMap.get("startTime")!=null && cacheMap.get("lastOrderTime")!=null) {
chargeOrder.setStartTime(DateUtil.parse(cacheMap.get("startTime").toString()));
chargeOrder.setStartTime(DateUtil.parse(cacheMap.get("lastOrderTime").toString()));
chargeOrder.setEndTime(DateUtil.parse(cacheMap.get("lastOrderTime").toString()));
if (cacheMap.get("totalPower")!=null && cacheMap.get("totalMoney")!=null) {
String totalPower = cacheMap.get("totalPower").toString();
String totalPowerSub = totalPower.substring(0, totalPower.length() - 1);
chargeOrder.setChargingDegree(new BigDecimal(totalPowerSub));
//String totalPowerSub = totalPower.substring(0, totalPower.length() - 1);
String totalMoney = cacheMap.get("totalMoney").toString();
chargeOrder.setChargingDegree(new BigDecimal(totalPower));
chargeOrder.setAmountCharged(new BigDecimal(totalMoney));
}
}else{
//没有获取到时间 1.获取缓存数据 2.缓存没有获取数据库数据
List<CacheRealtimeData> list = (List<CacheRealtimeData>) cacheMap.get("realtimeDataList");
@ -285,7 +308,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
endData =list.get(list.size()-1);
for (int i = 0; i <list.size() ; i++) {
startData =list.get(i);
if(startData.getAmountCharged()>0 && startData.getChargingTime()>0){
if(startData.getAmountCharged()>0){
break;
}
}
@ -390,8 +413,10 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
if(cacheMap.get("stopReasonHex") !=null && "".equals(cacheMap.get("stopReasonHex").toString())){
chargeOrder.setType(cacheMap.get("stopReasonHex").toString());
}else{
chargeOrder.setType("平台停止充电");
chargeOrder.setType("90");
}
message.put("startTime",chargeOrder.getStartTime());
message.put("endTime",chargeOrder.getEndTime());
//修改充电订单
xhpcChargeOrderService.updateXhpcChargeOrder(chargeOrder);