FalseDataCreateQuartz.java
6.61 KB
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
package com.xiniunet.quartz;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.xiniunet.framework.base.BaseRequest;
import com.xiniunet.framework.cache.CacheManager;
import com.xiniunet.framework.constant.CacheTimeEnum;
import com.xiniunet.framework.log.LogUtil;
import com.xiniunet.framework.security.Passport;
import com.xiniunet.framework.util.DateUtil;
import com.xiniunet.framework.util.EncryptUtil;
import com.xiniunet.framework.util.SpringContext;
import com.xiniunet.master.domain.system.User;
import com.xiniunet.master.request.system.UserFindRequest;
import com.xiniunet.master.response.system.UserFindResponse;
import com.xiniunet.master.service.MasterService;
import com.xiniunet.railway.domain.TrainsDetail;
import com.xiniunet.railway.domain.TransPositionData;
import com.xiniunet.railway.enumication.LaidTypeEnum;
import com.xiniunet.railway.request.EscortAttendanceCreateRequest;
import com.xiniunet.railway.request.EscortAttendanceLogCreateRequest;
import com.xiniunet.railway.request.RailwayTransDetailGetRequest;
import com.xiniunet.railway.response.EscortAttendanceCreateResponse;
import com.xiniunet.railway.response.EscortAttendanceLogCreateResponse;
import com.xiniunet.railway.response.RailwayTransDetailCountGetResponse;
import com.xiniunet.railway.service.RailwayService;
import com.xiniunet.service.railway.Constant;
import com.xiniunet.service.railway.biz.RailwayThirdManager;
import com.xiniunet.service.railway.util.RailwayThirdTools;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
/**
* Created by 胡 on 2016/12/30.
* 每10秒造一条上岗假数据
*/
@Component
public class FalseDataCreateQuartz {
private static Logger logger = LoggerFactory.getLogger(RailwayThirdTools.class);
private static CacheManager cacheManager = SpringContext.getApplicationContext().getBean(CacheManager.class);
@Autowired
private RailwayService railwayService;
@Autowired
private MasterService masterService;
@Autowired
private RailwayThirdManager railwayThirdManager;
/**
* 执行定时器,每10s执行一次
*/
public void execute() {
logger.warn("每10秒造一条上岗假数据开始==========================");
Passport passport = new Passport();
passport.setTenantId(Constant.RAILWAY_TENANT_ID);
passport.setUserId(Constant.RAILWAY_USER_ID);
//取sys_user表数据
UserFindRequest userFindRequest = new UserFindRequest();
userFindRequest.setPageSize(0);
UserFindResponse userFindResponse = masterService.findUser(userFindRequest,passport);
if(userFindResponse.hasError()){
logger.warn("定时任务userFindResponse:"+ JSONObject.toJSONString(userFindResponse));
return;
}
Map<Long,String> userMap = new HashMap<>();
for(User user :userFindResponse.getResult()){
userMap.put(user.getId(),user.getName());
}
String key = EncryptUtil.MD5("useridList" + JSON.toJSONString(userFindRequest));
List<Long> userIdList = new ArrayList<>();
if(cacheManager.get(key) == null){
for(User user :userFindResponse.getResult()){
userIdList.add(user.getId());
}
cacheManager.set(key, userIdList, CacheTimeEnum.ONE_DAY);
}else {
userIdList = (List<Long>)cacheManager.get(key);
}
//取车厢信息
RailwayTransDetailGetRequest railwayTransDetailGetRequest = new RailwayTransDetailGetRequest();
RailwayTransDetailCountGetResponse railwayTransDetailCountGetResponse = railwayThirdManager.getTransCountDetail(railwayTransDetailGetRequest,passport);
if(railwayTransDetailCountGetResponse.hasError()){
logger.warn("定时任务railwayTransDetailCountGetResponse:"+ JSONObject.toJSONString(railwayTransDetailCountGetResponse));
return;
}
List<String> categeriesList = new ArrayList<>();
for(TrainsDetail trainsDetail : railwayTransDetailCountGetResponse.getTrainsDetails()){
categeriesList.addAll(trainsDetail.getTrainCarriageIds());
}
//几个人上岗
Random rand = new Random();
int count = rand.nextInt(20);
if(count == 0){
count = 1;
}
for(int i =0; i<count;i++ ){
Random random = new Random();
Long userId = userIdList.get(random.nextInt(userIdList.size()));
String categiesId = categeriesList.get(random.nextInt(categeriesList.size()));
//创建一条log
EscortAttendanceLogCreateRequest escortAttendanceLogCreateRequest = new EscortAttendanceLogCreateRequest();
escortAttendanceLogCreateRequest.setUserId(userId);
escortAttendanceLogCreateRequest.setLogTime(new Date());
escortAttendanceLogCreateRequest.setTrainCarriageId(categiesId);
escortAttendanceLogCreateRequest.setTrainId("falseData");
EscortAttendanceLogCreateResponse escortAttendanceLogCreateResponse = railwayService.createEscortAttendanceLog(escortAttendanceLogCreateRequest);
if(escortAttendanceLogCreateResponse.hasError()){
logger.warn("定时任务escortAttendanceLogCreateResponse:"+ JSONObject.toJSONString(escortAttendanceLogCreateResponse));
}
//创建上岗信息
EscortAttendanceCreateRequest escortAttendanceCreateRequest = new EscortAttendanceCreateRequest();
escortAttendanceCreateRequest.setUserId(userId);
escortAttendanceCreateRequest.setDateId(Long.valueOf(DateUtil.formatDate(new Date(),"yyyyMMdd")));
escortAttendanceCreateRequest.setLaidTime(new Date());
escortAttendanceCreateRequest.setTrainCarriageId(categiesId);
escortAttendanceCreateRequest.setType(LaidTypeEnum.LAID_ON.toString());
escortAttendanceCreateRequest.setUserName(userMap.get(userId));
escortAttendanceCreateRequest.setTrainId("falseData");
EscortAttendanceCreateResponse escortAttendanceCreateResponse = railwayService.createEscortAttendance(escortAttendanceCreateRequest);
if(escortAttendanceCreateResponse.hasError()){
logger.warn("定时任务escortAttendanceCreateResponse:"+ JSONObject.toJSONString(escortAttendanceCreateResponse));
}
userIdList.remove(userId);
cacheManager.set(key, userIdList, CacheTimeEnum.ONE_DAY);
}
logger.warn("每10秒造一条上岗假数据结束====================");
}
}