package com.doumee.api; import com.doumee.service.business.third.model.ApiResponse; import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl; import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; /** * @author 江蹄蹄 * @date 2023/11/30 15:33 */ @Api(tags = "人员设备授权定时器接口") @Slf4j @RestController @RequestMapping("/timer/empower") public class HkEmpowerTimerController extends BaseController { @Autowired private HkSyncEmpowerServiceImpl hkSyncEmpowerService; private final AtomicInteger endId2 = new AtomicInteger(0); private final AtomicBoolean dealingDetail = new AtomicBoolean(false); @ApiOperation("开启定时查询人员设备授权结果") @PostMapping("/syncEmpowerDetailData") public ApiResponse syncEmpowerDetailData() { log.info("定时任务执行开始:syncEmpowerDetailData-查询人员设备授权结果"); if(!dealingDetail.compareAndSet(false, true)){ return ApiResponse.success("syncEmpowerDetailData正在执行,跳过"); } try { int current = endId2.get(); Integer next = hkSyncEmpowerService.syncEmpowerDetailData(current); for (int i = 0; i < 9; i++) { if(next != null){ endId2.set(next); next = hkSyncEmpowerService.syncEmpowerDetailData(next); } } if(next != null){ endId2.set(next); } } catch (Exception e){ log.error("syncEmpowerDetailData异常", e); } finally { dealingDetail.set(false); } return ApiResponse.success("开启定时查询人员设备授权结果成功"); } @ApiOperation("开启定时查询人员设备授权下载进度") @PostMapping("/syncEmpowerResultData") public ApiResponse syncEmpowerResultData() { log.info("定时任务执行开始:syncEmpowerResultData-查询授权下载进度"); hkSyncEmpowerService.syncEmpowerResultData(0); return ApiResponse.success("开启定时查询人员设备授权下载进度成功"); } @ApiOperation("开启定时重新下发失败的授权数据") @PostMapping("/syncEmpowerFailData") public ApiResponse syncEmpowerFailData() { log.info("定时任务执行开始:syncEmpowerFailData-重新下发失败授权"); hkSyncEmpowerService.syncEmpowerFailData(0); return ApiResponse.success("开启定时重新下发失败的授权数据成功"); } private final AtomicInteger endId = new AtomicInteger(0); private final AtomicBoolean dealingEmpower = new AtomicBoolean(false); @Autowired private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService; @ApiOperation("开启定时刷新人员设备授权") @PostMapping("/syncEmpowerData") public ApiResponse syncEmpowerData() { log.info("定时任务执行开始:syncEmpowerData-刷新人员设备授权"); if(!dealingEmpower.compareAndSet(false, true)){ return ApiResponse.success("syncEmpowerData正在执行,跳过"); } try { int current = endId.get(); Integer next = hkSyncEmpowerService.syncEmpowerData(current); for (int i = 0; i < 9; i++) { if(next != null){ endId.set(next); next = hkSyncEmpowerService.syncEmpowerData(next); } } if(next != null){ endId.set(next); } } catch (Exception e){ log.error("syncEmpowerData异常", e); } finally { dealingEmpower.set(false); } return ApiResponse.success("开启定时刷新人员设备授权成功"); } }