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;
|
}
|
}
|
/**
|
* 下载海康系统图片数据
|
* @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();
|
}
|
|
}
|