定期巡检

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.OrderDispatchState;
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.EbikeWorkOrderConfiguration;
import com.cdzy.operations.service.EbikeBikeInfoService;
import com.cdzy.operations.service.EbikeBikeOrderService;
import com.cdzy.operations.service.EbikeWorkOrderConfigurationService;
import com.cdzy.operations.utils.RedisUtil;
import com.mybatisflex.core.query.QueryWrapper;
import jakarta.annotation.Resource;
@ -29,6 +33,12 @@ public class SafeOrderExpirationListener {
@Resource
private EbikeBikeOrderService orderService;
@Resource
private EbikeWorkOrderConfigurationService orderConfigurationService;
@Resource
private EbikeBikeInfoService bikeInfoService;
// Redis键常量
private static final String ORDER_KEY_PREFIX = "bike:dispatch:lock:";
@ -237,8 +247,10 @@ public class SafeOrderExpirationListener {
//生成巡检工单
orderService.createInspectionOrderByBikeCode(bikeCode);
//重新添加Key实现循环定期巡检
log.info("重新添加定期巡检任务: bikeCode={}",bikeCode );
redisUtil.saveInspectionOrder(bikeCode,null,30L,TimeUnit.DAYS);
log.info("重新添加定期巡检任务: bikeCode={}", bikeCode);
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) {
log.error("生成巡检工单业务异常: orderId={}", bikeCode, e);
throw e;

View File

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