update 预约启动

This commit is contained in:
Guoqs
2024-07-01 14:23:08 +08:00
parent cefe0ed905
commit d0bdd14c54
5 changed files with 115 additions and 6 deletions

View File

@@ -1,6 +1,7 @@
package com.jsowell.pile.service;
import com.jsowell.pile.domain.MemberPlateNumberRelation;
import com.jsowell.pile.vo.uniapp.MemberPlateNumberVO;
import java.util.List;
@@ -88,4 +89,6 @@ public interface MemberPlateNumberRelationService
String checkVinCodeUnique(String vinCode);
String checkPlateNumberUnique(String plateNumber);
List<MemberPlateNumberVO> selectMemberPlateNumberRelation(String memberId);
}

View File

@@ -1,14 +1,15 @@
package com.jsowell.pile.service.impl;
import com.alibaba.fastjson2.JSON;
import com.google.common.collect.Lists;
import com.jsowell.common.constant.UserConstants;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.MemberPlateNumberRelation;
import com.jsowell.pile.mapper.MemberPlateNumberRelationMapper;
import com.jsowell.pile.service.MemberPlateNumberRelationService;
import com.jsowell.pile.vo.uniapp.MemberPlateNumberVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -119,8 +120,6 @@ public class MemberPlateNumberRelationServiceImpl implements MemberPlateNumberRe
/**
* 用户解除绑定车牌号(逻辑删除,将 del_flag 改为 1
*
* @param dto
* @return
*/
@Override
@@ -178,4 +177,33 @@ public class MemberPlateNumberRelationServiceImpl implements MemberPlateNumberRe
}
return UserConstants.NOT_UNIQUE;
}
/**
* 查询会员绑定车牌信息
* @param memberId
* @return
*/
@Override
public List<MemberPlateNumberVO> selectMemberPlateNumberRelation(String memberId) {
List<MemberPlateNumberVO> resultList = Lists.newArrayList();
if (StringUtils.isBlank(memberId)) {
return resultList;
}
MemberPlateNumberRelation relation = new MemberPlateNumberRelation();
relation.setMemberId(memberId);
List<MemberPlateNumberRelation> l = memberPlateNumberRelationMapper.selectMemberPlateNumberRelationList(relation);
if (CollectionUtils.isNotEmpty(l)) {
for (MemberPlateNumberRelation memberPlateNumberRelation : l) {
resultList.add(
MemberPlateNumberVO.builder()
.memberId(memberPlateNumberRelation.getMemberId())
.licensePlateNumber(memberPlateNumberRelation.getLicensePlateNumber())
.vinCode(memberPlateNumberRelation.getVinCode())
.createTime(memberPlateNumberRelation.getCreateTime())
.build()
);
}
}
return resultList;
}
}

View File

@@ -1,15 +1,19 @@
package com.jsowell.pile.service.impl;
import com.google.common.collect.Lists;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.enums.DelFlagEnum;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.ykcCommond.ReservationChargingCommand;
import com.jsowell.pile.dto.PileReservationDTO;
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.uniapp.MemberPlateNumberVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -18,6 +22,7 @@ import javax.annotation.Resource;
import java.sql.Time;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -35,6 +40,12 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
@Autowired
private PileBasicInfoService pileBasicInfoService;
@Autowired
private PileRemoteService pileRemoteService;
@Autowired
private MemberPlateNumberRelationService memberPlateNumberRelationService;
@Override
public int deleteByPrimaryKey(Integer id) {
return pileReservationInfoMapper.deleteByPrimaryKey(id);
@@ -111,7 +122,37 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
// 保存之前,校验时间是否重叠
int i = saveReservation(pileReservationInfo);
if (i > 0) {
// TODO 发送指令
// 查询会员的绑定vin列表
List<MemberPlateNumberVO> plateNumberVOList = memberPlateNumberRelationService.selectMemberPlateNumberRelation(pileReservationInfo.getMemberId());
List<String> vinCodes = Lists.newArrayList();
int count = 0;
for (MemberPlateNumberVO vo : plateNumberVOList) {
if (count < 3 && StringUtils.isNotBlank(vo.getVinCode())) {
vinCodes.add(vo.getVinCode());
count++;
}
}
// 如果 vinCodes 的数量少于 3用 "0" 补足
while (vinCodes.size() < 3) {
vinCodes.add("0");
}
String type = StringUtils.equals(pileReservationInfo.getReservationType(), "single") ? "00" : "01";
// 发送指令
ReservationChargingCommand command = ReservationChargingCommand.builder()
.transactionCode(Constants.ILLEGAL_TRANSACTION_CODE)
.pileSn(pileReservationInfo.getPileSn())
.connectorCode(pileReservationInfo.getPileConnectorCode().replace(pileReservationInfo.getPileSn(), ""))
.operation("01")
.reservationType(type)
.vin1(vinCodes.get(0))
.vin2(vinCodes.get(1))
.vin3(vinCodes.get(2))
.reservedStartTime(pileReservationInfo.getStartTime().toLocalTime())
.reservedEndTime(pileReservationInfo.getEndTime().toLocalTime())
.amount(Constants.WHITELIST_DEFAULT_AMOUNT)
.build();
pileRemoteService.reservationCharging(command);
}
}
@@ -131,7 +172,37 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
pileReservationInfo.setStatus(Constants.ZERO);
int i = pileReservationInfoMapper.updateByPrimaryKeySelective(pileReservationInfo);
if (i > 0) {
// TODO 发送指令
// 查询会员的绑定vin列表
List<MemberPlateNumberVO> plateNumberVOList = memberPlateNumberRelationService.selectMemberPlateNumberRelation(pileReservationInfo.getMemberId());
List<String> vinCodes = Lists.newArrayList();
int count = 0;
for (MemberPlateNumberVO vo : plateNumberVOList) {
if (count < 3 && StringUtils.isNotBlank(vo.getVinCode())) {
vinCodes.add(vo.getVinCode());
count++;
}
}
// 如果 vinCodes 的数量少于 3用 "0" 补足
while (vinCodes.size() < 3) {
vinCodes.add("0");
}
String type = StringUtils.equals(pileReservationInfo.getReservationType(), "single") ? "00" : "01";
// 发送指令
ReservationChargingCommand command = ReservationChargingCommand.builder()
.transactionCode(Constants.ILLEGAL_TRANSACTION_CODE)
.pileSn(pileReservationInfo.getPileSn())
.connectorCode(pileReservationInfo.getPileConnectorCode().replace(pileReservationInfo.getPileSn(), ""))
.operation("02")
.reservationType(type)
.vin1(vinCodes.get(0))
.vin2(vinCodes.get(1))
.vin3(vinCodes.get(2))
.reservedStartTime(pileReservationInfo.getStartTime().toLocalTime())
.reservedEndTime(pileReservationInfo.getEndTime().toLocalTime())
.amount(Constants.WHITELIST_DEFAULT_AMOUNT)
.build();
pileRemoteService.reservationCharging(command);
}
}

View File

@@ -1,9 +1,15 @@
package com.jsowell.pile.vo.uniapp;
import com.jsowell.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class MemberPlateNumberVO {
/**
* 主键