xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceAreaServiceImpl.java
@@ -102,6 +102,10 @@ if(xpElectronicFence==null){ continue; } if(xpElectronicFence.getStatus()!=2){ continue; } String operationStrategy = xpElectronicFence.getOperationStrategy(); if(operationStrategy==null){ continue; xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpSystemSettingController.java
@@ -3,9 +3,13 @@ import com.xiaopeng.api.model.operation.XpSystemSetting; import com.xiaopeng.common.core.constant.CacheConstants; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.utils.DateUtils; import com.xiaopeng.common.core.web.controller.BaseController; import com.xiaopeng.common.core.web.domain.AjaxResult; import com.xiaopeng.common.redis.service.RedisService; import com.xiaopeng.operation.job.base.QuartzManager; import com.xiaopeng.operation.job.base.TimeJobType; import com.xiaopeng.operation.job.jobs.HotFixJob; import com.xiaopeng.operation.service.XpSystemSettingService; import com.xiaopeng.operation.vo.CustomerServicePhoneVo; import io.swagger.annotations.Api; @@ -13,6 +17,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.util.HashMap; @Slf4j @Validated @@ -96,6 +103,19 @@ @PostMapping("/api/v1/systemSetting/save") public R<?> saveSystemSetting(@RequestBody XpSystemSetting xpSystemSetting){ xpSystemSettingService.saveSystemSetting(xpSystemSetting); if(xpSystemSetting.getHotfixStatus()==1){ // 开启定时任务去关闭 // 计算当前时间与结束时间的秒数 LocalDateTime hotfixEndTime = xpSystemSetting.getHotfixEndTime(); QuartzManager.addJob( HotFixJob.class, (HotFixJob.name ).toUpperCase(), TimeJobType.HOT_FIX, DateUtils.localDateTimeToDate(hotfixEndTime), new HashMap<>() ); } return R.ok(); } } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/job/base/AbstractJob.java
@@ -1,11 +1,14 @@ package com.xiaopeng.operation.job.base; import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient; import com.xiaopeng.common.redis.service.RedisService; import com.xiaopeng.operation.job.utils.SpringContextsUtil; import com.xiaopeng.operation.service.IXpElectronicFenceAreaService; import com.xiaopeng.operation.service.IXpElectronicFenceService; import com.xiaopeng.operation.service.IXpPointService; import com.xiaopeng.operation.service.XpSystemSettingService; import org.quartz.Job; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.slf4j.Logger; @@ -21,12 +24,16 @@ protected IXpElectronicFenceAreaService xpElectronicFenceAreaService; protected IXpPointService xpPointService; protected XpPushMessageClient xpPushMessageClient; protected XpSystemSettingService xpSystemSettingService; protected RedisService redisService; public AbstractJob(){ this.xpElectronicFenceService = SpringContextsUtil.getBean(IXpElectronicFenceService.class); this.xpElectronicFenceAreaService = SpringContextsUtil.getBean(IXpElectronicFenceAreaService.class); this.xpPointService = SpringContextsUtil.getBean(IXpPointService.class); this.xpPushMessageClient = SpringContextsUtil.getBean(XpPushMessageClient.class); this.xpSystemSettingService = SpringContextsUtil.getBean(XpSystemSettingService.class); this.redisService = SpringContextsUtil.getBean(RedisService.class); } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/job/base/TimeJobType.java
@@ -7,6 +7,7 @@ public enum TimeJobType { ELECTRONIC_EFFECT("electronic_effect","电子围栏生效"), ELECTRONIC_FAILURE("electronic_failure","电子围栏失效"), HOT_FIX("hot_fix","热修复"), DYNAMIC_PRICING_CHECK("dynamic_pricing_check","动态调价供需检测"); xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/job/jobs/HotFixJob.java
New file @@ -0,0 +1,40 @@ package com.xiaopeng.operation.job.jobs; import com.xiaopeng.api.model.operation.XpSystemSetting; import com.xiaopeng.api.model.order.XpOrder; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.api.vo.HotFixInfoVo; import com.xiaopeng.api.vo.vehicleConvoy.CancelTaxiPassengerVo; import com.xiaopeng.operation.job.base.AbstractJob; import lombok.extern.slf4j.Slf4j; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; /** * 推送定时任务 * @author Administrator * */ @Slf4j public class HotFixJob extends AbstractJob { public static final String name = "hot_fix"; @Override public void execute(JobExecutionContext context) throws JobExecutionException { XpSystemSetting xpSystemSetting = xpSystemSettingService.lambdaQuery().last("limit 1").one(); xpSystemSetting.setHotfixStatus(0); xpSystemSettingService.updateById(xpSystemSetting); //保存热修复信息到redis HotFixInfoVo hotFixInfoVo = new HotFixInfoVo(); hotFixInfoVo.setHotfixStatus(xpSystemSetting.getHotfixStatus() == null ? 0 : xpSystemSetting.getHotfixStatus()); hotFixInfoVo.setHotfixStartTime(xpSystemSetting.getHotfixStartTime()); hotFixInfoVo.setHotfixEndTime(xpSystemSetting.getHotfixEndTime()); redisService.setCacheObject("HOT_FIX_INFO", hotFixInfoVo); } }