package com.doumee.api; import com.doumee.service.business.third.model.ApiResponse; 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.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; @Autowired private HkSyncVisitFromHKServiceImpl hkSyncVisitFromHKService; @Autowired private VisitsService visitsService; @ApiOperation("开启定时下发访客预约申请") @PostMapping("/syncVisitData") public ApiResponse syncVisitData() { log.info("定时任务执行开始:syncVisitData-下发访客预约申请"); hkSyncVisitService.syncVisitData(); return ApiResponse.success("开启定时下发访客预约申请成功"); } @ApiOperation("开启定时查询访客预约状态") @PostMapping("/getOutTimeVisitRecord") public ApiResponse getOutTimeVisitRecord() { log.info("定时任务执行开始:getOutTimeVisitRecord-查询访客预约状态"); hkSyncVisitService.getOutTimeVisitRecordIccm(); return ApiResponse.success("开启定时查询访客预约状态成功"); } @ApiOperation("开启定时今日的访客预约数据") @PostMapping("/syncVistAppointData") public ApiResponse syncVistAppointData() { log.info("定时任务执行开始:syncVistAppointData-今日访客预约数据"); if(dealingFromHkVisit.compareAndSet(false, true)){ try { hkSyncVisitFromHKService.syncVistAppointData(new Date()); }catch (Exception e){ log.error("syncVistAppointData异常", e); }finally { dealingFromHkVisit.set(false); } } return ApiResponse.success("开启定时今日的访客预约数据成功"); } @ApiOperation("访客即将超时预警") @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("待审批记录超时自动取消预约"); } }