XMTT 6 gadi atpakaļ
vecāks
revīzija
b73b9d793b

+ 52 - 0
src/main/java/com/ekexiu/project/bridge/envdata/EnvData.java

@ -0,0 +1,52 @@
1
package com.ekexiu.project.bridge.envdata;
2
3
import org.jfw.apt.orm.annotation.entry.Column;
4
import org.jfw.apt.orm.annotation.entry.Table;
5
import org.jfw.apt.orm.core.enums.DE;
6
7
/**
8
 * Created by TT on 2019/3/8.
9
 */
10
@Table(descp = "环境数据")
11
public class EnvData {
12
    private int itemId;
13
    private double itemValue;
14
    private String itemTime;
15
    private String createTime;
16
17
    @Column(descp = "ID", value = DE.int_de)
18
    public int getItemId() {
19
        return itemId;
20
    }
21
22
    public void setItemId(int itemId) {
23
        this.itemId = itemId;
24
    }
25
26
    @Column(descp = "值", value = DE.double_de)
27
    public double getItemValue() {
28
        return itemValue;
29
    }
30
31
    public void setItemValue(double itemValue) {
32
        this.itemValue = itemValue;
33
    }
34
35
    @Column(descp = "检测时间", value = DE.text_de)
36
    public String getItemTime() {
37
        return itemTime;
38
    }
39
40
    public void setItemTime(String itemTime) {
41
        this.itemTime = itemTime;
42
    }
43
44
    @Column(descp = "入库时间", value = DE.text_de)
45
    public String getCreateTime() {
46
        return createTime;
47
    }
48
49
    public void setCreateTime(String createTime) {
50
        this.createTime = createTime;
51
    }
52
}

+ 29 - 0
src/main/java/com/ekexiu/project/bridge/envdata/EnvDataDao.java

@ -0,0 +1,29 @@
1
package com.ekexiu.project.bridge.envdata;
2
3
import org.jfw.apt.orm.annotation.dao.DAO;
4
import org.jfw.apt.orm.annotation.dao.method.OrderBy;
5
import org.jfw.apt.orm.annotation.dao.method.Where;
6
import org.jfw.apt.orm.annotation.dao.method.operator.SelectList;
7
import org.jfw.apt.orm.annotation.dao.param.Alias;
8
import org.jfw.apt.orm.annotation.dao.param.GtEq;
9
import org.jfw.apt.orm.annotation.dao.param.LtEq;
10
11
import java.sql.Connection;
12
import java.sql.SQLException;
13
import java.util.List;
14
15
/**
16
 * Created by TT on 2019/3/8.
17
 */
18
@DAO
19
public interface EnvDataDao {
20
21
    @SelectList
22
    @Where(" CREATE_TIME = (SELECT MAX(CREATE_TIME) FROM ENV_DATA) ")
23
    List<EnvData> query(Connection con) throws SQLException;
24
25
    @SelectList
26
    @OrderBy("ORDER BY CREATE_TIME DESC")
27
    List<EnvData> query(Connection con, @GtEq @Alias("createTime")String bt,@LtEq @Alias("createTime") String et) throws SQLException;
28
29
}

+ 45 - 0
src/main/java/com/ekexiu/project/bridge/envdata/EnvDataService.java

@ -0,0 +1,45 @@
1
package com.ekexiu.project.bridge.envdata;
2
3
import org.jfw.apt.annotation.Autowrie;
4
import org.jfw.apt.annotation.DefaultValue;
5
import org.jfw.apt.web.annotation.Path;
6
import org.jfw.apt.web.annotation.operate.Get;
7
import org.jfw.apt.web.annotation.param.JdbcConn;
8
9
import java.sql.Connection;
10
import java.sql.SQLException;
11
import java.util.List;
12
import java.util.concurrent.atomic.AtomicReference;
13
14
/**
15
 * Created by TT on 2019/3/8.
16
 */
17
@Path("/envData")
18
public class EnvDataService {
19
    private AtomicReference<List<EnvData>> lastData = new AtomicReference<List<EnvData>>();
20
21
    @Autowrie
22
    private EnvDataDao envDataDao;
23
24
    public EnvDataDao getEnvDataDao() {
25
        return envDataDao;
26
    }
27
28
    public void setEnvDataDao(EnvDataDao envDataDao) {
29
        this.envDataDao = envDataDao;
30
    }
31
32
    @Path
33
    @Get
34
    public List<EnvData> query(@JdbcConn Connection con)throws SQLException {
35
        return envDataDao.query(con);
36
    }
37
38
    @Path("/byTime")
39
    @Get
40
    public List<EnvData> query(@JdbcConn Connection con, @DefaultValue("\"00000000000000\"")String bt, @DefaultValue("\"99999999999999\"")String et)throws SQLException {
41
        return envDataDao.query(con, bt, et);
42
    }
43
44
45
}

+ 6 - 106
src/main/java/com/ekexiu/project/bridge/servlet/EnvDataServlet.java

@ -1,21 +1,17 @@
1 1
package com.ekexiu.project.bridge.servlet;
2 2
3
import com.ekexiu.project.bridge.envdata.EnvData;
4
import org.jfw.util.DateUtil;
3 5
import org.jfw.util.context.JfwAppContext;
4
import org.jfw.util.jdbc.JdbcUtil;
5
import org.jfw.util.jdbc.PreparedStatementConfig;
6
import org.jfw.util.json.JsonService;
7 6
8 7
import static java.lang.Thread.sleep;
9 8
10 9
import javax.servlet.ServletConfig;
11 10
import javax.servlet.ServletException;
12 11
import javax.servlet.http.HttpServlet;
13
import javax.servlet.http.HttpServletRequest;
14
import javax.servlet.http.HttpServletResponse;
15 12
import javax.sql.DataSource;
16 13
import java.io.IOException;
17 14
import java.io.InputStream;
18
import java.io.PrintWriter;
19 15
import java.net.ServerSocket;
20 16
import java.net.Socket;
21 17
import java.sql.Connection;
@ -23,7 +19,6 @@ import java.sql.PreparedStatement;
23 19
import java.sql.SQLException;
24 20
import java.util.ArrayList;
25 21
import java.util.List;
26
import java.util.Map;
27 22
import java.util.concurrent.CopyOnWriteArrayList;
28 23
import java.util.concurrent.atomic.AtomicBoolean;
29 24
@ -38,74 +33,6 @@ public class EnvDataServlet extends HttpServlet {
38 33
39 34
    private AtomicBoolean running = new AtomicBoolean(false);
40 35
41
    @Override
42
    protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
43
        res.setDateHeader("Expires", 0);
44
        res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
45
        res.addHeader("Cache-Control", "post-check=0, pre-check=0");
46
        res.setHeader("Pragma", "no-cache");
47
        List<Map<String, Object>> result = null;
48
        if (null == req.getCharacterEncoding()) {
49
            req.setCharacterEncoding("UTF-8");
50
            res.setCharacterEncoding("UTF-8");
51
        }
52
        res.setContentType("text/html");
53
        PrintWriter out = res.getWriter();
54
        try {
55
            String param = req.getParameter("bt");
56
            String bt = "00000000000000";
57
            if (null != param && param.length() != 0) {
58
                bt = param;
59
            }
60
            param = req.getParameter("et");
61
            String et = "99999999999999";
62
            if (null != param && param.length() != 0) {
63
                et = param;
64
            }
65
            Connection con = this.dataSource.getConnection();
66
            try {
67
                result = query(con, bt, et);
68
            } finally {
69
                try {
70
                    con.close();
71
                } catch (Throwable _m_1) {
72
                }
73
            }
74
        } catch (Exception e) {
75
            JsonService.write(e, out);
76
            return;
77
        }
78
        out.write("<!DOCTYPE html><html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'></head><body>");
79
        out.write("<table border=\"1\">\n" +
80
                "<tr>\n" +
81
                "  <td>id</td>\n" +
82
                "  <td>显示内容</td>\n" +
83
                "  <td>单位</td>\n" +
84
                "  <td>值</td>\n" +
85
                "  <td>更新时间</td>\n" +
86
                "</tr>");
87
        for (Map<String, Object> map : result) {
88
            out.write("<tr>\n" +
89
                    "  <td>" + map.get("item_id") + "</td>\n" +
90
                    "  <td>" + map.get("caption") + "</td>\n" +
91
                    "  <td>" + map.get("unit") + "</td>\n" +
92
                    "  <td>" + map.get("item_value") + "</td>\n" +
93
                    "  <td>" + map.get("item_time") + "</td>\n" +
94
                    "</tr>");
95
        }
96
        out.write("</table></body></html>");
97
    }
98
99
    public List<Map<String, Object>> query(Connection con, final String bt, final String et) throws SQLException {
100
        return JdbcUtil.queryMaps(con, "SELECT e.item_id,COALESCE(d.caption, '没有对应值') as caption,COALESCE(d.unit, '没有对应值') as unit,e.item_value,e.item_time FROM env_data e LEFT JOIN env_id_dict d on e.item_id = d.item_id where e.item_time>= ? and e.item_time<=?", new PreparedStatementConfig() {
101
            @Override
102
            public void config(PreparedStatement preparedStatement) throws SQLException {
103
                preparedStatement.setString(1, bt);
104
                preparedStatement.setString(2, et);
105
            }
106
        });
107
    }
108
109 36
    @Override
110 37
    public void init(ServletConfig config) throws ServletException {
111 38
        dataSource = JfwAppContext.getDataSource();
@ -181,6 +108,7 @@ public class EnvDataServlet extends HttpServlet {
181 108
            while (running.get()) {
182 109
                try {
183 110
                    InputStream inputStream = socket.getInputStream();
111
                    String createTime = DateUtil.formatDateTime(System.currentTimeMillis());
184 112
                    byte[] head = new byte[52];
185 113
                    idx = 0;
186 114
                    len = 52;
@ -255,6 +183,7 @@ public class EnvDataServlet extends HttpServlet {
255 183
                        envData.setItemId(id);
256 184
                        envData.setItemValue(value);
257 185
                        envData.setItemTime(new String(timeArray));
186
                        envData.setCreateTime(createTime);
258 187
                        list.add(envData);
259 188
                    }
260 189
@ -262,10 +191,11 @@ public class EnvDataServlet extends HttpServlet {
262 191
                        Connection con = dataSource.getConnection();
263 192
                        try {
264 193
                            for (EnvData envData : list) {
265
                                PreparedStatement ps = con.prepareStatement("INSERT INTO ENV_DATA (ITEM_ID,ITEM_VALUE,ITEM_TIME) VALUES (?,?,?)");
194
                                PreparedStatement ps = con.prepareStatement("INSERT INTO ENV_DATA (ITEM_ID,ITEM_VALUE,ITEM_TIME,CREATE_TIME) VALUES (?,?,?,?)");
266 195
                                ps.setInt(1, envData.getItemId());
267 196
                                ps.setDouble(2, envData.getItemValue());
268 197
                                ps.setString(3, envData.getItemTime());
198
                                ps.setString(4, envData.getCreateTime());
269 199
                                ps.executeUpdate();
270 200
                            }
271 201
                            con.commit();
@ -311,36 +241,6 @@ public class EnvDataServlet extends HttpServlet {
311 241
        return Double.longBitsToDouble(value);
312 242
    }
313 243
314
    public static class EnvData {
315
        private int itemId;
316
        private double itemValue;
317
        private String itemTime;
318
319
        public int getItemId() {
320
            return itemId;
321
        }
322
323
        public void setItemId(int itemId) {
324
            this.itemId = itemId;
325
        }
326
327
        public double getItemValue() {
328
            return itemValue;
329
        }
330
331
        public void setItemValue(double itemValue) {
332
            this.itemValue = itemValue;
333
        }
334
335
        public String getItemTime() {
336
            return itemTime;
337
        }
338
339
        public void setItemTime(String itemTime) {
340
            this.itemTime = itemTime;
341
        }
342
    }
343
344 244
345 245
}
346 246