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.InterfaceLogService; import com.doumee.service.business.MemberService; import com.doumee.service.business.impl.hksync.*; import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; 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 InterfaceLogService interfaceLogService; /** * 是否开发者 */ @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(fixedRate= 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(fixedRate= 10*60*1000) public void syncVisitOuttimeStatus() throws Exception { hkSyncVisitService.getOutTimeVisitRecord(); } /** * 下载海康系统图片数据 * @throws Exception */ @Scheduled(fixedRate= 60*1000) public void downloadHkImg() throws Exception { if(dataSyncConfig.getNeedDealImg()!=null && dataSyncConfig.getNeedDealImg()){ hkSyncImgService.downHKImgs(0); } } /** * 定时同步组织信息到海康系统 * @throws Exception */ @Scheduled(fixedRate= 60*1000) public void syncOrgData() { if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){ //如果是ERP系统同步下发 hkSyncOrgUserService.syncOrgData(); } } /** * 定时同步用户信息到海康系统 * @throws Exception */ @Scheduled(fixedRate= 60*1000) public void syncUserData() { if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp) { //如果是ERP系统同步下发 hkSyncOrgUserService.syncUserData(); } } /** * 定时同步申请通过的访客数据到海康系统 * @throws Exception */ @Scheduled(fixedRate= 60*1000) public void syncVisitData() { hkSyncVisitService.syncVisitData(); } /* *//** * 定时同步内部人员授权到海康系统 * @throws Exception *//* @Scheduled(fixedRate= 3*1000) public void syncEmpowerData() { hkSyncEmpowerService.syncEmpowerData(); } *//** * 定时查询人员下发海康结果(任务是否已下载结束) * @throws Exception *//* @Scheduled(fixedRate= 60*1000) public void syncEmpowerResultData() { hkSyncEmpowerService.syncEmpowerResultData(); } */ /** * 定时查询人员实际下发权限结果,是否已经下载成功 * @throws Exception *//* @Scheduled(fixedRate= 60*1000) public void syncEmpowerDetailData() { hkSyncEmpowerService.syncEmpowerDetailData(); }*/ /** * 定时冻结内部人员 */ // @Scheduled(fixedRate= 60*1000) public void memberFreeze() { memberService.memberFreeze(); } /** * 每天清理超过一周的接口日志数据(清除和安防平台对接的接口数据) * @throws Exception */ @Scheduled(cron= "0 0 23 * * ?") public void clearThreeMonthLog() throws Exception { interfaceLogService.clearThreeMonthLog(); } }