|  |  | 
 |  |  | 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.HkSyncOrgUserServiceImpl; | 
 |  |  | 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.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; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * 定时任务 | 
 |  |  | 
 |  |  | public class ScheduleTool { | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private HkSyncParkServiceImpl hkSyncParkService; | 
 |  |  |     @Autowired | 
 |  |  |     private HkSyncImgServiceImpl hkSyncImgService; | 
 |  |  |     @Autowired | 
 |  |  |     private HkSyncEmpowerServiceImpl hkSyncEmpowerService; | 
 |  |  |     @Autowired | 
 |  |  |     private HkSyncOrgUserServiceImpl hkSyncOrgUserService; | 
 |  |  |     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= 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 { | 
 |  |  |         hkSyncImgService.downHKImgs(0); | 
 |  |  |         if(dataSyncConfig.getNeedDealImg()!=null && dataSyncConfig.getNeedDealImg()){ | 
 |  |  |             hkSyncImgService.downHKImgs(0); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 定时同步组织信息到海康系统 | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @Scheduled(fixedDelay= 60*1000) | 
 |  |  |     public void syncOrgData() { | 
 |  |  |         hkSyncOrgUserService.syncOrgData(); | 
 |  |  |         if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){ | 
 |  |  |             //如果是ERP系统同步下发 | 
 |  |  |             hkSyncOrgUserService.syncOrgData(); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 定时同步用户信息到海康系统 | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @Scheduled(fixedDelay= 60*1000) | 
 |  |  |     public void syncUserData()  { | 
 |  |  |         hkSyncOrgUserService.syncUserData(); | 
 |  |  |         if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp) { | 
 |  |  |             //如果是ERP系统同步下发 | 
 |  |  |             hkSyncOrgUserService.syncUserData(); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 定时同步申请通过的访客数据到海康系统 | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @Scheduled(fixedDelay= 60*1000) | 
 |  |  |     public void syncEmpowerData()  { | 
 |  |  |  | 
 |  |  |         hkSyncEmpowerService.syncEmpowerData(); | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @Scheduled(fixedDelay= 60*1000) | 
 |  |  |     public void syncParkBookData()  { | 
 |  |  |         hkSyncImgService.syncParkBookData(); | 
 |  |  |         hkSyncParkService.syncParkBookData(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 定时冻结内部人员 | 
 |  |  |      */ | 
 |  |  |     @Scheduled(fixedDelay= 60*1000) | 
 |  |  |     public void memberFreeze()  { | 
 |  |  |         memberService.memberFreeze(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |