结算订单增加回复判断

This commit is contained in:
yuyang 2022-04-06 16:55:46 +08:00
parent ff2f2eee4a
commit 460dabf5df
3 changed files with 81 additions and 5 deletions

View File

@ -287,11 +287,28 @@ public class XhpcPileOrderController extends BaseController {
}
//获取充电订单
XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
if ("".equals(cacheMap.get("realtimeDataList")) || null==cacheMap.get("realtimeDataList")) {
xhpcChargeOrder.setStatus(2);
Map<String, Object> pushOrder = redisService.getCacheMap("pushOrder:"+orderNo);
//判断结算订单是否有回复启动成功
boolean judge =false;
if(pushOrder !=null){
if(pushOrder.get("internetSerialNumber") ==null){
xhpcChargeOrder.setStatus(2);
xhpcChargeOrder.setUpdateTime(new Date());
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
return R.ok();
}else if("2".equals(pushOrder.get("internetSerialNumber").toString())){
//正常结算
}else{
judge=true;
}
}else{
judge =true;
}
if (judge) {
xhpcChargeOrder.setStatus(3);
xhpcChargeOrder.setUpdateTime(new Date());
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
xhpcRealTimeOrderService.addZeroHistoryOrder(xhpcChargeOrder);
logger.info("订单无实时数据>>>>>orderNo" + orderNo);
return R.ok();
}
@ -452,7 +469,7 @@ public class XhpcPileOrderController extends BaseController {
return R.fail(500,"添加订单回调失败");
}
}else{
Map<String, Object> pushOrder = redisService.getCacheMap("pushOrder:"+orderNo);
if(pushOrder !=null){
if(pushOrder.get("internetSerialNumber") !=null){
xhpcHistoryOrder.setInternetSerialNumber(pushOrder.get("internetSerialNumber").toString());

View File

@ -144,4 +144,9 @@ public interface IXhpcRealTimeOrderService {
* 获取一条实时数据
*/
XhpcRealTimeOrder getChargingOrderId(Long chargingOrderId,Integer type);
/**
* 添加一条金额为0的数据
*/
void addZeroHistoryOrder(XhpcChargeOrder xhpcChargeOrder);
}

View File

@ -425,7 +425,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
//先计算第三方优惠力度
Integer source = xhpcChargeOrder.getSource();
String internetSerialNumber = xhpcChargeOrder.getInternetSerialNumber();
if(source==1 && internetSerialNumber!=null){
if(source==UserTypeUtil.INTERNET_TYPE && internetSerialNumber!=null){
String substring = internetSerialNumber.substring(0, 9);
xhpcHistoryOrder.setInternetSerialNumber(xhpcChargeOrder.getInternetSerialNumber());
Map<String, Object> operatorIdEvcs = xhpcRealTimeOrderMapper.getOperatorIdEvcs(substring);
@ -952,6 +952,60 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
return xhpcRealTimeOrderMapper.getChargingOrderId(chargingOrderId, type);
}
/**
* 添加一条金额为0的数据
*
* @param xhpcChargeOrder
*/
@Override
public void addZeroHistoryOrder(XhpcChargeOrder xhpcChargeOrder) {
XhpcHistoryOrder xhpcHistoryOrder = new XhpcHistoryOrder();
xhpcHistoryOrder.setChargeOrderId(xhpcChargeOrder.getChargeOrderId());
xhpcHistoryOrder.setChargingStationId(xhpcChargeOrder.getChargingStationId());
xhpcHistoryOrder.setUserId(xhpcChargeOrder.getUserId());
xhpcHistoryOrder.setTerminalId(xhpcChargeOrder.getTerminalId());
xhpcHistoryOrder.setSerialNumber(xhpcChargeOrder.getSerialNumber());
xhpcHistoryOrder.setInternetSerialNumber(xhpcChargeOrder.getInternetSerialNumber());
xhpcHistoryOrder.setType(2);
Date date = new Date();
xhpcHistoryOrder.setCreateTime(date);
Map<String, Object> pushOrder = redisService.getCacheMap("pushOrder:"+xhpcChargeOrder.getSerialNumber());
if(pushOrder !=null){
if(pushOrder.get("internetSerialNumber") !=null){
xhpcHistoryOrder.setInternetSerialNumber(pushOrder.get("internetSerialNumber").toString());
}
if(pushOrder.get("operatorId3rdpty") !=null){
xhpcHistoryOrder.setOperatorId3rdptyEvcs((String) pushOrder.get("operatorId3rdpty"));
}
}
//获取运营商
Map<String, Object> operatorMessage = xhpcChargeOrderService.getOperatorMessage(xhpcChargeOrder.getChargingStationId());
if(operatorMessage !=null){
if(operatorMessage.get("operatorIdEvcs")!=null){
if(operatorMessage.get("operatorIdEvcs") !=null && !"".equals(operatorMessage.get("operatorIdEvcs").toString())){
String stw = operatorMessage.get("operatorIdEvcs").toString();
if(stw.length()>9){
xhpcHistoryOrder.setOperatorIdEvcs(stw.substring(8, stw.length() - 1));
}
}
}
}
xhpcHistoryOrder.setStartTime(xhpcChargeOrder.getStartTime());
xhpcHistoryOrder.setEndTime(xhpcChargeOrder.getStartTime());
xhpcHistoryOrder.setStopReasonEvcs(45);
if(UserTypeUtil.COMMUNIT_TYPE.equals(xhpcChargeOrder.getSource()) || UserTypeUtil.CUSTOMERS_TYPE.equals(xhpcChargeOrder.getSource())){
xhpcHistoryOrder.setChargeModelEvcs(2);
}else{
xhpcHistoryOrder.setChargeModelEvcs(xhpcChargeOrder.getChargeModelEvcs());
}
xhpcHistoryOrder.setTenantId(xhpcChargeOrder.getTenantId());
xhpcHistoryOrder.setSource(xhpcChargeOrder.getSource());
xhpcHistoryOrder.setRateModelId(xhpcChargeOrder.getRateModelId());
xhpcHistoryOrder.setChargingMode(xhpcChargeOrder.getChargingMode());
xhpcHistoryOrderService.insert(xhpcHistoryOrder);
}
private BigDecimal getBigDecimal(Long rateModelId, String startTime, String updateTime, BigDecimal powerPriceTotal, BigDecimal divide) {
List<Map<String, Object>> reatTimeList = xhpcHistoryOrderService.getReatTimeList(startTime,updateTime, rateModelId);
for (int i = 0; i <reatTimeList.size() ; i++) {