修改第三方启动逻辑顺序,修改定时计费模型

This commit is contained in:
yuyang 2022-03-14 15:25:43 +08:00
parent f08fefb76a
commit 2f5be831b5
9 changed files with 146 additions and 39 deletions

View File

@ -12,7 +12,7 @@ import java.util.Map;
*/
public interface XhpcTimingChargingModelMapper {
List<Map<String, Object>> list(@Param("status") Integer status,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("chargingStationId") Long chargingStationId,@Param("tenantId")String tenantId);
List<Map<String, Object>> list(@Param("reason")String reason,@Param("status") Integer status,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("chargingStationId") Long chargingStationId,@Param("tenantId")String tenantId);
int insertXhpcTimingChargingModel(XhpcTimingChargingModel xhpcTimingChargingModel);

View File

@ -52,7 +52,7 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I
LoginUser loginUser = tokenService.getLoginUser(request);
if(loginUser !=null){
startPage();
return xhpcTimingChargingModelMapper.list(status,startTime,endTime,chargingStationId,loginUser.getTenantId());
return xhpcTimingChargingModelMapper.list(reason,status,startTime,endTime,chargingStationId,loginUser.getTenantId());
}
return new ArrayList<>();
}

View File

@ -78,6 +78,7 @@ public class XhpcChargeOrderController extends BaseController {
public AjaxResult startUp(HttpServletRequest request, @RequestParam Long userId, @RequestParam String serialNumber, @RequestParam Integer type){
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<启动充电>>>>>>>>>>>>>>>>>"+serialNumber);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<启动充电>>>>>>>>>>>>>>>>>"+serialNumber);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<启动充电userId>>>>>>>>>>>>>>>>>"+userId);
return iXhpcChargeOrderService.startUp(request,userId, serialNumber, type);
}

View File

@ -191,6 +191,9 @@ public class XhpcPileOrderController extends BaseController {
CacheRealtimeData cacheRealtimeData = redisService.getCacheObject("order:" + orderNo + ".lord");
XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
if(xhpcChargeOrder==null|| xhpcChargeOrder.getUserId()==null){
return R.fail(500,"无效订单号");
}
Long userId = xhpcChargeOrder.getUserId();
try {
@ -243,15 +246,18 @@ public class XhpcPileOrderController extends BaseController {
//获取实时订单
Map<String, Object> cacheMap = redisService.getCacheMap("order:"+orderNo);
if(cacheMap==null || cacheMap.get("orderData")==null ){
logger.info("无效订单号>>>>>orderNo" + orderNo);
return R.fail(500,"无效订单号:"+orderNo);
}
CacheOrderData cacheOrderData = (CacheOrderData)cacheMap.get("orderData");
//获取充电订单
XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo);
if(xhpcChargeOrder == null ){
logger.info("无效订单号>>>>>orderNo" + orderNo);
return R.fail(500,"无效订单号:"+orderNo);
}
if(cacheOrderData==null || cacheOrderData.getT1PowerQuantity()==null ){
logger.info("无效订单号>>>>>orderNo" + orderNo);
return R.fail(500,"无效订单号:"+orderNo);
}
if(xhpcChargeOrder.getStatus()==1 || xhpcChargeOrder.getStatus()==3){
@ -540,6 +546,8 @@ public R pileStartUpBy3rd(@RequestParam(value = "internetSerialNumber") String i
@RequestParam(value = "status") Integer status,
@RequestParam(value = "connectorId") String connectorId) {
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<第三方启动>>>>>>>>>>>>>>>>>"+internetSerialNumber);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<第三方启动>>>>>>>>>>>>>>>>>"+internetSerialNumber);
return xhpcChargeOrderService.startUpBy3rd(internetSerialNumber, driverId, chargingAmt, plateNum, status, connectorId);
}

View File

@ -22,6 +22,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@ -135,7 +136,7 @@ public class XhpcHistoryOrderController extends BaseController {
* 日期统计\场站统计\终端统计
*/
@GetMapping("/test1")
// @Scheduled(cron = "0 0/2 * * * ?")
@Scheduled(cron = "0 0/2 * * * ?")
public void test1(){
add(3000,1);
}
@ -425,7 +426,7 @@ public class XhpcHistoryOrderController extends BaseController {
* 小时统计
*/
@GetMapping("/test")
// @Scheduled(cron = "0 0/2 * * * ?")
@Scheduled(cron = "0 0/2 * * * ?")
public void test(){
logger.info(">>>>>>>>>>>>>>>>>>>>>>>小时统计定时任务>>>>>>>>>>>>>>>>>>>>>");
//小时统计
@ -868,7 +869,7 @@ public class XhpcHistoryOrderController extends BaseController {
* 24小时异常订单自动结算
*/
@GetMapping("/test4")
// @Scheduled(cron = "0 0/5 * * * ?")
@Scheduled(cron = "0 0/5 * * * ?")
public void test4(){
//获取异常的订单 24小时之外的异常订单
List<XhpcChargeOrder> xhpcChargeOrderList= chargeOrderService.getXhpcChargeOrderStatus(2, 0);
@ -923,7 +924,7 @@ public class XhpcHistoryOrderController extends BaseController {
* @param
*/
@GetMapping("/test5")
// @Scheduled(cron = "0 0/5 * * * ?")
@Scheduled(cron = "0 0/5 * * * ?")
public void test5(){
logger.info(">>>>>>>>>>>>>>>>>>>>>>>标记异常大于创建4小时标记为异常>>>>>>>>>>>>>>>>>>>>>");
chargeOrderService.updateStatus();

View File

@ -145,6 +145,15 @@ public class XhpcChargeOrder extends BaseEntity {
* 租户id
*/
private String tenantId;
//司机唯一标识手机号
private String driverId;
//充电金额
private Integer chargingAmt;
//车牌
private String PlateNum;
//符合Evcs标准的订单号,并非来自第三方的订单号
private String evcsOrderNo;
public Integer getStopReasonEvcs() {
@ -435,4 +444,36 @@ public class XhpcChargeOrder extends BaseEntity {
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
public String getDriverId() {
return driverId;
}
public void setDriverId(String driverId) {
this.driverId = driverId;
}
public Integer getChargingAmt() {
return chargingAmt;
}
public void setChargingAmt(Integer chargingAmt) {
this.chargingAmt = chargingAmt;
}
public String getPlateNum() {
return PlateNum;
}
public void setPlateNum(String plateNum) {
PlateNum = plateNum;
}
public String getEvcsOrderNo() {
return evcsOrderNo;
}
public void setEvcsOrderNo(String evcsOrderNo) {
this.evcsOrderNo = evcsOrderNo;
}
}

View File

@ -129,6 +129,8 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
String username = loginUser.getUsername();
Integer userType = loginUser.getUserType();
Long userid = loginUser.getUserid();
logger.info("<<<<<<<<<<<<<<<<<<<<<<<登录用户id>>>>>>>>>>>>>>>>>"+userid);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<桩号>>>>>>>>>>>>>>>>>"+terminalSerialNumber);
String openId = loginUser.getOpenId();
String tenantId = loginUser.getTenantId();
R user = userTypeService.getUser(null, userid, userType, terminalSerialNumber,loginUser.getTenantId());
@ -259,14 +261,6 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<number>>>>>>>>>>>>>>>>>:"+number);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<Soc>>>>>>>>>>>>>>>>>:"+startChargingData.getSoc());
R r1 = powerPileService.startCharging(startChargingData);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<充电返回>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getCode() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getMsg() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getData() + ">>>>>>>>>>>>>>>>>");
if (r1.getCode() != 200) {
return AjaxResult.error(r1.getMsg());
}
//创建充电订单(充电启动soc初始值结束是获取,并修改状态)
XhpcChargeOrder xhpcChargeOrder = new XhpcChargeOrder();
xhpcChargeOrder.setChargingStationId(xhpcTerminal.getChargingStationId());
@ -280,7 +274,6 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
if (xhpcChargingPileById != null && xhpcChargingPileById.get("power") != null) {
xhpcChargeOrder.setPower(xhpcChargingPileById.get("power").toString());
}
xhpcChargeOrder.setRateModelId(Long.valueOf(r1.getData().toString()));
if (type == 1) {
xhpcChargeOrder.setChargingMode("微信");
} else {
@ -290,6 +283,16 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
xhpcChargeOrder.setType(40);
xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder);
R r1 = powerPileService.startCharging(startChargingData);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<充电返回>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getCode() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getMsg() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getData() + ">>>>>>>>>>>>>>>>>");
if (r1.getCode() != 200) {
return AjaxResult.error(r1.getMsg());
}
xhpcChargeOrder.setRateModelId(Long.valueOf(r1.getData().toString()));
xhpcChargeOrderMapper.updateXhpcChargeOrder(xhpcChargeOrder);
//插一帧实时数据
extracted(xhpcChargeOrder);
return AjaxResult.success();
@ -450,7 +453,7 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
StartChargingData startChargingData = new StartChargingData();
//500000 equals 500 yuan
startChargingData.setBalance(chargingAmt * 1000);
startChargingData.setBalance(chargingAmt * 100);
startChargingData.setGunId(connectorId);
@ -551,24 +554,45 @@ public class XhpcChargeOrderServiceImpl extends BaseService implements IXhpcChar
startChargingData.setSoc(number);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<number>>>>>>>>>>>>>>>>>:" + soc);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<Soc>>>>>>>>>>>>>>>>>:" + startChargingData.getSoc());
R r1 = powerPileService.startCharging(startChargingData);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<第三方充电返回>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getCode() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getMsg() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getData() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<第三方充电返回>>>>>>>>>>>>>>>>>");
String startTime = DateUtil.format(date, "yyyy-MM-dd HH: mm: ss");
Map<String, Object> extraData1 = xhpcChargeOrderMapper.selectDate3rdNeedBy(connectorId).get(0);
Long rateModelId = Long.valueOf(r1.getData().toString());
Long terminalId = (Long) extraData1.get("terminalId");
Double power = (Double) extraData1.get("power");
Long chargingStationId = (Long) extraData1.get("chargingStationId");
Map<String, Object> extraData2 = xhpcChargeOrderMapper.select3rdNameBy(internetSerialNumber.substring(0, 9)).get(0);
String chargingMode = (String) extraData2.get("name");
Long userId = (Long) extraData2.get("userId");
int res = xhpcChargeOrderMapper.addBy3rd(internetSerialNumber, orderNo, driverId, chargingAmt, plateNum, status, date, rateModelId, terminalId, power, chargingStationId, chargingMode, 1, userId);
XhpcChargeOrder xhpcChargeOrder =new XhpcChargeOrder();
xhpcChargeOrder.setChargingStationId(chargingStationId);
xhpcChargeOrder.setInternetSerialNumber(internetSerialNumber);
xhpcChargeOrder.setSerialNumber(orderNo);
xhpcChargeOrder.setDriverId(driverId);
xhpcChargeOrder.setChargingAmt(chargingAmt);
xhpcChargeOrder.setPlateNum(plateNum);
xhpcChargeOrder.setStatus(status);
xhpcChargeOrder.setCreateTime(new Date());
xhpcChargeOrder.setTerminalId(terminalId);
try {
xhpcChargeOrder.setPower(power.toString());
}catch (Exception e){
}
xhpcChargeOrder.setSource(1);
xhpcChargeOrder.setUserId(userId);
xhpcChargeOrder.setChargingMode(chargingMode);
int res =xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder);
//int res = xhpcChargeOrderMapper.addBy3rd(internetSerialNumber, orderNo, driverId, chargingAmt, plateNum, status, date,null, terminalId, power, chargingStationId, chargingMode, 1, userId);
R r1 = powerPileService.startCharging(startChargingData);
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<第三方充电返回>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getCode() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getMsg() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getData() + ">>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<<<第三方充电返回>>>>>>>>>>>>>>>>>");
Long rateModelId = Long.valueOf(r1.getData().toString());
xhpcChargeOrder.setRateModelId(rateModelId);
xhpcChargeOrderMapper.updateXhpcChargeOrder(xhpcChargeOrder);
Map<String, Object> data = new HashMap<>();
data.put("orderNo", orderNo);
data.put("startTime", startTime);

View File

@ -684,6 +684,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
logger.info("<<<<<<<<<<<<<<<<发送短信失败>>>>>>>>>>>>>>>>>");
}
addPileEndOrder(xhpcHistoryOrder, xhpcChargeOrder, xhpcChargeOrder.getSerialNumber(),1);
if(!UserTypeUtil.INTERNET_TYPE.equals(source)){
try{
//充电结算后自动申请退款
if(userMessage !=null && "1".equals(userMessage.get("isRefund").toString()) && map !=null){
@ -698,6 +699,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe
logger.info("<<<<<<<<<<<<<<<<自动退款失败>>>>>>>>>>>>>>>>>");
}
}
}
});
}catch (Exception e){
logger.info("<<<<<<<<<<<<<<<<运行异常,结算失败,数据回滚>>>>>>>>>>>>>>>>>");

View File

@ -240,6 +240,18 @@
<if test="null != tenantId and tenantId !=''">
tenant_id,
</if>
<if test="null != driverId and driverId !=''">
driver_id,
</if>
<if test="null != chargingAmt ">
charging_amt,
</if>
<if test="null != PlateNum and PlateNum !=''">
Plate_num,
</if>
<if test="null != evcsOrderNo and evcsOrderNo !=''">
evcs_order_no,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="null != chargingStationId ">
@ -308,6 +320,18 @@
<if test="null != tenantId and tenantId !=''">
#{tenantId},
</if>
<if test="null != driverId and driverId !=''">
#{driverId},
</if>
<if test="null != chargingAmt ">
#{chargingAmt},
</if>
<if test="null != PlateNum and PlateNum !=''">
#{PlateNum},
</if>
<if test="null != evcsOrderNo and evcsOrderNo !=''">
#{evcsOrderNo},
</if>
</trim>
</insert>
@ -326,7 +350,12 @@
<if test="power != null">power = #{power},</if>
<if test="erroRemark != null">erro_remark = #{erroRemark},</if>
<if test="amountCharged != null">amount_charged = #{amountCharged},</if>
<if test="chargingTimeNumber != null">charging_time_number = #{chargingTimeNumber}</if>
<if test="rateModelId != null">rate_model_id = #{rateModelId},</if>
<if test="chargingTimeNumber != null">charging_time_number = #{chargingTimeNumber},</if>
<if test="null != driverId and driverId !=''">driver_id =#{driverId},</if>
<if test="null != chargingAmt ">charging_amt= #{chargingAmt},</if>
<if test="null != PlateNum and PlateNum !=''">Plate_num= #{PlateNum},</if>
<if test="null != evcsOrderNo and evcsOrderNo !=''">evcs_order_no= #{evcsOrderNo},</if>
</set>
where charge_order_id = #{chargeOrderId}
</update>
@ -558,7 +587,8 @@
</select>
<insert id="addBy3rd">
<insert id="addBy3rd" parameterType="com.xhpc.order.domain.XhpcChargeOrder" useGeneratedKeys="true"
keyProperty="chargeOrderId">
insert into xhpc_charge_order
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="null != internetSerialNumber ">
@ -655,11 +685,11 @@
select xt.charging_station_id as chargingStationId,
xt.terminal_id as terminalId,
cs.rate_model_id as rateModelId,
power
xcp.power as power
from xhpc_terminal as xt
left join xhpc_charging_pile as xcp on xcp.serial_number = substring(#{serialNumber}, 1, 14)
left join xhpc_charging_station as cs on xt.charging_station_id = cs.charging_station_id
where xt.serial_number = #{serialNumber} and xt.del_falg = 0
where xt.serial_number = #{serialNumber} and xt.del_flag = 0
</select>
<select id="select3rdNameBy" resultType="map">