debug,订单占用问题

This commit is contained in:
磷叶 2025-05-01 08:02:46 +08:00
parent 10dae59169
commit 0186d3a3ea
4 changed files with 16 additions and 17 deletions

View File

@ -42,8 +42,8 @@ public class DeviceQuery extends DeviceVO {
@ApiModelProperty("剩余电量百分比范围") @ApiModelProperty("剩余电量百分比范围")
private List<BigDecimal> powerRange; private List<BigDecimal> powerRange;
@ApiModelProperty("订单为空或状态列表") @ApiModelProperty("订单设备为空或状态列表")
private List<String> nonOrOrderStatusList; private List<String> nonOrOrderDeviceStatusList;
@ApiModelProperty("MAC列表") @ApiModelProperty("MAC列表")
private List<String> macList; private List<String> macList;

View File

@ -160,11 +160,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and bd.remaining_power &gt;= #{query.powerRange[0]} and bd.remaining_power &gt;= #{query.powerRange[0]}
and bd.remaining_power &lt;= #{query.powerRange[1]} and bd.remaining_power &lt;= #{query.powerRange[1]}
</if> </if>
<if test="query.nonOrOrderStatusList != null and query.nonOrOrderStatusList.size() > 0"> <if test="query.nonOrOrderDeviceStatusList != null and query.nonOrOrderDeviceStatusList.size() > 0">
and ( and (
bd.order_device_id is null bd.order_device_id is null
or bo.status in or bod.status in
<foreach item="item" collection="query.nonOrOrderStatusList" open="(" separator="," close=")"> <foreach item="item" collection="query.nonOrOrderDeviceStatusList" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
) )

View File

@ -5,6 +5,7 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.function.Function; import java.util.function.Function;
import com.ruoyi.bst.orderDevice.domain.enums.OrderDeviceStatus;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.support.TransactionTemplate; import org.springframework.transaction.support.TransactionTemplate;
@ -438,20 +439,17 @@ public class DeviceServiceImpl implements DeviceService
if (id == null || deviceOrderId == null) { if (id == null || deviceOrderId == null) {
return 0; return 0;
} }
// 允许下单的设备订单状态 // 允许下单的订单设备状态
List<String> orderStatusList = Arrays.asList( List<String> statusList = Arrays.asList(
OrderStatus.FINISHED.getCode(), OrderDeviceStatus.WAIT_USE.getCode(),
OrderStatus.CANCELED.getCode(), OrderDeviceStatus.FINISHED.getCode()
OrderStatus.WAIT_VERIFY.getCode(),
OrderStatus.REJECTED.getCode(),
OrderStatus.REFUNDED.getCode()
); );
Device data = new Device(); Device data = new Device();
data.setOrderDeviceId(deviceOrderId); data.setOrderDeviceId(deviceOrderId);
DeviceQuery query = new DeviceQuery(); DeviceQuery query = new DeviceQuery();
query.setId(id); query.setId(id);
query.setNonOrOrderStatusList(orderStatusList); query.setNonOrOrderDeviceStatusList(statusList);
return deviceMapper.updateByQuery(data, query); return deviceMapper.updateByQuery(data, query);
} }

View File

@ -7,6 +7,7 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import com.ruoyi.bst.orderDevice.domain.enums.OrderDeviceStatus;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -191,7 +192,7 @@ public class OrderValidatorImpl implements OrderValidator{
ServiceUtil.assertion(device == null || device.getId() == null, "车辆不存在"); ServiceUtil.assertion(device == null || device.getId() == null, "车辆不存在");
ServiceUtil.assertion(!DeviceStatus.canUse().contains(device.getStatus()), "ID为%s的车辆当前状态不可使用", device.getId()); ServiceUtil.assertion(!DeviceStatus.canUse().contains(device.getStatus()), "ID为%s的车辆当前状态不可使用", device.getId());
ServiceUtil.assertion(MathUtils.smallerThan(device.getRemainingPower(), device.getAreaUndercharge()), "ID为%s的车辆电量不足%s%%,暂时无法使用", device.getId(), device.getAreaUndercharge()); ServiceUtil.assertion(MathUtils.smallerThan(device.getRemainingPower(), device.getAreaUndercharge()), "ID为%s的车辆电量不足%s%%,暂时无法使用", device.getId(), device.getAreaUndercharge());
ServiceUtil.assertion(OrderStatus.PROCESSING.getCode().equals(device.getOrderStatus()), "ID为%s的车辆当前有正在进行的订单无法使用", device.getId()); ServiceUtil.assertion(OrderDeviceStatus.inUse().contains(device.getOrderDeviceStatus()), "ID为%s的车辆当前有正在进行的订单无法使用", device.getId());
ServiceUtil.assertion(device.getAreaId() == null, "当前车辆未绑定运营区,无法使用"); ServiceUtil.assertion(device.getAreaId() == null, "当前车辆未绑定运营区,无法使用");
ServiceUtil.assertion(AreaStatus.DISABLED.getCode().equals(device.getAreaStatus()), "运营区“%s”已停运无法使用该车辆", device.getAreaName()); ServiceUtil.assertion(AreaStatus.DISABLED.getCode().equals(device.getAreaStatus()), "运营区“%s”已停运无法使用该车辆", device.getAreaName());
ServiceUtil.assertion(!DateUtils.isBetween(LocalTime.now(), device.getAreaTimeStart(), device.getAreaTimeEnd()), "运营区“%s”当前不在营业时间无法使用该车辆", device.getAreaName()); ServiceUtil.assertion(!DateUtils.isBetween(LocalTime.now(), device.getAreaTimeStart(), device.getAreaTimeEnd()), "运营区“%s”当前不在营业时间无法使用该车辆", device.getAreaName());