XMTT 6 gadi atpakaļ
vecāks
revīzija
3c451289db

+ 21 - 2
src/main/java/com/ekexiu/project/bridge/envdata/EnvDataService.java

@ -29,17 +29,36 @@ public class EnvDataService {
29 29
        this.envDataDao = envDataDao;
30 30
    }
31 31
32
    public void setLastData(List<EnvData> lastData) {
33
        if (lastData.size() == 0) {
34
            return;
35
        }
36
        if (this.lastData.get().size() == 0) {
37
            this.lastData.set(lastData);
38
        } else {
39
            if (this.lastData.get().get(0).getCreateTime().compareTo(lastData.get(0).getCreateTime()) < 0) {
40
                this.lastData.set(lastData);
41
            }
42
        }
43
    }
44
32 45
    @Path
33 46
    @Get
34
    public List<EnvData> query(@JdbcConn Connection con)throws SQLException {
47
    public List<EnvData> query(@JdbcConn Connection con) throws SQLException {
35 48
        return envDataDao.query(con);
36 49
    }
37 50
38 51
    @Path("/byTime")
39 52
    @Get
40
    public List<EnvData> query(@JdbcConn Connection con, @DefaultValue("\"00000000000000\"")String bt, @DefaultValue("\"99999999999999\"")String et)throws SQLException {
53
    public List<EnvData> query(@JdbcConn Connection con, @DefaultValue("\"00000000000000\"") String bt, @DefaultValue("\"99999999999999\"") String et) throws SQLException {
41 54
        return envDataDao.query(con, bt, et);
42 55
    }
43 56
57
    @Path("/lastData")
58
    @Get
59
    public List<EnvData> query()throws SQLException {
60
        return lastData.get();
61
    }
62
44 63
45 64
}

+ 12 - 4
src/main/java/com/ekexiu/project/bridge/servlet/EnvDataServlet.java

@ -1,6 +1,7 @@
1 1
package com.ekexiu.project.bridge.servlet;
2 2
3 3
import com.ekexiu.project.bridge.envdata.EnvData;
4
import com.ekexiu.project.bridge.envdata.EnvDataService;
4 5
import org.jfw.util.DateUtil;
5 6
import org.jfw.util.context.JfwAppContext;
6 7
@ -28,6 +29,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
28 29
public class EnvDataServlet extends HttpServlet {
29 30
    private static final long serialVersionUID = 749116393196185727L;
30 31
    private DataSource dataSource;
32
    private EnvDataService envDataService;
31 33
    private List<EnvThread> envThreadList = new CopyOnWriteArrayList<EnvThread>();
32 34
    private ListenThread listenThread;
33 35
@ -36,6 +38,10 @@ public class EnvDataServlet extends HttpServlet {
36 38
    @Override
37 39
    public void init(ServletConfig config) throws ServletException {
38 40
        dataSource = JfwAppContext.getDataSource();
41
        envDataService = (EnvDataService) JfwAppContext.getBeanFactory().getBean("com_ekexiu_project_bridge_envdata_EnvDataService");
42
        if (envDataService == null) {
43
            throw new ServletException("not found EnvDataService");
44
        }
39 45
        running.set(true);
40 46
        try {
41 47
            ServerSocket serverSocket = new ServerSocket(4000);
@ -105,10 +111,12 @@ public class EnvDataServlet extends HttpServlet {
105 111
        @Override
106 112
        public void run() {
107 113
            int idx, len, ret, offset;
114
            InputStream inputStream = null;
108 115
            while (running.get()) {
109 116
                try {
110
                    InputStream inputStream = socket.getInputStream();
111
                    String createTime = DateUtil.formatDateTime(System.currentTimeMillis());
117
                    if (inputStream == null) {
118
                        inputStream = socket.getInputStream();
119
                    }
112 120
                    byte[] head = new byte[52];
113 121
                    idx = 0;
114 122
                    len = 52;
@ -149,6 +157,7 @@ public class EnvDataServlet extends HttpServlet {
149 157
                            throw new IOException("a");
150 158
                        }
151 159
                    }
160
                    String createTime = DateUtil.formatDateTime(System.currentTimeMillis());
152 161
                    len = body.length;
153 162
                    offset = 0;
154 163
                    List<EnvData> list = new ArrayList<EnvData>();
@ -199,6 +208,7 @@ public class EnvDataServlet extends HttpServlet {
199 208
                                ps.executeUpdate();
200 209
                            }
201 210
                            con.commit();
211
                            envDataService.setLastData(list);
202 212
                        } catch (SQLException e) {
203 213
                            con.rollback();
204 214
                        } finally {
@ -207,8 +217,6 @@ public class EnvDataServlet extends HttpServlet {
207 217
                    } catch (Throwable thr) {
208 218
209 219
                    }
210
211
212 220
                } catch (Exception e) {
213 221
                    break;
214 222
                }