| 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= 30*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(); | 
|     } | 
|   | 
| } |