From aad6ef8798be36ff2aa007c3ca66202c4db6504c Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Mon, 12 Aug 2024 13:28:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?update=20=E9=A2=84=E7=BA=A6=E5=85=85?= =?UTF-8?q?=E7=94=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/jsowell/service/PileService.java | 8 ++- .../mapper/PileReservationInfoMapper.java | 5 +- .../service/PileReservationInfoService.java | 4 ++ .../impl/OrderBasicInfoServiceImpl.java | 25 +++++++- .../impl/PileReservationInfoServiceImpl.java | 62 +++++++++++++++---- .../mapper/pile/PileReservationInfoMapper.xml | 8 +++ 6 files changed, 93 insertions(+), 19 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java index 96d879290..3a4aee99c 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java @@ -283,6 +283,10 @@ public class PileService { // 不一致则此桩不是个人桩 throw new BusinessException(ReturnCodeEnum.CODE_THIS_PILE_NOT_PERSONAL_PILE); } + + // 初始化个人桩预约信息 + pileReservationInfoService.initPersonalPileReservation(dto.getPileSn(), null); + // 检查桩是否已经被绑定 PileMemberRelation pileMemberRelation = new PileMemberRelation(); pileMemberRelation.setPileSn(dto.getPileSn()); @@ -298,7 +302,7 @@ public class PileService { } // 密钥正确,且桩未被绑定,则此用户为管理员 pileMemberRelation.setMemberId(dto.getMemberId()); - pileMemberRelation.setType("1"); // 1-管理员 + pileMemberRelation.setType(Constants.ONE); // 1-管理员 return pileMemberRelationService.insertPileMemberRelation(pileMemberRelation); } @@ -602,4 +606,6 @@ public class PileService { return String.valueOf(i); } + + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileReservationInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileReservationInfoMapper.java index fa7939072..3eebf865d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileReservationInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileReservationInfoMapper.java @@ -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); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileReservationInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileReservationInfoService.java index bdd8fec85..59ccba5db 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileReservationInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileReservationInfoService.java @@ -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); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 74d549849..b91fd9cb6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -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 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()); + } + /** * 查询充电中的订单,没有数据权限校验,后管不要用 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java index 75221248c..7261666ef 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java @@ -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,50 @@ 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); + } + } + + /** + * 初始化个人桩预约信息 + * @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); + } } diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileReservationInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileReservationInfoMapper.xml index 3b2c93ed2..61a5f03b9 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileReservationInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileReservationInfoMapper.xml @@ -660,4 +660,12 @@ where del_flag = '0' and pile_connector_code = #{pileConnectorCode,jdbcType=VARCHAR} + + \ No newline at end of file From 7a3d3b3ec33baab3267c483b400899c00880b607 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Mon, 12 Aug 2024 13:32:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?update=20=E9=A2=84=E7=BA=A6=E5=85=85?= =?UTF-8?q?=E7=94=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pile/service/impl/PileReservationInfoServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java index 7261666ef..ce1f6cf98 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java @@ -559,6 +559,7 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic pileReservationInfo.setStatus(Constants.ZERO); pileReservationInfo.setDelFlag("0"); pileReservationInfoMapper.insert(pileReservationInfo); + log.info("未查询到个人桩预约信息, 初始化个人桩预约信息:{}", JSON.toJSONString(pileReservationInfo)); } }