订单金额>300 电量>250 开始时间结束相比本地时间之差大于2天 结束时间小于开始时间 皆为异常
This commit is contained in:
parent
1f652d2a1a
commit
01ffa57d16
@ -1,6 +1,7 @@
|
||||
package com.xhpc.order.api;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xhpc.common.api.UserTypeService;
|
||||
@ -29,6 +30,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static cn.hutool.core.date.DateUnit.*;
|
||||
import static com.xhpc.common.data.redis.StaticBeanUtil.REDIS;
|
||||
|
||||
@RestController
|
||||
@ -356,6 +358,15 @@ public class XhpcPileOrderController extends BaseController {
|
||||
}
|
||||
BigDecimal bigDecimal = new BigDecimal(10000);
|
||||
BigDecimal totalPowerQuantity = new BigDecimal(cacheOrderData.getTotalPowerQuantity()).divide(bigDecimal,2,BigDecimal.ROUND_HALF_UP);
|
||||
if(totalPowerQuantity.compareTo(new BigDecimal(250)) > -1){
|
||||
logger.info("结算电量大于250度>>"+totalPowerQuantity+">>>orderNo:" + orderNo);
|
||||
xhpcChargeOrder.setStatus(2);
|
||||
xhpcChargeOrder.setChargingDegree(totalPowerQuantity);
|
||||
xhpcChargeOrder.setUpdateTime(new Date());
|
||||
xhpcChargeOrder.setErroRemark("结算电量大于250度");
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
return R.fail(500,"无效订单号:"+orderNo);
|
||||
}
|
||||
BigDecimal money = new BigDecimal(cacheOrderData.getCost()).divide(bigDecimal,2,BigDecimal.ROUND_HALF_UP);
|
||||
if(cacheOrderData.getTotalPowerQuantity()==0 || totalPowerQuantity.compareTo(new BigDecimal(0.1))<1 || money.compareTo(new BigDecimal(0.1))<1){
|
||||
xhpcChargeOrder.setStatus(3);
|
||||
@ -472,10 +483,11 @@ public class XhpcPileOrderController extends BaseController {
|
||||
}else{
|
||||
money = powerPrice.add(servicePrice);
|
||||
}
|
||||
if(money.compareTo(new BigDecimal(500)) > -1){
|
||||
logger.info("结算金额大于500>>"+money+">>>orderNo:" + orderNo);
|
||||
if(money.compareTo(new BigDecimal(300)) > -1){
|
||||
logger.info("结算金额大于300>>"+money+">>>orderNo:" + orderNo);
|
||||
xhpcChargeOrder.setStatus(2);
|
||||
xhpcChargeOrder.setUpdateTime(new Date());
|
||||
xhpcChargeOrder.setErroRemark("充电金额大于300元");
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
return R.fail(500,"无效订单号:"+orderNo);
|
||||
}
|
||||
@ -496,6 +508,37 @@ public class XhpcPileOrderController extends BaseController {
|
||||
DateTime endTime = DateUtil.parse(cacheOrderData.getEndTime());
|
||||
xhpcChargeOrder.setStartTime(startTime);
|
||||
xhpcChargeOrder.setEndTime(endTime);
|
||||
//开始时间不能小于今天2天 结束时间不能大于今天两天
|
||||
Date dateUtil = DateUtil.date();
|
||||
long betweenStart = DateUtil.between(startTime, dateUtil, DateUnit.DAY);
|
||||
if(betweenStart>2){
|
||||
logger.info("开始时间大于本地时间2天>>>>>orderNo:" + orderNo);
|
||||
xhpcChargeOrder.setStatus(2);
|
||||
xhpcChargeOrder.setUpdateTime(new Date());
|
||||
xhpcChargeOrder.setErroRemark("开始时间大于本地时间2天");
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
return R.fail(500,"无效订单号:"+orderNo);
|
||||
}
|
||||
long betweenEnd = DateUtil.between(endTime, dateUtil, DateUnit.DAY);
|
||||
if(betweenEnd>2){
|
||||
logger.info("结束时间大于本地时间2天>>>>>orderNo:" + orderNo);
|
||||
xhpcChargeOrder.setStatus(2);
|
||||
xhpcChargeOrder.setUpdateTime(new Date());
|
||||
xhpcChargeOrder.setErroRemark("结束时间大于本地时间2天");
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
return R.fail(500,"无效订单号:"+orderNo);
|
||||
}
|
||||
//结束时间小于开始时间
|
||||
if(startTime.getTime()-endTime.getTime()>0){
|
||||
logger.info("开始时间大于结束时间>>>>>orderNo:" + orderNo);
|
||||
xhpcChargeOrder.setStatus(2);
|
||||
xhpcChargeOrder.setUpdateTime(new Date());
|
||||
xhpcChargeOrder.setErroRemark("开始时间大于结束时间");
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
return R.fail(500,"无效订单号:"+orderNo);
|
||||
}
|
||||
|
||||
|
||||
//充电时长
|
||||
Long tiem = (endTime.getTime() - startTime.getTime()) / 1000;
|
||||
if (tiem > 3600) {
|
||||
|
||||
@ -104,7 +104,7 @@ public class XhpcRealTimeOrderController extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getExamine")
|
||||
public AjaxResult getExamine(@RequestParam Long chargingOrderId,@RequestParam BigDecimal powerPrice,@RequestParam BigDecimal servicePrice){
|
||||
return xhpcRealTimeOrderService.getExamine(chargingOrderId,powerPrice,servicePrice);
|
||||
public AjaxResult getExamine(@RequestParam Long chargingOrderId,@RequestParam BigDecimal powerPrice,@RequestParam BigDecimal servicePrice,@RequestParam BigDecimal chargingDegree,@RequestParam String startTime ,@RequestParam String endTime){
|
||||
return xhpcRealTimeOrderService.getExamine(chargingOrderId,powerPrice,servicePrice,chargingDegree,startTime,endTime);
|
||||
}
|
||||
}
|
||||
|
||||
@ -100,7 +100,7 @@ public interface IXhpcRealTimeOrderService {
|
||||
* @param chargingOrderId
|
||||
* @return
|
||||
*/
|
||||
AjaxResult getExamine(Long chargingOrderId, BigDecimal powerPrice,BigDecimal servicePrice);
|
||||
AjaxResult getExamine(Long chargingOrderId, BigDecimal powerPrice,BigDecimal servicePrice,BigDecimal chargingDegree,String startTime,String endTime);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@ -504,7 +504,7 @@ 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);
|
||||
xhpcRealTimeOrderService.getExamine(chargeOrderId,powerPriceTotal,servicePriceTotal,null,null,null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -326,7 +326,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public AjaxResult getExamine(Long chargingOrderId, BigDecimal powerPrice, BigDecimal servicePrice) {
|
||||
public AjaxResult getExamine(Long chargingOrderId, BigDecimal powerPrice, BigDecimal servicePrice,BigDecimal chargingDegree,String startTime,String endTime) {
|
||||
XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getChargingOrderId(chargingOrderId);
|
||||
//查询是否已存在结算信息
|
||||
XhpcHistoryOrder historyOrderById = xhpcHistoryOrderService.getHistoryOrderById(null, xhpcChargeOrder.getSerialNumber());
|
||||
@ -335,7 +335,6 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
|
||||
xhpcChargeOrderService.updateXhpcChargeOrder(xhpcChargeOrder);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
//总金额
|
||||
BigDecimal money = powerPrice.add(servicePrice);
|
||||
//总服务费 servicePrice
|
||||
@ -345,7 +344,6 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
|
||||
//剩余的服务费
|
||||
BigDecimal surplusServicePrice = servicePrice;
|
||||
|
||||
|
||||
if(xhpcChargeOrder.getStatus()==1 || xhpcChargeOrder.getStatus()==3){
|
||||
return AjaxResult.error("订单已结算,请联系技术人员解决");
|
||||
}
|
||||
@ -365,6 +363,12 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
|
||||
Integer source = xhpcChargeOrder.getSource();
|
||||
String tenantId = xhpcChargeOrder.getTenantId();
|
||||
Map<String, Object> userMessage =new HashMap<>();
|
||||
if(startTime !=null && endTime!=null && null!=chargingDegree){
|
||||
xhpcChargeOrder.setStartTime(DateUtil.parse(startTime, "yyyy-MM-dd HH:mm:ss"));
|
||||
xhpcChargeOrder.setEndTime(DateUtil.parse(endTime, "yyyy-MM-dd HH:mm:ss"));
|
||||
xhpcChargeOrder.setChargingDegree(chargingDegree);
|
||||
}
|
||||
|
||||
XhpcHistoryOrder xhpcHistoryOrder = new XhpcHistoryOrder();
|
||||
|
||||
if(xhpcChargeOrder.getStartTime() ==null || xhpcChargeOrder.getEndTime()==null || xhpcChargeOrder.getChargingDegree()==null){
|
||||
@ -376,17 +380,20 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
|
||||
//获取
|
||||
xhpcChargeOrder.setStartSoc(cacheOrderData.getStartSoc()+"");
|
||||
xhpcChargeOrder.setEndSoc(cacheOrderData.getEndSoc()+"");
|
||||
DateTime startTime = DateUtil.parse(cacheOrderData.getStartTime());
|
||||
DateTime endTime = DateUtil.parse(cacheOrderData.getEndTime());
|
||||
xhpcChargeOrder.setStartTime(startTime);
|
||||
xhpcChargeOrder.setEndTime(endTime);
|
||||
if(cacheOrderData.getStopReason() !=null && !"".equals(cacheOrderData.getStopReason())){
|
||||
xhpcChargeOrder.setType(cacheOrderData.getStopReason());
|
||||
}
|
||||
if(startTime==null || endTime==null || null==chargingDegree){
|
||||
DateTime startTime1 = DateUtil.parse(cacheOrderData.getStartTime());
|
||||
DateTime endTime1 = DateUtil.parse(cacheOrderData.getEndTime());
|
||||
xhpcChargeOrder.setStartTime(startTime1);
|
||||
xhpcChargeOrder.setEndTime(endTime1);
|
||||
BigDecimal bigDecimal = new BigDecimal(10000);
|
||||
BigDecimal divide = new BigDecimal(cacheOrderData.getTotalPowerQuantity()).divide(bigDecimal,2, BigDecimal.ROUND_HALF_UP);
|
||||
xhpcChargeOrder.setChargingDegree(divide);
|
||||
}
|
||||
if(cacheOrderData.getStopReason() !=null && !"".equals(cacheOrderData.getStopReason())){
|
||||
xhpcChargeOrder.setType(cacheOrderData.getStopReason());
|
||||
}
|
||||
}else{
|
||||
if(startTime==null || endTime==null || null==chargingDegree){
|
||||
if(cacheMap.get("realtimeDataList") !=null){
|
||||
List<CacheRealtimeData> list = (List<CacheRealtimeData>) cacheMap.get("realtimeDataList");
|
||||
if(list !=null && list.size()>0){
|
||||
@ -398,7 +405,8 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
|
||||
}
|
||||
}else{
|
||||
if(cacheMap.get("startTime") !=null) {
|
||||
xhpcChargeOrder.setStartTime(DateUtil.parse(cacheMap.get("startTime").toString(), "yyyy-MM-dd HH:mm:ss"));
|
||||
xhpcChargeOrder.setEndTime(DateUtil.parse(cacheMap.get("startTime").toString(), "yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -531,6 +531,8 @@
|
||||
co.erro_remark as erroRemark,
|
||||
ro.amount_charged as amountCharged,
|
||||
co.Plate_num as plateNum,
|
||||
co.start_time as startTime,
|
||||
co.end_time as endTime,
|
||||
(SELECT phone FROM xhpc_app_user where app_user_id = co.user_id) as appUserPhone,
|
||||
(SELECT phone from xhpc_internet_user where internet_user_id = co.user_id) as internetUserPhone,
|
||||
(SELECT name from xhpc_internet_user where internet_user_id = co.user_id and co.source=1) as internetName,
|
||||
@ -562,7 +564,9 @@
|
||||
concat(0) as electricCurrent,
|
||||
co.status as status,
|
||||
co.create_time as createTime,
|
||||
concat(0) as chargingDegree,
|
||||
co.start_time as startTime,
|
||||
co.end_time as endTime,
|
||||
co.charging_degree as chargingDegree,
|
||||
concat(0) as chargingTime,
|
||||
co.source as source,
|
||||
co.internet_serial_number as internetSerialNumber,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user