KlServiceImpl.java
3.32 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
package com.bsth.service.Kl.impl;
import com.bsth.entity.Kl;
import com.bsth.service.Kl.KlService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@Service
public class KlServiceImpl implements KlService {
Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
JdbcTemplate jdbcTemplate;
private static DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
@Value("${passengerFlow.url}")
private String url;
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@Override
public Map<String, Object> query(Map<String, Object> map) {
Map<String, Object> modelMap = new HashMap<>();
try {
StringBuffer sql=new StringBuffer("SELECT * FROM bsth_c_kl where 1=1 ");
if(map.get("line")!=null && !map.get("line").equals("")){
sql.append(" and line_code ='"+map.get("line")+"'");
}
if(map.get("deviceId_like")!=null && !map.get("deviceId_like").equals("")){
sql.append(" and deviceId like '%"+map.get("deviceId_like")+"%'");
}
String date = LocalDate.now().format(dtf);
if(map.get("date")!=null){
date=map.get("date").toString();
}
sql.append(" and createDate >='"+date+" 00:00:00'");
sql.append(" and createDate <='"+date+" 23:59:59'");
List<Map<String,Object>> query = jdbcTemplate.queryForList(sql.toString());
Integer page = Integer.valueOf(map.containsKey("page")?map.get("page").toString():"0");
int end = (page+1)*10>query.size()?query.size():(page+1)*10;
List<Map<String,Object>> result=query.subList(page*10, end);
for (Map<String, Object> m : result) {
m.put("time",m.get("createDate").toString().substring(0,19));
m.put("photo",url+m.get("photo"));
}
modelMap.put("dataList", result);
modelMap.put("totalPages", query.size()%10>0?query.size()/10+1:query.size()/10);
modelMap.put("code","00");
return modelMap;
} catch (Exception e) {
logger.error("客流查询异常", e);
modelMap.put("code","502");
return modelMap;
}
}
@Override
public List<Kl> loadKl() {
List<Kl> list = new ArrayList<>();
try {
LocalDateTime localDateTime = LocalDateTime.now().minusMinutes(3);
String time = localDateTime.format(dateTimeFormatter);
StringBuffer sql=new StringBuffer("select * from bsth_c_kl where createDate>='" +time+
"' and id in(SELECT max(id) from bsth_c_kl GROUP BY deviceId)");
list = jdbcTemplate.query(sql.toString(), BeanPropertyRowMapper.newInstance(Kl.class));
} catch (Exception e) {
logger.error("客流信息加载异常", e);
}
return list;
}
}