整车绑定

This commit is contained in:
attiya 2025-11-05 10:37:45 +08:00
parent 906ddebca2
commit 2d50af8e5a
2 changed files with 21 additions and 19 deletions

View File

@ -33,7 +33,6 @@ public class EbikeBikeBindVo implements Serializable {
/** /**
* 电池编号 * 电池编号
*/ */
@NotNull(message = "电池编号不能为空")
private String batteryCode; private String batteryCode;
/** /**

View File

@ -26,6 +26,7 @@ import java.util.Objects;
import static com.cdzy.operations.model.entity.table.EbikeBatteryInfoTableDef.EBIKE_BATTERY_INFO; import static com.cdzy.operations.model.entity.table.EbikeBatteryInfoTableDef.EBIKE_BATTERY_INFO;
import static com.cdzy.operations.model.entity.table.EbikeBikeInfoTableDef.EBIKE_BIKE_INFO; import static com.cdzy.operations.model.entity.table.EbikeBikeInfoTableDef.EBIKE_BIKE_INFO;
import static com.cdzy.operations.model.entity.table.EbikeBikeQrTableDef.EBIKE_BIKE_QR;
import static com.cdzy.operations.model.entity.table.EbikeEcuInfoTableDef.EBIKE_ECU_INFO; import static com.cdzy.operations.model.entity.table.EbikeEcuInfoTableDef.EBIKE_ECU_INFO;
/** /**
@ -55,38 +56,36 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
@Override @Override
@Transactional @Transactional
public void bind(EbikeBikeBindVo bindVo) { public void bind(EbikeBikeBindVo bindVo) {
QueryWrapper queryWrapper = QueryWrapper.create() QueryWrapper queryWrapper = QueryWrapper.create().where(EBIKE_ECU_INFO.ECU_SN.eq(bindVo.getEcuCode()));
.where(EBIKE_BATTERY_INFO.BATTERY_CODE.eq(bindVo.getBatteryCode()))
.where(EBIKE_BATTERY_INFO.STATUS.eq(BatteryStatus.BIND));
EbikeBatteryInfo batteryInfo = batteryInfoMapper.selectOneByQuery(queryWrapper);
if (batteryInfo == null) {
throw new EbikeException("该电池不存在或尚未绑定");
}
queryWrapper.clear();
queryWrapper.where(EBIKE_ECU_INFO.ECU_SN.eq(bindVo.getEcuCode()));
EbikeEcuInfo ecuInfo = ebikeEcuInfoMapper.selectOneByQuery(queryWrapper); EbikeEcuInfo ecuInfo = ebikeEcuInfoMapper.selectOneByQuery(queryWrapper);
if (ecuInfo == null) { if (ecuInfo == null) {
throw new EbikeException("该中控不存在"); throw new EbikeException("该中控不存在");
} }
queryWrapper.clear(); if (ecuInfo.getBindBattery() && bindVo.getBatteryCode()!=null){
throw new EbikeException("该中控与电池一体无需额外绑定电池");
}
queryWrapper.clear();
queryWrapper.where(EBIKE_BATTERY_INFO.BATTERY_CODE.eq(bindVo.getBatteryCode()))
.where(EBIKE_BATTERY_INFO.STATUS.eq(BatteryStatus.BIND));
EbikeBatteryInfo batteryInfo = batteryInfoMapper.selectOneByQuery(queryWrapper);
if (batteryInfo == null) {
throw new EbikeException("该电池不存在或电池二维码尚未绑定");
}
queryWrapper.clear();
queryWrapper.where(EBIKE_BIKE_QR.BIKE_QR_CODE.eq(bindVo.getBikeCode()))
.where(EBIKE_BIKE_QR.STATUS.eq(BikeQrStatus.UN_BIND));
EbikeBikeQr ebikeBikeQr = bikeQrMapper.selectOneByQuery(queryWrapper); EbikeBikeQr ebikeBikeQr = bikeQrMapper.selectOneByQuery(queryWrapper);
if (ebikeBikeQr == null){ if (ebikeBikeQr == null){
throw new EbikeException("该车辆二维码无效"); throw new EbikeException("该车辆二维码无效或已使用");
} }
ebikeBikeQr.setStatus(BikeQrStatus.BIND);
bikeQrMapper.update(ebikeBikeQr);
if (!Objects.equals(batteryInfo.getOperatorId(), ecuInfo.getOperatorId()) && !Objects.equals(ecuInfo.getOperatorId(), ebikeBikeQr.getOperatorId()) && !Objects.equals(batteryInfo.getOperatorId(), ebikeBikeQr.getOperatorId())) { if (!Objects.equals(batteryInfo.getOperatorId(), ecuInfo.getOperatorId()) && !Objects.equals(ecuInfo.getOperatorId(), ebikeBikeQr.getOperatorId()) && !Objects.equals(batteryInfo.getOperatorId(), ebikeBikeQr.getOperatorId())) {
throw new EbikeException("所选组件属于不同的运营商"); throw new EbikeException("所选组件属于不同的运营商");
} }
//更改二维码绑定状态
ebikeBikeQr.setStatus(BikeQrStatus.BIND);
bikeQrMapper.update(ebikeBikeQr);
Long operatorId = batteryInfo.getOperatorId(); Long operatorId = batteryInfo.getOperatorId();
queryWrapper.clear(); queryWrapper.clear();
@ -98,6 +97,10 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
throw new EbikeException("车辆绑定配件中存已绑定整车的配件"); throw new EbikeException("车辆绑定配件中存已绑定整车的配件");
} }
//更改二维码绑定状态
ebikeBikeQr.setStatus(BikeQrStatus.BIND);
bikeQrMapper.update(ebikeBikeQr);
List<EbikeInventoryRecord> list = new ArrayList<>(); List<EbikeInventoryRecord> list = new ArrayList<>();
for (int i = 1; i < 4; i++) { for (int i = 1; i < 4; i++) {
if (i != 2) { if (i != 2) {