jiangping
2024-02-21 39739e34af928aae204c55db7974213c9b938c5a
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -1,12 +1,23 @@
package com.doumee.task;
import com.doumee.config.DataSyncConfig;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncImgServiceImpl;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl;
import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl;
import com.doumee.service.business.impl.hksync.fhk.HkSyncVisitFromHKServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
 * 定时任务
@@ -20,20 +31,132 @@
    @Autowired
    private HkSyncImgServiceImpl hkSyncImgService;
    @Autowired
    private HkSyncEmpowerServiceImpl hkSyncEmpowerService;
    @Autowired
    private HkSyncOrgUserToHKServiceImpl hkSyncOrgUserService;
    @Autowired
    private HkSyncVisitFromHKServiceImpl hkSyncVisitFromHKService;
    @Autowired
    private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService;
    @Autowired
    private HkSyncVisitServiceImpl hkSyncVisitService;
    @Autowired
    private MemberService memberService;
    /**
     * 是否开发者
     */
    @Value("${timing}")
    private Boolean timing;
    @Autowired
    private DataSyncConfig dataSyncConfig;
    /**
     * 缓存省市区
     * 每分钟拉取一次今日的访客预约数据
     * @throws Exception
     */
    @Scheduled(cron= "0 0 23 * * ?")
    public void syncVehicleUpdateData() throws Exception {
        hkSyncVehicleFromHKService.syncVehicleUpdateData(new Date(System.currentTimeMillis()-24*60*60*1000));
    }
    /**
     * 每分钟拉取一次今日的访客预约数据
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void syncVistAppointData() throws Exception {
        if(Constants.DEALING_FROM_HK_VISIT){
            return ;
        }
        try {
            Constants.DEALING_FROM_HK_VISIT =true;
            hkSyncVisitFromHKService.syncVistAppointData(new Date());
            Constants.DEALING_FROM_HK_VISIT =false;
        }catch (Exception e){
            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对不起,海康同步数据失败~");
        }finally {
            Constants.DEALING_FROM_HK_VISIT =false;
        }
    }
    /**
     * 下载海康系统图片数据
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void downloadHkImg() throws Exception {
        hkSyncImgService.downHKImgs(0);
        if(dataSyncConfig.getNeedDealImg()!=null && dataSyncConfig.getNeedDealImg()){
            hkSyncImgService.downHKImgs(0);
        }
    }
    /**
     * 定时同步组织信息到海康系统
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void syncOrgData() {
        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){
            //如果是ERP系统同步下发
            hkSyncOrgUserService.syncOrgData();
        }
    }
    /**
     * 定时同步用户信息到海康系统
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void syncUserData()  {
        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp) {
            //如果是ERP系统同步下发
            hkSyncOrgUserService.syncUserData();
        }
    }
    /**
     * 定时同步申请通过的访客数据到海康系统
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void syncVisitData()  {
        hkSyncVisitService.syncVisitData();
    }
    /**
     * 定时同步内部人员授权到海康系统
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void syncEmpowerData()  {
        hkSyncEmpowerService.syncEmpowerData();
    }
    /**
     * 定时查询人员下发海康结果(任务是否已下载结束)
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void syncEmpowerResultData()  {
        hkSyncEmpowerService.syncEmpowerResultData();
    }
    /**
     * 定时查询人员实际下发权限结果,是否已经下载成功
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void syncEmpowerDetailData()  {
        hkSyncEmpowerService.syncEmpowerDetailData();
    }
    /**
     * 定时同步车辆包期到海康系统
     * @throws Exception
     */
    @Scheduled(fixedDelay= 60*1000)
    public void syncParkBookData()  {
        hkSyncImgService.syncParkBookData();
    }
    /**
     * 定时冻结内部人员
     */
    @Scheduled(fixedDelay= 60*1000)
    public void memberFreeze()  {
        memberService.memberFreeze();
    }
}