From 44d276fbf443edc4e8c499a88613beab793ee937 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Fri, 26 Jul 2024 09:52:03 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E9=A2=84=E7=BA=A6=E5=85=85=E7=94=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uniapp/customer/PersonPileController.java | 25 ++++++++- .../java/com/jsowell/service/PileService.java | 5 +- .../common/enums/ykc/ReturnCodeEnum.java | 2 + .../jsowell/pile/dto/PileReservationDTO.java | 5 ++ .../mapper/PileReservationInfoMapper.java | 2 + .../service/PileReservationInfoService.java | 3 ++ .../impl/PileReservationInfoServiceImpl.java | 52 +++++++++++++++---- ...rvedVO.java => PileReservationInfoVO.java} | 11 ++-- .../uniapp/customer/PersonPileRealTimeVO.java | 10 ++++ .../mapper/pile/PileReservationInfoMapper.xml | 8 +++ 10 files changed, 106 insertions(+), 17 deletions(-) rename jsowell-pile/src/main/java/com/jsowell/pile/vo/{PileReservedVO.java => PileReservationInfoVO.java} (75%) diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/PersonPileController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/PersonPileController.java index f3a006321..eaa25ec0b 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/PersonPileController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/PersonPileController.java @@ -14,6 +14,7 @@ import com.jsowell.pile.dto.*; import com.jsowell.pile.service.PileBasicInfoService; import com.jsowell.pile.service.PileMerchantInfoService; import com.jsowell.pile.service.PileReservationInfoService; +import com.jsowell.pile.vo.PileReservationInfoVO; import com.jsowell.pile.vo.uniapp.customer.PersonPileConnectorSumInfoVO; import com.jsowell.pile.vo.uniapp.customer.PersonPileRealTimeVO; import com.jsowell.pile.vo.uniapp.customer.PersonalPileInfoVO; @@ -429,5 +430,27 @@ public class PersonPileController extends BaseController { return response; } - + /** + * 根据充电桩查询预约状态 + * http://localhost:8080/uniapp/personalPile/queryReservationInfo + */ + @PostMapping("/queryReservationInfo") + public RestApiResponse queryReservationInfo(HttpServletRequest request, @RequestBody PileReservationDTO dto) { + // logger.info("修改预约充电状态params:{}", dto); + RestApiResponse response = null; + try { + String memberId = getMemberIdByAuthorization(request); + dto.setMemberId(memberId); + PileReservationInfoVO vo = pileReservationInfoService.queryReservationInfo(dto); + response = new RestApiResponse<>(vo); + } catch (BusinessException e) { + logger.error("根据充电桩查询预约状态error, params:{}", dto, e); + response = new RestApiResponse<>(e.getCode(), e.getMessage()); + } catch (Exception e) { + logger.error("根据充电桩查询预约状态error, params:{}", dto, e); + response = new RestApiResponse<>(ReturnCodeEnum.CODE_QUERY_RESERVATION_STATUS_ERROR); + } + logger.info("根据充电桩查询预约状态params:{}, result:{}", dto, response); + return response; + } } 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 bbbd4f224..96d879290 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java @@ -20,7 +20,6 @@ import com.jsowell.pile.util.SnUtils; import com.jsowell.pile.service.*; import com.jsowell.pile.transaction.dto.PileTransactionDTO; import com.jsowell.pile.transaction.service.TransactionService; -import com.jsowell.pile.vo.PileReservedVO; import com.jsowell.pile.vo.base.ConnectorInfoVO; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.PileInfoVO; @@ -40,7 +39,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; -import java.sql.Time; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -399,7 +397,6 @@ public class PileService { if (basicInfo == null){ throw new BusinessException(ReturnCodeEnum.CODE_NO_CHARGING_ORDER_ERROR); } - String orderCode = basicInfo.getOrderCode(); // 根据订单号从redis中获取实时数据信息(默认时间倒叙排列,所以取第一条) List chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(basicInfo.getTransactionCode()); if (CollectionUtils.isEmpty(chargingRealTimeData)) { @@ -414,6 +411,8 @@ public class PileService { .instantCurrent(realTimeMonitorData.getOutputCurrent()) .instantVoltage(realTimeMonitorData.getOutputVoltage()) .instantPower(realTimeMonitorData.getOutputPower()) + .status(orderBasicInfo.getOrderStatus()) + .soc(realTimeMonitorData.getSOC()) .build(); return vo; } diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java index 48ceef8bf..15ffebfe0 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java @@ -181,6 +181,8 @@ public enum ReturnCodeEnum { CODE_PERSON_PILE_STOP_CHARGING_ERROR("00400018", "个人桩停止充电异常"), + CODE_QUERY_RESERVATION_STATUS_ERROR("00400019", "根据充电桩查询预约状态异常"), + /* 个人桩 end */ CODE_THIS_CARNO_HAS_BEEN_BINDING("00500001", "当前车牌号已经绑定,请检查!"), diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/PileReservationDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/PileReservationDTO.java index 2d704d182..7c0695cf1 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/PileReservationDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/PileReservationDTO.java @@ -28,6 +28,11 @@ public class PileReservationDTO { */ private String pileSn; + /** + * 充电桩枪口编号 + */ + private String pileConnectorCode; + /** * 开始时间 hh:mm:ss */ 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 da44e5ff2..fa7939072 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 @@ -34,4 +34,6 @@ public interface PileReservationInfoMapper { List findByMemberIdAndPileSn(@Param("memberId") String memberId, @Param("pileSn") String pileSn); PileReservationInfo selectActiveReservationByPileConnectorCode(String pileConnectorCode); + + PileReservationInfo selectByPileConnectorCode(String pileConnectorCode); } \ 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 2717ea9b4..6f04543cd 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 @@ -7,6 +7,7 @@ import com.jsowell.pile.dto.CreateReservedDTO; import com.jsowell.pile.dto.PersonPileStopChargingDTO; import com.jsowell.pile.dto.PileReservationDTO; import com.jsowell.pile.domain.PileReservationInfo; +import com.jsowell.pile.vo.PileReservationInfoVO; public interface PileReservationInfoService { int deleteByPrimaryKey(Integer id); @@ -68,5 +69,7 @@ public interface PileReservationInfoService { void updateReservation(PileReservationDTO dto); void personPileStopCharging(PersonPileStopChargingDTO dto); + + PileReservationInfoVO queryReservationInfo(PileReservationDTO dto); } 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 020699ef1..1a8445688 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 @@ -18,7 +18,7 @@ import com.jsowell.pile.dto.StartPersonPileDTO; import com.jsowell.pile.service.MemberPlateNumberRelationService; import com.jsowell.pile.service.PileBasicInfoService; import com.jsowell.pile.service.PileRemoteService; -import com.jsowell.pile.vo.PileReservedVO; +import com.jsowell.pile.vo.PileReservationInfoVO; import com.jsowell.pile.vo.uniapp.customer.MemberPlateNumberVO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.sql.Date; import java.sql.Time; import java.time.LocalDateTime; import java.time.LocalTime; @@ -69,6 +70,11 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic @Override public int insertOrUpdateSelective(PileReservationInfo record) { + if (record.getId() == null) { + record.setCreateTime(DateUtils.getNowDate()); + } else { + record.setUpdateTime(DateUtils.getNowDate()); + } return pileReservationInfoMapper.insertOrUpdateSelective(record); } @@ -112,6 +118,10 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic return pileReservationInfoMapper.findByMemberIdAndPileSn(memberId, pileSn); } + public PileReservationInfo selectByPileConnectorCode(String pileConnectorCode) { + return pileReservationInfoMapper.selectByPileConnectorCode(pileConnectorCode); + } + /** * 启用预约/开启预约/启动预约 */ @@ -300,11 +310,17 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic @Override public int createReservation(CreateReservedDTO dto) { - PileReservationInfo reservedInfo = new PileReservationInfo(); - reservedInfo.setMemberId(dto.getMemberId()); + PileReservationInfo reservedInfo = selectByPileConnectorCode(dto.getPileConnectorCode()); + if (reservedInfo == null) { + reservedInfo = new PileReservationInfo(); + reservedInfo.setCreateBy(dto.getMemberId()); + } else { + reservedInfo.setUpdateBy(dto.getMemberId()); + } + // reservedInfo.setMemberId(dto.getMemberId()); reservedInfo.setPileSn(dto.getPileSn()); reservedInfo.setPileConnectorCode(dto.getPileConnectorCode()); - reservedInfo.setStatus(Constants.ZERO); // 默认未生效 + reservedInfo.setStatus(Constants.ONE); // 默认生效 // reservedInfo.setStartTime(DateUtils.parseDate(dto.getStartTime())); reservedInfo.setStartTime(Time.valueOf(dto.getStartTime())); // reservedInfo.setEndTime(DateUtils.parseDate(dto.getEndTime())); @@ -325,8 +341,8 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic reservedInfo.setReservationType("recurring"); reservedInfo.setFreq("daily"); - reservedInfo.setCreateBy(dto.getMemberId()); - this.insertSelective(reservedInfo); + + this.insertOrUpdateSelective(reservedInfo); return reservedInfo.getId(); } @@ -344,15 +360,15 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic pageResponse.setPages(pageInfo.getPages()); pageResponse.setTotal(pageInfo.getTotal()); - List resultList = Lists.newArrayList(); + List resultList = Lists.newArrayList(); for (PileReservationInfo reservedInfo : pageInfo.getList()) { resultList.add( - PileReservedVO.builder() - .reservedId(reservedInfo.getId() + "") + PileReservationInfoVO.builder() + // .reservationId(reservedInfo.getId() + "") .pileSn(reservedInfo.getPileSn()) .startTime(reservedInfo.getStartTime().toString()) .endTime(reservedInfo.getEndTime().toString()) - .freq(reservedInfo.getFreq()) + // .freq(reservedInfo.getFreq()) .status(reservedInfo.getStatus()) .build() ); @@ -399,6 +415,7 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic if (StringUtils.isNotBlank(dto.getStatus())) { pileReservationInfo.setStatus(dto.getStatus()); } + pileReservationInfo.setUpdateBy(dto.getMemberId()); this.insertOrUpdateSelective(pileReservationInfo); } @@ -414,5 +431,20 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic } + + @Override + public PileReservationInfoVO queryReservationInfo(PileReservationDTO dto) { + PileReservationInfo pileReservationInfo = pileReservationInfoMapper.selectByPileConnectorCode(dto.getPileConnectorCode()); + PileReservationInfoVO build = PileReservationInfoVO.builder() + // .reservationId(pileReservationInfo.getId() + "") + .pileSn(pileReservationInfo.getPileSn()) + .pileConnectorCode(pileReservationInfo.getPileConnectorCode()) + .startTime(pileReservationInfo.getStartTime().toString()) + .endTime(pileReservationInfo.getEndTime().toString()) + // .freq(pileReservationInfo.getFreq()) + .status(pileReservationInfo.getStatus()) + .build(); + return build; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/PileReservedVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/PileReservationInfoVO.java similarity index 75% rename from jsowell-pile/src/main/java/com/jsowell/pile/vo/PileReservedVO.java rename to jsowell-pile/src/main/java/com/jsowell/pile/vo/PileReservationInfoVO.java index 3e7387c15..62159cffa 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/PileReservedVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/PileReservationInfoVO.java @@ -7,14 +7,19 @@ import lombok.Setter; @Getter @Setter @Builder -public class PileReservedVO { - private String reservedId; +public class PileReservationInfoVO { + // private String reservationId; /** * 充电桩编号 */ private String pileSn; + /** + * 充电桩枪口编号 + */ + private String pileConnectorCode; + /** * 预约开始时间 */ @@ -28,7 +33,7 @@ public class PileReservedVO { /** * 周期性预约的频率,对于单次预约,该字段可以为 NULL。可能的值包括 daily, weekly, monthly */ - private String freq; + // private String freq; /** * 状态(0-未生效;1-生效) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/PersonPileRealTimeVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/PersonPileRealTimeVO.java index 7c258178c..d0b081dd5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/PersonPileRealTimeVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/PersonPileRealTimeVO.java @@ -45,4 +45,14 @@ public class PersonPileRealTimeVO { * 实时功率 */ private String instantPower; + + /** + * 枪口状态 + */ + private String status; + + /** + * soc + */ + private String soc; } diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileReservationInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileReservationInfoMapper.xml index a29fb3c7e..5081f35b7 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileReservationInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileReservationInfoMapper.xml @@ -616,4 +616,12 @@ and status = '1' and pile_connector_code = #{pileConnectorCode,jdbcType=VARCHAR} + + \ No newline at end of file