rk
2026-06-09 f76c68a87261cf2396a64c7125324c24483d4623
server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java
@@ -1,27 +1,31 @@
package com.doumee.api;
import com.doumee.service.business.third.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.service.business.VisitsService;
import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl;
import com.doumee.service.business.impl.hksync.fhk.HkSyncVisitFromHKServiceImpl;
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.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.concurrent.atomic.AtomicBoolean;
/**
 * @author 江蹄蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "访客定时器接口")
@Slf4j
@RestController
@RequestMapping("/timer/visit")
public class HkVisitTimerController extends BaseController {
    private final AtomicBoolean dealingFromHkVisit = new AtomicBoolean(false);
    @Autowired
    private HkSyncVisitServiceImpl hkSyncVisitService;
@@ -31,39 +35,48 @@
    private VisitsService visitsService;
    @ApiOperation("开启定时下发访客预约申请")
    @GetMapping("/syncVisitData")
    @PostMapping("/syncVisitData")
    public ApiResponse syncVisitData() {
        log.info("定时任务执行开始:syncVisitData-下发访客预约申请");
        hkSyncVisitService.syncVisitData();
        return ApiResponse.success("开启定时下发访客预约申请成功");
    }
    @ApiOperation("开启定时查询访客预约状态")
    @GetMapping("/getOutTimeVisitRecord")
    @PostMapping("/getOutTimeVisitRecord")
    public ApiResponse getOutTimeVisitRecord() {
        log.info("定时任务执行开始:getOutTimeVisitRecord-查询访客预约状态");
        hkSyncVisitService.getOutTimeVisitRecordIccm();
        return ApiResponse.success("开启定时查询访客预约状态成功");
    }
    @ApiOperation("开启定时今日的访客预约数据")
    @GetMapping("/syncVistAppointData")
    @PostMapping("/syncVistAppointData")
    public ApiResponse syncVistAppointData() {
        if(!Constants.DEALING_FROM_HK_VISIT){
        log.info("定时任务执行开始:syncVistAppointData-今日访客预约数据");
        if(dealingFromHkVisit.compareAndSet(false, true)){
            try {
                Constants.DEALING_FROM_HK_VISIT =true;
                hkSyncVisitFromHKService.syncVistAppointData(new Date());
                Constants.DEALING_FROM_HK_VISIT =false;
            }catch (Exception e){
                log.error("syncVistAppointData异常", e);
            }finally {
                Constants.DEALING_FROM_HK_VISIT =false;
                dealingFromHkVisit.set(false);
            }
        }
        return ApiResponse.success("开启定时今日的访客预约数据成功");
    }
    @ApiOperation("访客即将超时预警")
    @GetMapping("/visitTimeOut")
    @PostMapping("/visitTimeOut")
    public ApiResponse visitTimeOut() {
        log.info("定时任务执行开始:visitTimeOut-访客超时预警");
        visitsService.syncTimeOutData();
        return ApiResponse.success("访客即将超时预警");
    }
    @ApiOperation("待审批记录超时自动取消预约")
    @PostMapping("/visitNoCheckCancel")
    public ApiResponse visitNoCheckCancel() {
        log.info("定时任务执行开始:visitNoCheckCancel-超时自动取消预约");
        visitsService.visitNoCheckCancel();
        return ApiResponse.success("待审批记录超时自动取消预约");
    }
}