定期巡检

This commit is contained in:
PC 2026-02-27 11:19:07 +08:00
parent 76592d42aa
commit 3dc428925f
2 changed files with 25 additions and 4 deletions

View File

@ -3,8 +3,12 @@ package com.cdzy.operations.component;
import com.cdzy.operations.enums.BikeOrderType; import com.cdzy.operations.enums.BikeOrderType;
import com.cdzy.operations.enums.OrderDispatchState; import com.cdzy.operations.enums.OrderDispatchState;
import com.cdzy.operations.enums.OrderHandleState; import com.cdzy.operations.enums.OrderHandleState;
import com.cdzy.operations.model.dto.EbikeUserBikeInfo;
import com.cdzy.operations.model.entity.EbikeBikeOrder; import com.cdzy.operations.model.entity.EbikeBikeOrder;
import com.cdzy.operations.model.entity.EbikeWorkOrderConfiguration;
import com.cdzy.operations.service.EbikeBikeInfoService;
import com.cdzy.operations.service.EbikeBikeOrderService; import com.cdzy.operations.service.EbikeBikeOrderService;
import com.cdzy.operations.service.EbikeWorkOrderConfigurationService;
import com.cdzy.operations.utils.RedisUtil; import com.cdzy.operations.utils.RedisUtil;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -29,6 +33,12 @@ public class SafeOrderExpirationListener {
@Resource @Resource
private EbikeBikeOrderService orderService; private EbikeBikeOrderService orderService;
@Resource
private EbikeWorkOrderConfigurationService orderConfigurationService;
@Resource
private EbikeBikeInfoService bikeInfoService;
// Redis键常量 // Redis键常量
private static final String ORDER_KEY_PREFIX = "bike:dispatch:lock:"; private static final String ORDER_KEY_PREFIX = "bike:dispatch:lock:";
@ -237,8 +247,10 @@ public class SafeOrderExpirationListener {
//生成巡检工单 //生成巡检工单
orderService.createInspectionOrderByBikeCode(bikeCode); orderService.createInspectionOrderByBikeCode(bikeCode);
//重新添加Key实现循环定期巡检 //重新添加Key实现循环定期巡检
log.info("重新添加定期巡检任务: bikeCode={}",bikeCode ); log.info("重新添加定期巡检任务: bikeCode={}", bikeCode);
redisUtil.saveInspectionOrder(bikeCode,null,30L,TimeUnit.DAYS); EbikeUserBikeInfo ebikeUserBikeInfo = bikeInfoService.bikeInfo(bikeCode);
EbikeWorkOrderConfiguration configuration = orderConfigurationService.getConfigurationByOperationId(ebikeUserBikeInfo.getOperatorId());
redisUtil.saveInspectionOrder(bikeCode, ebikeUserBikeInfo, configuration != null ? configuration.getInspectionIntervalDuration() : 30L, TimeUnit.DAYS);
} catch (Exception e) { } catch (Exception e) {
log.error("生成巡检工单业务异常: orderId={}", bikeCode, e); log.error("生成巡检工单业务异常: orderId={}", bikeCode, e);
throw e; throw e;

View File

@ -128,7 +128,7 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
private EbikeBikeOrderMapper orderMapper; private EbikeBikeOrderMapper orderMapper;
@Resource @Resource
private EbikeWorkOrderConfigurationService dispatchConfigurationService; private EbikeWorkOrderConfigurationService orderConfigurationService;
@Resource @Resource
private EbikeRegionMapper ebikeRegionMapper; private EbikeRegionMapper ebikeRegionMapper;
@ -310,6 +310,11 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
.set(EBIKE_BIKE_INFO.REGION_ID, launchVo.getRegionId()) .set(EBIKE_BIKE_INFO.REGION_ID, launchVo.getRegionId())
.where(EBIKE_BIKE_INFO.BIKE_CODE.in(launchVo.getBikeCodes())) .where(EBIKE_BIKE_INFO.BIKE_CODE.in(launchVo.getBikeCodes()))
.update(); .update();
List<String> bikeCodes = launchVo.getBikeCodes();
for (String bikeCode : bikeCodes) {
EbikeWorkOrderConfiguration configuration = orderConfigurationService.getConfigurationByOperationId(region.getOperatorId());
redisUtil.saveInspectionOrder(bikeCode, null, configuration != null ? configuration.getInspectionIntervalDuration() : 30L, TimeUnit.DAYS);
}
} }
@Override @Override
@ -318,6 +323,10 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
.set(EBIKE_BIKE_INFO.STATUS, BikeStatus.UN_LAUNCH) .set(EBIKE_BIKE_INFO.STATUS, BikeStatus.UN_LAUNCH)
.where(EBIKE_BIKE_INFO.BIKE_CODE.in(launchVo.getBikeCodes())) .where(EBIKE_BIKE_INFO.BIKE_CODE.in(launchVo.getBikeCodes()))
.update(); .update();
List<String> bikeCodes = launchVo.getBikeCodes();
for (String bikeCode : bikeCodes) {
redisUtil.deleteInspectionOrder(bikeCode);
}
} }
@Override @Override
@ -521,7 +530,7 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
ebikeEcuInfoService.lock(ebikeEcuInfo); ebikeEcuInfoService.lock(ebikeEcuInfo);
EbikeWorkOrderConfiguration configuration = dispatchConfigurationService.getConfigurationByOperationId(info.getOperatorId()); EbikeWorkOrderConfiguration configuration = orderConfigurationService.getConfigurationByOperationId(info.getOperatorId());
if (configuration != null && configuration.getDispatchDuration() != null) { if (configuration != null && configuration.getDispatchDuration() != null) {
redisUtil.saveNoDocument(bikeCode, LocalDateTime.now(), configuration.getDispatchDuration(), TimeUnit.HOURS); redisUtil.saveNoDocument(bikeCode, LocalDateTime.now(), configuration.getDispatchDuration(), TimeUnit.HOURS);