rk
2026-06-09 c467370d8741bc05ca7c22d4253c58ac0a979ef5
server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
@@ -1,32 +1,23 @@
package com.doumee.api;
import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.HttpsUtil;
import com.doumee.core.wx.WXConstant;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.service.business.third.model.ApiResponse;
import com.doumee.service.business.PlatformJobService;
import com.doumee.service.business.VisitsService;
import com.doumee.service.system.SystemDictDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.mgt.DefaultSecurityManager;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
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.Objects;
import java.util.concurrent.atomic.AtomicBoolean;
/**
 * @author 江蹄蹄
 * @date 2023/11/30 15:33
 */
@Slf4j
@Api(tags = "月台作业定时")
@RestController
@RequestMapping("/timer/platformJob")
@@ -35,28 +26,60 @@
    @Autowired
    private PlatformJobService platformJobService;
    private final AtomicBoolean dealingSendNotice = new AtomicBoolean(false);
    @ApiOperation("月台停靠超时报警业务")
    @GetMapping("/platformJobTimer")
    @PostMapping("/platformJobTimer")
    public ApiResponse platformJobTimer() {
        log.info("定时任务执行开始:platformJobTimer-月台停靠超时报警");
        platformJobService.timeOutReport();
        return ApiResponse.success("月台停靠超时报警业务");
    }
    @ApiOperation("月台作业检查电子锁上锁状态")
    @PostMapping("/platformCheckWmsLockStatus")
    public ApiResponse checkWmsLockStatus() {
        log.info("定时任务执行开始:checkWmsLockStatus-检查电子锁上锁状态");
        platformJobService.checkWmsLockStatus();
        return ApiResponse.success("月台停靠超时报警业务");
    }
    @ApiOperation("月台作业超时报警业务")
    @GetMapping("/platformJobWorkTimeOut")
    @PostMapping("/platformJobWorkTimeOut")
    public ApiResponse platformJobWorkTimeOut() {
        log.info("定时任务执行开始:platformJobWorkTimeOut-月台作业超时报警");
        platformJobService.timeOutWork();
        return ApiResponse.success("月台作业超时报警业务");
    }
    @ApiOperation("月台等待作业超时业务")
    @GetMapping("/platformJobWaitTimeOut")
    @PostMapping("/platformJobWaitTimeOut")
    public ApiResponse platformJobWaitTimeOut() {
        log.info("定时任务执行开始:platformJobWaitTimeOut-月台等待作业超时");
        platformJobService.timeOutCallIn();
        return ApiResponse.success("月台等待作业超时业务");
    }
    @PreventRepeat(interval = 2000)
    @ApiOperation("月台今日作业未完成通知定时")
    @PostMapping("/sendUnFinishNotice")
    public ApiResponse sendUnFinishNotice() {
        if(!dealingSendNotice.compareAndSet(false, true)){
            return ApiResponse.success("sendUnFinishNotice正在执行,跳过");
        }
        try {
            log.info("定时任务执行开始:sendUnFinishNotice-月台作业未完成通知");
            platformJobService.sendUnFinishNotice();
        } catch (Exception e){
            log.error("sendUnFinishNotice异常", e);
        } finally {
            dealingSendNotice.set(false);
        }
        return ApiResponse.success("月台今日作业外完成通知定时");
    }
}