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.HkSyncParkServiceImpl; 
 | 
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.scheduling.annotation.EnableScheduling; 
 | 
import org.springframework.scheduling.annotation.Scheduled; 
 | 
import org.springframework.stereotype.Component; 
 | 
  
 | 
import java.util.Date; 
 | 
  
 | 
/** 
 | 
 * 定时任务 
 | 
 * @author jiangping 
 | 
 * @date 2021-10-10 14:40:35 
 | 
 * https://www.bejson.com/othertools/cron/  cron 表达式生成地址 
 | 
 */ 
 | 
@Component 
 | 
@EnableScheduling 
 | 
public class ScheduleTool { 
 | 
  
 | 
    @Autowired 
 | 
    private HkSyncParkServiceImpl hkSyncParkService; 
 | 
    @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; 
 | 
    /** 
 | 
     * 是否开发者 
 | 
     */ 
 | 
    @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; 
 | 
        } 
 | 
    } 
 | 
    /** 
 | 
     * 每10分钟拉取一次最新访客登记状态(预约成功和已登记) 
 | 
     * @throws Exception 
 | 
     */ 
 | 
    @Scheduled(fixedDelay= 10*60*1000) 
 | 
    public void syncVisitOuttimeStatus() throws Exception { 
 | 
        hkSyncVisitService.getOutTimeVisitRecord(); 
 | 
    } 
 | 
    /** 
 | 
     * 下载海康系统图片数据 
 | 
     * @throws Exception 
 | 
     */ 
 | 
    @Scheduled(fixedDelay= 60*1000) 
 | 
    public void downloadHkImg() throws Exception { 
 | 
        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()  { 
 | 
        hkSyncParkService.syncParkBookData(); 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 定时冻结内部人员 
 | 
     */ 
 | 
    @Scheduled(fixedDelay= 60*1000) 
 | 
    public void memberFreeze()  { 
 | 
        memberService.memberFreeze(); 
 | 
    } 
 | 
  
 | 
} 
 |