完成换电

This commit is contained in:
attiya 2025-12-03 15:46:16 +08:00
parent f76380ff33
commit 1e386c78f6

View File

@ -21,6 +21,7 @@ import com.mybatisflex.core.update.UpdateChain;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@ -76,6 +77,8 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
@Resource
MinioUtil minioUtil;
@Autowired
private EbikeBikeOrderMapper ebikeBikeOrderMapper;
@Override
public void createBatterySwapOrder(String ecuSn) {
@ -315,12 +318,54 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
@Override
public void batteryChange(EbikeBatteryChangeVo changeVo) {
String bikeCode = changeVo.getBikeCode();
String batteryCode = changeVo.getBatteryCode();
QueryWrapper queryWrapper = QueryWrapper.create()
.where(EBIKE_BIKE_INFO.BIKE_CODE.eq(bikeCode));
EbikeBikeInfo bikeInfo = bikeInfoMapper.selectOneByQuery(queryWrapper);
if (bikeInfo == null) {
throw new EbikeException("车辆编号错误");
}
queryWrapper.clear();
queryWrapper.where(EBIKE_BIKE_ORDER.BIKE_CODE.eq(bikeCode))
.where(EBIKE_BIKE_ORDER.ORDER_TYPE.eq(BikeOrderType.BATTERY_SWAP))
.where(EBIKE_BIKE_ORDER.HANDLE_STATE.ne(OrderHandleState.PROCESSED))
.where(EBIKE_BIKE_ORDER.HANDLE_STATE.ne(OrderHandleState.VOIDED));
EbikeBikeOrder bikeOrder = ebikeBikeOrderMapper.selectOneByQuery(queryWrapper);
if (bikeOrder == null) {
throw new EbikeException("该车辆暂时无需换电");
}
if (bikeOrder.getReceiverId() != StpUtil.getLoginIdAsLong()) {
if (bikeOrder.getReceiverId() != null) {
throw new EbikeException("其他用户已接单为该车辆换电");
}else {
throw new EbikeException("请接单后完成换电");
}
}
if (batteryCode.startsWith("B")) {
queryWrapper.clear();
queryWrapper.where(EBIKE_BATTERY_INFO.BATTERY_CODE.eq(batteryCode));
EbikeBatteryInfo batteryInfo = batteryInfoMapper.selectOneByQuery(queryWrapper);
if (batteryInfo == null) {
throw new EbikeException("电池编号错误");
}
bikeInfo.setBatteryId(batteryInfo.getBatteryId());
bikeInfoMapper.update(bikeInfo);
bikeOrder.setHandleState(OrderHandleState.PROCESSED);
ebikeBikeOrderMapper.update(bikeOrder);
}else {
queryWrapper.clear();
queryWrapper.where(EBIKE_ECU_INFO.ECU_SN.eq(bikeCode))
.where(EBIKE_ECU_INFO.BIND_BATTERY.eq(Boolean.TRUE));
EbikeEcuInfo ecuInfo = ebikeEcuInfoMapper.selectOneByQuery(queryWrapper);
if (ecuInfo == null) {
throw new EbikeException("带电池中控编号错误");
}
bikeInfo.setEcuId(ecuInfo.getEcuId());
bikeInfo.setBatteryId(null);
bikeInfoMapper.update(bikeInfo);
bikeOrder.setHandleState(OrderHandleState.PROCESSED);
ebikeBikeOrderMapper.update(bikeOrder);
}
}