This commit is contained in:
Lemon
2024-08-12 13:33:19 +08:00
6 changed files with 94 additions and 19 deletions

View File

@@ -1,11 +1,10 @@
package com.jsowell.pile.mapper;
import com.jsowell.pile.domain.PileReservationInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface PileReservationInfoMapper {
int deleteByPrimaryKey(Integer id);
@@ -36,4 +35,6 @@ public interface PileReservationInfoMapper {
PileReservationInfo selectActiveReservationByPileConnectorCode(String pileConnectorCode);
PileReservationInfo selectByPileConnectorCode(String pileConnectorCode);
PileReservationInfo selectByPileSn(String pileSn);
}

View File

@@ -73,5 +73,9 @@ public interface PileReservationInfoService {
void personPileStopCharging(PersonPileStopChargingDTO dto);
PileReservationInfoVO queryReservationInfo(PileReservationDTO dto);
void initPersonalPileReservation(String pileConnectorCode);
void initPersonalPileReservation(String pileSn, String connectorCode);
}

View File

@@ -49,12 +49,14 @@ import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.util.UserUtils;
import com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO;
import com.jsowell.pile.vo.SupStationStatsVO;
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.base.*;
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
import com.jsowell.pile.vo.nanrui.JiangSuOrderInfoVO;
import com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO;
import com.jsowell.pile.vo.uniapp.customer.*;
import com.jsowell.pile.vo.web.*;
import com.jsowell.wxpay.common.WeChatPayParameter;
@@ -72,6 +74,7 @@ import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.CompletableFuture;
@@ -551,6 +554,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
}
if (currentTimeMillis - time < 1000 * 60 * 15) {
logger.info("currentTimeMillis:{} - time:{} = {}", currentTimeMillis, time, currentTimeMillis - time);
continue;
}
// 已经支付超过15分钟 判断充电桩的状态
@@ -565,11 +569,26 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
List<RealTimeMonitorData> chargingRealTimeData = getChargingRealTimeData(orderBasicInfo.getTransactionCode());
if (CollectionUtils.isEmpty(chargingRealTimeData)) {
// 充电桩在线并且没有0x13实时数据则执行结算退款操作
chargingPileFailedToStart(orderBasicInfo.getTransactionCode(), "充电桩启动失败,执行退款处理");
chargingPileFailedToStart(orderBasicInfo.getTransactionCode(), "充电桩启动失败,充电订单:" + orderBasicInfo.getOrderCode() + "执行退款处理");
}
}
}
public static void main(String[] args) {
long currentTimeMillis = System.currentTimeMillis();
String str1 = "2024-08-12 09:41:02";
// Date time = Date.parse();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = null;
try {
parse = sdf1.parse(str1);
} catch (ParseException e) {
throw new RuntimeException(e);
}
System.out.println(currentTimeMillis - parse.getTime());
}
/**
* 查询充电中的订单,没有数据权限校验,后管不要用
*

View File

@@ -14,11 +14,13 @@ import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.PileMemberRelation;
import com.jsowell.pile.domain.PileReservationInfo;
import com.jsowell.pile.domain.ykcCommond.ReservationChargingCommand;
import com.jsowell.pile.dto.CreateReservedDTO;
import com.jsowell.pile.dto.PersonPileStopChargingDTO;
import com.jsowell.pile.dto.PileReservationDTO;
import com.jsowell.pile.dto.StartPersonPileDTO;
import com.jsowell.pile.mapper.PileReservationInfoMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.vo.PileReservationInfoVO;
import com.jsowell.pile.vo.uniapp.customer.MemberPlateNumberVO;
@@ -36,9 +38,6 @@ import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import com.jsowell.pile.mapper.PileReservationInfoMapper;
import com.jsowell.pile.domain.PileReservationInfo;
@Slf4j
@Service
public class PileReservationInfoServiceImpl implements PileReservationInfoService {
@@ -520,16 +519,8 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
PileReservationInfo pileReservationInfo = pileReservationInfoMapper.selectByPileConnectorCode(dto.getPileConnectorCode());
String pileSn = StringUtils.substring(dto.getPileConnectorCode(), 0, 14);
if (pileReservationInfo == null) {
pileReservationInfo = new PileReservationInfo();
pileReservationInfo.setPileSn(pileSn);
pileReservationInfo.setPileConnectorCode(dto.getPileConnectorCode());
pileReservationInfo.setStartTime(Time.valueOf("09:00:00"));
pileReservationInfo.setEndTime(Time.valueOf("20:00:00"));
pileReservationInfo.setVerifyIdentity(Constants.ZERO);
pileReservationInfo.setStatus(Constants.ZERO);
pileReservationInfo.setDelFlag("0");
pileReservationInfoMapper.insert(pileReservationInfo);
// 初始化预约信息
initPersonalPileReservation(dto.getPileConnectorCode());
}
PileReservationInfoVO build = PileReservationInfoVO.builder()
.reservedId(pileReservationInfo.getId() + "")
@@ -543,5 +534,51 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
.build();
return build;
}
/**
* 初始化个人桩预约信息
* @param pileConnectorCode 充电桩枪口编号
*/
@Override
public void initPersonalPileReservation(String pileConnectorCode) {
if (StringUtils.isBlank(pileConnectorCode)) {
log.error("初始化个人桩预约信息, pileConnectorCode不能为空");
return;
}
String pileSn = pileConnectorCode.substring(0, pileConnectorCode.length() - 2);
// 查询个人桩预约信息
PileReservationInfo pileReservationInfo = pileReservationInfoMapper.selectByPileConnectorCode(pileConnectorCode);
// 新建预约
if (pileReservationInfo == null) {
pileReservationInfo = new PileReservationInfo();
pileReservationInfo.setPileSn(pileSn);
pileReservationInfo.setPileConnectorCode(pileConnectorCode);
pileReservationInfo.setStartTime(Time.valueOf("21:00:00"));
pileReservationInfo.setEndTime(Time.valueOf("23:00:00"));
pileReservationInfo.setVerifyIdentity(Constants.ZERO);
pileReservationInfo.setStatus(Constants.ZERO);
pileReservationInfo.setDelFlag("0");
pileReservationInfoMapper.insert(pileReservationInfo);
log.info("未查询到个人桩预约信息, 初始化个人桩预约信息:{}", JSON.toJSONString(pileReservationInfo));
}
}
/**
* 初始化个人桩预约信息
* @param pileSn 充电桩编号
* @param connectorCode 枪口号, 不传默认01
*/
@Override
public void initPersonalPileReservation(String pileSn, String connectorCode) {
if (StringUtils.isBlank(pileSn)) {
log.error("初始化个人桩预约信息, pileSn不能为空");
return;
}
if (StringUtils.isBlank(connectorCode)) {
connectorCode = "01";
}
String pileConnectorCode = pileSn + connectorCode;
this.initPersonalPileReservation(pileConnectorCode);
}
}