rk
2026-06-09 f76c68a87261cf2396a64c7125324c24483d4623
server/visits/admin_timer/src/main/java/com/doumee/api/HkEmpowerTimerController.java
@@ -5,64 +5,98 @@
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);
    public static Integer endId2 = 0;
    @ApiOperation("开启定时查询人员设备授权结果")
    @GetMapping("/syncEmpowerDetailData")
    @PostMapping("/syncEmpowerDetailData")
    public ApiResponse syncEmpowerDetailData() {
        if(endId2 ==null){
            endId2 =0;
        log.info("定时任务执行开始:syncEmpowerDetailData-查询人员设备授权结果");
        if(!dealingDetail.compareAndSet(false, true)){
            return ApiResponse.success("syncEmpowerDetailData正在执行,跳过");
        }
        endId2 =  hkSyncEmpowerService.syncEmpowerDetailData(endId2);
        for (int i = 0; i < 9; i++) {
            if(endId2!=null){
                endId2 =  hkSyncEmpowerService.syncEmpowerDetailData(endId2);
        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("开启定时查询人员设备授权下载进度")
    @GetMapping("/syncEmpowerResultData")
    @PostMapping("/syncEmpowerResultData")
    public ApiResponse syncEmpowerResultData() {
        log.info("定时任务执行开始:syncEmpowerResultData-查询授权下载进度");
        hkSyncEmpowerService.syncEmpowerResultData(0);
        return ApiResponse.success("开启定时查询人员设备授权下载进度成功");
    }
    @ApiOperation("开启定时重新下发失败的授权数据")
    @GetMapping("/syncEmpowerFailData")
    @PostMapping("/syncEmpowerFailData")
    public ApiResponse syncEmpowerFailData() {
        log.info("定时任务执行开始:syncEmpowerFailData-重新下发失败授权");
        hkSyncEmpowerService.syncEmpowerFailData(0);
        return ApiResponse.success("开启定时重新下发失败的授权数据成功");
    }
    public static Integer endId = 0;
    private final AtomicInteger endId = new AtomicInteger(0);
    private final AtomicBoolean dealingEmpower = new AtomicBoolean(false);
    @Autowired
    private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService;
    @ApiOperation("开启定时刷新人员设备授权")
    @GetMapping("/syncEmpowerData")
    @PostMapping("/syncEmpowerData")
    public ApiResponse syncEmpowerData() {
        if(endId ==null){
            endId =0;
        log.info("定时任务执行开始:syncEmpowerData-刷新人员设备授权");
        if(!dealingEmpower.compareAndSet(false, true)){
            return ApiResponse.success("syncEmpowerData正在执行,跳过");
        }
        endId = hkSyncEmpowerService.syncEmpowerData(endId);
        for (int i = 0; i < 9; i++) {
            if(endId!=null){
                endId = hkSyncEmpowerService.syncEmpowerData(endId);
        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("开启定时刷新人员设备授权成功");
    }