TailNumberLimitedJob.java
9.89 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
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
package com.zteits.bill.job;
import org.apache.commons.lang3.StringUtils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.clouds.common.utils.DateUtil;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.zteits.bill.dao.tailNumberLimited.TailNumberLimitedDao;
import com.zteits.bill.domain.TbTailNumberLimitedCity;
import com.zteits.bill.domain.TbTailNumberLimitedRule;
import com.zteits.bill.util.HttpClientTutorial;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.service.order.carnumlimit.QueryTailNumberLimitedService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* 尾号限行规则查询
*
* Copyright: Copyright (c) 2017 ZTE-ITS
*
* @ClassName: TailNumberLimitedJob.java
* @Description:
* @version: v1.0.0
* @author: xiejianpeng
* @date: 2018年03月30日
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2018年03月30日 xiejianpeng v1.0.0 创建
*/
@Component
public class TailNumberLimitedJob{
private static final Logger logger = LoggerFactory.getLogger(TailNumberLimitedJob.class);
@Autowired
private TailNumberLimitedDao tailNumberLimitedDao;
@Autowired
private QueryTailNumberLimitedService queryTailNumberLimitedService;
/***
*
* 因为bill域不能访问外网,所以,访问外网地址放到了order域
*/
@XxlJob(value="TailNumberLimitedJob")
public ReturnT<String> execute(String... arg0) throws Exception {
int updateCount =0;
this.logger("---begin查询所有的限号的城市");
String queryTailNumURL = "http://apis.haoservice.com/carservice/xianxing?key=4e6eb12aad66403b9c11867db59ce717";
String rs = queryTailNumberLimitedService.queryTailNumberLimited(queryTailNumURL);
logger.info("第三方返回:" + JSONObject.toJSONString(rs));
if(StringUtils.isNotEmpty(rs)) {
JSONObject obj = JSONObject.parseObject(rs);
if (obj.getInteger("error_code") == 0) { //成功
JSONArray jsonArray = obj.getJSONArray("result");
for (Object object : jsonArray) {
JSONObject objD = (JSONObject) object;
String cityid = objD.getString("cityid");
String cityname = objD.getString("cityname");
//先判断数据库是否存在,如果没有则插入数据
TbTailNumberLimitedCity tailNumberLimitedity = new TbTailNumberLimitedCity();
tailNumberLimitedity.setCityCode(Long.valueOf(cityid));
tailNumberLimitedity.setCityName(cityname);
tailNumberLimitedity.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
tailNumberLimitedity.setCreateDate(DateUtil.getSysDate());
TbTailNumberLimitedCity tailNumberLimitedityQ = tailNumberLimitedDao.queryTbTailNumberLimitedCity(tailNumberLimitedity);
if(tailNumberLimitedityQ == null || tailNumberLimitedityQ.getCityCode() == null){
updateCount = tailNumberLimitedDao.saveTbTailNumberLimitedCity(tailNumberLimitedity);
}
}
}
}
this.logger("---end查询所有的限号的城市");
// String queryTime = DateUtil.getDateString(DateUtil.getDate(),DateUtil.DATE_FORMAT);
// int updateCount =0;
// this.logger("---begin查询所有的限号的城市-根据限号城市查询城市的限号规则");
// updateCount = saveTailNumberLimitedRule(queryTime);
// this.logger("---end查询所有的限号的城市-根据限号城市查询城市的限号规则");
return updateCount > 0 ? ReturnT.SUCCESS :ReturnT.FAIL;
}
/**
* 查询和保存限号的城市
*/
private void saveTailNumberLimitedCity() {
String rs = HttpClientTutorial.httpGetRequest("http://apis.haoservice.com/carservice/xianxing?key=4e6eb12aad66403b9c11867db59ce717");
logger.info("第三方返回:" + JSONObject.toJSONString(rs));
if(StringUtils.isNotEmpty(rs)) {
JSONObject obj = JSONObject.parseObject(rs);
if (obj.getInteger("error_code") == 0) { //成功
JSONArray jsonArray = obj.getJSONArray("data");
for (Object object : jsonArray) {
JSONObject objD = (JSONObject) object;
String cityid = objD.getString("cityid");
String cityname = objD.getString("cityname");
TbTailNumberLimitedCity tailNumberLimitedity = new TbTailNumberLimitedCity();
tailNumberLimitedity.setCityCode(Long.valueOf(cityid));
tailNumberLimitedity.setCityName(cityname);
tailNumberLimitedity.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
tailNumberLimitedDao.saveTbTailNumberLimitedCity(tailNumberLimitedity);
}
}
}
}
/**
* 查询第三方接口和保存限制车牌信息
* @param queryTime
* @return
*/
private Integer saveTailNumberLimitedRule(String queryTime){
int updateCount =0;
List<TbTailNumberLimitedCity> tbTailNumberLimitedCities = tailNumberLimitedDao.queryTbTailNumberLimitedCityList();
if(CollectionUtils.isEmpty(tbTailNumberLimitedCities)){
for(TbTailNumberLimitedCity tbTailNumberLimitedCity : tbTailNumberLimitedCities){
Integer cityId = Integer.valueOf(tbTailNumberLimitedCity.getCityCode()+"");
String rs = HttpClientTutorial.httpGetRequest("http://apis.haoservice.com/carservice/xianxing/query?" +
"cityId="+cityId+"&date="+queryTime+"&key=4e6eb12aad66403b9c11867db59ce717");
logger.info("第三方返回:" + JSONObject.toJSONString(rs));
if(StringUtils.isNotEmpty(rs)) {
JSONObject obj = JSONObject.parseObject(rs);
if (obj.getInteger("error_code") == 0) { //成功
JSONObject objR = JSONObject.parseObject(obj.getString("result"));
String penalty = objR.getString("penalty");
JSONArray jsonArray = objR.getJSONArray("data");
for (Object object : jsonArray) {
JSONObject objD = (JSONObject) object;
String region = objD.getString("region");
String num = objD.getString("num");
Integer isLimit = 0;
if(!num.equals("--")){
isLimit = 1;
}
String time = objD.getString("time");
String remarks = objD.getString("remarks");
TbTailNumberLimitedRule tailNumberLimitedRule = new TbTailNumberLimitedRule();
tailNumberLimitedRule.setCityCode(tbTailNumberLimitedCity.getCityCode());
tailNumberLimitedRule.setCityName(tbTailNumberLimitedCity.getCityName());
tailNumberLimitedRule.setIsLimit(isLimit);
tailNumberLimitedRule.setLimitDate(DateUtil.strDate(queryTime));
tailNumberLimitedRule.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
tailNumberLimitedRule.setNum(num);
tailNumberLimitedRule.setPenalty(penalty);
tailNumberLimitedRule.setRegion(region);
tailNumberLimitedRule.setRemarks(remarks);
updateCount = tailNumberLimitedDao.saveTbTailNumberLimitedRule(tailNumberLimitedRule);
}
}
}
}
}
return updateCount;
}
private void logger(String msg){
logger.info(msg);
}
// public static void main(String[] args) {
// String rs = "{\"error_code\":0,\"reason\":\"成功\",\"result\":{\"penalty\":\"罚100块,不扣分\",\"data\":[{\"region\":\"五环路以内道路(不含五环路)(法定节假日除外)\",\"num\":\"--\",\"time\":\"早7时-晚20时(法定节假日除外)\",\"remarks\":\"警车、消防车、救护车、出租车、环卫车等非民用车辆不受上述限制, 外埠车辆工作日7时至9时、17时至20时禁止进五环(含),没有进京证禁止进六环(不含)\"}]}}";
// //HttpClientTutorial.httpGetRequest("http://apis.haoservice.com/carservice/xianxing/query?" +
// //"cityId=110100&date=2018-03-30&key=4e6eb12aad66403b9c11867db59ce717");
// logger.info("第三方返回:" + JSONObject.toJSONString(rs));
// if(StringUtils.isNotEmpty(rs)) {
// JSONObject obj = JSONObject.parseObject(rs);
// if (obj.getInteger("error_code") == 0) { //成功
// JSONObject objq = JSONObject.parseObject(obj.getString("result"));
// String penalty = objq.getString("penalty");
// String data = objq.getString("data");
// JSONArray jsonArray = objq.getJSONArray("data");
// for (Object object : jsonArray) {
// JSONObject objqq = (JSONObject) object;
// String region = objqq.getString("region");
// String num = objqq.getString("num");
// String time = objqq.getString("time");
// String remarks = objqq.getString("remarks");
//
//
//
// }
//
// }
// }
// }
// public static void main(String[] args) {
// String rs = "{\"error_code\":0,\"reason\":\"成功\",\"result\":[{\"cityid\":110100,\"cityname\":\"北京\"},{\"cityid\":360100,\"cityname\":\"南昌\"},{\"cityid\":220100,\"cityname\":\"长春\"},{\"cityid\":620100,\"cityname\":\"兰州\"},{\"cityid\":520100,\"cityname\":\"贵阳\"},{\"cityid\":510100,\"cityname\":\"成都\"},{\"cityid\":330100,\"cityname\":\"杭州\"},{\"cityid\":120100,\"cityname\":\"天津\"},{\"cityid\":420100,\"cityname\":\"武汉\"},{\"cityid\":230100,\"cityname\":\"哈尔滨\"}]}";//HttpClientTutorial.httpGetRequest("http://apis.haoservice.com/carservice/xianxing?key=4e6eb12aad66403b9c11867db59ce717");
// logger.info("第三方返回:" + JSONObject.toJSONString(rs));
// if(StringUtils.isNotEmpty(rs)) {
// JSONObject obj = JSONObject.parseObject(rs);
// if (obj.getInteger("error_code") == 0) { //成功
// JSONArray jsonArray = obj.getJSONArray("result");
// for (Object object : jsonArray) {
// JSONObject objD = (JSONObject) object;
// String cityid = objD.getString("cityid");
// String cityname = objD.getString("cityname");
// TbTailNumberLimitedCity tailNumberLimitedity = new TbTailNumberLimitedCity();
// tailNumberLimitedity.setCityCode(Long.valueOf(cityid));
// tailNumberLimitedity.setCityName(cityname);
// tailNumberLimitedity.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
// //tailNumberLimitedDao.saveTbTailNumberLimitedCity(tailNumberLimitedity);
// }
// }
//
// }
// }
}