jiangping
2024-02-27 cd9cbc46c0774c01674be435bcc86d4a03ada687
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
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();
    }
 
}